一、命令搜索命令whereis和which1。whereis命令搜索命令的路径和帮助文档的位置选项-b:只查找可执行文件-m:要么查找帮助文件2.which命令搜索命令的位置和别名3.扩展whatis查询what命令执行的功能2.文件搜索命令locate1。简介locate(定位)命令用于查找文件或目录。locate命令比find-name快得多,因为它不搜索特定目录,而是搜索数据库/var/lib/mlocate/mlocate.db。该数据库包含所有本地文件信息。Linux系统自动创建这个数据库,每天自动更新一次。因此,我们在使用whereis和locate查找文件的时候,有时会发现已经删除的数据,或者刚刚创建的文件,但是找不到。原因是数据库文件没有更新。为避免这种情况,您可以在使用locate之前使用updatedb命令手动更新数据库。整个locate工作实际上由四部分组成:/usr/bin/locate命令文件定位/usr/bin/updatedb更新数据库命令/etc/updatedb.confupdatedb配置文件/var/lib/mlocate/mlocate.db存储文件信息的文件,即locate命令查找使用的数据库2.updatedb的配置文件/etc/updatedb.conf[vagrant~]]$cat/etc/updatedb.confPRUNE_BIND_MOUNTS="yes"#PRUNENAMES=".git.bzr.hg.svn"PRUNEPATHS="/tmp/var/spool/media/home/.ecryptfs"PRUNEFS="NFSnfsnfs4rpc_pipefsafsbinfmt_miscprocsmbfsautofsiso9660ncpfscodadevptsftpfsdevfsmfs使用shdfssysfstbscifsfsfustglusterfsfuse.sshfscurlftpfsecryptfsfusesmbdevtmpfs"PRUNE_BIND_MOUNTS="yes"当值为"yes"时,开启搜索限制,下面配置生效;为“no”时,关闭搜索限制PRUNEFS搜索时,忽略文件系统PRUNENAMES搜索时,忽略文件类型PRUNEPATHS搜索时,忽略文件路径3.命令格式locate[option][filename]4.常用选项“locate-c”查询指定文件的个数。(c表示计数)“locate-e”仅显示当前存在的文件条目。(e表示存在)“locate-h”显示“locate”命令的帮助信息。(h表示帮助)“locate-i”在搜索时忽略大小写差异。(i表示忽略)"locate-n"最大显示项数"最多显示查询到的"最大显示项数"的内容。"locate-r"使用正则表达式作为搜索条件。(r是regexp的意思)3、文件搜索命令find1。命令格式find[搜索范围][搜索条件]2.按文件名查找文件find-name#不区分大小写find-iname查找具有指定文件名的文件。如果需要匹配,使用通配符进行匹配。通配符与Linux中的通配符完全匹配。*匹配任意数量的字符?匹配任何字符[]匹配括号中的任何字符3.按所有者查找文件find-user4.查找没有所有者的文件find-nouser5。按时间查找文件find-mtime+10参数说明atime文件访问时间ctime文件属性修改时间mtime文件内容修改时间-1010天内修改的文件10当天修改的文件10天+1010天内修改的文件ago示例:查找30天前的日志文件[vagrant~]]$find/var/log-mtime+30/var/log/php5-fpm.log.10.gz/var/log/redis/redis-server.log.5.gz/var/log/redis/redis-server.log.6.gz/var/log/redis/redis-server.log.9.gz/var/log/redis/redis-server.log.12.gz/var/log/redis/redis-server.log.10.gz/var/log/redis/redis-server.log.11.gz/var/log/redis/redis-server.log.8.gz/var/log/redis/redis-server.log.7.gz/var/log/php5-fpm.log.5.gz/var/log/unattended-upgrades/var/log/unattended-upgrades/unattended-upgrades-shutdown.log/var/log/mongodb/mongodb.log.6.gz/var/log/mongodb/mongodb.log.8.gz/var/log/mongodb/mongodb.log.5.gz/var/log/mongodb/mongodb.log.7.gz/var/log/mongodb/mongodb.log.9.gz/var/log/mongodb/mongodb.log.10.gz/var/log/dpkg.log.7.gz/var/log/dpkg.log.2.gz6。按文件大小查找文件find-size参数说明(注意大小写)filesize:-25k小于25kb的文件25k等于25kb的文件+25k大于25kb的文件+100M大于100M的文件7.通过i-nodefind-inum8查找文件。进阶应用find/etc-size+20k-a-size-50k查找/etc/目录下大于20kb小于50kb的文件-a与逻辑与,两个条件都满足-o或者逻辑或,两个条件可以找到/etc-size+20k-a-size-50k-execls-lh{}\;查找/etc/目录下大于20kb小于50kb的文件,并显示这些文件的详细信息--execls-lh{}\,对查找结果进行ls-lh操作find/etc-size+20k-a-size-50k-execrm-rf{}\;查找/etc/目录下,大于20kb小于50kb的文件,并删除这些文件--execrm-rf{}\,对搜索结果进行rm-rf操作find./-size0k-typef-execrm-rf{}\;查找当前目录下所有空文件并删除字符串选项-r目录递归搜索-a不忽略二进制数据-i忽略大小写-v排除指定字符串-E设置模板样式为扩展普通的表示法,这意味着可以使用扩展的正则表达式2.在文件中搜索匹配pattern的内容grep-Epatternfilesinstance在.bash开头的文件中搜索匹配d.?f的内容[vagrant~]]$lltotal96K-rw--------1vagrantvagrant9.7KMay808:04.bash_history-rw-r--r--1vagrantvagrant220Jul212015.bash_logout-rw-rw-r--1vagrantvagrant99Sep272016.bash_profile-rw-rw-r--1vagrantvagrant4.7K2017年5月3日.bashrcdrwx------2vagrantvagrant4.0KMar3001:17.ssh/drwxrwxr-x4vagrantvagrant4.0K2016年9月26日.vim/-rw-rw-r--1vagrantvagrant15KApr2510:27.viminfo-rw-rw-r--1vagrantvagrant6.1K2016年10月9日.vimrc[vagrant~]]$grep-aE"d.?f".bash*.bash_history:vimdefault.bash_history:ps-df.bashrc:#默认关闭以不分散用户注意力:终端窗口中的焦点.bashrc:#别名定义.3.在文件夹内容中递归搜索匹配模式grep-rpatterndirinstance在/etc/php/[vagrant~]]$sudogrep-r"max_children"/etc/php//etc/php/7.2中搜索"max_children"/fpm/pool.d/www.conf:;static-子进程的固定数量(pm.max_children);/etc/php/7.2/fpm/pool.d/www.conf:;pm.max_children-可以/etc/php/7.2/fpm/pool.d/www.conf:的最大孩子数:;pm.max_children-/etc/php/7.2/fpm/pool.d/www.conf:pm.max_children=54的最大children数量。grep-Epatterninstanceoutputfromps-ef结果匹配"b.*h"[vagrant~]]$ps-ef|grep-E"b.*h"root92000:23?00:00:00[rcu_bh]root4311000:23?00:00:00dhclient-1-v-pf/run/dhclient.eth0.pid-lf/var/lib/dh??cp/dhclient.eth0.leaseseth0root11171000:23?00:00:11/usr/sbin/VBoxService--pidfile/var/run/vboxadd-service.shroot14331000:23?00:00:00/usr/sbin/sshd-Dvagrant26622661008:07pts/000:00:00-bashvagrant36952662009:23pts/000:00:00grep--color=auto-Eb.*h5。grep命令和find命令的区别grep命令:在文件中搜索符合条件的字符串,如果需要匹配,使用正则表达式匹配,正则表达式是包含关系find命令:在系统中搜索符合条件的文件名。如果需要匹配,则使用通配符进行匹配。通配符是精确匹配。6.实际应用根据文件内容查找文件在/etc/php/目录下查找包含“max_children”的文件sudogrep-r"max_children"/etc/php/sudofind/etc/php/-typef-name'*'|sudoxargsgrep"max_children"去掉配置文件中的注释和空行,生成新的配置文件cat/etc/redis/redis.conf|grep-v"#"|grep-v"^$">/etc/redis/redis6379.conf