在Linux上选择性地重用命令

Linux和UNIX系统上的命令历史提供了比您所知道的重新运行的更多方法。

多曝光拍摄时钟和日历页面。[时间/过去/未来/历史/下一步是什么]
StillFX / Getty Images

Linux命令行允许您的系统记住您使用的命令,该命令用CISTSIZE变量设置的限制。由于每个用户的Histsize通常设置为1000,因此Linux可以记住您输入的最后1000个命令,并使您可以轻松地重用它们而无需重新复制它们。

除非您以不同方式配置历史记录设置,否则将记住所有命令。如果您愿意,您可以对该行为进行一些限制。例如,您可能不希望保存用于读取手册页的每个命令或每次键入PWD问你当前坐在文件系统的地方。如何限制记忆的命令,并且没有被覆盖这里

重用先前输入的命令的最简单方法是输入“!!”在命令行上。这重复了您上次使用的任何命令。或者,您可以根据需要多次按键盘上的Up-arrow键,以返回到您想要再次运行的历史缓冲区中的某些命令,如果您备份到太远,则返回箭头键。使用命令提示符显示要重用的命令时按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.

不过,还有更好的方法。它涉及使用命令历史|更多的要开始显示命令历史记录中的所有命令,请按Enter键,直到看到要在列出的命令中重用的命令,然后输入Ctrl + C以停止历史记录命令。然后键入!!后跟要重用的命令左侧的号码(例如,!123)。

如果您知道该命令最近使用的命令,则可以使用诸如此类命令来避免大部分乏味历史|尾巴-20.仅查看最近输入的命令并找到您想要更快地重用的命令。

以下是您可以利用Linux记得的一些方法。

通过键入一部分来重用命令

重用先前输入的命令的一种简单方法(仍在命令历史记录中的一个)是键入命令的开头。如果您的历史缓冲区的底部看起来像这样,则可以重新运行PS.只需键入即可键入系统流程的命令!P.

$历史|尾巴-7 1002 21/02/21 18:24:25别名1003 21/02/21 18:25:37历史|更多1004 21/02/21 18:33:45 PS -EF |grep systemd |WC -L 1005 2011/02/21 18:33:54 LS 1006 21/02/21 18:34:16 echo“下一步是什么?”

您还可以通过输入包含在其中的任何位置的字符串来重新运行命令。例如,你可以重新运行PS.命令通过键入上面的列表中显示!?sys?问号是作为字符串分隔符。

$!?sys?PS -EF |grep systemd |WC -L 5.

您可以通过键入重新运行上面列表中显示的命令!1004但如果您不研究最近命令的列表,这将会更麻烦。

使用更改运行以前的命令

之后PS.如上所示的命令,您可以计算kworder.流程而不是systemd.通过键入过程^ systemd ^ kworker ^。这将替换另一个进程名称,并运行更改的命令。正如您在下面的命令中看到,此字符串替换允许您在仅不同的情况下重用命令。

$ ps -ef |grep systemd |awk'{打印$ 2}'|WC -L 5 $ ^ systemd ^ smbd ^ ps -ef |grep smbd |awk'{打印$ 2}'|WC -L 5 $ ^ SMBD ^ kworker ^ ps -ef |grep kworker |awk'{打印$ 2}'|WC -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 |WC -L 132 $ WHO SHS PTS / 0 2021-02-21 18:19(192.168.0.2)$ DAY SUN 21 2月21日2021 06:59:09 PM EST $!-3 PS -EF |WC -L 133.

重复使用命令参数

您可以执行命令历史记录的另一件事是重用您提供给各种命令的参数。例如,字符序列!:1表示为最近运行命令提供的第一个参数,!:2第二,!:3第三等。!:$代表最终论点。在此示例中,参数在第二个中颠倒回声命令。

$ echo是灯光是灯光$ echo!:3!:2!:1 echo灯亮点是$ echo!:3!:$ echo灯光灯光

如果要使用相同的参数运行一系列命令,则可以执行类似的操作:

$ echo nemo nemo $ ID!:1 ID NEMO UID = 1001(NEMO)GID = 1001(NEMO)组= 1001(NEMO),16(FISH),27(SUDO)$ DF -K / HOME / !: $ DF-k / home / nemo文件系统1k-blocks可用的可用使用%in / dev / sdb1 446885824 83472864 340642736 20%/ home

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

包起来

简单的历史记录命令技巧通常可以通过允许重用而不是重新键入以前输入的命令来节省您的很多麻烦。但请记住,使用字符串识别命令将仅回忆起该字符串最近的使用,并且如果在历史缓冲区中保存,则只能以这种方式重新运行命令。

加入网络世界社区足球竞猜app软件Facebooklinkedin评论是最重要的主题。
有关的:

版权所有©2021.足球竞彩网下载

IT薪水调查2021:结果是