目录:
12. 数据重导向 redirect:将目前的所得数据输出到其他地方去
12.1 双向重导向 tee 将数据流同时输出到屏幕和文件
12.2 为何要使用命令输出重导向
13. 命令执行的判断依据 ; && ||
14. 管道命令pipe 只能处理通过前面一个命令传来的正确信息
14.1 cut 将一段消息的某段“切”出来。消息以行为单位 cut -d cut -c
15 .排序命令 sort wc uniq
12. 数据重导向 redirect:将目前的所得数据输出到其他地方去
· 重导向 redirect: 就是将目前的所得数据输出到其他地方去· 三种输出输入的状况,分别是:
标准输入 stdin | 代码为0;使用 < 或 << |
标准输出 stdout | 代码为1;使用的方式为 1> 或 >> |
错误输出 stderr | 代码为2; 使用的方式为 2> 或 2>> |
· find / -name file 1>list 2>&1
· find / -name file >list 2>list
oracle@RAC1[RACDB1]/home/oracle$touch 1.txt oracle@RAC1[RACDB1]/home/oracle$find /home -name 1.txt oracle@RAC1[RACDB1]/home/oracle$find /home -name 1.txt >right 2>error oracle@RAC1[RACDB1]/home/oracle$cat -n right oracle@RAC1[RACDB1]/home/oracle$cat -n error

12.1 双向重导向 tee 将数据流同时输出到屏幕和文件

[root@RAC1 tmp]# ls |tee ls // 将ls 命令出来的内容添加到文件ls中 [root@RAC1 tmp]# cat ls

[root@RAC1 tmp]# ls /home |tee -a ls // 将ls /home命令出来的内容追加到ls文件后面 [root@RAC1 tmp]# cat ls

12.2 为何要使用命令输出重导向
[root@RAC1 tmp]# sar 1 100 | tee -a sar1.txt //将命令sar显示的保存到文件sar1.txt中 [root@RAC1 tmp]# cat sar1.txt

13. 命令执行的判断依据 ; && ||

[root@RAC1 tmp]# lsa;ls -l // ; 无论las执行结果为何 ls -l都会被执行

[root@RAC1 tmp]# lsa && ls -l //lsa 正确执行才能执行ls -l

[root@RAC1 tmp]# lsa || ls -l // 如果lsa 错误才执行ls -l

[root@RAC1 tmp]# ls 1.txt && echo "1.txt file is exist" || echo "1.txt file is not exist" [root@RAC1 tmp]# ls 2.txt && echo "2.txt file is exist" || echo "2.txt file is not exist"

14. 管道命令pipe 只能处理通过前面一个命令传来的正确信息

14.1 cut 将一段消息的某段“切”出来。消息以行为单位 cut -d cut -c

[root@RAC1 ~]# echo $PATH [root@RAC1 ~]# echo $PATH |cut -d ':' -f4 // 把echo $PATH输出的以 : 截断 取第4段 [root@RAC1 ~]# echo $PATH |cut -d ':' -f4,6 // 把echo $PATH输出的以 : 截断 取第4段 和 第6段 [root@RAC1 ~]# echo $PATH |cut -d ':' -f 4-6 // 把echo $PATH输出的以 : 截断 取第4段 到 第6段

[root@RAC1 ~]# export

[root@RAC1 ~]# export |cut -c 12- // 将export输出的12个字符之前的都截掉

[root@RAC1 ~]# export |cut -c 12-20 //export输出的第12到20个字符 都截出来

14.2 grep 分析一行信息,若其中有需要的信息,就将这一行信息显示出来
· grep 分析一行信息,若其中有需要的信息,就将这一行信息显示出来· grep [-acinv] '搜索字符串' filename
-a | 将二进制文件以文本文件的方式搜索数据 |
-c | 计算找到‘搜索字符串’的次数 |
-i | 忽略大小写的不同,所有大小写视为相同 |
-n | 顺便输出行号 |
-v | 反向选择,即显示没有"搜索字符串" 的那一行 |
[root@RAC1 ~]# cat /etc/passwd | grep 'oracle' // passwd文件中包含oracle一行显示出来 [root@RAC1 ~]# grep 'oracle' /etc/passwd [root@RAC1 ~]# grep -n -v 'oracle' /etc/passwd // passwd文件中除去包含oracle 其他行都显示出来

[root@RAC1 ~]# last | grep -c 'root' // 计算last命令的输出中 出现root 的次数

15 .排序命令 sort wc uniq
· 排序命令:sort wc uniq15.1 sort 排序
sort [-fbMnrtuk] [file or stdin] | 参数说明: |
-f | 忽略大小写的差异 |
-b | 忽略最前面的空格字符部分 |
-M | 以月份的名字来排序 |
-n | 使用 纯数字 排序(默认使用文字类型来排序) |
-r | 反向排序 |
-t | 分隔符,默认是 tab |
-u | 就是 uniq,相同数据,只列出一次显示 |
-k | 按那个字段(field)来进行排序 |
[root@RAC1 tmp]# tail /etc/passwd >passwd // tail默认为10行 [root@RAC1 tmp]# cat passwd
[root@RAC1 tmp]# cat passwd |sort //以passwd文件中首字母排序

[root@RAC1 tmp]# sort -t ':' -k 3 passwd // passwd文件中以 : 分隔符 第3个字段排序

[root@RAC1 tmp]# sort -t ':' -k 3 -n passwd // passwd文件中以 : 分隔符 第3个字段排序 按数字大小排序

[root@RAC1 tmp]# sort -t ':' -k 3 -nr passwd //passwd文件中以 : 分隔符 第3个字段排序 按数字大小反向排序

[root@RAC1 tmp]# last

[root@RAC1 tmp]# last |cut -d ":" -f1 |sort // last命令输出中 以 : 分隔符 去除第一段 进行排序

[root@RAC1 tmp]# last |cut -d " " -f1 |sort // last命令输出中 以 (空格) 分隔符 去除第一段 进行排序

[root@RAC1 tmp]# last |cut -d " " -f1 |sort -u // last命令输出中 以 (空格) 分隔符 去除第一段 进行排序 相同数据直列一行

15.2 uniq 去除唯一值
uniq [-ic] |
|
-i | 忽略大小写 |
-c | 进行计数 |
wc [-lwm] |
|
-l | 仅显示多少行 |
-w | 仅显示有多少字 |
-m | 多少字符 |
[root@RAC1 tmp]# last | cut -d " " -f1 |sort |uniq // last命令输出中 以 (空格) 分隔符 去除第一段 进行排序 相同数据直列一行

[root@RAC1 tmp]# last | cut -d " " -f1 |sort |uniq -c // last命令输出中 以 (空格) 分隔符 去除第一段 进行排序 相同数据直列一行并计数

[root@RAC1 tmp]# cat -n testwc.txt [root@RAC1 tmp]# ls -l testwc.txt [root@RAC1 tmp]# cat -A testwc.txt

[root@RAC1 tmp]# wc -l testwc.txt [root@RAC1 tmp]# wc -w testwc.txt [root@RAC1 tmp]# wc -m testwc.txt

[root@RAC1 tmp]# cat -n testwc1.txt [root@RAC1 tmp]# wc testwc1.txt [root@RAC1 tmp]# echo $LANG

2016.05.10 于 北京邮储传 tyger.wang
Lisette2021_04-02
Ola2021_03-25
Xiomara2021_01-02
Katharina2020_01-21
Delilah2020_01-18