Linux_输入输出管理及如何获得帮助

输入输出管理

1. 字符设备

字符设备就是显示字符到屏幕上的设备文件
显示字符的设备

shell字符设备
Linux_输入输出管理及如何获得帮助_第1张图片快捷方式,实质是/dev下的字符设备
Linux_输入输出管理及如何获得帮助_第2张图片

  • 打开两个shell

/dev/pts下面产生两个字符设备Linux_输入输出管理及如何获得帮助_第3张图片

打开一个shell,输入的字符保存在0;正确输出保存在1;错误输出在2。
Linux_输入输出管理及如何获得帮助_第4张图片
2)stdin
标准输入
编号为0
键盘 鼠标 打字机
3)stdout
标准正确输出
标号为1
4)stderr
标准错误输出
标号为2

  • 两个字符设备交互

这里的软链接相当于快捷键
Linux_输入输出管理及如何获得帮助_第5张图片
将字符设备1的结果输出到字符设备0
Linux_输入输出管理及如何获得帮助_第6张图片

  • 原理
    Linux_输入输出管理及如何获得帮助_第7张图片

2. 管理系统输出

  • 输出重定向(覆盖原文件):>
find /etc -name passwd > file1 		#重定向正确输出
find /etc -name passwd 2> file2 	#重定向错误输出
find /etc -name passwd &> file3 	#重定向所有输出

Linux_输入输出管理及如何获得帮助_第8张图片

  • 输出追加:>>

不会覆盖原文件

3. 管理系统输入

  • 输入重定向:<
tr 'a-z' 'A-Z' < test #把test文件中的内容定向到tr程序中
  • 多行录入:<<
tr 'a-z' 'A-Z' <<EOF(字符任意)
hello
linux
EOF (当首字母再次出现表示录入结束)

Linux_输入输出管理及如何获得帮助_第9张图片
Linux_输入输出管理及如何获得帮助_第10张图片

4. 管道 “|”

把前一条命令的输出变成输入传递到下一条命令进行操作

*管道只处理正确输出
*2>&1把编号为2的输入转换到编号为1的输出中
*tee 复制输出到指定位置
*管道在一条命令中可以使用多次

find /etc -name passwd | wc -l		#只统计正确的输出行数
find /etc -name passwd 2>&1 | wc - l 	#统计全部输出
find /etc -name passwd 2>&1 | tee all.out | wc - l #保存输出内容到all.out文件

Linux_输入输出管理及如何获得帮助_第11张图片

获取帮助

  • whatis(查看命令的基本用途)

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

whatis date

在这里插入图片描述在这里插入图片描述

  • date --help查看命令的基本用法
date --help | less 	#查看命令的基本用法
[] 					#内容可加可不加
... 				#内容个数任意
<> 					#必须在命令执行时加入的元素

Linux_输入输出管理及如何获得帮助_第12张图片

  • man
man -k passwd 		#passwd关键字有多少级别的man

Linux_输入输出管理及如何获得帮助_第13张图片

man的级别

1 命令
2 系统调用
3 函数库调用
4 特殊文件(设备文件等)
5 文件
6 游戏
7 特殊的包
8 系统管理命令
9 内核信息规则

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

—————————————————————————

  • test1
    *在普通用户下执行命令完成以下操作:
    1.查找/etc/下的passwd文件屏蔽错误输出
    2.查找/etc/下的passwd文件正确输出保存到/tmp目录中的westos.out中,错误输出保存到/tmp/目录中的
    westos.err中
    3.查找/etc/下的passwd文件保存所有输出到/tmp目录中的westos.all中并统计输入的行数
    4.查找/etc/下的passwd文件统计输出行数并显示输出内容
    5.转换/etc/目录中passwd文件中的所有字母为大写并统计文件行数
find /etc/ -name passed 2> /dev/null
find /etc/ -name passed > /tmp/westos.out 2> /tmp/westos.err
find /etc/ -name passed 2>&1 | tee /tmp/westos.all | wc -l
find /etc/ -name passed 2>&1 | tee /dev/pts/0 | wc -l #显示到字符设备
tr 'a-z' 'A-Z' < /etc/passwd | tee /dev/pts/0 | wc -l #显示到字符设备
  • test2
    按要求查找83天后的日期 :m/d/
man date | less
date -d 83days +%m/%d

在这里插入图片描述

你可能感兴趣的:(linux操作基础,linux,运维,服务器)