|
|
51CTO旗下网站
|
|
移动端

提高UNIX/Linux工作效率的十个小贴士

如果您在服务器上安装的是Linux操作系统,并且每天都需要用到大量UNIX命令的话,我们在此为您准备了十个用于加速UNIX/Linux输入和提高工作效率的小贴士。

作者:陈峻编译来源:51CTO|2018-08-08 09:00

【51CTO.com快译】引言:如果您在服务器上安装的是Linux操作系统,并且每天都需要用到大量UNIX命令的话,我们在此为您准备了十个用于加速UNIX/Linux输入和提高工作效率的小贴士。

您是否曾为看到有人在UNIX上飞快地操作指令而赞叹不已?至少我就碰到过好几次,而且我将他们视为自己努力提高UNIX技能的目标。在本文中,我将与您分享一些自己曾经在Linux系统中实现快速、高效工作的常用UNIX命令操作的范例,希望能对您有所帮助。

本人供职于金融服务业,工作内容主要涉及到在电子交易及衍生品系统上,开发和支持在线股票与期货业务。由于我们所有的服务都运行在Linux服务器上,所以对我来说,能够在Linux上流畅娴熟地工作是非常重要的。

与本文属于相同系列的文章有:《UNIX的10大基本网络命令》,如果您没有阅读过且饶有兴趣的话,可以去找来参考阅读一下。

1.使用 ! 来执行最后一条命令

此用法节省了我平均30%的时间。通常情况下,您可能会碰到需要在较短的时间内,屡次输入相同UNIX命令的情况。以前,我所使用的普通技巧是:通过键盘上的向上和向下箭头,来查找我最近使用过的命令,选中后再回车执行。这显然需要我逐一检索的时间。

但是,如今我知道了可以使用 ! 这一技巧。而我只需要记住输入过的命令名称便可。例如:

  • 如果输入“!ls”,系统就会执行我最后一次输入过的“ls -lrt”。
  • 如果输入“!vim”则能够打开我最后一次编辑过的文件,而不必输入其完整的命令。

通过使用该技巧,您不但能够节省在繁复命令的拼写上所花费的输入时间,还能在某些不能运用向上和向下箭头来调出过往命令的bash shell(如csh或ksh)中进行使用。

例如:如果您在执行了“ls -l stocks.txt”之后,想直接打开stocks.txt文件,就可以直接使用“vi !$(最后一个参数)”。

2.使用 !! 来调用最后一条命令

该技巧是前面的 ! 的一个扩展,可以帮您引用且调出前面执行过的最后一条命令。只要双击 ! ,您就能获得惊人的快捷体验。

例如:我前面执行过 ifconfig | grep "inet addr:",但是现在却碰到了权限不够,需要root用户权限,那么我就可以直接输入su -c "!!" root。此处su用来选择用户,-c用来表示要执行的具体命令,而“!!”就代替了我最后一次运行过的命令。

该技巧同样对于那些不能运用向上和向下箭头的csh或ksh特别有效。如果您要经常停止/启动服务器、或使用Java来调试应用的话,请熟悉该技巧。

顺便说一句,如果您还不熟悉bash shell和shell脚本的话,我建议您参看一下:《bash shell脚本的初学者速成课程》。它对于Linux初学者非常实用。

3.使用 CTRL+R 去匹配稍久远的命令

在Linux系统中,如果您要查找那些并非最近几次输入过,而是相对久远的命令,那么仅靠使用键盘的向上和向下箭头,显然效率不高。此时,我们就可以使用该技巧来通过相同的参数进行反向搜索查找。

例如:您只需按下“CRTL+R”,然后输入您在以前命令中所出现过的关键字,UNIX就能帮您找到该命令。您在确认后直接按下回车键便可。当然,您也可以继续按向上或向下键,来查找该命令之前或之后的命令,并通过左右键来移动光标,以修改此条命令。

就我自己而言,由于上述三种技巧的使用频率比较高,它们基本上能节省我50%-60%的时间。

4.使用 History 命令,获得最常用的UNIX命令

该命令实际上是我初学UNIX时的入门级技巧,想必也是在UNIX和Shell脚本中对您最有用的命令。

在大多数情况下,您经常会在Linux系统中执行诸如启动、停止、检查日志文件、编译或执行发布等特定命令。由于不同的应用所使用的拼写方式会略有不同,因此如果您不记得确切的命令语法也不必担心,只要输入:history | grep "关键字",您就能从Linux系统的历史记录中找到相应的命令。

当然,系统有一些特定的环境变量,如HISTSIZE就定义了UNIX的history里能存储的命令条数。因此它在帮助您节约时间的同时,也省去了您去频繁地翻阅手册。

顺便说一句,如果您不熟悉Linux基本命令的话,那么我强烈建议您通过《linux 命令行基础知识》,来补足自己的短板,以免在手头任务吃紧时,还不得不在线搜索相关的Linux命令。

5.在 grep 中使用正则表达式进行查找

grep和find是UNIX提供给我们的两个绝好的工具。我们不可避免地需要在UNIX中搜索某些内容,例如文件、目录、文件中的某些字(如ERROR或Exception)。因此如果您知道如何使用grep与find的正则表达式,那么就能节省大量输入命令的时间。

例如:如果您知道如何使用egrep,那么就能通过输入 egrep "ERROR|Exception" *. xml,来取代两个单独的grep命令去分别查找ERROR和Exception。

如果想了解更多grep和find命令的有关信息,您可以参看《grep命令的十种示例》(http://javarevisited.blogspot.sg/2011/06/10-examples-of-grep-command-in-unix-and.html)和《Linux中find命令的十种示例》(http://javarevisited.blogspot.sg/2011/03/10-find-command-in-unix-examples-basic.html)。

6.使用管道来替代发送两次命令

上面的示例中已经展示了管道的用法,不知您是否已经注意到了呢?

7.使用别名,并在Bash Profile或bashrc文件中定义它们

您是否有看过别人会在自己的系统中用到一些奇怪的命令?也许他们使用的就是在其.bashrc或.profile文件所预先设置好的别名机制。

他们会通过在.bashrc和.profile文件中大量地使用简化了的别名命令,来节约反复输入的时间。例如:

  • 用"l"来表示查找所有的隐藏文件。
  • 用"ls"来包括所有的有用选项,如 -lrtH就可以显示所有的相关信息。

您可以通过参看《linux命令行界面(CLI)基础知识》,来进一步了解更多有关Linux的登录机制,以及.login、.profile和.bashrc文件在Linux bash shell中的作用。

8.使用 pushd、popd、cd -、~来切换目录

不知大家是否有过这样的体验:由于任务的要求,我们需要不停地在多个深层次的目录之间进行切换。虽然在输入cd命令的时候,我们可以使用tab键,但是冗长的路径着实会花费时间。

因此根据我的经验,我们完全可以:

  • 使用"cd –"回到前一级目录,以实现两个目录位置之间的切换。
  • 使用"pushd"以切换到一个作为参数的目录,并把原目录和当前的目录存入到一个虚拟的堆栈中,从而实现目录的交换。
  • 使用"popd"以弹出堆栈中最近的目录。

9.最小化击键或增加打字速度

众所周知,您的键盘输入越少,工作效率就越高。因此您可以在bash中充分使用tab键,来让系统自动猜想,并帮您完成后续的参数内容。当然您也可以用到我们在前面提到过的CRTL+R,来对前面输入过的复杂命令,进行小修小改快速成型。

10.不断学习新的Linux命令

学习使人熟练。只有通过不断尝试新的命令和参数选项,才能缩短您在执行特定任务时的切换时间。另外,您还可以使用ctrl+z、fg和bg来暂停某个进程。其中:

  • 使用"ctrl+z"可以将某个正在前台执行的命令挂起。
  • 使用"fg"可以将后台某个命令调至前台继续运行。
  • 使用"bg"可以对某个在后台被暂停的命令予以恢复并继续执行。

这些命令对于您需要同时查看多个文件或日志时,都是极其实用的。

如果您在服务器上安装的是Linux操作系统,并且每天都需要用到大量UNIX命令的话,那么我们上述罗列的十项小贴士,定能帮您加速UNIX/Linux的输入并提高工作效率。当然,如果您愿意分享自己的Linux经验或Shell实用程序的话,请记得给我留言。

原文标题:10 Tips on Working Fast in UNIX or Linux,作者:Nitesh Behani 

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

【编辑推荐】

  1. Linux下cut命令的4个基础实用的示例
  2. 为什么服务器要选择Linux,这里总结了10大理由
  3. 作为程序员必会的Linux命令
  4. Linux应用程序加载机制-你真的清楚吗?
  5. 如何使用命令行检查Linux上的磁盘空间
【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

Java程序员面试宝典

本书是程序员面试宝典系列中的一册,也是上一本《程序员面试宝典》的姊妹书。本书对程序设计面试中Java常见的题型和常用解答技巧进行了介绍...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊