运算器、控制器: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