04_03管理及IO重定向
计算机五大部件:
运算器、控制器:cpu
存储器:RAM
输入输出设备:
程序:指令和数据
控制器:指令
运算器:
存储器:
地址总线:内存寻址
数据总线:传输数据
控制总线:控制指令
寄存器:cpu暂时存储器
I/O:硬盘,键盘鼠标
程序
INPUT设备:
OUTPUT设备
系统设定:
默认输入设备:标准输入,STDIN,0(描述符)
默认输出设备:标准输出,STDOUT,1
标准错误输出:STDERR,2
标准输入:键盘
标准输出和错误输出:显示器
之前那用过passwd --stdin
I/O重定向:
Linux:
>:覆盖输出。只输出标准输出,错误输出属于不同的数据流。容易发生致命错误。例:ls /var > /tmp/test.out。
>>:追加输出
set:
help set
-C:禁止对已经存在文件使用覆盖重定向:
强制覆盖输出,则可使用>|
+C:关闭上述功能
2>:重定向错误输出,只能输出错误输出
2>>:追加方式
如想既定向标准输出,又定向错误输出呢?
可同时使用。例:ls /varr > /tmp/var3.out 2> /tmp/err.out 文件名可以相同,一个命令不可能既正确又错误
&>:重定向标准输出或错误输出至同一个文件。不支持&>>追加方式
<:输入重定向
<<:Here Document.例 cat << EOF 以输入EOF为结束
例:cat >> /tmp/myfile.txt << EOF,生成文档
管道:前一个命令的输出,作为后一个命令的输入
命令1 | 命令2 | 命令3 | ...
例:echo "hello,world." | tr 'a-z''A-Z'
echo "redhat" | passwd --stdin hive
cat /etc/passwd | sort等同于sort /etc/passwd
若取出所有用户名进行排序:
cut -d: -f1 /etc/passwd |sort | tr 'a-z''A-Z'
tee:
man tee
例:echo ”hello,world" | tee /tmp/hello.out 既显示在屏幕上也保存在文件中
只显示文件行数:wc -l /etc/passwd | cut -d' ' -f1
练习:
1、统计/usr/bin/目录下的文件个数
#ls /usr/bin | wc -l 注意不能使用ls -l,会多一行
2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示
#cut -d: -f7 /etc/passwd | sort -u
3、思考:如何显示/var/log目录下每个文件的内容类型?
#file /var/log/*
#cd /var/log #file ’ls /var/log‘方法2,分两步,必须在log目录下进行
4、取出/etc/inittab文件的第六行
#head -6 /etc/inittab | tail -l
5、取出/etc/passwd文件中倒数第九个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/uers文件中
#tail -9 /etc/passwd | head 1 | cut -d: -f1,7 | tee /tmp/users
6、显示/etc目录下所有以pa开头的文件,并统计其个数
#ls -d /etc/pa* | wc -l 加-d,不加的话所有目录下的文件都显示出来
7、不适用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中
#echo "alias cls=clear" | >> ~/.bashrc