- tail -f失效分析
vim是将原来的文件删除后,然后再生成一个新的文件,而tail -f命令是根据文件的inode来追踪文件的,vim把原来的文件删除,新生成的同名文件的inode已经发生了变化,所以导致tail -f命令失效。
而使用echo " " >> 来追加不会令tail -f命令失效
或者使用tail -F替代tail -f - 找出ifconfig命令结果中所有IPv4地址
[root@Magedu ~]# ifconfig ens33|grep -o "\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}" //1到三个数字加点重复三次,然后再来1到三个数字
172.18.118.155
255.255.0.0
172.18.255.255
- echo welcome to china|grep -o "."
grep -o "." 可以达到竖排显示的目的
- 查出/tmp的权限,以数字⽅式显⽰(先用stat命令查看权限,然后再根据特点来匹配)
[root@magedu ~]# stat /tmp |head -n4|tail -n1 |cut -d"/" -f1|cut -d"(" -f2
[root@magedu ~]# stat /tmp|head -n4|tail -1|cut -d: -f2|tr -dc "[:digit:]\n" - 统计当前连接本机的每个远程主机IP的连接数,并按从⼤到⼩排序
netstat -tun|grep ESTAB|tr -s " " : |cut -d: -f6|sort -nr|uniq -c 最后先排序sort 后去重 uniq
- 显⽰/proc/meminfo⽂件中以⼤⼩s开头的⾏(要求:使⽤两种⽅法)
[root@magedu ~]# egrep [1].* /proc/meminfo 此处用grep和egrep一样
[root@magedu ~]# grep -i ^s.* /proc/meminfo - 显⽰CentOS7的/etc/grub2.cfg⽂件中,⾄少以⼀个空⽩字符开头的且后⾯有⾮空⽩字符的⾏(且后面有就是紧接着的意思)
cat /etc/grub2.cfg|grep "[[:space:]].*[[:space:]]" 错 至少一个 +
egrep [[:space:]]+[[:space:]].*$ /etc/grub2.cfg - 找出“netstat -tan” 命令结果中以LISTEN后跟任意多个空⽩字符结尾的⾏
netstat -tan|egrep LISTEN[[:space:]]+$ 错 注意加不加双引号以及listen前面有无字符的的区别,另外,egrep就不用+了
netstat -tan |egrep ".*LISTEN[[:space:]]+$" 对 - 显⽰CentOS7上所有系统⽤户的⽤户名和UID
cat /etc/passwd|grep nologin|cut -d: -f1,3 错,centos7系统用户的定义应该是ID从0-999,而不是nologin
cut -d: -f1,3 passwd |egrep "\b[0-9]{1,3}\b" 对 - 找 出/etc/passwd⽤户名和shell同名的⾏
grep -E "([:]+):.*<\1$" /etc/passwd 用户名首先行首^,然后非冒号的几个字符,分个组便于后续引用,再加冒号,注意引用后的词首锚定
- 显⽰三个⽤户root、 mage、 wang的UID和默认shell
grep -e root -e "\bjack\b" -e "\bwang\b" /etc/passwd|cut -d: -f3,7
egrep "^(root|mage|wang)" /etc/passwd|cut -d: -f1,3,7 不完全正确?因为要注意词首词尾锚定 - 找出/etc/rc.d/init.d/functions⽂件中⾏⾸为某单词(包括下划线)后⾯跟⼀个⼩括号的⾏
grep -E "[2]+()" /etc/rc.d/init.d/functions 注意小括号是要完整的,另外要用\转义;单词开头,所以要用字母,而不是.*任意字符