系统相关
首页 > 系统相关> > 2021-10-05 Linux

2021-10-05 Linux

作者:互联网

Linux中的输入输出管理及如何获得帮助

whatis  ##查看命令基本用途

            ##查看过程中出现:nothing appropriate.

            表示 #1.表示要查看内容没有帮助

                    # 2. 系统帮助数据未更新用 mandb 命令更新

"注意:当执行whatis命令出现 nothing appropriate 时大多数情况是因为" "系统的帮助数据库未更新,如何解决此问题,需要在root用户下执行mandb"

whatis cal

mandb  ##手动更新系统中帮助数据库

--help ##查看命令的基本用法

cal --help ##查看cal指令的用法

[ ]   ##内容可加可不加

...  ##内容个数任意

<> ##必须在命令执行时加入的元素

例如:查看2021年11月2日是这一年的第几天

man  ##命令用法详解 man是manual的缩写

由于 /etc/passwd 是一个ASCII文件,而不是一个可运行的程序所以不能用--help指令查看,使用man命令

man 1  passwd ## 表示/bin/passwd man的是一个命令

man 5  passwd ##表示 /etc/passwd  搜索的是一个文件

man k  字符串   ##确定字符串中有多少级别    man 一共是1到9的9个级别,1表示的命令,5表示的是文件 man 比--help更加详细,还有搜索功能

man - k passwd  ##passwd 关键字有多少级别的 man ##man 的级别 # 1           命令 # 2           系统调用 # 3           函数库调用 # 4           特殊文件( 设备文件等 ) # 5           文件 # 6          游戏 # 7           特殊的包 # 8          系统管理命令 # 9          内核信息

man rm   ##进入到rm命令的帮助

q                           ##退出 / 关键字               ##搜索关键字 , n 向下匹配 , N 向上匹配 G                          ##快速移动到 man 的最后 g                          ##表示快速移动到 man 的最前面

####输入输出的定义#### 

1 ) 字符设备    字符设备就是显示字符到屏幕上的设备文件 (0 1 2),真实位置在/dev/pts/0,从而我们所写的都在同一个屏幕上显示,因为用到了同一个字符设备. 打开system monitor查看bash的id-->找到/proc-->搜索id找到fd文件
2 ) stdin       标准输入       编号为 0 键盘 鼠标 打字机 3 ) stdout     标准正确输出        标号为 1 4 ) stderr      标准错误输出        标号为 2
将/dev/pts/1的文件写入/dev/pts/0 ,随即就在/dev/pts/0显示

 切换到普通用户westos输入

find /etc/ -name passwd     ##在etc文件中查找以passwd命名的文件

普通用户既产生了正确输出(pid/fd/1)又产生了错误输出(pid/fd/2) pid是当前进程的 id

#### 2 如何管理系统输出 ####

1 ) 输出重定向        >     
find /etc -name passwd > westos.out       ##重定向正确输出

把正确的内容放在 westos.out文件错误的内容出现在屏幕上

    2 >     
find /etc -name passwd 2> westos.out    ##重定向错误输出

 把错误的内容放在 westos.err文件正确的内容出现在屏幕上

    &>       
find /etc -name passwd &> westos.all      ##重定向所有输出
把所有的输出放在westos.all文件中 注意:重定向管理输出后会覆盖原文件内容 2 ) 追加 (把文件放在最后)        >>     
 find /etc -name passwd >> westos ##追加正确输出

 上面示例可以看出正确输出放在了原文件的后面

注意:追加和重定向功能类似,但是不会覆盖原文件内容

3 ) 管道 “ | ” 把前一条命令的输出变成输入传递到下一条命令进行操作
      注意: * 管道只处理正确输出                 * tee 复制输出到指定位置                 * 管道在一条命令中可以使用多次
ls /bin/ | wc -l ##统计/bin/下的字符数
ls /bin/ | tee westos ##查看/bin/并把内容复制到westos中

          *  2>&1  把编号为2的输入转换到编号为1的输出中

ls westos hello 2>&1 | wc -l ##让错误输出的字符搬到1里面并统计总的字符数

#### 3 如何管理输入 ####

外界传递到程序中的信息

tr 指令只能作字符的转换,不能读取文件的内容

1 )    <     # 输入重定向 (将处理的指定文件的内容自动的被程序的输入设备加载从而并不需要其他的设备来显示内容) tr 'a-z' 'A-Z' < test    ## 把 test 文件中的内容定向到 tr 程序中

       <  的区别:输入重定向处理的是文件的内容,加载的是硬盘的;而管道处理的是pid/fd/1/2,是输出,加载的是内存中的.利用shell脚本来自动运行,bash来调用文件test

  2)  <<      多行录入

  <<EOF(字符任意)

     test ## 此处的 test 不能表示为文件名称只表示 test 字符      test1 EOF ( 当首字母再次出现表示录入结束 ) 匹配中间的内容

test:

在普通用户下执行命令完成以下操作 : 1. 查找 / etc / 下的 passwd 文件屏蔽错误输出 2. 查找 / etc / 下的 passwd 文件正确输出保存到 / tmp 目录中的 westos.out 中 , 错误输出保存到 / tmp / 目录中的 westos.err 中

 3.查找/etc/下的passwd文件保存所有输出到/tmp目录中的westos.all中并统计输入的行数

4. 查找 / etc / 下的 passwd 文件统计输出行数并显示输出内容

cat -n  ##给文件的每一行都加上行号
5. 转换 / etc / 目录中 passwd 文件中的所有字母为大写并统计文件行数 7. 请用脚本非交互模式编写文件 westos.file 内容为 : hello linux hello westos hello linux westos linux is very nice !!

标签:10,输出,##,westos,passwd,2021,文件,Linux,man
来源: https://blog.csdn.net/qq_47295318/article/details/120612050