首页 > 编程知识 正文

push pop shift unshift,push pop指令

时间:2023-05-05 23:39:22 阅读:24456 作者:3226

本系列的第一部分通过研究cd -命令的使用方法,侧重于Linux的命令行导航。 讨论了其他一些相关要点/概念。 本文介绍如何使用pushd和popd命令在Linux命令行上获得更快的导航体验。

我们开始之前需要说明的是,随后提到的所有指导和命令都经过了Ubuntu 14.04和bashshell(4.3.11 )的测试。

pushd和popd命令的基础为了更好地理解pushd和popd命令的作用,让我们来讨论堆栈的概念。 想象厨房砧板上有一个空白区域。 我想把盘子放在上面。 怎么办? 很简单。 一个接一个地放在上面。

所以在整个过程的最后,砧板上的第一个盘子是盘子里的最后一个,你手里的最后一个盘子是盘子堆里的第一个。 现在jjdxmy需要盘子的时候,选择山的最上面的盘子使用,根据需要选择下一个盘子。

pushd和popd命令是相似的概念。 Linux系统具有目录堆栈,可以堆栈目录路径以供将来使用。 使用dirs命令可以随时快速查看堆栈的内容。

以下示例显示了命令行终端启动后不久在我的系统上使用dirs命令的输出。

$ dirs~输出中的波浪号()表示目录堆栈仅包含当前用户的主目录。

然后,使用pushd和popd命令运行并删除存储目录路径。 使用pushd很简单。 只需将存储在目录堆栈中的路径作为此命令的参数传递即可。 这里有一个例子:

pushd /home/himanshu/Downloads/以上命令的作用是将当前工作目录更改为要作为参数传递的目录,然后向目录堆栈中添加路径。 为了方便用户,pushd命令在其输出中生成目录堆栈的内容。 因此,运行上述命令将得到以下输出:

~/Downloads ~(根据输出,当前堆栈有两个目录路径:用户的主目录和用户的下载目录。 主目录位于底部,新添加的Downloads目录按其顶部的顺序保存。

要验证pushd的输出是否正确,也可以使用dirs命令。

$dirs(/downloads )因此,您可以看到dirs命令也提供相同的输出。

再用一次pushd命令吧:

$ pushd/usr/lib/pushd/home/him anshu/desktop//usr/lib~~/downloads~/desktop/usr/lib~/downloadads

必须记住的是,堆栈的头是你现在的目录。 也就是说,现在我们现在的工作目录是~/Desktop。

现在,假设您想返回到/usr/lib目录,所以要运行popd命令。

从命令输出中可以看到$ popd/usr/lib ~/Downloads ~ popd命令不仅将当前目录切换到/usr/lib,还将~/Desktop从目录堆栈中删除。 因此,popd命令可以按相反的顺序浏览这些目录。

一些高级用法介绍了pushd和popd命令的基本知识。 让我们继续讨论与这些命令相关的其他细节。 首先,这些命令还允许您处理目录堆栈。 例如,假设目录堆栈看起来如下:

$ dirs~~/desktop/usr/lib~~/downloads当前要求您重新排序堆栈中的目录路径,将顶部元素(/desktop )放在底部,其馀的都上移

动一个位置。这可以使用以下命令实现:

pushd +1

上面的命令对目录堆栈做的结果:

$ dirs/usr/lib ~ ~/Downloads ~/Desktop

因此,我们看到目录堆栈中的元素顺序已经改变,并且现在和我们想要的一样。当然,你可以让目录堆栈元素移动任何次数。例如,以下命令会将它们向上移动两次:

$ pushd +2~/Downloads ~/Desktop /usr/lib ~

你也可以使用负的索引值:

$ pushd -1/usr/lib ~ ~/Downloads ~/Desktop

相似地,你可以在 popd 命令中使用此技术来从目录堆栈删除任何条目,而不用离开当前工作目录。例如,如果要使用 popd 从顶部(目前是 ~/Downloads)删除第三个条目,你可以运行以下命令:

popd +2

记住堆栈索引的初始值是 0,因此我们使用 2 来访问第三个条目。

因此目录堆栈现在包含:

$ dirs/usr/lib ~ ~/Desktop

确认条目已经被移除了。

如果由于某些原因,你发现你很难记住元素在目录堆栈中的位置以及它们的索引,你则可以对在 dirs 命令中使用 -v 选项。这里有一个例子:

$ dirs -v0 /usr/lib1 ~2 ~/Desktop

你可能已经猜到了,左边的数字是索引,接下来跟的是这个索引对应的目录路径。

注意: 在 dir 中使用 -c 选项清除目录堆栈。

现在让我们简要地讨论一下 popd 和 pushd 命令的实际用法。虽然它们第一眼看起来可能有点复杂,但是这些命令在编写 shell 脚本时会派上用场 - 你不需要记住你从哪里来;只要执行一下 popd,你就能回到你来的目录。

经验丰富的脚本编写者通常以以下方式使用这些命令:

popd >/dev/null 2>&1

上述命令确保 popd 保持静默(不产生任何输出)。同样,你也可以静默 pushd。

pushd 和 popd 命令也被 Linux 服务器管理员使用,他们通常在几个相同的目录之间移动。 在这里介绍了一些其他有用的使用场景。

总结

我同意 pushd 和 popd 的概念不是很直接。但是,它需要的只是一点练习 - 是的,你需要多实践。花一些时间在这些命令上,你就会开始喜欢它们,特别是当它们提供了方便时。


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。