本文是教程第4章文件搜索命令和第5章帮助命令的笔记。
第4章 文件搜索命令
4-1 Linux中文件搜索命令locate
locate命令的特点:搜索速度比后面将要介绍的find命令快,但是缺点是只能搜索文件名。
locate命令的搜索范围:后台数据库(/var/lib/mlocate),这也是locate命令比find命令速度快的原因,它不用遍历整个操作系统。
这里有两点需要注意的:
- locate命令对应的后台数据库(/var/lib/mlocate)是每天一更新,也就是说,一天以内新建的文件用locate命令是找不到的,不过,可以使用updatedb这条命令及时进行后台数据库的更新;
- locate的搜索范围可以在/etc/updatedb.conf这个配置文件中进行配置。
4-2 Linux中的命令搜索命令——whereis和which
whereis:搜索系统命令对应的可执行文件所在的路径及帮助文档所在的位置。选项:-b表示只查找可执行文件,-m表示之查找帮助文件。比如:
whereis -b ls
which:用法与whereis类似,区别在于which可以看到系统命令的别名而却看不到帮助文档的位置。
这里有两点需要注意的:
- 通过whereis和which两个命令看到的都是外部命令的位置,所以像cd这种shell自带的命令是无法看到其位置的;
$PATH
的作用:定义系统搜索命令的路径。命令其实是一些可执行文件,而运行命令要使用绝对路径(比如:ls本来应为/bin/ls),但因为/bin已经被添加到$PATH
中,所以当输入ls的时候,系统会自动在/bin/中搜索。
4-3 Linux中的find命令
find命令相对于locate命令,优势在于能够用多种格式进行搜索,但是由于是直接在系统中进行搜索而非在后台数据库中,所以速度比locate要慢。
find命令格式:find [搜索范围] [搜索条件]
EX:find / -name install.log
关于find命令有下面两点需要注意:
- 尽量避免大范围的搜索,否则极耗系统资源;
- find是在系统中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配(即上面的find / -name install.log命令,只能找到/root/install.log而不能找到/root/install.log.syslog,但是locate则可以)。
Linux中的通配符:
- *:匹配任意内容;
- ?:匹配任意一个字符;
- []:匹配任意一个括号中的字符。
EX:find /root -name “ab?” 以及 find /root -name “ab[cd]” (后面的一句命令匹配的是名为abc或者abd的文件)
关于find命令的一些说明:
- 加上“i”表示不区分大小写:-iname;
- 按所有者搜索:find /root -user root;
- 查找没有所有者的文件:find /root -nouser;
没有所有者的文件除了下面的两种情况,其它的一般都是垃圾文件,可以进行清除:- 内核产生的文件;
- 外来文件(如U盘等)。
- 按时间搜索文件:find /var/log/ -mtime +10
header 1 | header 2 |
---|---|
-10 | 10天内修改的文件 |
10 | 10天前当天修改的文件 |
+10 | 10天之前修改的文件 |
header 1 | header 2 |
---|---|
atime | 按文件访问时间搜索 |
ctime | 按改变文件属性的时间搜索 |
mtime | 按修改文件内容的时间进行搜索 |
- 查找特定size的文件:find . -size 25k (其中k为小写,表示查找大小为25KB的文件,同样可以使用+和-);
- 查找特定i节点的文件:find . -inum 262422(ls -i则是查看特定目录下的文件的i节点);
- 表示逻辑与、逻辑或:-a、-o (find /etc -size +20k -a -size -50k);
- 用后一条命令对前一条命令得到的结果进行处理:-exec
EX:find /etc -size +20k -a -size -50k -exec ls -lh {} ; (查找/etc/文件夹下面,大于20KB且小于50KB的文件并显示它们的详细信息,注意:“{} ;”是固定跟在 -exec 后面的)。
第5章 帮助命令
5-1 Linux中 帮助命令
最常见的帮助命令:man(man是manual手册的意思)。
EX:man ls (查看帮助信息的时候"/“可以用于搜索关键字,比如”/-d"可以用来搜索"-d"这一关键字,而n键可以用来查找下一个,shift+n键可以查找上一个)。
关于man命令的一些选项:
- man命令有1-9九个不同的帮助级别,可以使用"man -f 命令"(相当于"whatis 命令")来查看对应的命令有几个帮助级别。
EX:man -f ls - 查看和指定命令相关的所有帮助:“man -k 命令”(相当于"apropos 命令")
EX:"man -k passwd"能查找出帮助文档中含有"passwd"这一关键词的所有命令(例如当要查找smbpasswd的帮助信息,但是只是大概记得这个命令与passwd相关的时候,就可以使用man -k passwd这种方式,这样的话同时也能够查找到smbpasswd)。
5-2 Linux中 其他帮助命令
- 仅仅获取命令的选项帮助:命令 --help;
- 获取shell内部命令的帮助信息:help shell内部命令;
如何区分外部命令与内部命令:可以使用whereis命令,外部命令能够看到命令的可执行文件的位置,而内部命令则看不到; - 查看命令的详细帮助信息:info 命令。
一般,比较常用的是"man"和"–help"。