一、帮助命令
1.man命令
man是最常见的帮助命令,也是Linux中最主要的帮助命令
- 命令名称:man
- 英文原意:format and display the on-line manual pages
- 所在路径:/usr/bin/man
- 执行权限:所有用户
- 功能描述:显示联机帮助手册
1.1命令格式
man [选项] 命令
选项:
-f:查看命令拥有哪个级别的帮助,或whatis命令
-k:查看命令相关的所有帮助,或apropos命令
1.2man命令的快捷键
快捷键 | 作用 |
---|---|
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
g | 移动到第一页 |
G | 移动到最后一页 |
q | 退出 |
/字符串 | 从当前页向下搜索字符串 |
?字符串 | 从当前页向上搜索字符串 |
n | 当搜索字符串时,可以使用n键找到下一个字符串 |
N | 当搜索字符串时,使用N键反向查询字符串。也就是说,如果使用“/字符串”方式搜索,则N键表示向上搜索字符串;如果使用“?字符串”方式搜索,则键表示向下搜索字符串 |
1.3man命令的帮助级别
级别 | 作用 |
---|---|
1 | 普通用户可以执行的系统命令和可执行文件的帮助 |
2 | 内核可以调用的函数和工具的帮助 |
3 | C语言函数的帮助 |
4 | 设备和特殊文件的帮助 |
5 | 配置文件的帮助 |
6 | 游戏的帮助(个人版的Linux中是有游戏的) |
7 | 杂项的帮助 |
8 | 超级用户可以执行的系统命令的帮助 |
9 | 内核的帮助 |
2.info命令
info命令是帮助信息的一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一个小章节
快捷键 | 作用 |
---|---|
上箭头 | 向上移动一行 |
下箭头 | 向下移动一行 |
PgUp | 向上翻一页 |
PgDn | 向下翻一页 |
Tab | 在有“*”符号的节点间进行切换 |
回车 | 进入有“*”符号的子页面查看详细帮助信息 |
u | 进入上一层信息(回车是进入下一层信息) |
n | 进入下一小节信息 |
p | 进入上一小节信息 |
? | 查看帮助信息 |
q | 退出info信息 |
3.help命令【几乎不用】
help只能获取Shell内置命令的帮助
- 命令名称:help
- 英文原意:help
- 所在路径:Shell内置命令
- 执行权限:所有用户
- 功能描述:显示Shell内置命令的帮助。可以使用type命令来区分内置命令与外部命令
shell是Linux的命令解释器。
4.--help
绝大多数命令都可以使用“--help”选项来查看帮助,这也是一种获取帮助的方法
ls --help
这种方法非常简单,输出的帮助信息基本上是man命令的信息简要版
二、搜索命令
1.whereis命令
whereis是搜索系统命令的命令(像绕口令一样),也就是说,whereis 命令不能搜索普通文件,而只能搜索系统命令
- 命令名称:whereis
- 英文原意:locate the binary, source, and manual page files for a command
- 所在路径:/usr/bin/whereis
- 执行权限:所有用户
- 功能描述:查找二进制命令、源文件和帮助文档的命令
2. which 命令
which也是搜索系统命令的命令。和whereis命令的区别在于:
- whereis命令可以在查找到二进制命令的同时,查找到帮助文档的位置
- 而which命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令
3.locate命令
3.1基本用法
locate命令才是可以按照文件名搜索普通文件的命令
- 优点:按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db
- 缺点:只能按照文件名来搜索文件,而不能执行更复杂的搜索,比如按照权限、大小、修改时间等搜索文件
locate命令的基本信息如下
- 命令名称:locate
- 英文原意:find files by name
- 所在路径:/usr/bin/locate
- 执行权限:所有用户
- 功能描述:按照文件名搜索文件
3.2配置文件
vi /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes" #开启搜索限制,也就是让这个配置文件生效
PRUNEFS = "……" #在locate执行搜索时,禁止搜索这些文件系统类型
PRUNENAMES = "……" #在locate执行搜索时,禁止搜索带有这些扩展名的文件
PRUNEPATHS = "……" #在locate执行搜索时,禁止搜索这些系统目录
4.find命令
- 命令名称:find
- 英文原意:search for files in a directory hierarchy
- 所在路径:/bin/find
- 执行权限:所有用户
- 功能描述:在目录中搜索文件
4.1按照文件名搜索
find 搜索路径 [选项] 搜索内容
选项:
-name:按照文件名所搜
-iname:按照文件名搜索,不区分文件名大小写
-inum:按照inode号搜索
4.2按照文件大小搜索
find 搜索路径 [选项] 搜索内容
选项:
-size[+|-]大小:按照指定大小搜索文件
这里“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文件
find命令的单位:
size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
‘b’ for 512-byte blocks (this is the default if no suffix is used)
# 这是默认单位,如果单位为b或不写单位,则按照512Byte搜索
‘c’ for bytes
# 搜索单位是c,按照字节搜索
‘w’ for two-byte words
# 搜索单位是w,按照双字节(中文)搜索
‘k’ for Kilobytes (units of 1024 bytes)
# 按照kb单位搜索,必须是小写的k
‘M’ for Megabytes (units of 1048576 bytes)
# 按照MB单位搜索,必须是大写的M
‘G’ for Gigabytes (units of 1073741824 bytes)
# 按照GB单位搜索,必须是大写的G
4.3按照修改时间搜索
Linux中的文件有访问时间(atime) 、数据修改时间( mtime)、状态修改时间(ctime) 这三个时间,我们也可以按照时间来搜索文件。
find 搜索路径 [选项] 内容
选项:
-atime [+|-]时间:按照文件访问时间搜索
-mtime [+|-]时间:按照文件数据修改时间搜索
-ctime [+|-]时间:按照文件状态修改时间搜索
这三个时间的区别我们在stat命令中已经解释过了,这里用mtime数据修改时间来举例,重点说说“[+-]”时间的含义
- -5:代表5天内修改的文件
- 5:代表前5~6天那一天修改的文件
- +5:代表6天前修改的文件
4.4按照权限搜索
find 搜索路径 [选项] 内容
选项:
-perm:权限模式,查找文件权限刚好等于“权限模式”的文件
-perm:-权限模式,查找文件权限全部包含“权限模式”的文件
-perm:+权限模式,查找文件权限包含“权限模式”的任意一个权限的文件
4.5按照所有者和所属组搜索
find 搜索路径 [选项] 内容
选项:
-uid用户id:按照用户id查找所有者是指定id的文件
-gid组id:按照组id查找所属组是指定id的文件
-user用户名:按照用户名查找所有者是指定用户的文件
-group组名:按照组名查找所属组是指定用户组的文件
-nouser:查找没有所有者的文件
- 按照所有者和所属组搜索时,“ -nouser”选项比较常用,主要用于查找垃圾文件
- 只有一种情况例外,那就是外来文件。比如光盘和U盘中的文件如果是由Windows复制的,在Linux中查看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者
4.6按照文件类型搜索
find 搜索路径 [选项] 搜索内容
选项:
-type d:查找目录
-type f:查找普通文件
-type l:查找软连接文件
4.7逻辑运算符
find 搜索路径 [选项] 搜索内容
选项:
-a:and逻辑与
-o:or逻辑或
-not:not逻辑非
4.8其他选项
- -exec选项
find 搜索路径 [选项] 内容 -exec 命令2 {} \;
# 把find命令的结果交给由“-exec”调用的命令2来处理
# {}代表find命令的查找结果
- -ok选项
“-ok”选项和“-exec”选项的作用基本一致,区别在于:“-exec”的命令2会直接处理,而不询问;“-ok” 的命令2在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行
5.grep命令:补充命令
grep的作用是在文件中提取和匹配符合条件的字符串行
grep [选项] “搜索内容” 文件名
选项:
-i:忽略大小写
-n:输出行号
-v:反向查找
--color = auto:搜索出关键字用颜色表示
find也是搜索命令,那么find命令和grep命令有什么区别呢?
-
find命令
find命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配。搜索时文件名是完全匹配的(find 命令可以通过-regex选项,把匹配规则转为正则表达式规则,但是不建议如此) -
grep 命令
grep命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配。搜索时字符串是包含匹配的。 -
通配符与正则表达式的区别
通配符:用于匹配文件名,完全匹配
通配符 | 作用 |
---|---|
? | 匹配任意一个字符 |
* | 匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
[] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符 |
正则表达式:用于匹配字符串,包含匹配
正则表达式 | 作用 |
---|---|
? | 匹配前一个字符重复0次或1次 |
* | 匹配前一个字符重复0次,或任意多次 |
[] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c |
[-] | 匹配中括号中任意一个字符,-代表一个范围。例如[a-z]代表匹配一个小写字母 |
[^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
6.管道符:补充命令
命令格式:命令1|命令2
命令1的正确输出作为命令2的操作对象
6.1例1
我们经常需要使用“ll”命令查看文件的长格式,不过在有些目录中文件众多比如/etc/目录,使用“ll”命令显示的内容就会非常多,只能看到最后的内容,而不能看到前面输出的内容。这时我们马上想到more命令可以分屏显示文件内容
ll -a /etc/ | more
6.2例2
我想在ll /etc/的结果中搜索yum的文件名,应该使用find命令还是grep命令?
6.3例3
netstat命令(CentOS7中,需要安装net-snmp.x86_64,net_tools.x86_64两个包才有此命令。7.5系统中已经自动安装)格式如下:
netstat [选项]
选项:
-a:列出所有网络状态,包括Socket程序
-c秒数:指定每隔几秒刷新一次网络状态
-n:使用IP地址和端口号显示,不使用域名与服务器
-p:显示PID和程序名
-t:显示使用TCP协议端口的连接状况
-u:显示使用UDP协议端口的连接状况
-l:仅显示监听状态的连接
-r:显示路由表