管道和IO重定向

运算器、控制器:CPU

存储器:RAM

出入设备/输出设备


程序:指令和数据


控制器:指令

运算器:

存储器:


I/O:硬盘


数据或指令来源:input设备:键盘,鼠标,硬盘,网卡

输出:OUTPUT设备:


系统设定

默认输出设备:标准输出,stdout 描述符1

默认输入设备:标准输入,stdin 描述符0

标准错误输出:stderr 描述符2


标准输入:键盘

标准输出和错误输出:显示器


I/O重定向:


linux重定向:

> “覆盖”输出重定向

[root@localhost ~]# ls /var > /tmp/var.out 

[root@localhost ~]# cat /tmp/var.out

>> :“追加”输出重定向

[root@localhost ~]# ls -l >> /tmp/var.out 

[root@localhost ~]# cat /tmp/var.out


set -C:禁止对已经存在的文件使用覆盖重定向

此时强制覆盖输出,则使用 >|

set +C:关闭上述功能


2> :重定向错误输出

[root@localhost ~]# ls /varr 2> /tmp/var2.out

[root@localhost ~]# cat /tmp/var2.out

2>>:“追加”重定向错误输出

ls /varr > /tmp/var3.out 2> /tmp/err.out #正确保存到var3.out,错误则保存到err.out

&> 重定向标准输出或错误输出至同一个文件(重定向所有输出)

[root@localhost ~]# ls /var6 &>/tmp/var5.out

[root@localhost ~]# cat /tmp/var5.out 

&>> “追加”重定向所有输出


< 输入重定向

cat < /etc/fstab

<< :Here Document 输入重定向没追加模式


管道:前一个命令的输出作为后一个命令的输入

命令1|命令2|命令3 

echo "hello,world" | tr 'a-z' 'A-Z'

echo "redhat" | passwd --stdin hadoop

cut -d : -f 3 /etc/passwd | sort -n | tr 'a-z' "A-Z"

ls /avr | tr 'a-z' 'A-Z'


tee:从标准输入读入并提交到标准输出(到屏幕),并保存到文件一份

echo "hello,world" | tee /tmp/hello.out

wc -l /etc/passwd | cut -d ' ' -f 1


练习:

1,同意/usr/bin/目录下的文件个数:

ls /usr/bin | wc -l

2,取出当前系统上所有用户的shell,要求:每种shell只显示一次,并且按顺序进行显示

cut -d : -f 7 /etc/passwd | sort -u

3:、思考:如何显示/var/log目录下每个文件的内容?

file `ls /var/log`

4、取出/etc/inittab文件的第6行

head -6 /etc/inittab | tail -1(先取前六,再取最后一行)

5,取出/etc/passwd文件倒数第9个用户名和shell,显示到屏幕上并将其保存到/tmp/users文件中

tail -9 /etc/passwd | head -1 | cut -d : -f 1,7 | tee /tmp/usrs

6、显示/etc目录下所有以pa开头的文件,并统计其个数

ls -d /etc/pa* |wc -l

7,不使用文本编辑器,将alias cls=clear一行添加到当前用户的.bashrc文件中 

echo  "alias cls=clear" >> ~/.bashrc


你可能感兴趣的:(linux,控制器,存储器,显示器,定向)