find 命令的使用
[kiosk@foundation51 Desktop]$ find /etc/ -name passwd
##在etc里查找名字是passwd的文件
1.字符设备
字符设备就是显示字符到屏幕上的设备文件
ll /proc/2281/fd/0
ll /proc/2281/fd/1 2
0 输入
1 正确输出
2 错误输出
2.标准输入与输出
1)stdin 标准输入 编号为0 键盘 鼠标 打字机
2)stdout 标准正确输出 标号为1
3)stderr 标准错误输出 标号为2
显示所有进程,查看进程号
application-system monitor
3.输出重定向
“>” 定向1文件干预
“2>” 定向2文件干预
“&>” 定向1和2文件干预
输出重定向:重定向管理输出后会覆盖源文件内容
find /etc/ -name passwd > westos.out ##正确输出被定向到指定的文件中
find /etc/ -name passwd 2> westos.err ##错误输出被定向到指定文件中
find /etc/ -name passwd &> westos.all ##所有输出被定向到指定文件中
追加:重定向时不覆盖指向,使用追加(保留源文件,不会覆盖掉)
find /etc/ -name passwd >> westos.out ##正确输出被定向到指定的文件中
find /etc/ -name passwd 2>> westos.err ##错误输出被定向到指定文件中
find /etc/ -name passwd &>> westos.all ##所有输出被定向到指定文件中
管道 “|”
把前一条命令的输出变成输入传递到下一条命令进行操作
注意:
*管道只处理正确输出
*2>&1把编号为2的输入转换到编号为1的输出中
*tee 复制输出到指定位置
*管道在一条命令中可以使用多次
##将一条程序的行号输入定向到0文件中
##管道只处理1中内容 (先将2中内容搬到1中,才能将1和2内容都传送过去)
ls /bin/ | wc -l ##管道 /bin/ data 2>&1 | wc -l
以本章测试题为例
(1)屏蔽错误输出 (把错误输出重定向到普通文件,没有字符设备的功能,无法显示)
find /etc/ -name passwd 2>errorfile
(2)查找/etc/下的passwd文件正确输出保存到/tmp目录中的westos.out中,错误输出保存到/tmp/目录中
find /etc/ -name passwd >westos.out 2>westos.err
(3).查找/etc/下的passwd文件保存所有输出到/tmp目录中的westos.all中并统计输入的行数
[kiosk@foundation51 tmp]$ find /etc/ -name passwd &>/tmp/westos.all
[kiosk@foundation51 tmp]$ wc -l /tmp/westos.all
或find /etc/ -name passwd 2>&1 | tee /tmp/westos.all | wc -l
(4).查找/etc/下的passwd文件统计输出行数并显示输出内容
find /etc/ -name passwd 2>&1 | tee /dev/pts/0 | wc -l
2.如何管理输入
外界传递到程序中的信息
输入重定向
1)< #输入重定向
##tr 替换字符tr 'a-z' 'A-Z' </etc/passwd
##/etc/passwd将文件内容放置到tr的0文件中
相当于给他放到字符设备中显示出来了
如cat 3 |tr 'c' 'p' 把文件3中的c换成p并显示 ,单独用tr不能读取
多行录入:shell脚本
脚本内容:date cal
注:bash是非交互,sh是交互
多行录入:修改用户密码
脚本内容:
date
passwd kiosk<<EOF
westos
westos
EOF
cal
以本章测试题为例
5.转换/etc/目录中passwd文件中的所有字母为大写并统计文件行数
tr ‘a-z’ ‘A-Z’ < /etc/passwd | cat -b
7.请用脚本非交互模式编写文件westos.file内容为:
vim westos.sh
cat > westos.file <<EOF
hello linux
hello westos
hello linux westos
linux is very nice !!
EOF
4.命令行获得帮助
whatis *** 如whatis rm ##查看命令的基本用途
若查看过程中出现 “rm:nothing' appropriatre' ” 用mandb 命令更新数据库
rm --help ##查看命令的基本用法
[] ##内容可加可不加
... ##内容个数任意
<> ##必须在命令执行时加入的元素
man
man rm
##命令用法详解 man是manual的缩写
man -k passwd
##passwd关键字有多少级别的man
##man的级别
##1 命令
##2 系统调用
##3 函数库调用
##4 特殊文件(设备文件等)
##5 文件
##6 游戏
##7 特殊的包
##8 系统管理命令
##9 内核信息规则
q ##退出
/关键字 ##搜索关键字,n向下匹配,N向上匹配
G ##快速移动到man的最后
g ##表示快速移动到man的最前