您的位置:首页 > 运维架构 > Linux

04_03_Linux

2016-11-13 21:20 246 查看
管道和重定向
运算器,控制器:CPU
存储设备:ram
输入输出设备:
程序:

系统设定:
默认输出设备:标准输出 1
默认输入设备:标准输入 0
标准错误输出:STDERR  2

I/O设备重定向
linux:
输出重定向:> (原有内容会被覆盖) ;>>(追加输出)
[root@localhost /]# ls /var > /tmp/var.out
[root@localhost /]# cat /tmp/var.out
account
cache
crash
db
empty


错误信息是没有重定向的
[root@localhost /]# ls /etcc > /tmp/errtest.out
ls: cannot access /etcc: No such file or directory


重定向错误输出:2>
[root@localhost /]# ls /etcc 2> /tmp/errtest.out
[root@localhost /]# cat !$
cat /tmp/errtest.out
ls: cannot access /etcc: No such file or directory
[root@localhost /]# cat << END
> the first line.
> the second line.
> END
the first line.
the second line.


重定向所有的输出:&>

输入重定向:<
[root@localhost /]# cat
sdfg^C
[root@localhost /]# cat < /tmp/errtest.out
ls: cannot access /etcc: No such file or directory
[root@localhost /]# tr 'a-z' 'A-Z'
ASFDdsf
ASFDDSF
[root@localhost /]# tr 'a-z' 'A-Z' < /tmp/errtest.out
LS: CANNOT ACCESS /ETCC: NO SUCH FILE OR DIRECTORY


此处文档:<<
[root@localhost /]# cat << END
> the first line.
> the second line.
> END
the first line.
the second line.

[root@localhost /]# cat >> /tmp/test.out  <<EOF
> the first line.
> the second line.
> EOF
[root@localhost /]# cat /tmp/test.out
the first line.
the second line.


set -C:禁止对已经存在的文件进行覆盖(如果要覆盖使用>|)
set +C:关闭上面功能

管道

前一个命令的输出,作为后一个命令的输入
命令1 | 命令2 | 命令3
把echo的输出,作为tr的输入
[root@localhost /]# echo "hello,world" | tr 'a-z' 'A-Z'
HELLO,WORLD


tee:及输出到标准输出有保存文件
[root@localhost /]# echo "hello world." | tee /tmp/hello.out
hello world.
[root@localhost /]# cat tmp/hello.out
hello world.


只显示一个文件的行数:
[root@localhost /]# wc -l /etc/passwd
41 /etc/passwd
[root@localhost /]# wc -l /etc/passwd | cut -d' ' -f1
41
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux shell