- 对于文件内容的查看,可以用"cat -A 文件名“命令来查看文件里的文本内容。
-A --显示所有等信息
-b --数字非空数字非空输出行,覆盖-n
-e --等价于-vE
-E --每行末尾显示$
-n --所有输出行的编号
-s --挤压空白抑制重复的空输出行
-t --相当于-vT
-T --显示选项卡将选项卡字符显示为^I
-v --显示非打印使用^和M-符号,除了LFD和TAB
示例:
liuyan@liuyan-virtual-machine:~$ cat -A 1.txt
-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-l 取消遇见特殊字元 ^L时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
示例:
liuyan@liuyan-virtual-machine:/dev$ ls |more
less:
less 命令也是对文件或其它输出进行分页显示的工具。less 的用法比起 more 更加的具有优势。使用 less 时,可以使用 pageup],pagedown]等按键来往前往后翻看文件,更容易用来查看一个文件的内容!
-b 设置缓冲区的大小
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x 将“tab”键显示为规定的数字空格
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
pagedown: 向下翻动一页
pageup: 向上翻动一页
示例:
liuyan@liuyan-virtual-machine:/dev$ ls |less
head:
head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。
-c, -- 显示每个文件的前K 字节内容;如果附加"-"参数,则除了每个文件的最后K字节数据外 显示剩余全部内容
-n, -- 显示每个文件的前K 行内容;如果附加"-"参数,则除了每个文件的最后K行外 显示剩余全部内容
-q, -- 不显示包含给定文件名的文件头
-v, -- 总是显示包含给定文件名的文件头
示例:
liuyan@liuyan-virtual-machine:/dev$ ls |head -n 1
agpgart
tail:
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
-f 循环读取
-q 不显示文件名
-v 显示文件名
-c 显示文件最后N字节内容
-n 显示行数
示例:
liuyan@liuyan-virtual-machine:/dev$ ls |tail -n 1
zfs
- 大多情况下我们更希望从某一出文本中筛选出重要内容,这就用到cut(剪切)工具。
cut:
cut命令可以从一个文本文件或者文本流中提取文本列,从而实现数据抽取
-b--仅显示行中指定直接范围的内容;
-c--仅显示行中指定范围的字符;
-d--指定字段的分隔符,默认的字段分隔符为“TAB”;
-f--显示指定字段的内容;
-n--与“-b”选项连用,不分割多字节字符;
--complement--补足被选择的字节、字符或字段;
示例:
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ df -h|tr -s " "|sort -nr -t " " -k 5|grep /dev/sda1
/dev/sda1 49G 9.2G 38G 20% /
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ df -h|tr -s " "|sort -nr -t " " -k 5|grep /dev/sda1|cut -d " " -f 5
20%
- 针对某一文本内容我们可能需要对其进行排序,比较,统计其出现的次数等,从而更好的对文本内容进行分析,以便寻找里面的信息。
sort:
sort命令可以帮我们依据不同的数据类型进行排序
-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-f 排序时,忽略大小写字母。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t 指定排序时所用的栏位分隔字符。
-k 选择以哪个区间进行排序。
uniq:
使用uniq命令可以在最左侧报告或忽略文件中的重复行,一般与sort 连用
-c--在每列旁边显示该行重复出现的次数。
-d--仅显示重复出现的行列。
-f--忽略比较指定的栏位。
-s--忽略比较指定的字符。
-u--仅显示出一次的行列。
-w--指定要比较的字符。
-n--前n个字段和每个字段前的空白一起被忽略
tr:
tr命令可以对来自标准输入的字符进行替换、压缩和删除。
-c--取代所有不属于第一字符集的字符
-d--删除所有属于第一字符集的字符
-s--把连续重复的字符以单独一个字符表示
-t--先删除第一字符集较第二字符集多出的字符
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.79.131 netmask 255.255.255.0 broadcast 192.168.79.255
inet6 fe80::81a:a8bd:29cd:b06c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1a:6b:07 txqueuelen 1000 (Ethernet)
RX packets 357 bytes 45624 (45.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 275 bytes 30555 (30.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 198 bytes 15868 (15.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 198 bytes 15868 (15.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2. 通过管道配合tr命令压缩信息之间的空格
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ ifconfig|tr -s " "
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.79.131 netmask 255.255.255.0 broadcast 192.168.79.255
inet6 fe80::81a:a8bd:29cd:b06c prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1a:6b:07 txqueuelen 1000 (Ethernet)
RX packets 379 bytes 47582 (47.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 283 bytes 31441 (31.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 202 bytes 16192 (16.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 202 bytes 16192 (16.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
3. 再利用sort命令按照字母对显示信息排序,这时目标信息在第四行
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ ifconfig|tr -s " "|sort -n -t "t" -k 3
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:1a:6b:07 txqueuelen 1000 (Ethernet)
inet 127.0.0.1 netmask 255.0.0.0
inet 192.168.79.131 netmask 255.255.255.0 broadcast 192.168.79.255
inet6 ::1 prefixlen 128 scopeid 0x10<host>
inet6 fe80::81a:a8bd:29cd:b06c prefixlen 64 scopeid 0x20<link>
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
loop txqueuelen 1000 (Local Loopback)
RX errors 0 dropped 0 overruns 0 frame 0
RX errors 0 dropped 0 overruns 0 frame 0
RX packets 221 bytes 17953 (17.9 KB)
RX packets 466 bytes 55914 (55.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
TX packets 221 bytes 17953 (17.9 KB)
TX packets 340 bytes 40387 (40.3 KB)
4. 若想提取目标信息我们需要将提取范围缩小,这时利用head命令提取出信息前四行
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ ifconfig|tr -s " "|sort -n -t "t" -k 3|head -n 4
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:1a:6b:07 txqueuelen 1000 (Ethernet)
inet 127.0.0.1 netmask 255.0.0.0
inet 192.168.79.131 netmask 255.255.255.0 broadcast 192.168.79.255
5. 然后通过tail命令成功提取目标信息
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ ifconfig|tr -s " "|sort -n -t "t" -k 3|head -n 6|tail -n 1
inet 192.168.79.131 netmask 255.255.255.0 broadcast 192.168.79.255
6. 这时我们需要将目标IP分离,利用cut命令将多余信息分离即可
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ ifconfig|tr -s " "|sort -n -t "t" -k 3|head -n 6|tail -n 1|cut -d " " -f 3
192.168.79.131
案例二:
查出分区空间使用率的最大百分比值
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 2.0M 389M 1% /run
/dev/sda1 49G 9.2G 38G 20% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop0 4.3M 4.3M 0 100% /snap/gnome-calculator/544
/dev/loop3 35M 35M 0 100% /snap/gtk-common-themes/818
/dev/loop2 92M 92M 0 100% /snap/core/8689
/dev/loop7 2.3M 2.3M 0 100% /snap/gnome-calculator/260
/dev/loop1 45M 45M 0 100% /snap/gtk-common-themes/1440
/dev/loop5 1.0M 1.0M 0 100% /snap/gnome-logs/81
/dev/loop9 3.8M 3.8M 0 100% /snap/gnome-system-monitor/57
/dev/loop6 91M 91M 0 100% /snap/core/6350
/dev/loop4 141M 141M 0 100% /snap/gnome-3-26-1604/74
/dev/loop11 13M 13M 0 100% /snap/gnome-characters/139
/dev/loop8 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop10 55M 55M 0 100% /snap/core18/1668
/dev/loop12 141M 141M 0 100% /snap/gnome-3-26-1604/98
/dev/loop15 3.8M 3.8M 0 100% /snap/gnome-system-monitor/127
/dev/loop13 15M 15M 0 100% /snap/gnome-characters/399
/dev/loop14 15M 15M 0 100% /snap/gnome-logs/45
tmpfs 391M 16K 391M 1% /run/user/121
tmpfs 391M 24K 391M 1% /run/user/1000
/dev/sr0 1.9G 1.9G 0 100% /media/liuyan/Ubuntu 18.04.2 LTS amd64
2. 通过管道配合tr命令压缩显示信息
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ df -h|tr -s " "
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 391M 2.0M 389M 1% /run
/dev/sda1 49G 9.2G 38G 20% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/loop0 4.3M 4.3M 0 100% /snap/gnome-calculator/544
/dev/loop3 35M 35M 0 100% /snap/gtk-common-themes/818
/dev/loop2 92M 92M 0 100% /snap/core/8689
/dev/loop7 2.3M 2.3M 0 100% /snap/gnome-calculator/260
/dev/loop1 45M 45M 0 100% /snap/gtk-common-themes/1440
/dev/loop5 1.0M 1.0M 0 100% /snap/gnome-logs/81
/dev/loop9 3.8M 3.8M 0 100% /snap/gnome-system-monitor/57
/dev/loop6 91M 91M 0 100% /snap/core/6350
/dev/loop4 141M 141M 0 100% /snap/gnome-3-26-1604/74
/dev/loop11 13M 13M 0 100% /snap/gnome-characters/139
/dev/loop8 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop10 55M 55M 0 100% /snap/core18/1668
/dev/loop12 141M 141M 0 100% /snap/gnome-3-26-1604/98
/dev/loop15 3.8M 3.8M 0 100% /snap/gnome-system-monitor/127
/dev/loop13 15M 15M 0 100% /snap/gnome-characters/399
/dev/loop14 15M 15M 0 100% /snap/gnome-logs/45
tmpfs 391M 16K 391M 1% /run/user/121
tmpfs 391M 24K 391M 1% /run/user/1000
/dev/sr0 1.9G 1.9G 0 100% /media/liuyan/Ubuntu 18.04.2 LTS amd64
3. 以利用率为目标将显示信息排序
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ df -h|tr -s " "|sort -nr -t " " -k 5
/dev/sr0 1.9G 1.9G 0 100% /media/liuyan/Ubuntu 18.04.2 LTS amd64
/dev/loop9 3.8M 3.8M 0 100% /snap/gnome-system-monitor/57
/dev/loop8 161M 161M 0 100% /snap/gnome-3-28-1804/116
/dev/loop7 2.3M 2.3M 0 100% /snap/gnome-calculator/260
/dev/loop6 91M 91M 0 100% /snap/core/6350
/dev/loop5 1.0M 1.0M 0 100% /snap/gnome-logs/81
/dev/loop4 141M 141M 0 100% /snap/gnome-3-26-1604/74
/dev/loop3 35M 35M 0 100% /snap/gtk-common-themes/818
/dev/loop2 92M 92M 0 100% /snap/core/8689
/dev/loop15 3.8M 3.8M 0 100% /snap/gnome-system-monitor/127
/dev/loop1 45M 45M 0 100% /snap/gtk-common-themes/1440
/dev/loop14 15M 15M 0 100% /snap/gnome-logs/45
/dev/loop13 15M 15M 0 100% /snap/gnome-characters/399
/dev/loop12 141M 141M 0 100% /snap/gnome-3-26-1604/98
/dev/loop11 13M 13M 0 100% /snap/gnome-characters/139
/dev/loop10 55M 55M 0 100% /snap/core18/1668
/dev/loop0 4.3M 4.3M 0 100% /snap/gnome-calculator/544
/dev/sda1 49G 9.2G 38G 20% /
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 391M 24K 391M 1% /run/user/1000
tmpfs 391M 2.0M 389M 1% /run
tmpfs 391M 16K 391M 1% /run/user/121
udev 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
tmpfs 2.0G 0 2.0G 0% /dev/shm
Filesystem Size Used Avail Use% Mounted on
4. 通过grep命令过滤目标信息,这时我们看到目标的完整信息
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ df -h|tr -s " "|sort -nr -t " " -k 5|grep /dev/sda1
/dev/sda1 49G 9.2G 38G 20% /
5. 通过cut命令提取出百分比可进行进一步运算
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ df -h|tr -s " "|sort -nr -t " " -k 5|grep /dev/sda1|cut -d " " -f 5
20%
案例三:
查出/tmp的权限,以数字方式显示
1. 通过stat命令显示文件全部信息,这时我们可以看到目标信息位于第四行(1777)
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ stat /tmp
File: /tmp
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 1966081 Links: 14
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-02-26 15:15:09.420093913 +0800
Modify: 2020-02-29 16:37:47.031618619 +0800
Change: 2020-02-29 16:37:47.031618619 +0800
Birth: -
2. 首先将显示信息压缩方便进一步操作
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ stat /tmp|tr -s " "
File: /tmp
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 1966081 Links: 14
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-02-26 15:15:09.420093913 +0800
Modify: 2020-02-29 16:37:47.031618619 +0800
Change: 2020-02-29 16:37:47.031618619 +0800
Birth: -
3. 进一步提取前四行信息,缩小范围
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ stat /tmp|tr -s " "|head -n 4
File: /tmp
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 801h/2049d Inode: 1966081 Links: 14
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
4. 通过cut命令剪切目标信息做最后提取
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ stat /tmp|tr -s " "|head -n 4|tail -n 1
Access: (1777/drwxrwxrwt) Uid: ( 0/ root) Gid: ( 0/ root)
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ stat /tmp|tr -s " "|head -n 4|tail -n 1|cut -d "/" -f 1
Access: (1777
liuyan@liuyan-virtual-machine:~/Desktop/Text/shell$ stat /tmp|tr -s " "|head -n 4|tail -n 1|cut -d "/" -f 1|cut -d "(" -f 2
1777
因篇幅问题不能全部显示,请点此查看更多更全内容
怀疑对方AI换脸可以让对方摁鼻子 真人摁下去鼻子会变形
女子野生动物园下车狼悄悄靠近 后车司机按喇叭提醒
睡前玩8分钟手机身体兴奋1小时 还可能让你“变丑”
惊蛰为啥吃梨?倒春寒来不来就看惊蛰
男子高速犯困开智能驾驶出事故 60万刚买的奔驰严重损毁