编号 含义 默认
0 标准输入 键盘
1 标准输出(info) 终端
2 错误输出(error) 终端
重定向符号:
> 标准输出(以覆盖的方式),1>
>> 标准追加输出,1>>
2> 错误输出(以覆盖的方式)
2>> 错误追加输出
&> 合并重定向(合并1和2号数据) 1> 2>&1
< 输入重定向
输出重定向 (覆盖,追加)
正确输出: 1> 1>> 等价于 > >>
错误输出: 2> 2>>
[root@localhost ~]# date > date.txt
[root@localhost ~]# date 2> date.txt
[root@localhost ~]# ls /home/ /aaaaaaaaa 1>list.txt 2>error.txt //重定向到不同的位置
正确和错误都输入到相同位置:
[root@localhost ~]# ls /home/ /aaaaaaaaa 1>list.txt 2>&1 //重定向到相同的位置
[root@localhost ~]# ls /home/ /aaaaaaaaa &>list.txt //混合输出
[root@localhost ~]# ls /home/ /aaaaaaaaa &>/dev/null //空设备,即将产生的输出丢掉
输入重定向
例1:
[root@uplooking ~]# grep ‘root’ < /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
例2:
[root@uplooking ~]# dd if=/dev/zero of=/file1.txt bs=1M count=2
参数解释:
bs 一次拿多少数据
count 共几次
[root@uplooking ~]# dd </dev/zero >/file2.txt bs=1M count=2
例3:
[root@client95 test]# cat > /test/file.file < 今天天气不错
> 我觉得也是
> 哦
> UPLOOKING
[root@client95 test]# cat /test/file.file
今天天气不错
我觉得也是
哦
例4:脚本自动配置YUM:
[root@client95 test]# cat /tmp/yum.exe
rm -rf /etc/yum.repos.d/*
cat > /etc/yum.repos.d/new.repo <<UP
[uplookingyum]
name=uplookingyum
enabled=1
gpgcheck=0
basrurl=ftp://172.16.8.100/centos7u2
UP
执行:
bash /tmp/yum.exe
管道
作用:实现进程间通信
用法:command1 | command2 | command3 | …
如:
[root@localhost ~]# ll /dev/ | less
[root@localhost ~]# ps aux | less
===========================================================
补充常用命令:
sort 排序
-t 指定字段分隔符(默认分割副空格)
-k 指定列
-n 按数字排序
-r 反向排序
cut:
-d 指定分割副(只能一个字符)
-f 截取第几列
-c 按字符截取
如:
cut -c 2-5 //截取每行的2~5个字符
cut -c 2- //截取每行的2到最后
[root@localhost ~]# cut -d: -f 1 /etc/passwd
[root@localhost ~]# head /etc/passwd | cut -d: -f 1-5
[root@localhost ~]# head /etc/passwd | cut -d: -f 1,5
[root@localhost ~]# head /etc/passwd | cut -c 10
[root@localhost ~]# head /etc/passwd | cut -c 1-10
[root@localhost ~]# head /etc/passwd | cut -c 1,10
wc:
-l 统计行数
-c 统计字符
-w 统计单词数(连续的字符串)
awk:
[root@localhost ~]# awk -F: ‘{print $7}’ /etc/passwd //以:为分隔符打印文件中的第7列
rev 左右颠倒
tac 上下颠倒
[root@localhost ~]# cat -n /etc/passwd | head -20 |tail -2 |rev
[root@localhost ~]# cat -n /etc/passwd | head -20 |tail -2 | tac
sort
[root@localhost ~]# sort aa.txt //默认按首字符排序
[root@localhost ~]# sort -n aa.txt //按整个数字排序
[root@localhost ~]# sort -n -u aa.txt //-u 去掉重复行
[root@localhost ~]# sort -n -u -r aa.txt //-r 逆序输出
uniq
[root@localhost ~]# uniq aa.txt //默认去掉连续重复行
[root@localhost ~]# uniq -d aa.txt //显示重复行
[root@localhost ~]# uniq -d -c aa.txt //-c 显示重复次数
=====================================================================
例:将/etc/passwd中的用户按UID大小排序
[root@localhost ~]# sort -t”:” -k3 -n /etc/passwd //以:分隔,将第三列按字数升序
[root@localhost ~]# sort -t”:” -k3 -n /etc/passwd -r //逆序
[root@localhost ~]# sort -t”:” -k3 -n /etc/passwd | head
例:统计当前/etc/passwd中用户使用的shell类型
[root@localhost ~]# cut -d: -f7 /etc/passwd | sort | uniq -c
131 /bin/bash
1 /bin/sync
1 /sbin/halt
63 /sbin/nologin
1 /sbin/shutdown
例:统计出最占CPU的5个进程
[root@tianyun ~]# ps aux –sort=-%cpu | head -6
例: 统计网站的访问情况
[root@localhost ~]# netstat -an |grep :80 |awk -F”:” ‘{print $8}’|sort |uniq -c|sort -n -r
4334 192.168.0.66
1338 192.168.10.11
1482 192.168.10.125
44 192.168.10.183
3035 192.168.10.213
375 192.168.10.35
362 192.168.10.39
例: 显示当前所有IP
[root@localhost ~]# ip addr |grep ‘inet ‘ |awk ‘{print $2}’ |awk -F”/” ‘{print $1}’
[root@localhost ~]# ifconfig|grep ‘inet ‘|awk -F “:|Bcast|Mask” ‘{print $2}’ 注释:指定三种分割副
[root@client95 ~]# ifconfig |grep ‘inet ‘|awk ‘{print $2}’|cut -d ” ” -f1
127.0.0.1
192.168.2.115
例:打印根分区已用空间的百分比(仅打印数字)
[root@localhost ~]# df -hT|grep ‘/$’ |awk ‘{print $6}’|awk -F”%” ‘{print $1}’
[root@localhost ~]# df -hT|grep /$|awk ‘{print $6}’|awk -F% ‘{print $1}’
[root@localhost ~]# df -hT|grep /$|awk -F “[ ][ ]*|%” ‘{print $6}’
例:显示当前打开的所有终端的编号(只要有编号的,不要的问号的!)和该终端所运行命令以及发起用户名和CPU资源消耗
[root@client95 ~]# ps axo tty,user,cpu,command|grep -v ^?
[root@client95 ~]# ps aux|awk ‘{print $7,$1,$3,$11}’|grep -v ^?
[root@client95 ~]# ps aux|awk ‘{print $7,$1,$3,$11}’|grep -v ^?|uniq -c|sort -nr
例:制作别名myip,作用为显示ip地址
[root@localhost ~]# ifconfig eno16777736 | head -2| tail -1 | cut -d’ ‘ -f 10
[root@localhost ~]# ifconfig eno16777736 | grep broadcast| cut -d’ ‘ -f 10
172.16.110.247
[root@localhost ~]# alias myip=”ifconfig eno16777736 |head -2| tail -1 | cut -d’ ‘ -f 10″
[root@localhost ~]# myip
172.16.110.247
例:用命令取出文件属性中的的3个时间(atime,mtime,ctime)
[root@localhost ~]# stat aa.txt
文件:”aa.txt”
大小:4 块:8 IO 块:4096 普通文件
设备:802h/2050d Inode:77530278 硬链接:1
权限:(0644/-rw-r–r–) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2017-05-22 11:43:11.545941923 +0800
最近更改:2017-05-22 11:43:09.819870359 +0800
最近改动:2017-05-22 11:43:09.821870442 +0800
创建时间:-
取出
11:43:11
11:43:09
11:43:09
[root@localhost ~]# stat aa.txt |grep ‘+0800’|cut -d’ ‘ -f2|cut -d’.’ -f1
13:48:17
13:48:16
13:48:16
[root@localhost ~]# stat aa.txt |awk -F’ |[.]’ ‘/+0800/{print $2}’
13:48:17
13:48:16
13:48:16
本网站尊重知识产权,如有侵权,请及时联系我们删除。
本站所有原创内容仅用于学习和交流目的,未经作者和本站授权不得进行商业使用或盈利行为。
暂无评论内容