5 Linux 常用命令(四)搜索命令
5.1 whereis命令
whereis是搜索系统命令的命令,也就是说,whereis命令不能搜索普通文件,而只能搜索系统命令。其基本信息如下。
-
命令名称:whereis。
-
英文原意:locate the binary, source, and manual page files for a command。
-
所在路径:/usr/bin/whereis。
-
执行权限:所有用户。
功能描述:查找二进制命令、源文件和帮助文档的命令。
示例:
5.2 which命令
which命令的基本信息如下。
-
命令名称:which。
-
英文原意:shows the full path of (shell) commands。
-
-
执行权限:所有用户。
功能描述:列出命令的所在路径。
示例:
5.3 find命令
find命令的基本信息如下。
-
命令名称:find。
-
英文原意:search for files in a directory hierarchy。
-
所在路径:/bin/find。
-
执行权限:所有用户。
功能描述:在目录中搜索文件。
示例:
5.4 grep命令:补充命令
grep的作用是在文件中提取和匹配符合条件的字符串行。
-
命令名称:grep
-
英文原意:Extract string information from file
-
所在路径: /usr/bin/grep
-
执行权限:所有用户
功能描述:提取文件中的字符串信息
示例:
5.5 管道符:补充命令
命令格式: 命令1 | 命令2,命令1的正确输出作为命令2的操作对象
示例:
5.6 命令的别名:补充命令
命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的。
-
命令名称:alias
-
英文原意:Alias for the command
-
所在路径: /usr/bin/alias
-
执行权限:所有用户
功能描述:命令的别名。
示例:
5.7 常用快捷键:补充命令
| 快捷键 | 作用 |
|---|---|
| Tab键 | 命令或文件补全 |
| Ctrl+A | 把光标移动到命令行开头 |
| Ctrl+E | 把光标移动到命令行结尾 |
| Ctrl+C | 强制终止当前的命令 |
| Ctrl+L | 清屏,相当于clear命令 |
| Ctrl+U | 删除或剪切光标之前的命令 |
| Ctrl+Y | 粘贴ctrl+U剪切的内容 |
5.8 which和whereis的区别
-
whereis命令可以在查找到二进制命令的同时,查找到帮助文档的位置;
-
而which命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。
5.9 find命令和grep命令的区别
-
find命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,通配符是完全匹配(find命令可以通过-regex选项,把匹配规则转为正则表达式规则,但是不建议如此)。
-
grep命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配,正则表达式是包含匹配。
5.10 通配符和正则表达式
通配符:用于匹配文件名,完全匹配
| 通配符 | 作用 |
|---|---|
| ? | 匹配一个任意字符 |
| * | 匹配0个或任意多个任意字符,也就是可以匹配任何内容 |
| [] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c |
| [-] | 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
| [^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,0-9代表匹配一个不是数字的字符 |
正则表达式:用于匹配字符串,包含匹配
| 正则符 | 作用 |
|---|---|
| ? | 匹配前一个字符重复0次,或1次(?是扩展正则,需要使用egrep命令) |
| * | 匹配前一个字符重复0次,或任意多次 |
| [] | 匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是a,或者是b,或者是c |
| [-] | 匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母 |
| [^] | 逻辑非,表示匹配不是中括号内的一个字符。例如,^0-9代表匹配一个不是数字的字符 |
| ^ | 匹配行首 |
| $ | 匹配行尾 |