搜索的命令或可执行文件的路径——which
#which 命令或可执行文件名——//搜索范围是环境变量path所包含的路径
ticy@ubuntu:~$ which passwd-------查找命令 passwd所在路径
/usr/bin/passwd
ticy@ubuntu:~$ which ifconfig-------查找命令 ifconfig所在路径
/sbin/ifconfig
ticy@ubuntu:~$ cd dir_xrw----查找可执行文件,需要先放到环境变量的某个目录下
ticy@ubuntu:~/dir_xrw$ ls
file file_r file-r file_rw file_rx file_w file_x
ticy@ubuntu:~/dir_xrw$ mv file_x /usr/bin/
mv: cannot move 'file_x' to '/usr/bin/file_x': Permission denied
ticy@ubuntu:~/dir_xrw$ su root
Password:
root@ubuntu:/home/ticy/dir_xrw# mv file_x /usr/bin/
root@ubuntu:/home/ticy/dir_xrw# which file_x
/usr/bin/file_x
PATH环境变量——定义系统搜索命令的路径
系统在执行脚本命令时需要绝对路径才能执行,定义PATH环境变量后就可以不用写绝对路径,系统自动到PATH环境变量中搜索命令的路径。如果是自己写的脚本,需要将脚本放到PATH环境变量下,这样,不需要写绝对路径就能能执行命令。
#whatis 命令名 ——//用于查询命令有什么功能
#whoami ——//查看当前用户是谁
搜索系统命令、配置文档及帮助文档所在路径——whereis
#whereis 命令名 ——//搜索范围是自己的数据库
选项:
-b——只查找可执行文件
-m——只查找帮助文件
root@ubuntu:/# whereis ping
ping: /bin/ping /usr/share/man/man8/ping.8.gz
root@ubuntu:/# whereis ifconfig
ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
模糊搜索包含文件名的路径——locate
#local 文件名 —— //搜索范围后台数据库,输出信息量大,可以用重定向查看
root@ubuntu:/# locate passwd
/etc/passwd
/etc/cron.daily/passwd
/etc/init/passwd.conf
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/security/opasswd
/usr/bin/gpasswd
/usr/bin/grub-mkpasswd-pbkdf2
/usr/bin/passwd
/usr/bin/smbpasswd
········
在系统当中搜索符合条件的文件名——Find
#find [搜索范围] [搜索条件] ——搜索文件名 避免大范围搜索,减少系统资源浪费
搜索条件
- -iname——不区分大小写搜索文件名
- -name——区分大小写搜索文件名
- -user——按照所有者搜索
- -group——按照所属组搜索
- -nouser——查找没有所有者的文件,一般是垃圾文件需要删除(内核产生 外来数据如U盘)
- -atime——按照文件被访问的时间搜索
- -ctime——按照改变文件属性状态的时间搜索
- -mtime——按照文件内容被修改的时间搜索
- -size——按照文件大小搜索(k是小写,M是大写,必须加单位)
- -inum——按照i节点大小搜索
#find /var/log/ -mtime [+-]数字——//查找某段时间修改的文件
- -10:10天内修改文件
- 10:前10天当天修改的文件
- 0:当天24小时内修改的文件
- +10:10天前修改的文件
#find /var/log/ -size 数字 ——//查找指定文件大小的文件
- -25k:小于25KB的文件
- 25k:等于25KB的文件
- +25k:大于25KB的文件
#find /etc -size +20k -a -size -50k——//查找/etc/目录下,大于20kB且小于50KB的文件
-a——and——逻辑与,两个条件都满足
-o——or——逻辑或,两个条件满足一个即可
root@ubuntu:/# find -name passwd--------搜索passwd的路径,完全匹配
./usr/share/doc/passwd
./usr/share/bash-completion/completions/passwd
./usr/share/lintian/overrides/passwd
./usr/bin/passwd
./etc/cron.daily/passwd
./etc/pam.d/passwd
./etc/passwd
root@ubuntu:/# find -name pass*------------使用通配符查找相关名称文件
./usr/share/plymouth/themes/ubuntu-logo/password-field16.png
./usr/share/help-langpack/en_GB/evince/password.page
./usr/share/doc/libnet-ssleay-perl/examples/passwd-cb.pl
./usr/share/doc/passwd/examples/passwd.expire.cron
root@ubuntu:/# find / -user tp----拥有者是tp的文件
find: ‘/proc/3176/fdinfo/5’: No such file or directory
find: ‘/run/user/1000/gvfs’: Permission denied
/var/tmp/file_r.swp
/home/ticy/dir_xrw/.file_rw.swp
/home/ticy/dir_xrw/.file_rx.swp
/home/ticy/dir_xrw/.file_w.swp
root@ubuntu:/# find / -nouser-----没有所属用户或组的文件
find: ‘/proc/3231/task/3231/fd/6’: No such file or directory
find: ‘/proc/3231/task/3231/fdinfo/6’: No such file or directory
find: ‘/proc/3231/fd/5’: No such file or directory
find: ‘/proc/3231/fdinfo/5’: No such file or directory
find: ‘/run/user/1000/gvfs’: Permission denied
字符串搜索命令——grep
#grep [选项] 字符串 文件名——//在文件当中匹配符合条件的字符串
选项:
- -i——忽略大小写
- -v——取反,排除指定字符串
#grep "牛客" 文件名 | wc -l ——//统计一个文件中"牛客"出现的行数
wc -l——统计行数
wc -w——统计单词数量
Find命令与grep命令的区别
Find命令是在系统当中搜索符合条件的文件名,如果需要匹配,使用通配符匹配,通配符是完全匹配。
Grep命令是在文件数据内容当中搜索符合条件的字符串,如果需要匹配,使用正则表达式进行匹配,正则表达式是包含匹配。