(二)查询系统帮助与查找文件或目录
help:
Help命令提供了对许多内部的Shell命令的在线帮助,并且help命令自身也属于Bash的内部命令。
#help
单独使用help命令可以获得它所提供帮助的命令列表
#help set
使用help命令后跟某命令作为参数,可获得该命令的详细帮助信息
#help help
获得自身的的帮助
#help �Cs set
该参数用于只显示被查询命令的简短语法描述
MAN:
使用man命令获得手册页帮助,不仅可以获得命令的帮助信息,还可以获得配置新闻公报,设备文件,协议等多种类型的信息
#man passwd > passwd.txt
重定向到文本文件进行编辑,但出现,UNIX帮助文件中的控制字符,这些控制字符就会变成难以识别的乱码.
#man passwd | col �Cb > passwd.txt
此命令可以解决乱码问题,表示过滤所有的控制字符,包括RLF和HRLF
#man set
手册页通常包含“NAME,DESCRIPTION,DILES,SEE ALSO”,使用q退出命令的交互界面。
#man man
查看自身的手册页
手册页的类型:man1 man2 man3 man4 man5 man6 man7 man8 man9,每种类型都有不同的含义。
Man1:普通用户的可执行命令手册
Man2:系统调用手册,内核函数的说明
Man3:子程序手册,库函数的说明
Man4:系统设备手册,“/dev”目录中设备文件的参考说明
Man5:配置文件格式手册,大多为“/etc”目录下各种配置文件的格式描述
Man6:游戏和趣味小程序的说明手册
Man7:协议转换手册,也包括一些杂项
Man8:系统管理工具手册,这些命令只可超级用户才可以执行
Man9:LINUX系统例程手册
Mann:TCL或TK命令
1, 手册页按照不同的类型被放在不同的目录下
#ls �Cd /usr/share/man/man?
2, 每个目录中都存放着对应类型的手册文件,手册文件大多为“。gz”压缩文件,命名规则为“手册名称。手册类型。gz”( hd.4.gz)
#ls /usr/share/man/man4
3, 使用“man N intro”命令可查看某类型手册页的说明,“N”为手册页的类型
#man 4 intro
4,如各类型中有同名的手册页,使用man命令时应先指定手册类型再指定手册名称。
#man 1 passwd
#man 5 passwd
INFO:
查看 texinfo格式的帮助文档,这种文件有更强的交互性,支持链接跳转功能,info文档存放在“/usr/share/info/目录中,该文档通常提供整个软件项目的帮助文档,而不是某命令或配置文件的帮助,所以不是所有的软件包都带有该文档。
#info
直接用info命令可获得系统中info文档的分类列表
#info set
指定文档名称作为info命令的参数可直接查看相应的文档,可使用方向键进行查看。
#pinfo
该命令查看文档列表,Pinfo命令提供了基于lynx浏览器风格的texinfo文档查看界面。
#pinfo set
查看指定文本,更增强了彩色显示文档,鼠标选定支持等功能。
#yelp
基于浏览器的程序,可以查看手册页和texinfo帮助文档,还可以查看联机帮助文档,同时有索引功能。
#makewhatis
建立whatis数据库,如果whatis命令执行失败,最可能是原因应是whatis数据库未建立或产生的问题
#whatis man
查询man的内容
#apropos man
和whatis命令类似,但比whatis命令详细
FIND
#find /etc �Cname passwd �Cprint
在特定的目录下查找显示,如果没有指定目录,则系统会以目前的目录作为查找的范围
#find /home �Camin 10
查找10分钟内访问的文件及目录
#find /home �Catime 10
查找10小时内访问的文件及目录
#find /home �Ccmin 10
查找10分钟内修改的文件及目录
#find /home �Cctime 10
查找10小时内修改的文件夹及目录
#find /home �Cuser root
查找由指定用户建立的文件或目录
#find /-name core �Cprint �Cexec rm �Crf {} \;
查找后执行指定的命令,当系统在执行程序过程中发生错误时值将残留在内存中的数据存成core文件,系统经过长期的执行后,这些文件的数量会越来越多,并且充斥在许多目录中.-exec 参数执行后面的命令,以\;结尾
#find /home �Cperm 600
查找特定权限的文件或目录
#find /etc �Csize +3500k �Cprint
查找特定大小的文件或目录
#locate �Cd /var/lib/slocate/slocate.db student
Locate 也要事先建立一个数据库,然后在这个数据库中查找,默认的数据库是/var/lib/slocate/slocate.db文件,查找速度比find快得多,但是它的实时性差
#whereis man
它只会在特定的目录中查找源代码,二进制文件或帮助文件,而不是所有类型的文件
#which ping find who reboot
它只会在环境变量$PATH指定的目录中查找符合条件的文件,所谓环境变量,是指系统在执行命令时首先尝试的目录,也就是说,如果命令保存在这些目录中,则在执行这些命令时并不需要指定命令位置,which命令可以一次查询多个文件的位置
GREP
Find,locate,whereis,which 等都无法得知文件中的内容,grep可以寻找包含指定字符串的文件,并显示出其文件名称,egrep它的执行速度比grep快,因为它使用较大的内存空间,fgrep的速度也比grep快,但是却比egrep节省内存,因为这三个命令的架构相当类似,因此大部分的对参数都可共享.
#grep �Cn ‘security issues’ /etc/*.*
查找包含指定字符串的文件,可以指定在多个文件中查找,但不可指定在目录中查找,否则会出错,字符数为两个以上时,要加’号,否则只会以第一个字符为查找目标,最后必须指定要搜索的文件.
#grep �Cn ‘come true’ ./*.* | wc
查找所出现字符串的行数,字数和字节数,n参数会在包含指定字符中的行前标出该行的行号
#grep �Cv ‘come true’ ./lyrics.txt
查找不含有指定字符串的内容
#ls �Cal /usr/bin |grep install
过滤前一命令执行的结果
从软件包的项目文档中获得帮助:
#ls /usr/share/doc/
项目文档的存放目录,项目文档的格式:html ps txts
LINUX自身的手册,或从网上下载帮助手册。