命令 命令所在路径 执行权限 功能描述 语法
which /usr/bin/which 所有用户 显示系统命令所在的目录和别名 which 命令
命令 命令所在路径 执行权限 功能描述 语法
whereis /usr/bin/whereis 所有用户 显示系统命令的目录和帮助文件 whereis 命令
Linux从PATH
定义的路径中找寻命令,所有命令不用麻烦打绝对路径echo $PATH
查看路径,:
隔开
命令 命令所在路径 执行权限 功能描述 语法
find /usr/bin/find 所有用户 查找文件或者目录 find 搜索路径 搜索关键字
find /etc -name init在目录/etc中查找文件init【*匹配任意字符,?匹配单个字符】
find / -size +204800在根目录下查找大于100MB的文件【100M=102400K=204800block】
find /home -user samlee根目录下查找所有者为samlee的文件
find /etc -ctime -1在etc目录下查找24小时内被修改过的文件和目录
find /etc -size +163840 -a -size -204800在etc目录下查找大于80M小于100M的文件和目录
a表示连接and 还有o(r)
find /etc -name initab -exec(-ok表示要询问) ls -l {} \;在etc目录下查找initab并显示详细信息
{}表示find查询的结果,\表示转义符,符号命令使用本身的含义
按照时间
1、天 ctime atime mtime
2、分钟cmin amin amin
c-change改变,表示文件属性被修改过,包括所有者、所属组、权限
a-access访问
m-modify表示文件内容被修改过
-之内 +超过 -少于
按照类型-type
-f表示二进制
-d表示目录
-l表示软链接
如果有些文件的名称很不标准,在删除或者查找的时候都不能用普通的方式,那么可以用i节点的方式
ls -i获取文件的i节点
find . -inum i节点数字
比如我们要删除当前目录的"a b"
find . -inum 16 -exec rm -rf {} \;就可以删除这个文件了,16是ls -i查到的文件的i节点
find【搜索范围】【搜索条件】
-name
按照文件名搜索-iname
文件名不区分大小写
按照权限搜索
Linux中的通配符
#find是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配的。
* 匹配任意内容(任意多个字符)
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
如find desktop/ -name "ab[cd]"
匹配abc或abd
按照所有者来搜索
-user
按照所有者搜索,如find /root -user root
是找root目录下所有者为root的文件-nouser
是找没有所有者的文件,如find /root -nonuser
是找root目录下没有所有者的文件
按照时间来搜索
find 【搜索范围】 -(X)time (+/-)时间
如find /root -mtime +10
是查找十天前修改的文件+10
10天前修改的文件10
10天当天修改的文件-10
10天内修改的文件atime
访问文件的时间ctime
改变文件属性的时间mtime
修改文件内容的时间
按照大小来搜索
find 【搜索范围】-size (+/-)X(k/M)
小写k
是kB,大写M
是MB
如find /root -size +10k
是查找root目录下大小大于10kB的文件
按照i节点来搜索
find 【搜索范围】-inum 【i节点号】
和ls -i 【文件名】
正好相反
多条件查询
find /root -size +20k -a -size -50k
查找20~50kB大小的文件find /root -size -20k -o -size +50k
查找小于20或者大于50kB的文件find /root -size +20k -a -size -50k -exec ls -lh {}\;
查找20~50kB的文件,并列出详细信息-exec/-ok 命令 {} \;
用来继续处理搜索到的文件find /root -inum 606838 -exec rm -rf {} \;
找到i节点号为606838的文件然后删除
命令 命令所在路径 执行权限 功能描述 语法
locate /usr/bin/locate 所有用户 寻找文件或者目录 locate 搜索关键字
locate 文件名
在后台数据库中按文件名搜索,速度更快
这个数据库是/var/lib/mlocate
,它的更新速率默认是一天一次,Linux版本的不同,名字不同,Mac下在/var/db/locate.datebase
可以使用updatedb
命令强制更新数据库,Mac下是sudo /usr/libexec/locate.updatedb
,根据距上次更新后更改的文件数目多少,速度不同
只能通过文件名来搜索
遵守/etc/updatedb.conf
配置文件里的筛选规则,所以即使你更新了数据库也不一定能locate到所要寻找的文件
命令 命令所在路径 执行权限 功能描述
updatedb /usr/bin/updatedb root 更新整个系统目录文件的数据库
命令 命令所在路径 执行权限 功能描述 语法
grep /bin/grep 所有用户 在文件中搜索字符串匹配的行并输出 grep【指定字符串】【源文件】
grep ftp /etc/services 在/etc/services中搜索ftp的行
find用于搜索文件,名字可以使用通配符匹配,可以使用-regex来指定使用正则
grep用于搜索文件内容,使用正则匹配
命令 命令所在路径 执行权限 功能描述 语法
man /usr/bin/man 所有用户 获取帮助信息 man【命令或者配置文件】
man ls查看命令的帮助信息
man services查看配置文件services的帮助信息
如果命令和配置文件同名,优先查看命令的帮助信息
man 5 passwd 就是查看passwd这个配置文件
默认是1,命令的帮助;5是配置文件的帮助;一共有9种。
命令 命令所在路径 执行权限 功能描述 语法
info /usr/bin/info 所有用户 获取帮助信息 info 任何关键字
info ls查看ls指令的帮助信息