1.查询命令用途--whatis
# whatis +命令 : 查询命令的用法
-如果结果出现nothing , 有两种情况:
(1)查询数据库没有更新,此时输入命令 mandb更新数据库即可。
(2)查询的命令不存在。
2.获得命令的简要帮助--“--help”
# 命令 --help : 查看命令的简要帮助
显示结果:
[ ] : 内容可加可不加
... : 内容个数任意
< > : 命令执行时必须加入的元素
3.获得命令或文件的详细帮助--“man”
--help 只能查询 命令 的简要帮助,无法查询文件的帮助。
/bin/passwd 直接可以运行的程序,所以可以直接用--help查询帮助
/etc/passwd 是文件,无法用--help查询到帮助
因此我们可以用man获取命令或文件的详细帮助信息,man 是 manual (手册)的简写,与 help 命令和 --help 参数不同,使用 man 命令查询帮助手册时会进入 man page 界面,而非直接打印在控制台上。同时,相比与 --help,man 命令的信息更全,--help 则显示的信息简洁。
# man 命令 : 命令用法详解
进入man page界面后:
q 退出界面
/ 搜索关键字,n 向下匹配,N向上匹配
g 快速移动到man的最前面
G 快速移动到man的最后面
# man -k 关键字 : 显示含有该关键字的基本用途及级别
#1 : 命令
#2 :系统调用
#3 : 函数库调用
#4 :特殊文件(设备文件等)
#5 : 文件
#6 : 游戏
#7 : 特殊的包
#8 : 系统管理命令
#9 : 内核信息规则
# man 1 passwd : 显示passwd命令的详细帮助
# man 5 passwd: 显示passwd文件的详细帮助
4.输入输出的定义
(1)字符设备
- 在shell中执行命令产生的输出应被放置到/dev/pts/1中显示,如果用>定向了输出存放位置为/dev/pts/0那么输出就会显示到相应屏幕,/dev/pts/0中如果有新的字符出现他就会显示到相应屏幕中,这个设备文件叫做字符设备。
显示字符到屏幕上的设备文件
at /proc/devices
命令可以查看当前系统中所有的字符设备和块设备。
(2)标准输入输出
/dev/pts/0 stdin : 标准输入,编号为0。键盘,鼠标,打字机
/dev/pts/1 stdout : 标准正确输出,标号为1。储存在pid/fd/1里面,ps:pid 表示当前进程的id,是一串数字。
/dev/pts/2 stderr:标准错误输出,标号为2。储存在pid/fd/2里面
5.定向输出的方法
(1)输出重定向:将输出放在指定位置
将某个命令默认指向 stdout 或 stderr 的输出文件转而指向一个文件,即使得命令输出到某个指定文件中,而不是输出到终端屏幕或终端窗口。Linux 中使用 > 和 >> 来重定向标准输出。
> :重定向正确输出
2> :重定向错误输出
&> : 重定向所有输出
注意:本次实验必须切换普通用户进行,
使用命令 find /etc/ -name passwd > westos.out 查看实验结果
注意:重定向输出后会覆盖原文件内容
如果不想覆盖原文件内容,可以使用追加!
(2)追加:不会覆盖原文件内容
>> :追加正确输出
2>>:追加错误输出
&>> : 追加所有输出
(3)管道 “ | ” 的应用
把前一条命令的输出变成输入传递到下一条命令进行操作
# ls /bin | wc -l :查看/bin有多少个文件
# tee : 复制到指定输出位置
注意:管道在一条命令中可以使用多次
注意:管道只处理正确的输出
如果想利用管道处理所有输出,可以将错误输出转换为正确输出:2>&1
# ls westos hello 2>&1 | wc -l
6.管理系统的输入
(1)输入重定向:<
输入重定向是指让命令从指定文件中获取输入,而非从 stdin(常常指的是键盘输入)中获取输入。Linux 中使用 < 和 << 来重定向标准输入。
本次实验需要切换至普通用户。
# tr 'l' 'o' : 转换字符,不能直接使用,因为tr没有读写能力。
#tr 'l' 'o' < westos : 从westos文件中获取输入,将'l' 转换为 'o'
(2) 多行录入 :<<
当执行脚本时,需要交互式操作,可以利用多行录入进行:
# passwd westos << EOF :修改westos用户的密码为westos
westos
westos
EOF
练习题目:
在普通用户下执行命令完成以下操作:
(1)查找/etc/下的passwd文件屏蔽错误输出
/dev/null : 空设备文件,/dev/null 对于写入的东西通通删除。
# find /etc -name passwd 2> /dev/null
(2)查找/etc/下的passwd文件正确输出保存到/tmp目录中westos.out中,错误输出保存到/tmp/目录中的westos.err中
# find /etc -name passwd > /tmp/westos.out 2> /tmp/westos.err
(3) 查找/etc/下的passwd文件保存所有输出到/tmp目录中的westos.all中并统计输入的行数
# find /etc -name passwd | tee /tmp/westos.all | wc -l
(4)查找/etc/下的passwd文件统计输出行数并显示输出内容
# find /etc -name passwd 2>&1 | cat -n
# find /etc -name passwd 2>&1 | tee /dev/pts/0 | wc -l
(5)转换/etc/目录中passwd文件中的所有字母为大写并统计文件行数
# tr 'a-z' 'A-Z' < /etc/passwd | tee /dev/pts/0 | wc -l
(6) 请用脚本非交互模式编写文件westos.file内容为:
hello linux
hello westos
hello linux
westos linux is very nice !!