本节学习的命令:tr,tee,wc
本节学习的技能:
计算机的组成
I/O管理及重定向
管道的使用
知识点九:管理及IO重定向(4_3)
计算机组成:
运算器、控制器: CPU
存储器:RAM
输入设备/输出设备
程序:指令和数据
控制器:读取指令,并在指令的控制下读取要进行的运算和数据
运算器:
存储器:
地址总线:内存寻址
数据总线:传输数据
控制总结:控制指令数据
寄存器:CPU暂时存储器
I/O:(如:硬盘,显示器,鼠标等)
INPUT设备:输入设备
OUTPUT设备:输出设备
系统默认设备设定:
默认输出设备:标准输出,STDOUT, 1
默认输入设备:标准输入, STDIN, 0
标准错误输出:STDERR, 2(与上是不同的数据流)
标准输入:键盘
标准输出和错误输出:显示器
I/O重定向:
Linux:
>:输出重定向符号:
>: 覆盖输出
>>:追加输出
set -C: 禁止对已经存在文件使用覆盖重定向;
强制覆盖输出,则使用 >|
set +C: 关闭上述功能
2>: 重定向错误输出
2>>: 追加方式
&>: 重定向标准输出或错误输出至同一个文件。
<:输入重定向符号:
tr 'a-z' 'A-Z' < /etc/profile
<<:Here Document 在此处生成文档
cat << END
The first line,
The second line.
END cat >>/etc/myfile.txt <<EOF
The first line,
The second line.
EOF cat /etc/myfile.txt
管道:
前一个命令的输出,作为后一个命令的输入
格式:命令1 | 命令2 | 命令3 | ...
--管道
echo 'hello word'
echo 'hello word' | tr 'a-z' 'A-Z' --把hello word转成大写并输出 echo 'redhat' | passwd --stdin hive cut -d: -f1 /etc/passwd | sort | tr 'a-z' 'A-Z' --把passwd文件的用户名(1列)排序并转成大写 ls /var | tr 'a-z' 'A-Z' ----------------tee
从标准输入读取数据,并且发送至标准输出和文件
echo "hello word" | tee /tmp/hello.out --把hello word 发送至标准输出并保存在文件中 ----------------wc
--显示某一个文件行数
wc -l /etc/passwd --不仅显示了文件的行数还显示了文件名
wc -l /etc/passwd | cut -d' ' -f1 --实现了
cat /etc/passwd | wc -l --显示目录的行数
ls /usr/bin | wc -l
课后作业:
练习:
1、统计/usr/bin/目录下的文件个数;
# ls /usr/bin | wc -l
2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;
# cut -d: -f7 /etc/passwd | sort -u
3、思考:如何显示/var/log目录下每个文件的内容类型?
# file /var/log/*
# cd /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: -f1,7 | tee /tmp/users
6、显示/etc目录下所有以pa开头的文件,并统计其个数;
# ls -d /etc/pa* | wc -l
7、不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中;
# echo "alias cls=clear" >> ~/.bashrc