一、which
1.功能
脚本文件的查找、查找执行文件,which命令是根据PATH这个环境变量所规范的路径去查找执行文件的文件名 echo $PATH
which [-a] filename …
2.相关选项
-a:将所有由PATH目录中可以找到的命令均列出来,而不止第一个被找到的命令名称
二、whereis
1.功能:
查找一个命令的二进制、源代码和手册页文件
2.特点:
whereis是在某些特定的目录下查找,查找速度较快
whereis显示的内容包含:/bin/sbin下面的执行文件,该可执行文件的头文件、以及/usr/share/man下面的man page文件
3.格式:
whereis [options] [-BMS directory… -f] name…
4.相关选项:
-l:可以列出whereis会去查询的几个主要目录(这个属性似乎已经不再使用)
-b:只找二进制(binary)格式的文件
-s:只找source源文件
-m:只找在说明文件manual路径下的文件
-u:查找不在上述3个项目当中的其它特殊文件
三、locate
四、updatedb
五、find
1.功能:
查找符合条件的文件、目录
2.特点:
find不常用,因为find直接去硬盘内查找文件,速度慢,而且影响硬盘的性能
但是find的功能很强大
3.格式:
如果没有指定目录,默认从当前路径查找
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [starting-point…] [expression]
4.例子
时间选项
-atime:查询关于读取时间的
-ctime:查询关于状态时间的
-mtime:查询关于修改时间的
find /mnt ‐cmin +10 # 查找/mnt中十分钟以上修改的
find /mnt ‐cmin ‐10 # 查找/mnt中十分钟以内修改的
find /mnt ‐ctime 10 # 查找/mnt中十天左右修改的
+3代表大于等于4天前的文件:find -mtime +3
-3代表小于等于3天内的文件:find -mtime -3
3代表3-4那一天内的文件:find -mtime 3
查找现在开始到24小时前之间的:find / -mtime 0
查找3天前的那一天24小时内的:find / -mitme 3
与使用者或用户名有关的参数
-uid n:n为拥有者的账号ID(即UID,是记录在/etc/passwd里面与账号名称对应的数字)
-gid n:n为用户组名称的ID(即GID,是记录在/etc/group里面与用户组名称对应的数字)
-user name:查找拥有者名称为name的文件
-group name:查找用户组名称为name的文件
-nouser:查找文件中的拥有者不在/etc/passwd中的文件
-nogroup:查找文件中的用户组不在/etc/group中的文件
-nouser、-nogroup这两个选项常用于:查找系统中某个账号删除了但是还存放了很多残留文件。或者当你自行安装软件、下载文件时,该软件、文件的属性当中并没有文件拥有者
find / -nouser
find /home -user dongshao
与文件权限、名称有关的参数
-name filename:查找文件名称为filename的文件
-size [±]SIZE:查找比SIZE大(+)或者小(-)的文件。SIZE的规格有:c代表Bytes,k代表1KB,M代表1MB
-type TYPE:查找文件类型为TYPE的,TYPE的类型有:一般文件(f),设备文件(b,c),目录(d),链接文件(l),socket(s),FIFO§等
-perm mode:查找文件权限恰好等于mode的文件,mode类似于chmod的属性值
-perm -mode:查找文件权限囊括mode的文件。例如:-perm -0744(-rwxr–r--),那么-rwsr-xr-x也会被列出来,因为-rwsr-xr-x囊括了0744在内
-perm /mode:查找文件权限包括任一mode的文件。例如:-perm /755(-rwxr-xr-x),那么-rw-------也会被列出来哦,因为-rw-------包括rw在内
find / -type s
查找文件属性囊括---s--s--t在内的文件:
find / -perm -7000
find /usr/bin -perm /7000 -exec ls -l {} \;
find ~/ -size +10M
-mtime n :代表n天之前的[一天之内]被修改过内容的文件
-mtime +n :代表n天之前(不含n天本身)被修改过内容的文件
-mtime -n :代表n天之内(包含n天本身)被修改过内容的文件
如果n为0,代表目前的时间
六、grep
1.相关选项:
-a:将二进制文件以文本文件的形式查看
-c:计算出找到的’查找字符’的个数,总共有多少行(是行数,不是个数)
-i:忽略文件中的大小写
-v:反向选择,即输出没有‘查找字符’的那一行
–color=auto:可以将找到的关键字部分加上颜色显示,这是默认的参数
-A:后面接数字。代表除了有查找字符的那一行外,前面多少行也显示出来(after)
-B:后面接数字。代表除了有查找字符的那一行外,后面多少行也显示出来(before)
-r:递归查找,用于目录中的递归查找
-n:将查找到的内容加上行号
-w:全字匹配,只查找指定的字符串
-C n:打印匹配行的前后n行
grep -rn “abc” * | more
grep -n “abc” 1.txt
反向选择,把demo.txt文件中不含有’the’的行显示出来
grep -vn ‘the’ demo.txt
使用ls查看/etc目录下的内容,然后使用grep筛选出以’l’开头的行,即查看链接文件(因为文件权限前面为’l’代表这个文件为链接文件)
grep “Admin sess” -r .