Linux命令行导航提示和技巧 - 第1部分

如果您刚刚在Linux中使用命令行,那么值得一提的是它是操作系统中功能最强大的功能之一。 学习曲线可能或可能不会很陡峭,具体取决于您想深入了解主题的深度。 但是,有一些Linux命令行提示/技巧,无论您的专业技术水平如何,始终都会有所帮助。

在本系列文章中,我们将讨论几个这样的技巧/技巧,希望能让您的命令行体验更愉快。

但在我们向前推进之前, 值得一提的是,本文中介绍的所有说明以及示例都已在Ubuntu 14.04LTS上进行了测试。 我们使用的命令行shell是bash(4.3.11版)

Linux命令行提示/技巧

请注意,我们假设您知道Linux中命令行的基本知识,例如root和home目录,什么是环境变量,如何浏览目录等等。 另外,请注意,提示/技巧将伴随着涉及的概念的方式和原因(如适用)。

轻松切换两个目录 - 快速提示

假设你在命令行上做了一些工作,需要你多次在两个目录之间切换。 而这两个目录位于完全不同的分支,分别位于/ home / / / usr /下。 你会怎么做?

一个,最直接的选择是通过键入这些目录的完整路径进行切换。 虽然方法本身没有问题,但这是非常耗时的。 其他选项可能是打开两个单独的终端并继续工作。 但是再一次,这种做法既不方便,也不优雅。

你会很高兴知道这个问题有一个简单的解决方案。 所有你需要做的是首先在两个目录之间手动切换(通过将它们各自的路径传递给cd命令),然后后续的交换机可以使用cd -命令完成。

例如:

我在以下目录中:

$ pwd
/home/himanshu/Downloads

然后我切换到/ usr / branch中的其他目录:

cd /usr/lib/

现在,我可以轻松地使用以下命令来回切换:

cd -

这是一个屏幕截图,显示了cd- command的动作。

这里值得一提的一个重要的一点是,如果您切换到所有这些之间的第三个目录,则cd- command将适用于新目录和从其进行交换的目录。

轻松切换两个目录 - 相关详细信息

对于好奇的人来说,谁想知道cd命令的工作原理,这里是一个解释:众所周知,cd命令需要一个路径作为参数。 现在,当连字符( - )作为参数传递给命令时,它将被OLDPWD环境变量包含的值替换。

现在可以看出,OLDPWD环境变量存储以前工作目录的路径。 这个解释是cd命令的手册页,但可惜的是,你可能找不到系统上预装的手册页(至少在Ubuntu上没有)。

但是,安装它并不是一件大事,您只需运行以下命令即可:

sudo apt-get install manpages-posix

然后做:

man cd

一旦手册页打开,你会看到它清楚地说:

- When a hyphen is used as the operand, this shall be equivalent
to the command:

cd "$OLDPWD" && pwd

不用说,这是cd命令设置OLDPWD变量。 所以每次更改目录时,以前的工作目录都存储在这个变量中。 这给我们带来了另一个重要的一点:每当启动一个新的shell实例(手动或通过一个脚本)时,它都没有“以前的工作目录”。

这是合乎逻辑的,因为它是设置此变量的cd命令。 所以直到你至少运行一次cd命令,OLDPWD环境变量将不包含任何值。

继续,虽然它可能看起来违反直觉,但cdcd $ OLDWPD命令在所有情况下都不会产生相同的结果。 一个新的shell刚刚启动的例子。

从上面的屏幕截图清楚,当cd命令抱怨OLDPWD变量未设置时, cd $ OLDPWD命令没有产生任何错误; 实际上它将当前工作目录更改为用户的主目录。

那是因为当前没有设置OLDPWD变量,$ OLDPWD只不过是一个空字符串。 因此, cd $ OLDPWD 命令与运行cd一样好,默认情况下,您将转到您的主目录。

最后,我也经历了一些情况,在这种情况下,抑制cd- command产生的输出是可取的。 我的意思是,可能有一些情况(例如,在编写一个shell脚本的时候),你需要cd- command在输出中不产生通常的目录路径。 对于这些情况,可以使用以下命令:

cd - &>/dev/null

上述命令将将文件描述符2(STDERR)和描述符1(STDOUT)重定向/ dev / null 这意味着命令产生的任何错误也将被抑制。 但是,您仍然可以使用generic $来检查命令失败的成功。 技术 - 命令echo $? 如果有错误,将产生'1',否则为'0'。

或者,如果您可以使用cd命令在错误情况下生成输出,则可以使用以下命令:

cd - > /dev/null

此命令将仅将文件描述符1(STDOUT)重定向 /dev/null

结论

可悲的是,我们只能在这里覆盖一个命令行相关的提示,但是好的事情是我们设法讨论了关于cd命令的很多深入的内容。 建议您彻底地浏览本教程,并在Linux机箱的命令行终端上测试我们在此讨论的所有内容。 此外,请执行命令的手册页,然后尝试所有记录的功能。

如果您遇到任何问题或有疑问,请在下面的评论中与我们分享。 同时,等待第二部分,我们将在这里讨论一些更有用的与命令行相关的技巧/技巧,方法与在此完成相同。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏