管理及I/O重定向详解
我们的计算机是由五大部分组成的:
CPU->我们的CPU是由运算器和控制器两部分组成的,运算器的作用顾名思义是用来进行运算的,而控制器的作用则是读取指令,读取所要进行操作的数据给我们的运算器进行运算,我们的程序是由指令加数据组成的,CPU中的寄存器是CPU内部的暂时存储器,假如:当CPU要完成一个加法运算时,被加数先从数据管道中到达CPU,但是得等待加数也同样到达CPU才能完成加法运算,故在加数到达CPU之前,被加数就被暂时存储在CPU的寄存器里面
RAM->CPU是直接从存储器RAM中读取指令的
输入/输出设备->输入指的是数据来源,输出指的是数据的目的地,硬盘也属于I/O设备,直接与内存进行交互
·地址总线
用来完成内存寻址
·数据总线
用来进行数据的传输
·控制总线
用来传输控制指令
·系统设定
->默认的输出设备:标准输出(stdout)包括正常的运算结果,文件描述符为1 ,和标准错误输出(stderr),文件描述符为2,标准输出口一般为显示器,因为输出至显示器廉价,其它的输出口例如打印机相对来讲会贵上一些
->默认的输入设备:标准输入(stdin),文件描述符为1,标准输入设备一般为键盘
·Linux的I/O重定向
1,输出重定向
>:表示定向标准输出,但是会覆盖原来的内容,所以也叫做覆盖输出
>>:追加输出,不会覆盖原来的内容
set命令,是一个功能开关
-C表示开启功能(禁止对已存在的文件使用覆盖重定向)
+C表示关闭功能
2>:表示重定向错误输出,且覆盖输出
2>>:表示重定向错误输出,且追加输出
正常的输出和错误的输出属于不同的数据流,但是正确的输出和错误的输出可以一起重定向,即&>:表示重定向所有输出,重新定向标准输出或错误输出至同一个文件,并且覆盖输出:
&>>:表示追加输出
输入重定向
<:表示输入重定向
<<:表示此处生成文档(Here Document)
cat << END(文档结束标记)
EOF(End Of File)
cat >> 文件名 << EOF->表示将标准输入中输入的内容追加至文件中,这种方法常用于脚本中生成文档:
·管道
管道格式:命令1 | 命令2 | 命令3...,命令1的输出作为命令2的输入的输出又作为命令3的输入等等依次类推,直到得到最后的命令结果,这就是是Linux的又一个重要哲学思想,即组合小命令来完成复杂的任务:
·tee命令
使用格式:tee [options] file
tee命令的功能是将由标准输入的内容一部分输出至标准输出,一部分覆盖输出至指定的文件:
·练习:
1,统计/usr/bin目录下的文件的个数
一个文件占一行
2,取出当前系统中所有用户的shell,要求每种shell只显示一次,并且要按顺序排序
3,取出/etc/inittab文件中的第6行
4,取出/etc/passwd文件中得倒数第九个用户的用户名和shell,将结果显示至屏幕上并保存在/tmp/users文件中
5,显示/etc目录中所有以pa开头的文件,并统计个数
-d选项表示不显示子目录中的文件
6,不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中