Linux 历史命令全面掌控

系统 Linux
Linux历史命令全面掌控,是因为做linux配置命令时,总是来回的用几个命令,或者由于Linux太多命令忘记,需要调出历史命令忘记历史的Linux用户注定要输入很多信息。这也让强有力的历史命令不仅在援引之前执行命令时有用,在调用其它很少用到的命令时也有用。

Linux历史命令全面掌控,是因为做linux配置命令时,总是来回的用几个命令,或者由于Linux太多命令忘记,需要调出历史命令忘记历史的Linux用户注定要输入很多信息。这也让强有力的历史命令不仅在援引之前执行命令时有用,在调用其它很少用到的命令时也有用。

这也让强有力的历史命令(包括Bash shell的历史变体)不仅在援引之前执行命令而不需重新输入它们时有用,在调用其它很少用到的命令时也有用,这省去了必须重新使用它们的麻烦。该命令按时间顺序列出了之前执行命令的清单。

该命令的输出示例如下:

  1. $ history  
  2. ...  
  3. 62  rm 092210.sql  
  4. 63  mysqldump  
  5. 64  mysqldump -u root -p dev_gamenomad_com > 092210.sql  
  6. 65  more 092210.sql  
  7. 66  rm 092210.sql  
  8. ...  
  9. 9991  mkdir chapter05  
  10. 9992  cd chapter05  
  11. 9993  dir  
  12. 9994  npm install websocket-server  
  13. 9995  node hello.js  
  14. 9996  exit  
  15. 9997  history 

与每条命令相关的顺序号服务于重要目的,允许用户通过提供直接跟着感叹号的顺序号来重新执行相关命令,如下:

  1. $ !10000  
  2. sudo /etc/init.d/apache2 start  
  3.  * Starting web server apache2       

但这并不是全部。Linux历史命令能做到更多,本文后续部分也将提及。

掌控历史扩展

敲击向上箭头键会显示之前执行的命令,敲击Enter键会再次执行该命令。但是还可以使用另一个可能更快的包括历史扩展功能的选择:

  1. $ !! 

如果你重复执行同样两条或三条命令的不同排列组合,你还可以选择通过识别其位移负指数来执行出现在上一命令出现处的命令。例如,执行之前命令的前一命令(回退两条命令),运用以下序列:

  1. $ !-2 

执行早期命令的另一方式是输入紧跟着感叹号的命令序列号的开头。符合字符对象的第一条命令会执行。举例来说,假设最后三条命令如下:

  1. $ history  
  2. ...  
  3. 9876 build-book /home/wjgilmore/easy_php  
  4. 9877 mkdir chapter05  
  5. 9878 cd chapter05  
  6. 9879 touch chapter05.md 

你可以只通过运行以下命令来再次执行构书脚本:

  1. $ !b 

用两步过程创建一个确认它的新目录和导航和以运用历史扩展缩短。在本例中,我创建了一个叫做easy_bash的新目录,位置在/home/wjgilmore/books。要确认该目录,运用!$来获得在前一命令中发现在最后“字符”:

  1. $ mkdir /home/wjgilmore/books/easy_bash  
  2. $ cd !$ 

搜索命令历史

虽然可以翻阅命令历史(或使用grep命令),但在使用Ctrl+R开放选择搜索它之后也可以调用该命令的片段,提示的命令行将如下所示:

  1. (reverse-i-search)`': 

开始输入命令片段,命令行会实时更新反映出最符合的一条。输入apa后会出现类似于这样的命令:

  1. (reverse-i-search)`apa': sudo /etc/init.d/apache2 start 

当你看到想要的命令,敲击Enter执行它,或者敲击向上箭头键在重新执行前修改它。

调整历史行为

你可以做很多有趣的设置更改来控制命令历史的行为方式。例如,Bash shell设置的默认历史大小是500条记录,这个限制很快就达到了,即使是很小的命令行相互作用。你可以通过设置在Bash配置文件(.bashrc,位于主目录中)上发现的HISTSIZE变量提高限制数。

  1. HISTSIZE=10000 

你在命名为HISTCONTROL的.bashrc中通常还会遇到另一个与历史有关的变量。该变量帮助明确规定历史文件中的存放内容(位于.bash_history,也可见于主目录中)。例如,你也许在检查最新的日志文件附件时重复执行了尾命令,就在运行tail的几分钟里。通过重复来集群历史文件不太实际,通过设置它为ignoredups来让HISTCONTROL变量忽视复制行。

  1. HISTCONTROL=ignoredups 

可疑效用的另一个HISTCONTROL设置是忽略空格。该HISTCONTROL设置的结果是所有前面有空格的执行命令都从历史文件中删除。这对于不跟踪每条命令似乎起了反作用,但是如果你除了ignoredups之外还想实现该功能,你可以将两者设置成:

  1. HISTCONTROL=ignoreboth 

我最后要谈及的一个功能是命令替换。假设你想基于一个虚拟主机配置文件模板快速配置一群虚拟主机。这些命令序列可能非常长,就像下面所示:

  1. $ cp vhost.template /etc/apache2/sites-available/dev.example.com  
  2. $ cp vhost.template /etc/apache2/sites-available/forum.example.com  
  3. $ cp vhost.template /etc/apache2/sites-available/staging.example.com 

通常你执行该一列命令的方法会是首先输入和执行,接着向上滚动、删除尾行片段(dev.example.com),然后输入下一片段(forum.example.com),然后重新执行。另一种方法,你可以运用命令替换来快速地用一行字符串替换另一相关字符串,如下所示:

  1. $ !!:s/dev/forum 

该命令行在指向-点击界面中已为用户带来了大量好处,让任务执行和操作系统导航可以快速且优雅地完成。最大程度上地利用Linux历史命令只能增加这些功能,促进生产力会走得更远。

Linux历史命令全面掌控的内容介绍完了,希望通过Linux历史命令内容的学习能对你有所帮助。不知道你学会了吗?

原文链接:http://www.searchsv.com.cn/showcontent_49775.htm

责任编辑:程站 来源: TechTarget中国
相关推荐

2011-06-27 09:40:09

Linux历史命令

2009-10-19 17:10:37

Linux文件命令

2010-03-10 15:44:04

2020-09-09 08:48:13

Linux 命令操作系统

2016-01-15 10:19:30

2014-12-15 13:21:43

2010-03-09 14:45:48

Linux ifcon

2010-03-05 16:19:47

2020-03-30 08:45:31

Linux命令

2010-03-09 14:59:02

Linux ifcon

2010-03-05 16:44:52

Linux终端命令

2023-06-28 11:49:56

Linux命令

2014-08-23 16:07:55

APM应用性能管理

2015-11-16 15:44:28

Informatic

2017-05-10 08:51:03

WiFiLinuxAndroid

2010-03-10 13:34:03

Linux重要安全命令

2010-03-10 13:19:21

Linux重要安全命令

2012-05-10 10:53:10

Linuxhistory

2010-04-08 10:04:59

free命令Linux系统内存监控

2010-03-17 15:45:37

linux 常用命令
点赞
收藏

51CTO技术栈公众号