查找命令
1、 which:用于查找文件及命令所在的路径(较少)
这里的路径是指在环境变量$PATH设置的目录里查找符合条件的文件
语法
which 命令
案例
查看tar所在路径
[root@root etc]# which tar
/usr/bin/tar
2、 whereis:用于命令及帮助文档所在所在的路径(较少)
语法
whereis [参数] [命令]
参数:
- -b 只查找二进制文件。
- -f 不显示文件名前的路径名称。
- -m 只查找说明文件。
- -s 只查找原始代码文件。
- -u 查找不包含指定类型的文件。
案例
查看ls的路径
[root@root etc]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@root etc]# whereis -b ls
ls: /usr/bin/ls
[root@root etc]# whereis -m ls
ls: /usr/share/man/man1/ls.1.gz
[root@root etc]# whereis -s ls
ls:[root@root etc]#
3、 locate:在文件资料库中查找文件(较少)
查找范围仅限于文件资料库,范围较小无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻
注:
1./tmp目录不属于文件资料库范围
2.由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
语法
locate[参数] [ 文件名]
参数
- -q 不会显示任何错误讯息。
- -o 指定资料库存的名称。
- -i 忽略大小写
4、 grep:过滤查找
4.1 基本用法
语法
grep [参数] [查找条件] [查找源文件]
参数:
-
-v 排除指定字符,即显示不包含匹配文本的所有行。
-
-n : 列出该行的列数编号。
-
-q 不显示任何信息。
-
-s 不显示错误信息。
-
-r 递归查找。
案例
在hello.java文件中查找含有hello的行
[root@root itbestboy]# grep -n hello hello.java
1:hello everyone!!!!!
[root@root itbestboy]#
4.2 升级用法
grep 经常和管道符 | 一起使用,表示将前一个命令的处理结果传递给后面的命令处理。
语法
命令操作 | grep [参数] [查找条件]
参数:
- -v 排除指定字符,即显示不包含匹配文本的所有行。
- -n : 列出该行的列数编号。
- -q 不显示任何信息。
- -s 不显示错误信息。
- -r 递归查找。
案例
查看helloTwo.java中hello所在的行,并且输出行数,不区分大小写。
[root@root test02]# cat helloTwo.java | grep -ni hello
1:hello everyone!!!!!
2:HELLOW JAVA PYTHON
5:HELLO
[root@root test02]#
5、 find
find查看是linux中使用最多的一种查找,查找范围十分广泛,相应的查找速度就没那么快了,在使用find查找时,大致可以分为6中情况。
基本语法
find [参数] [查找范围] [查找条件]
5.1 根据文件的大小查找
语法和上面的一样,所使用的参数为
-
-size n : 文件大小,单位为数据块
-
- +n :大于n
- -n :小于n
-n: 等于n
注:1数据块 =512字节 =0.5KB,故1KB等于2数据块
案例
查找当前目录小文件大于200MB的文件
200MB=204800KB=409600块
#在查找大于200MB的没有
[root@root itbestboy]# find -size +409600
#改为查找大于100MB的没有
[root@root itbestboy]# find -size +204800
./jdk-8u221-linux-x64.rpm
5.2 根据文件的所属主和所属组查找
语法和上面的一样,所使用的参数为
-
-user 文件所属主
-
- group 文件所属组
案例
1.查找当前目录下文件的所属主为anmious的文件
#查看当前目录下文件的详细信息
[root@root itbestboy]# ll
total 186540
drwxr-xr-x 9 root root 4096 Jul 3 22:25 apache-tomcat-9.0.4
-r--rw-rw- 1 anmious 2021 20 Jul 27 00:43 hello.java
#查找当前目录下文件的所属主为anmious的文件
[root@root itbestboy]# find -user anmious
./hello.java
2.查找当前目录下文件的所属组为2021的文件
#查看当前目录下文件的详细信息
[root@root itbestboy]# ll
total 186540
drwxr-xr-x 9 root root 4096 Jul 3 22:25 apache-tomcat-9.0.4
-r--rw-rw- 1 anmious 2021 20 Jul 27 00:43 hello.java
#查找当前目录下文件的所属组为2021的文件
[root@root itbestboy]# find -group 2021
./hello.java
5.3 根据文件或目录名查找
语法和上面的一样,所使用的参数为
- -name 不区分大小写
- -iname 区分大小写
注:在这里可以使用一些通配符
- 星(*)代表所有
- 问号(?) 代表单个字符
案例
1在/home/itbestboy/目录中查找所有以ap开头的文件
[root@root /]# find /home/itbestboy/ -iname ap*
/home/itbestboy/apache-tomcat-9.0.48.tar.gz
/home/itbestboy/apache-tomcat-9.0.48
/home/itbestboy/apache-tomcat-9.0.48/work/Catalina/localhost/ROOT/org/apache
/home/itbestboy/apache-tomcat-9.0.48/webapps/docs/appdev
/home/itbestboy/apache-tomcat-9.0.48/webapps/docs/apr.html
/home/itbestboy/apache-tomcat-9.0.48/webapps/docs/api
/home/itbestboy/apache-tomcat-9.0.48/webapps/examples/WEB-INF/jsp/applet
/home/itbestboy/apache-tomcat-9.0.48/webapps/examples/jsp/plugin/applet
[root@root /]#
5.4 根据文件的类型查找
语法和上面的一样,所使用的参数为
- -type 文件的类型。d:目录 f :文件 l:软连接 c: 字型装置文件 b: 区块装置文件
案例
1在/home/itbestboy/目录中查找所有的文件
[root@root /]# find /home/itbestboy/ -type f
/home/itbestboy/jdk-8u221-linux-x64.rpm
/home/itbestboy/apache-tomcat-9.0.48.tar.gz
/home/itbestboy/hello.java
/home/itbestboy/test02/helloTwo.java
/home/itbestboy/apache-tomcat-9.0.48/CONTRIBUTING.md
/home/itbestboy/apache-tomcat-9.0.48/README.md
/home/itbestboy/apache-tomcat-9.0.48/BUILDING.txt
/home/itbestboy/apache-tomcat-9.0.48/work/Catalina/localhost/ROOT/org/apache/jsp/index_jsp.java
/home/itbestboy/apache-tomcat-9.0.48/work/Catalina/localhost/ROOT/org/apache/jsp/index_jsp.class
/home/itbestboy/apache-tomcat-9.0.48/bin/bootstrap.jar
/home/itbestboy/apache-tomcat-9.0.48/bin/makebase.bat
/home/itbestboy/apache-tomcat-9.0.48/bin/configtest.sh
/home/itbestboy/apache-tomcat-9.0.48/bin/catalina-tasks.xml
/home/itbestboy/apache-tomcat-9.0.48/bin/version.sh
/home/itbestboy/apache-tomcat-9.0.48/bin/shutdown.sh
/home/itbestboy/apache-tomcat-9.0.48/bin/version.bat
/home/itbestboy/apache-tomcat-9.0.48/bin/commons-daemon.jar
/home/itbestboy/apache-tomcat-9.0.48/bin/startup.sh
/home/itbestboy/apache-tomcat-9.0.48/bin/ciphers.bat
/home/itbestboy/apache-tomcat-9.0.48/bin/startup.bat
..................
5.5 根据节点查找
语法和上面的一样,所使用的参数为
- -inum n :n为节点数,
不是任意的
注:可以通过使用
ll -i
命令查看节点数。
案例
查找/home/itbestboy/目录下节点数为1326731的文件
[root@root itbestboy]# ll -i
total 186540
1315539 drwxr-xr-x 9 root root 4096 Jul 3 22:25 apache-tomcat-9.0.48
1313731 -rw-r--r-- 1 root root 11489338 Jul 3 20:49 apache-tomcat-9.0.48.tar.gz
1326730 -r--rw-rw- 1 anmious 2021 20 Jul 27 00:43 hello.java
1313732 -rw-r--r-- 1 root root 179505388 Jul 3 20:50 jdk-8u221-linux-x64.rpm
1326543 drwx--x--x 2 root root 4096 Jul 27 14:12 test01
1326731 drwxr-xr-x 2 root root 4096 Jul 28 21:12 test02
[root@root home]# find itbestboy/ -inum 1326731
itbestboy/test02
5.6 组合查找
语法和上面的一样,所使用的参数为
- -a 表示两个条件都满足,相当于and
- -o 表示满足其一即可,相当于or
案例
在当前目录下,查找大于100MB小于200MB的文件
[root@root itbestboy]# find -size +204800 -a -size -409600
./jdk-8u221-linux-x64.rpm
注
- 1数据块=512B=0.5KB
- 1KB等于2个数据块。
Linux基本命令之用户及用户组命令:------------------------------------------------------------《加载完成》----------------------------------------------------------