1. 输入与输出概念
(1)在当前shell窗口中输入命令时,输入的命令会被放入/proc/2255/fd/0中,而正确的输出会被放入/proc/2255/fd/1中,错误的输出会被放入/proc/2255/fd/2中。
上述的 0、1、2均为字符设备。在当前shell窗口的输入与输出数据均会由快捷方式链接到/dev/pts/0中。
图解一下,shell窗口中输入的数据会被放入/proc/xxx/fd/0中(xxx为进程编号),它本身是个快捷方式,链接到dev/pts/0中,然后也记录在内存中,如果需要运算,则在CPU中进行运算,之后会把正确的输出放入/proc/xxx/fd/1中,会把错误的输出放入/proc/xxx/fd/2中,这两个目录也都是快捷方式,链接到dev/pts/0中,再输出到当前的shell窗口上并进行显示,我们才得以看见输出结果。
这是当前打开的shell的输入与输出数据放置的目录位置:
2. 系统输出管理
(1)输出重定向
> 重定向正确输出
2> 重定向错误输出
&> 重定向所有输出
重定向正确输出:
在普通用户下登录后,用查找/etc目录下的所有文件名字中带passwd的文件(普通用户的权限有限,所以会成功查找到一些文件,又查找失败一些文件),然后使用">"把正确文件输出结果定向到file1中,此时file1中会显示出已经成功查找到的文件,查找失败的文件报错会显示在当前的shell窗口上。
重定向错误输出:
查找/etc目录下的所有文件名字中带passwd的文件,然后使用"2>"把文件错误输出结果定向到file2中,查找失败的文件报错会显示在file2文件中,此时当前的shell窗口中会显示出成功查找到的文件。
重定向所有输出:
查找/etc目录下的所有文件名字中带passwd的文件,然后使用"&>"把所有文件输出结果定向到file3中,此时当前的shell窗口中既不会显示出成功查找到的文件信息,也不会显示出查找错误的文件结果。
此时,如果定向输出到一个之前就有数据的文件,则此次定向的内容就会把原文件覆盖掉。为了不覆盖掉原文件的信息。可以用追加操作。
(2)追加:
>> 追加正确输出
2>> 追加错误输出
&>> 追加所有输出
跟重定向的实验操作类似,把正确输出、错误输出和所有输出结果分别追加到提前有数据的file1、file2和file3中,结果跟重定向的差别就是文件的原有信息被保留,在文件原数据的下方了显示了追加的输出。
(3)管道
|
作用:把前一条命令的输出变成输入传递到下一条命令进行操作。
如下图,第一条命令先执行,列出了/bin/目录下的文件后通过管道执行了第二条命令统计了/bin/下的文件数量。
使用下图命令,可以把错误输出结果定向到正确输出中然后管道才能处理到这些输出。
tee的作用是把输出结果复制到相应位置。本来桌面上3个文件,然后把ls指令的输出结果通过管道复制到file文件中(tee后如果是没有创建的文件名,则会自动创建新文件),然后再通过管道执行wc -l 指令统计文件数量。
3. 系统输入管理
(1)输入重定向
< 把文件内容导入到输出中
tr 'a-z' 'A-Z' < test 把test文件中的内容定向到tr程序中并改变文件中英文字符的大小写
可以通过如下方式把file中的数据重定向给tr命令改变file中英文字符的大小写。
(2)多行录入
<<
<<的使用规范是:当首字符和尾字符出现后中间的内容是对指令的多行输入。
为了便于演示,建立了一个脚本文件,以同时改输入的三个单词组的大小写,然后输出翻译结果。
4. 使用命令行获得帮助
(1)whatis命令
whatis +命令
查看命令的基本用途
查看过程中出现 rm: nothing appropriate. 1.表示要查看内容没有帮助或要查看内容不是正规命令,它在系统中不存在 2.系统帮助数据未更新,用mandb命令更新
当执行whatis命令出现 nothing appropriate 时大多数情况是因为系统的帮助数据库未更新,如何解决此问题?需要在root用户下执行mandb
(2)help命令
命令+ --help 可以查看命令的基本用法
[ ] 中的内容表示可加可不加
... 表示内容个数任意
< > 在命令执行时必须加入的元素
输入cal --help时:
(3)man命令
man +命令 命令用法详解
man rm 进入到rm命令的帮助
在出现详解的时候:
q 退出
/ 关键字 搜索关键字,n 向下匹配, N 向上匹配
G 快速移动到man的最后
g 表示快速移动到man的最前
man +要查询的文件名 可以查看系统中特定文件的信息(不是所有文件都有man可以查 看的信息)
man -k passwd 查看passwd关键字有多少级别的man
k值:
1 命令
2 系统调用
3 函数库调用
4 特殊文件(设备文件等)
5 文件
6 游戏
7 特殊的包
8 系统管理命令
9 内核信息规则