标准输入和管道技术

标准输入

案例一:

# 发邮件
[root@localhost ~]# echo '我是曾老湿。'|mail -s 'biaoti' zls_mail

[root@localhost ~]# mail -s  '/etc/passwd' zls_mail 0< /etc/passwd
[root@localhost ~]# mail -s  '/etc/passwd' zls_mail < /etc/passwd

[root@localhost ~]# mail zls_mail
Subject: ceshi
youjianneirong
.
EOT

案例二:

# 命令等待输入
[root@localhost ~]# grep 'zls'
xxxx
zls123
zls123

案例三:

[root@localhost ~]# dd if=/dev/zero of=/opt/zls_disk bs=1M count=1024

[root@localhost ~]# dd </dev/zero >/opt/zls_disk2 bs=1M count=512

案例四:

# 数据库备份和恢复
[root@localhost opt]# systemctl start mariadb

[root@localhost opt]# mysqldump -uroot -p123 -B zls > /tmp/zls.txt

[root@localhost opt]# mysql -uroot  -p123 < /tmp/zls.txt
[root@localhost opt]# cat /tmp/zls.txt | mysql -uroot -p123

案例五:

[root@localhost opt]# echo -e "111\n222\n333" > file1.txt
[root@localhost opt]# cat file1.txt
111
222
333
[root@localhost opt]# echo '
1111
2222
3333
4444
' > file2.txt

[root@localhost opt]# cat >> 1.txt <<EOF
> aaa
> bbb
> ccc
> ddd
> EOF

[root@localhost opt]# cat >> 2.txt
111
222
333
444

Ctrl + d 结束


cat <<EOF
+--------------------------+
| vmware manager           |
+--------------------------+
| by zls                   |
+--------------------------+
| 1. Install KVM           |
| 2. Install or Reset C6.5 |
| 3. Install or Reset C7.4 |
| 5. Instqll or Reset W7   |
| 6. Remove all            |
| q. quit                  |
+--------------------------+
EOF


[root@localhost opt]# cat <<EOF
> 1.install  mysql
> 2.install nginx
> 3.intsall php
> 4.install tomcat
> 5.install redis
> EOF
1.install  mysql
2.install nginx
3.intsall php
4.install tomcat
5.install redis

案例六:

# 两条命令同时重定向
[root@localhost opt]# (ls ; date) > 1.txt

 (while :; do date; sleep 2; done) &>date.txt &
 
 #如果不希望某些命令的执行对当前 shell 环境产生影响,请在subshell中执行
 [root@localhost ~]# (cd /boot; ls)

管道技术

管道操作符号:|,叫做管道符

作用:将管道符左边命令的标准输出,交给管道符右边命令的标准输入来处理

用法:cmd1|cmd2|cmd3| cmd4...

案例一:

# 取出passwd文件中,uid最大的前五个
[root@localhost ~]# sort -nr -k 3 -t ':' /etc/passwd|head -5

案例二:

扫描二维码关注公众号,回复: 11220243 查看本文章
# 统计出passwd文件中,所有用户的shell种类
[root@localhost ~]# awk -F: '{print $7}' /etc/passwd|sort |uniq|wc -l
6

案例三:

[root@localhost ~]# hostname -I
10.0.0.200
[root@localhost ~]# ifconfig |awk 'NR==2{print $2}'
10.0.0.200
sed
awk
grep

组合:sed awk
grep awk

10种方法,取IP

案例四:

# 取出 磁盘已使用 百分比
[root@localhost ~]# df -h|awk '{print $5}'|awk -F '%' '{print $1}'
已用
9
0
0
1
0
24
5
0
1

tee

# tee 和 重定向的区别
[root@zls ~]# date > date.txt 
[root@zls ~]# date |tee date.txt

xargs

[root@localhost opt]# find /etc/ -name '*.conf'|xargs cp -t /tmp/

猜你喜欢

转载自www.cnblogs.com/mdddm/p/12913877.html