在Linux上有选择地重用命令

Linux和Unix系统上的命令历史记录提供了比您所知道的多得多的方式来重新运行命令。

多重曝光拍摄中的时钟和日历页。[时间/过去/未来/历史/接下来会发生什么]
此Stillfx /盖蒂图片社

Linux命令行允许系统在HISTSIZE变量设置的限制范围内记住已使用的命令。由于每个用户的HISTSIZE通常设置为1000,这意味着Linux可以记住您输入的最后1000条命令,并且无需重新输入即可轻松重用它们。

除非你配置不同的历史设定,所有的命令都将被铭记。你可以把一些限制这种行为,如果你喜欢。例如,你可能不希望保存每次使用命令读取手册页或在你输入的时间PWD问你在哪里目前坐在文件系统。如何限制那些记忆和未覆盖的命令在这里

要重用之前输入的命令,最简单的方法就是输入“!!”的命令行。这将重复您上次使用的任何命令。或者,您可以按键盘上的向上箭头键,以返回到您想要再次运行的历史缓冲区中的某个命令,或按向下箭头键,如果您备份得太远。当命令提示符显示要重用的命令时,按enter键。

If the command that you want to reuse is one you entered 500 commands earlier, on the other hand, backing up to it in order to avoid retyping it is probably only a good idea if the command is one you really don’t want to type again or you don’t remember.

有一个更好的方法,虽然。它涉及到使用的命令历史|开始显示在您的命令历史记录所有的命令,按直到看到你想在列出的命令重新使用该命令的输入键,然后按下Ctrl + C停止历史命令。然后键入!!其次是要重用命令左边的数字(例如,!123)。

如果你知道该命令是一个你最近使用过的,您可以通过使用命令,如避免太多的单调乏味的历史|尾-20只查看最近输入的命令,并快速找到您想要重用的命令。

这里有一些其他的方法,您可以利用Linux为您记住的东西。

通过键入其一部分再利用的命令

一个简单的方法来重新使用以前输入的命令(一个仍然在你的命令历史记录)是键入命令的开始。如果你的历史底部缓冲这个样子的,你可以重新运行PS.这是我们用来计算系统的命令通过键入简单的处理只是p!

$ history | tail -7 1002 21/02/21 18:24:25 alias 1003 21/02/21 18:33:45 ps -ef | grep systemd | wc -l 1005 21/02/21 18:33:54 ls 1006 18:34:16 echo " What 's next? "

您还可以通过输入包含在命令中的任何位置的字符串来重新运行命令。例如,您可以重新运行PS.在上面的清单通过打字所示命令! ?系统?问号作为字符串分隔符。

$!?SYS?PS -EF |grep的systemd |WC -l 5

您可以通过输入命令重新运行上面清单中显示的命令1004年!但如果你不看最近的命令的列表,这会比较麻烦。

与改变运行以前的命令

之后PS.命令如上所示,可以进行计数kworker处理代替systemd通过打字过程^ systemd ^ kworker ^.这将一个进程名替换为另一个进程名,并运行altered命令。正如您在下面的命令中所看到的,这个字符串替换允许您在命令只相差很小的情况下重用它们。

$ PS -ef |grep的systemd |AWK“{打印$ 2}” |厕所-l 5 $ ^ ^ systemd SMBD ^ PS -ef |grep的并且smbd |AWK“{打印$ 2}” |厕所-l 5 $ ^ ^ SMBD ^ kworker PS -ef |grep的kworker |AWK“{打印$ 2}” |厕所-l 13

如果输入错误命令或文件名,字符串替换也很有用。

$ sudo ls -l /var/log/samba/corse ls: cannot access ‘/var/log/samba/corse’: No such file or directory $ ^se^es^ sudo ls -l /var/log/samba/cores total 8 drwx———. 2 root root 4096 Feb 16 10:50 nmbd drwx———. 2 root root 4096 Feb 16 10:50 smbd

追溯历史

您还可以重复使用,要求,例如一个字符串命令,重新运行你较早进入命令的一些数量的命令。进入!-11将重新运行之前输入的11个命令。在下面的输出中!-3重新运行第一前面的三个命令的显示。

$ PS -ef |厕所-l 132 $谁SHS PTS / 0 2021年2月21日18时19分(192.168.0.2)$日太阳2021年2月21日下午6时59分09秒EST $ -3 PS -ef!|厕所-l 133

重用命令参数

你可以用你的命令历史记录做的另一件事是重用的论点,你的各种命令提供。例如,字符序列!:1表示提供给最近运行命令的第一个参数,!:2第二,!:3第三个等等。!:$代表最后一个参数。在这个例子中,参数被逆转在第二回声命令。

$回声是光成为光$回声:3:2:1回波光成为光的是$回声:3:$回声的光的光

如果你想使用相同的参数运行一系列命令,你可以这样做:

$ echo nemo nemo $ id !:1 id nemo uid=1001(nemo) gid=1001(nemo) groups=1001(nemo),16(fish),27(sudo) $ df -k /home/!:$ df -k /home/nemo文件系统1K-blocks Used Available Use% Mounted on /dev/sdb1 446885824 83472864 340642736 20% /home

当然,如果该参数是一个漫长而复杂的字符串,它实际上可能节省您的时间和精力来使用这种技术。请记住这只是一个例子!

总结

简单的历史,命令技巧常常可以通过允许您重用,而不是重新输入以前输入的命令为你节省很多的麻烦。但是请记住,在使用字符串识别的命令将召回仅最近一次使用该字符串的,如果他们被保存在历史记录缓冲区,你只能重新运行这样的命令。

加入网络世界社区有个足球雷竞技app脸谱网linkedin对自己最关心的话题发表评论。
有关的:

版权所有©2021.Raybet2

2021年IT薪资调查:结果是