linux初级学习笔记九:linux I/O管理,重定向及管道!(视频序号:04_3)

时间:2024-05-01 17:50:31

本节学习的命令: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