IO通道

stdin:standard input

stdout:standard output

stderr:standard error

一.输出重定向(>)

[root@node11 ~]# ls -l > /root/filelist.txt
 

二.输入重定向(<)

[root@node11 ~]# wc -l < filelist.txt 
14

三.管道符( | )(重点)

command1 |command2

将command1的输出结果作为command2的输入

grep 过滤 -i不区分大小写

command1 |command2 |command3 |。。。。。支持多重管道

[root@node11 ~]# ps axo %cpu,%mem,pid,comm --sort=-%mem |head -n 6| > /root/a.txt
但如果最后使用重定向符号以后后面不可以在跟管道

如果需要保存中间文件需要使用tee(输出多次结果),既可以保存文件,也可以继续接管道

[root@node11 ~]# ps axo %cpu,%mem,pid,comm --sort=-%mem |head -n 6 |tee cpu.txt|head -n 6

四.多次输入(输入追加)<<END  END

将用户多次输入的结果一次输出

五.vi和vim编辑器

vim编辑器的三种模式

命令模式:

:set nu 显示行号

:set nonu取消行号

:100光标跳到100行

30G光标跳到第30行

G光标跳到最后一行 g光标跳到第一行

dd 删除当前行或者剪切当前行

yy复制

p粘贴

按u撤销

查找并替换

/yes 搜索yes

:set ic忽视大小写

:set noic不忽视

:%s/no/yes/g 把no换成yes全局替换 没有/g则只换第一个

插入模式:i 进入插入模式

                 小 o 在当前行的下一行插入空行,进入插入模式

                 大O在当前行的上一行插入空行进入插入模式

按R恢复文件

六.文本提取工具

文本内容:cat,more和less

文本摘要:head和tail

tail方便看日志 因为日志都是最后是最新的,所以看最后就行了

按关键字提取:grep(文本三剑客之一)

tail -f /var/log/messages |grep -E'(err|warn)' 

(过滤出文件日志中错误和警告)

tail -f /var/log/messages |grep -A3 -B3 -E'(err|warn)'(重点)

(-A3 -B3 前三行和后三号都显示出来)

tail -f /var/log/* 查找下面的所有文件监控文件追加的内容,以此来找到日志文件

grep选项(以行为单位)
-i 不区分大小写 -i, --ignore-case
-o 只是显示匹配的内容 only-match
-n 显示行号 line-number
-v invert-match 反向选择

grep -v ^#就是输出所有的行首非注释行的

grep -v ^$ 就是去掉了空行


-A after 在什么之后
-B before 在什么以前
-C center(中心) context上下文
-r 递归查找

[root@node11 ~]# grep -rinw 60000 /etc/

-rinw  r递归 i忽略大小写 n显示行号 w 匹配单词(没有w会匹配含这个的所有 比如6000000000)
/etc/login.defs:34:UID_MAX                 60000
/etc/login.defs:43:GID_MAX                 60000

提取列或者字段:cut以列为单位

awk (文本三剑客之一)

awk '{print $1}'里面数字是多少就是第几个字段,默认不算空格或者说tab(以列为单位)

使用 -F参数可以指定字段分隔符。例如,处理以冒号分隔的文件:

awk -F ':' '{print $1}' demo.txt

输出文件的第一个字段。

awk '{print $3}'

输出为 a,因为 $3 表示第三个字段。

[root@node11 ~]# df -h |grep -w /
/dev/sda2        30G  3.9G   27G  13% /
[root@node11 ~]# df -h |grep -w / |awk '{print $1}'
/dev/sda2
[root@node11 ~]# df -h |grep -w / |awk '{print $5}'
13%
[root@node11 ~]# df -h |grep -w / |awk '{print $NF}'
/
[root@node11 ~]# df -h |grep -w / |awk '{print $(NF-1)}'
13%

 

bc开启计算器

[root@node11 ~]# bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1+2
3
scale=2
4/2
2.00

七.文本分析工具

文本统计:wc

[root@node11 ~]# cat cpu.txt |wc -l   (l统计行数)
11
[root@node11 ~]# cat cpu.txt |wc -w (w统计字符数)
69
[root@node11 ~]# cat cpu.txt |wc -c (c统计单词数)
527

 

文本排序:sort

[root@node11 ~]# cat cpu.txt |sort  正向排序从小到大

[root@node11 ~]# cat cpu.txt |sort -r 反向排序从大到小
|sort -rn (加n按数字大小排序)

sort -u 去除重复行

文本比较:diff 、vimdiff

八.文本操作工具

文本转换:tr

文本编辑:sed(文本三剑客之一)

sed -i 会真的修改文件但不备份

sed -i.bak 会修改源文件但备份

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐