连续组合命令:linux
1.连续执行命令,命令之间不存在判断的符号;bash
例如:sync;sync;shutdown -h now -----连续同步磁盘后再关机,这里无论前面命令是否执行成功
less
2.连续执行相关性命令,前面的命令执行成功后才会继续执行下一条链接符&&ide
例如:ls /tmp/abc && touch /tmp/abc/test.txt ---若是不存在该目录那么后面也不会建立文件3d
3.连续命令前面命令执行失败继续往下执行链接符||unix
例如:ls /tmp/abc || mkdir /tmp/abcblog
以上的命令能够组合使用:ls /tmp/test && echo "exist" || echo "no exist" 排序
例如:ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/test.txtip
命令的自由组合实现不一样的功能ci
数据流重定向:
1.将输出正确和错误的信息分别保存到不一样的文件中。
find /home/ -name .bashrc >/tmp/abc/list_right 2>/tmp/abc/list_error
2.将产生的错误信息忽略不显示也不存储,能够将输出重定向到/dev/null这个黑洞设备。
find /home -name .bashrc 2>/dev/null
其实大多用在一些量大但没有什么有用信息的输出上。在平常工做中能够将一些操做成功的信息从输出信息中过滤出来重定向到指定的文件中方便查询排错,或者下一步操做
3.将输出的正确或者错误信息都写到一个文件中,如下的两句的执行结果同样。
find /home -name .bashrc >/tmp/abc/list 2>&1
find /home -name .bashrc &>/tmp/abc/list
4.将指定文本中的内容重定向到新建的文件中
cat >list_error <test.txt 也就是将test.txt中的内容复制到了list_error中<会覆盖本来内容
管道命令的应用结合:
1.按照顺序处理标准正确输出less
ls -al /etc/ | less 输出面屏连续显示
2.显示出按照:分割开的第2足字符cut
echo $PATH | cut -d ':' -f 2 等同于 echo $PATH | awk -F: '{print $2}'
3.剪切出export的12列字符后的全部字符
export | cut -c 12-
export | cut -c 12-16 只显示12-16列的内容,即每行5个字符。
对比输出内容就知道怎么回事是吧?
4.显示以前登陆过的全部用户cut、grep
last | cut -d ' ' -f1 这里-d是自定义分割符,-f1显示第一列
5.显示出非root的登陆用户
last | grep -v 'root'
6.将man.config中的MANPATH取出来加以颜色grep
grep --color=auto 'MANPATH' /etc/man.config
7.将系统下的用户帐号排序sort
cat /etc/passwd | sort -------默认按首字母
cat /etc/passwd | sort -t ':' -k 3 ---------------以:符号分开的第三列排序
cat /etc/passwd | sort -t ':' -k 3 -n ------------以:符号分开的第三列的数字来排序
cat /etc/passwd | sort -t ':' -k 3 -n | cut -d ':' -f3 显示第三列
8.列出登陆过此系统的全部用户名
last | cut -d ' ' -f1 | sort
last | cut -d ' ' -f1 | sort | uniq ----------不重复的列出uniq
last | cut -d ' ' -f1 | sort | uniq -c --------不重复的列出并统计次数
last | cut -d ' ' -f1 | sort | uniq -c | sed 's/^/&统计:/g' -----这样更直观嘛
注意:这里的''符号中间是空格符,不然会报错
9.统计出文档中的行、字数、字符数wc
cat /etc/man.config | wc
last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l 统计出登陆系统的总人次取出非空白行和排除wtmp后统计的行数
10.将输出保存到last.list中去tee
last | tee last.list | cut -d ' ' -f1 -----先将输出保存到文档中后,输出分割后的第一列
11.保存一份到文件中并显示在屏幕上
ls -l /home/ | tee /tmp/homefile | more
ls -l /etc/ | tee -a /tmp/etcfile | more -a参数可使输出追加到文件中而不是覆盖文件内容
12.将输出中的小写字母所有替换成大写tr
last | tr '[a-z]' '[A-Z]' ---可用于解决文档内容规范化问题,利于后期处理
cat /etc/passwd | tr -d ':' -----------删除文档中的:号
cat -A /etc/passwd
cp /etc/passwd /root/passwd && unix2dos /root/passwd ---将文本复制并以dos断行保存
cat /root/passwd | tr -d '\r' >/root/passwd.linux ---去掉转换后的文本中的断行符并保存
file /etc/passwd /root/passwd 比较两个文档格式
13.显示出文档中的特殊按键
cat -A /etc/man.config ---显示出文档中的特殊的字符$^等
cat /etc/man.config | col -x | cat -A | more ----------将原来的[tab]键替换成空格
tail -n 20 /etc/man.config | col -x | cat -A | tr -d '$' --还能够去掉尾部的$符号
14.将有相同部分的文件整合join
join -t ':' /etc/passwd /etc/shadow -----将第一字段相同的两文档链接在一块儿
join -t ':' -1 4 /etc/passwd -2 3 /etc/group ---将第一个文档第4字段和第二文档的第3字段链接
15.将文件中对应的两行链接在一块儿paste
paste /etc/passwd /etc/shadow --组合在一块儿显示出来
cat /etc/group | paste /etc/passwd /etc/shadow -| head -n 3 ----只取输出的前3行
16.文档中的[tab]按键,用cat -A显示成^I
grep '^MANPATH' /etc/man.config | head -n 3 | cat -A
grep '^MANPATH' /etc/man.config | head -n 3 | expand -t 6 - | cat -A 将以上的^I换成6个空格
17.进入到/tmp/文件下,将文件切割成30K一份,名字termcap自动添加split
cd /tmp/;split -b 30k btts_14_to.zip btts_14_to.zip
cat termcap* >>termcapback ------------------------将多个文档组合成一个文件