linux初级学习笔记九:linux I/O管理,重定向及管道!(视频序号:04_3)
本节学习的命令: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
这都是我对自己学习过程的理解,如有错误请指出!我算一个小白了。