当前位置: 首页 > 科技观察

Linux命令行提示-!感叹号是什么

时间:2023-03-17 00:54:16 科技观察

历史基础HISTSIZE变量值设置要保留在历史列表中的命令数。默认情况下,该值为500。这些以前发出的命令(称为历史列表)存储在历史文件中。它的默认位置是~/.bash_history,存储在shell变量HISTFILE中。!命令在本文中用于将bash历史列表中的命令引入到输入中。此功能使用户可以轻松地快速重复命令、替换文本、操作参数以及修复先前命令中的拼写错误。命令重复示例以下是您可以使用!执行的一些操作示例。-repeat匹配以!开头的字符串的最后一个命令,后跟与要运行的命令匹配的第一个字符(或字符串)将重复该命令的实例:[root@localhost~]#ls/root/anaconda-ks.cfgcentos2ol.shemployee.jsonlist_usersnew.txtwsbkuplog.txt[root@localhost~]#!lls/root/anaconda-ks.cfgcentos2ol.shemployee.jsonlist_usersnew.txtwsbkuplog.txt[root@localhost~]#!lsls/root/anaconda-ks.cfgcentos2ol.shemployee.jsonlist_usersnew.txtwsbkuplog.txt-在匹配字符串的任意位置重复最后一条命令!?格式同上,但是李世明命令不一定要以命令开头:[root@localhost~]#catemployee.json[{"name":"JohnBrooks","id":"003"},{"name":"RandyPark","id":"053"},{"name":"ToddGray","id":"009"}][root@localhost~]#!?employeecatemployee.json[{"name":"JohnBrooks","id":"003"},{"name":"RandyPark","id":"053"},{"name":"ToddGray","id":"009"}][root@localhost~]#!?jsoncatemployee.json[{"name":"JohnBrooks","id":"003"},{"name":"RandyPark","id":"053"},{"name":"ToddGray","id":"009"}]-在历史记录中重复第n个命令在bash历史记录中重复第n个命令:[root@localhost~]#!772-如果有我一直使用的命令,就是!!重复历史列表中的最后一个命令,其行为与!-1相同:[root@localhost~]#catemployee.json[{"name":"JohnBrooks","id":"003"},{"name":"RandyPark","id":"053"},{"name":"ToddGray","id":"009"}][root@localhost~]#!!catemployee.json[{"name":"JohnBrooks","id":"003"},{"name":"RandyPark","id":"053"},{"name":"ToddGray","id":"009"}][root@localhost~]#!-1catemployee.json[{"name":"JohnBrooks","id":"003"},{"name":"RandyPark","id":"053"},{"name":"ToddGray","id":"009"}][root@localhost~]#如果忘记加sudo执行最后一条命令,可以结合使用!!后面也可以和管道符结合使用。$yumupdateLoadedplugins:priorities,update-motd,upgrade-helper你需要是root才能执行这个命令。文本$!!|grep文件|grepfilefile1file2-重复和替换字符串我经常键入长命令,然后使用不同的参数重新键入它们。或者,我需要重新发出命令,因为我之前的命令有错字。字符串替换让我无需重新键入整个长命令即可执行此操作。语法如下:!!:s^oldstring^newstring命令中的^是分隔符,用后面的newstring替换前面的oldstring。[root@localhost~]#ll/etc/httpd/conf.dtotal16-rw-r--r--1rootroot2926Nov42020autoindex.conf-rw-r--r--1rootroot400Nov42020README-rw-r--r--1rootroot12522020年11月4日userdir.conf-rw-r--r--1rootroot7642020年11月4日welcome.conf[root@localhost~]#!!:s^conf.d^confll/etc/httpd/conftotal28-rw-r--r--1rootroot118992020年11月4日httpd.conf-rw-r--r--1rootroot130642020年11月4日magic[root@localhost~]#Summary这些是每个系统管理员都应该熟悉的命令。这些命令可以节省很多时间。