来源:https://www.linuxmi.com/linux-commands-use.html
Linux中的’!’符号或操作符可以用作逻辑否定运算符,也可以用于在历史记录中获取命令并进行修改或运行以前执行过的命令。
1、使用命令编号从历史记录中运行命令
linuxmi@linuxmi:~/www.linuxmi.com$ history
!58
2、在Linux中运行先前执行的命令
你可以使用!-n,其中n是你要引用的命令的倒数编号。如下图
history!-3!-6!-10
3、将先前命令的参数传递给新命令
ls /home/linuxmi/snap
ls -l !$
4、如何处理命令中的两个或多个参数
linuxmi@linuxmi ~/www.linuxmi.comtouch /home/linuxmi/linuxmi.go
linuxmi@linuxmi ~/www.linuxmi.com% cp /home/linuxmi/linuxmi.go /home/linuxmi/go
linuxmi@linuxmi ~/www.linuxmi.com% echo "第一个参数是:!^"echo "第一个参数是:/home/linuxmi/linuxmi.go"第一个参数是:/home/linuxmi/linuxmi.golinuxmi@linuxmi ~/www.linuxmi.com% echo "第二个参数是:!cp:2"echo "第二个参数是:/home/linuxmi/go"第二个参数是:/home/linuxmi/go
5、根据特定关键词运行最近的命令
$ ls /home > /dev/null [Command 1]$ ls -l /home/linuxmi/linuxmi > /dev/null [Command 2]$ ls -la /home/linuxmi/linuxmi.com > /dev/null [Command 3]$ ls -lA /usr/bin > /dev/null [Command 4]
! ls [Command 1]! ls -l [Command 2]! ls -la [Command 3]! ls -lA [Command 4]
6、在Linux中重复上次执行的命令
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/
然后突然我发现我需要将上述脚本的输出重定向到一个名为ip.txt的文件中,那么我该怎么办呢?我需要重新输入整个命令并将输出重定向到文件吗?好吧,一个简单的解决方案是使用上箭头键来调出上一条命令,并在末尾添加'> ip.txt'来将输出重定向到文件。
$ ip addr show | grep inet | grep -v 'inet6'| grep -v '127.0.0.1' | awk '{print $2}' | cut -f1 -d/ > ip.txt
感谢上箭头键的救命作用。现在考虑以下情况,下次我运行下面的单行脚本。
ifconfig | grep "inet addr:" | awk '{print $2}' | grep -v '127.0.0.1' | cut -f2 -d:
当我运行脚本时,bash提示返回了一个错误,信息为“bash: ifconfig: command not found”,我很容易猜到我以一个普通用户的身份运行了这个命令,而它应该以root身份运行。
su -c “!!” root
7、使用’!’操作符删除除一个文件之外的所有文件
要从目录中删除除了特定文件(important_file.txt)之外的所有文件,可以使用带有’!’操作符的rm命令,如下所示。
rm !(important_file.txt)
$ $ rm !(*.pdf)
8、检查Linux中的目录是否存在
/home/linuxmi/linuxmi.com ]的输出为0时,它将执行逻辑与之后的内容,否则它将转到逻辑或(||)并执行逻辑或之后的内容。 [ ! -d /home/linuxmi/linuxmi.com ] && printf '\nno such /home/linuxmi/linuxmi.com directory exist\n' || printf '\n/home/linuxmi/linuxmi.com directory exist\n'
类似于上面的条件,但是如果所需目录不存在,它将退出命令。
[ ! -d /home/linuxmi/linuxmi.com] && exit
[] && mkdir /home/linuxmi/linuxmi.com
暂时就这些。如果你知道或遇到了其他值得了解的’!’的用法,请在评论中告诉我们。
版权申明:内容来源网络,版权归原创者所有,如有侵权请联系删除
想了解更多干货,可通过下方扫码关注

可扫码添加上智启元官方客服微信👇

17认证网








