剪切文本 主要是四剑客、和一些零碎命令比如yes date等
四剑客
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 1.用awk 打印整个test.txt (以下操作都是用awk工具实现,针对test.txt) awk {print } test.txt 2.查找所有包含 ‘bash’ 的行 awk '/bash/ {print}' test.txt 3 .用 ‘:’ 作为分隔符,查找第三段等于0的行 awk -F ':' '$3 == 0 {print}' test.txt 4.用 ‘:’ 作为分隔符,查找第一段为 ‘root’ 的行,并把该段的 ‘root’ 换成 ‘toor’ (可以连同sed一起使用) awk -F ':' '$1 == "root" {print}' test.txt | sed 's/root/toor/g' 5.用 ‘:’ 作为分隔符,打印最后一段 awk -F ':' {print $NF } test.txt redis 文本 work 16067 /data/svr/redis/bin/redis-server*:6403 work 16067 /data/svr/redis/bin/redis-server*:6403 work 16067 /data/svr/redis/bin/redis-server*:6403 work 16067 /data/svr/redis/bin/redis-server*:6403 6 如何打印第二列pid 和最后一列端口打印出来 ,请给出命令 awk -F "[ :]+" {print $2 ,$4 } 7 linux系统中如何获取 pid 9257的进程号监听的端口是什么 给出命令 ss -tunlp | grep 958 | awk -F "[ :]+" '{print $6}' 8 .查出实时 哪个IP地址连接最多 哪个ip 访问大于 1000次 截取出来 ss -tn state established | awk 'NR > 1 && $2 > 1' | awk -F "[ :]+" '{print $5}' ss -tn state established | awk 'NR > 1 && $1 > 1' | awk -F "[ :]+" '{print $5}' 1.找出/tmp目录下,属主不是root,且文件名不以f开头的文件 find /tmp -user !root -name !"f.*" 2.查找/etc/目录下,所有.conf后缀的文件 find /etc -name "*.conf" 3.查找/var目录下属主为root,且属组为mail的所有文件 find /var -user root -group mail 4.查找/var目录下7天以前,同时属主不为root,也不是postfix的文件 find /var -mtime +7 -user !root -user !postfix 5.查找/etc目录下大于1M且类型为普通文件的所有文件 find /etc -size +1m -type f 6.查找/etc目录下所有用户都没有写权限的文件 find /etc ! -perm \022 7.查找/目录下最后创建时间是3天前,后缀是*.log 的文件 find / -ctime +3 -name "*.log" 8.查找/目录下文件名包含txt的文件 find / -name "*txt*" 1 使用grep 取 passwd 显示行数 grep -c /etc/passwd 2 使用grep 取passwd 显示行号 grep -n "" /etc/passwd 或 nl /etc/passwd3 统计test 信息在文件中出现了几次 grep -o test test.txt | wc -l 4 显示/etc/inittab中包含了:一个数字:(即两个冒号中间一个数字)的行 grep -e ":[0-9]:" /etc/inittab 5 显示/etc/passwd中以nologin结尾的行 grep -e "nologin$" /etc/passwd 6 显示 /etc/httpd/httpd.conf 注释的行取出来 grep -e "^#" /etc/httpd/httpd.conf > comment.txt 7 .统计/etc/services文件中有井号开头的行 grep -c -e "^#" /etc/services 107 利sed 取出ifconfIg ens33命令中本机的IPv4地址 ifconfig | grep ens18 -A 1 | grep inet | awk '{print $2}' 192.168.10.100 把/etc/passwd 复制到/root/test.txt,用sed打印所有行 cp /etc/passwd /root/test.txt && sed -n 'p' test.txt打印test.txt的3到10行 sed -n '3,10p' test.txt 打印test.txt 中包含 ‘root’ 的行 sed -n '/root/p' test.txt 删除test.txt 的15行以及以后所有行 sed -i '15,$d' test.txt 删除test.txt中包含 ‘bash’ 的行 sed -i '/bash/d' test.txt 替换test.txt 中 ‘root’ 为 ‘ha’ sed -i 's/root/ha/g' test.txt 替换test.txt中 ‘/sbin/nologin’ 为 ‘/bin/login’ sed -i 's#/sbin/nologin#/bin/login#g' test.txt 打印/etc/passwd的奇数行? sed -n '1~2p' test.txt 或 awk 'NR % 2 == 1' test.txt 把/etc/httpd/conf/httpd.conf文件内的Linsten 80改为Listen 8081 sed 完成 sed 's/^Linsten/Listen 8081/g' /etc/httpd/conf/httpd.conf
date文本组合
1 2 3 4 5 6 7 8 9 10 date date +%Y2025 date +%F2025-02-24 date +%Y-%m-%d_%H:%M:%S2025-02-24_15:44:59 date +"今天是个好日子%F" 今天是个好日子2025-02-24
yes重复输出同一字符串
1 2 3 4 5 6 yes "王盛真帅吧" | head -5王盛真帅吧 王盛真帅吧 王盛真帅吧 王盛真帅吧 王盛真帅吧
组合文本 cat tac paste diff命令
tac 反向组合文本文件
就是cat的反向
1 2 3 4 5 6 7 8 9 10 11 输出文件内容后翻转 cat 123.txt 213.txt 321.txt | tac 3 2 1 2 1 3 1 2 3 反转文件内容后输出 tac 123.txt 213.txt 321.txt1 2 3 3 1 2 3 2 1
paste复制
和cut是一对
1 2 3 4 5 6 7 8 9 10 11 12 13 14 paste 1.txt 2.txt1 2 1 2 1 2 paste 1.txt 2.txt -d,1,2 1,2 1,2 paste 1.txt 2.txt | cut -f22 2 2
tr
是简单的单个“字符”处理工具,主要用于字符转换或删除操作,其实不如sed
1 2 3 4 5 6 7 8 echo WangSheng | tr A-Z a-zwangsheng echo WangSheng | tr a-z A-ZWANGSHENG echo "Wang Sheng" | tr " " "\n" Wang Sheng