Linux 命令行工具使用小贴士及技巧(一)

简介:

相关内容

如果你刚开始在 Linux 系统中使用命令行工具,那么你应该知道它是 Linux 操作系统中功能最强大和有用的工具之一。学习的难易程度跟你想研究的深度有关。但是,无论你的技术能力水平怎么样,这篇文章中的一些小贴士和技巧都会对你有所帮助。

在本系列的文章中,我们将会讨论一些非常有用的命令行工具使用小技巧,希望你的命令行使用体验更加愉快。

但是在开始下一步之前,我得强调一点,这篇文章中的测试实例都是在 Ubuntu 14.04LTS 系统下测试通过的。我们使用命令行 Shell 版本是 bash 4.3.11 。

Linux 命令行工具使用的一些小技巧

我们假设你已经掌握了一些 Linux 命令行的基础知识,比如什么是 root 账号及 home 目录,什么是环境变量,如何查看目录内容等等。说明这些小技巧的同时也会介绍涉及到的概念,如果有的话。

轻松切换目录 —— 快捷方式

假设你正在命令行下做一些操作,并且你需要经常在两个目录间来回切换。而且这两个目录在完全不同的两个路径下,比如说,分别在 /home/ 和 /usr/ 下。你会怎么做呢?

其中,最简单直接的方式就是输入这些目录的全路径。虽然这种方式本身没什么问题,但是却很浪费时间。另外一种方式就是打开两个终端窗口分别进行操作。但是这两种方式使用起来既不方便,也显得没啥技术含量。

你应该感到庆幸的是,还有另外一种更为简捷的方法来解决这个问题。你需要做的就是先手动切换到这两个目录(通过 cd 命令分别加上各自的路径),之后你就可以使用 cd - 命令在两个目录之间来回快速切换了。

例如:

我现在在下面的目录:


 
 
  1. $ pwd
  2. /home/himanshu/Downloads

然后,我切换到 /usr/ 路径下的其它目录:


 
 
  1. cd /usr/lib/

现在,我可以很方便的使用下面的命令来向前、向后快速地切换到两个目录:


 
 
  1. cd -

下面是 cd - 命令的操作截图:

The Linux cd command

The Linux cd command

有一点我得跟大家强调下,如果你在操作的过程中使用 cd 加路径的方式切换到第三个目录下,那么 cd - 命令将应用于当前目录及第三个目录之间进行切换。

轻松切换目录 —— 相关细节

对于那些有强烈好奇心的用户,他们想搞懂 cd - 的工作原理,解释如下:如大家所知道的那样, cd 命令需要加上一个路径作为它的参数。现在,当 - 符号作为参数传输给 cd 命令时,它将被 OLDPWD 环境变量的值所替代。

The cd command explained

The cd command explained

现在应该明白了吧, OLDPWD 环境变量存储的是前一个操作目录的路径。这个解释在 cd 命令的 man 帮助文档中有说明,但是,很遗憾的是你的系统中可能没有预先安装 man 命令帮助工具(至少在 Ubuntu 系统下没有安装)。

但是,安装这个 man 帮助工具也很简单,你只需要执行下的安装命令即可:


 
 
  1. sudo apt-get install manpages-posix

然后做如下操作:


 
 
  1. man cd

打开 man 帮助文档主页后,你将会看到下面很明确的解释:


 
 
  1. —— - 符号被用作 cd 命令的参数值时,将等同于下面的操作命令:
  2. cd "$OLDPWD" && pwd

毫无疑问, cd 命令设置了 OLDPWD 环境变量值。因此每一次你切换操作目录时,上一个目录的路径就会被保存到这个变量里。这还让我们看到很重要的一点就是:任何时候启动一个新的 shell 实例(包括手动执行或是使用 shell 脚本),都不存在 ‘上一个工作目录’。

Hyphen and the cd command

Hyphen and the cd command

这也很符合逻辑,因为 cd 命令设置了 OLDPWD 环境变量值。因此,除非你至少执行了一次 cd 命令,否则OLDPWD 环境变量不会包含任何值。

继续,尽管这有些难以理解, cd - 和 cd $OLDWPD 命令的执行结果并非在所有环境下都相同。比如说,你重新打开一个新的 shell 窗口时。

cd command example

cd command example

从上面的截图可以清楚的看出,当执行 cd - 命令提示未设置 OLDPWD 值时, cd $OLDPWD 命令没有报任何错;实际上,它把当前的工作目录改变到用户的 home 目录里。

那是因为 OLDPWD 变量目前还没有被设置, $OLDPWD 仅仅是一个空字符串。因此, cd $OLDPWD 命令跟cd 命令的执行结果是一致的,默认情况下,会把用户当前的工作目录切换到用户的 home 目录里。

最后,我还遇到过这样的要求,需要让 cd - 命令执行的结果不显示出来。我的意思是,有这样的情况(比如说,在写 shell 脚本的时候),你想让 cd - 命令的执行结果不要把目录信息显示出来。那种情况下,你就可以使用下面的命令方式了:


 
 
  1. cd - &>/dev/null

上面的命令把文件描述符 2(标准错误)和 1(标准输出)的结果重定向到 /dev/null 目录。这意味着,这个命令产生的所有的错误不会显示出来。但是,你也可以使用通用的 $? 方式来检查这个命令的执行是否异常。如果这个命令执行报错, echo $? 将会返回 1,否则返回 0

或者说,如果你觉得 cd - 命令出错时输出信息没有关系,你也可以使用下面的命令来代替:


 
 
  1. cd - > /dev/null

这个命令仅用于将文件描述符 1 (标准输出)重定向到 /dev/null 。

总结

遗憾的是,这篇文章仅包含了一个跟命令行相关的小技巧,但是,我们已经地对 cd - 命令的使用进行了深入地探讨。建议你在自己的 Linux 系统的命令行终端中测试本文中的实例。此外,也强烈建议你查看 man 帮助文档,然后对 cd 命令进行全面测试。

原文发布时间为:2017-03-25

本文来自云栖社区合作伙伴“Linux中国”


相关文章
|
6月前
|
网络协议 Linux 网络安全
curl(http命令行工具):Linux下最强大的网络数据传输工具
curl(http命令行工具):Linux下最强大的网络数据传输工具
190 0
|
监控 Linux Shell
(二)Linux命令行工具进阶:探索高级功能
在Linux系统中,命令行工具提供了丰富的高级功能,用于处理文本、管理进程、监控系统性能等任务。本文将深入探讨一些高级命令和技巧,帮助您更加高效地利用Linux命令行。
96 1
|
Linux 数据安全/隐私保护
(一)Linux命令行工具入门:掌握基础命令
Linux操作系统的命令行界面是系统管理员和开发人员的得力工具。掌握基础的Linux命令是使用Linux系统的第一步。本文将向您介绍一些最基础、最常用的Linux命令,使您能够在命令行界面自如地操作文件、目录,以及执行各种任务。
143 0
|
2月前
|
运维 监控 Linux
深入理解Linux系统运维:命令行工具的力量
【9月更文挑战第14天】在Linux的世界里,命令行工具是系统管理员的瑞士军刀。本文将带你领略命令行的魅力,从基础操作到高级技巧,让你的运维工作更加高效和精准。准备好了吗?让我们一起开启这段探索之旅!
|
5月前
|
存储 安全 Java
Linux 命令行工具
`pk12util`是Linux下的命令行工具,用于处理PKCS#12文件,适用于证书和私钥管理。它跨平台,基于Java,支持创建、列出、导入和导出操作,便于脚本自动化。例如,用`pk12util encode`命令可创建受密码保护的PKCS#12文件,而`list`命令则用于查看文件内容。使用时务必注意安全,使用强密码,并备份重要文件。在实际操作前,应在安全环境中测试命令。
|
5月前
|
Unix Linux 应用服务中间件
Linux 命令行工具:lsof 入门指南
`lsof` 命令详解:用于列出系统中打开的文件,包括进程、网络连接、管道等。通过 `-p` 查看指定进程文件,`-u` 查看用户文件,`-i` 查看网络连接。还能定位占用端口的进程,显示已删除但仍在使用的文件,以及分析程序如何操作文件。是Linux用户问题定位和性能优化的得力助手。学习并熟练运用 `lsof` 可提升工作效率。
89 2
|
5月前
|
Linux 网络安全 Perl
Linux命令:探索强大的命令行工具
探索Linux命令行工具,了解CLI基本结构:命令名、选项和参数。本文概述常用命令,如文件和目录操作(ls, cd, mkdir)、文本处理(cat, grep, sed)和系统管理(top, df, free)。学习技巧,如Tab补全、通配符和使用管道符、重定向。掌握命令,提升Linux使用效率。
|
Linux Shell 调度
(三)Linux命令行工具和脚本编程:自动化任务和提高效率
Linux命令行工具和脚本编程是系统管理员和开发人员必备的技能。这些技能不仅可以自动化日常任务,还可以提高工作效率。本文将介绍如何使用Linux命令行工具和Shell脚本编程来自动化任务,并提供一些实用的技巧和示例。
185 1
|
6月前
|
Linux 数据库 开发者
【专栏】在Linux系统管理中,熟练使用命令行工具查找文件至关重要:如何按名称和 Grep 内容查找文件?
【4月更文挑战第28天】在Linux系统管理中,熟练使用命令行工具查找文件至关重要。本文介绍了如何使用`find`和`locate`按名称查找文件,以及结合`grep`按内容搜索。`find`能基于多种属性搜索,包括文件系统层次,而`locate`依赖索引数据库,速度更快。`grep`则用于在文件中搜索特定文本,支持正则表达式和多种选项。通过组合`find`/`locate`和`grep`,可实现更复杂的搜索任务,提升工作效率。
67 0
|
监控 Linux Python
Linux系统之dool命令行工具的基本使用
Linux系统之dool命令行工具的基本使用
298 1