学IT,好工作
就读湖南岳麓职业培训中学
QQ咨询
求学热线:
假如你在Linux系统中使用命令行工具,这么你应当晓得它是Linux操作系统中功能最强大和有用的工具之一。学习的难易程度跟你想研究的深度有关。本文为你分享一些命令行工具使用的小窍门。
但在开始下一步之前,这篇文章中的测试实例都是在Ubuntu14.04LTS系统下测试通过的。我们使用命令行Shell版本是bash4.3.11。
Linux命令行工具使用的一些小方法
我们假定你已然把握了一些Linux命令行的基础知识,例如哪些是root帐号及home目录,哪些是环境变量,怎么查看目录内容等等。说明这种小方法的同时也会介绍涉及到的概念,假如有的话。
轻松切换目录——快捷方法
假定你正在命令行下做一些操作,而且你须要时常在两个目录间来回切换。并且这两个目录在完全不同的两个路径下,例如说,分别在/home/和/usr/下。你会怎样做呢?
其中,最简单直接的方法就是输入那些目录的全路径。其实这些方法本身没哪些问题,然而却很浪费时间。另外一种方法就是打开两个终端窗口分别进行操作。并且这两种方法使用上去既不便捷,也变得没啥技术纯度。
你应当倍感万幸的是,还有另外一种更为简捷的方式来解决这个问题。你须要做的就是先手动切换到这两个目录(通过cd命令分别加上各自的路径),然后你就可以使用cd-命令在两个目录之间来回快速切换了。
比如:
我如今在下边的目录:
$pwd
/home/himanshu/Downloads
之后,我切换到/usr/路径下的其它目录:
cd/usr/lib/
如今linux认证,我可以很便捷的使用下边的命令来往前、向后快速地切换到两个目录:
cd-
下边是cd-命令的操作截图:
TheLinuxcdcommand
有一点我得跟你们指出下,假如你在操作的过程中使用cd加路径的形式切换到第三个目录下,这么cd-命令将应用于当前目录及第三个目录之间进行切换。
轻松切换目录——相关细节
对于这些有强烈好奇心的用户,她们想弄懂cd-的工作原理,解释如下:如你们所晓得的那样,cd命令须要加上一个路径作为它的参数。如今,当-符号作为参数传输给cd命令时,它将被OLDPWD环境变量的值所取代。
Thecdcommandexplained
如今应当明白了吧,OLDPWD环境变量储存的是前一个操作目录的路径。这个解释在cd命令的man帮助文档中有说明,然而,很遗憾的是你的系统中可能没有预先安装man命令帮助工具(起码在Ubuntu系统下没有安装)。
然而,安装这个man帮助工具也很简单,你只须要执行下的安装命令即可:
sudoapt-getinstallmanpages-posix
之后做如下操作:
mancd
打开man帮助文档主页后,你将会看见下边很明晰的解释:
——当-符号被用作cd命令的参数值时linux 命令行 浏览器,将等同于下边的操作命令:
cd”$OLDPWD”&&pwd
毫无疑惑,cd命令设置了OLDPWD环境变量值。为此每一次你切换操作目录时,上一个目录的路径都会被保存到这个变量里。这还让我们看见很重要的一点就是:任何时侯启动一个新的shell实例(包括自动执行或是使用shell脚本),都不存在‘上一个工作目录’。
Hyphenandthecdcommand
这也很符合逻辑,由于cd命令设置了OLDPWD环境变量值。为此,除非你起码执行了一次cd命令,否则OLDPWD环境变量不会包含任何值。
继续,虽然这有些无法理解,cd-和cd$OLDWPD命令的执行结果并非在所有环境下都相同。例如说,你重新打开一个新的shell窗口时。
cdcommandexample
从前面的截图可以清楚的看出,当执行cd-命令提示未设置OLDPWD值时,cd$OLDPWD命令没有报任何错;实际上,它把当前的工作目录改变到用户的home目录里。
那是由于OLDPWD变量目前还没有被设置,$OLDPWD仅仅是一个空字符串。为此,cd$OLDPWD命令跟cd命令的执行结果是一致的,默认情况下,会把用户当前的工作目录切换到用户的home目录里。
最后,我还碰到过这样的要求qq linux,须要让cd-命令执行的结果不显示下来。我的意思是linux 命令行 浏览器,有这样的情况(例如说,在写shell脚本的时侯),你想让cd-命令的执行结果不要把目录信息显示下来。那个情况下,你就可以使用下边的命令形式了:
cd-&>/dev/null
里面的命令把文件描述符2(标准输入)和1(标准输出)的结果重定向到/dev/null目录。这意味着,这个命令形成的所有的错误不会显示下来。而且,你也可以使用通用的$?方法来检测这个命令的执行是否异常。假如这个命令执行报错,echo$?将会返回1,否则返回0。
或则说,假如你认为cd-命令出错时输出信息没有关系,你也可以使用下边的命令来取代:
cd->/dev/null
这个命令仅用于将文件描述符1(标准输出)重定向到/dev/null。
总结
遗憾的是,这篇文章仅包含了一个跟命令行相关的小方法,并且,我们早已地对cd-命令的使用进行了深入地阐述。建议你在自己的Linux系统的命令行终端中测试本文中的实例。据悉,也强烈建议你查看man帮助文档,之后对cd命令进行全面测试。