五大类:
运算器、控制器:CPU
存储器:RAM
输入设备/输出设备
程序:是由指令和数据组成的
控制器:读取指令
运算器:
存储器:
地址总线:内存寻址
数据总线:传输数据
控制总线:控制指令
寄存器:CPU暂时存储器
I/O:硬盘,键盘鼠标..
INPUT设备
OUTPUT设备
系统设定
默认输出设备:标准输出,STDOUT,1
默认输入设备:标准输入,STDIN,0 //passwd --stdin
标准错误输出:STDERR,2 //标准输出和错误输出是不同的数据流
对电脑而言
标准输入:键盘
标准输出和错误输出:显示器
I/O重定向:改变了数据的输出/输入来源
linux:组合小命令完成复杂任务是linux的重要哲学思想之一。
>:输出重定向,覆盖输出 原有内容会被覆盖掉
>>:追加输出,在文件尾部新增内容
2>:重定向错误输出
2>>:追加方式
&>:重定向标准输出或错误输出至同一个文件
<:输入重定向
<<:Here Document,此处文档
[root@localhost ~]# cat << END //END是文档结束标记,通常看到的都是END,EOF
> The first line.
> The second line.
> END
The first line.
The second line.
[root@localhost ~]#
[root@localhost ~]# cat >> /home/myfile.txt <<EOF
> first
> second
> EOF
[root@localhost ~]# cat /home/myfile.txt
first
second
[root@localhost ~]#
set:设定功能开关,-是开,+是关
-c:禁止对已经存在的文件使用覆盖重定向
强制覆盖输出,则使用 >|
+c:关闭上述功能
管道 | :命令,前一个命令的输出,作为后一个命令的输入
命令1 | 命令2 | 命令3 | ...
tee:将数据即能保存到文件中也能输出到屏幕上
练习:
1、统计/usr/bin/ 目录下的文件个数
# ls /usr/bin | wc -l
2、取出当前系统上所有用户的shell,要求每种shell只显示一次,并且按顺序进行显示
# cut -d: -f7 /etc/passwd | sort -u
3、思考:如何显示/var/log目录下每个文件的内容类型
4、取出/etc/inittab文件的第六行
# head -6 /etc/inintab | tail -1
5、取出/etc/passwd文件中倒数第九个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中
# tail -9 /etc/passwd | head -1 | cut -d: -f1,7 |tee /tmp/users
6、显示/etc目录下所有以pa开头的文件,并统计其个数
# ls -d /etc/pa* | wc -l
7、不使用文本编辑器,将alias cls=clear 一行内容添加至当前用户的.bashrc文件中
# echo "alias cls=clear" >> ~/.bashrc