来源:https://www.linuxmi.com/linux-commands-use.html
Linux中的'!'符号或操作符可以用作逻辑否定运算符,也可以用于在历史记录中获取命令并进行修改或运行以前执行过的命令。
linuxmi@linuxmi:~/www.linuxmi.com$ history

$ !58

$ history$ !-3$ !-6$ !-10

$ ls /home/linuxmi/snap$ ls -l !$
linuxmi@linuxmi ~/www.linuxmi.com% touch /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

$ 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]

$ 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
$ rm !(important_file.txt)
$ $ rm !(*.pdf)
/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
[ ! -d /home/linuxmi/linuxmi.com] && mkdir /home/linuxmi/linuxmi.com暂时就这些。如果你知道或遇到了其他值得了解的'!'的用法,请在评论中告诉我们。
-End- 读到这里说明你喜欢本公众号的文章,欢迎 置顶(标星)本公众号 Linux技术迷,这样就可以第一时间获取推送了~ 在本公众号 Linux技术迷,后台回复:Linux,领取2T学习资料 ! 推荐阅读 1. Linux 中 find 命令的 35 个实际例子 2. 运维必备的《网络端口大全》,看这一份就够了 3. Linux 学习指南 (收藏篇) 4. 2万字系统总结,带你实现Linux命令自由