linux命令中find, which、whereis、locate,有什么区别?

whatis 用于查询一个命令执行什么功能,并将查询结果打印到终端上
which 查看可执行文件的位置
whereis 查看文件的位置
man Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可
locate 配 合数据库查看文件位置
find 实际搜寻硬盘查询文件名称
type 用来区分某个命令是否是shell自带的

  1. whatis
    whatis 用于查询一个命令执行什么功能,并将查询结果打印到终端上
whatis whatis
whatis (1)           - display one-line manual page descr...

whatis which
which (1)            - locate a command

whatis whereis
whereis (1)          - locate the binary, source, and man...

whatis man
man (1)              - an interface to the on-line refere...
man (7)              - macros to format man pages

whatis locate
locate (1)           - find files by name

whatis find
find (1)             - search for files in a directory hi...

whatis type
type: nothing appropriate.

whatis who
who (1)              - show who is logged on

whatis top
top (1)              - display Linux processes
  1. which
    which命令是查找这个命令是否存在系统中,以及命令存放的位置在哪儿.
which whatis
/usr/bin/whatis

which which
/usr/bin/which

which whereis
/usr/bin/whereis

which man
/usr/bin/man

which locate
/usr/bin/locate

which find
/usr/bin/find
which type

which ls
/bin/ls

which cat
/bin/cat

which top
/usr/bin/top

which python
/usr/bin/python

which python3
/usr/bin/python3

which pip
/usr/bin/pip

which mysql
/usr/bin/mysql

which mysqld
/usr/sbin/mysqld

which vim
/usr/bin/vim

which sqlite
  1. whereis
    whereis命令只能用于搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
whereis whatis
whatis: /usr/bin/whatis /usr/share/man/man1/whatis.1.gz

whereis which
which: /usr/bin/which /bin/which /usr/share/man/man1/which.1.gz

whereis whereis
whereis: /usr/bin/whereis /usr/share/man/man1/whereis.1.gz

whereis man
man: /usr/bin/man /usr/local/man /usr/share/man /usr/share/man/man1/man.1.gz /usr/share/man/man7/man.7.gz

whereis locate
locate: /usr/bin/locate /usr/share/man/man1/locate.1.gz

whereis find
find: /usr/bin/find /usr/share/man/man1/find.1.gz /usr/share/info/find.info.gz

whereis type
type:

whereis vim
vim: /usr/bin/vim.basic /usr/bin/vim /usr/bin/vim.tiny /etc/vim /usr/share/vim /usr/share/man/man1/vim.1.gz

whereis mysql
mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/include/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

whereis mysqld -b
mysqld: /usr/sbin/mysqld /usr/share/man/man8/mysqld.8.gz

whereis mysqld 
mysqld: /usr/sbin/mysqld /usr/share/man/man8/mysqld.8.gz

whereis python
python: /usr/bin/python /usr/bin/python3.5m /usr/bin/python3.5 /usr/bin/python2.7 /usr/bin/python2.7-config /usr/lib/python3.5 /usr/lib/python2.7 /etc/python /etc/python3.5 /etc/python2.7 /usr/local/lib/python3.5 /usr/local/lib/python2.7 /usr/include/python3.5m /usr/include/python2.7 /usr/share/python /usr/share/man/man1/python.1.gz

whereis python2
python2: /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python2.7-config /usr/lib/python2.7 /etc/python2.7 /usr/local/lib/python2.7 /usr/include/python2.7 /usr/share/man/man1/python2.1.gz

whereis python3
python3: /usr/bin/python3.5m /usr/bin/python3 /usr/bin/python3.5 /usr/lib/python3 /usr/lib/python3.5 /etc/python3 /etc/python3.5 /usr/local/lib/python3.5 /usr/include/python3.5m /usr/share/python3 /usr/share/man/man1/python3.1.gz

  1. man
    man 是 Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上
man whatis
output a lot
man which
output a lot
man whereis
output a lot
man man
output a lot
man locate
output a lot
man find
output a lot
man type
No manual entry for type
  1. locate
      locate命令不是实时查找,所以查找的结果不精确,但查找速度很快。因为它查找的不是目录,而是一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
sudo updatedb

locate whatis
output a lot

locate which
output a lot

locate whereis
/usr/bin/whereis
/usr/share/bash-completion/completions/whereis
/usr/share/man/man1/whereis.1.gz

locate man
output a lot

locate locate
output a lot

locate find
output a lot

locate type
output a lot

locate passwd
will output a lot

locate -n 5 passwd
/etc/passwd
/etc/passwd-
/etc/cron.daily/passwd
/etc/init/passwd.conf
/etc/pam.d/chpasswd

locate vim
output a lot
  1. find
      find是最常用和最强大的查找命令。它能做到实时查找,精确查找,但速度慢。
      find的使用格式如下:
      #find [指定目录] [指定条件] [指定动作]
      指定目录:是指所要搜索的目录和其子目录。如果不指定,则默认为当前目录。
      指定条件:是指所要搜索的文件的特点。
      指定动作:是指对搜索的结果如何处理。
      常见选项:
      -name 根据文件名称查找(严格区分大小写,如果文件名中间有空格,则必须把文件名用双引号引起来)
      -iname 根据文件名查找(不区分大小写)
      -regex “PATTERN” 正则表达式匹配
      -user 根据文件属主进行查找
      -group 根据文件属组进行查找
      -uid 根据文件的uid查找
      -gid 根据用户的gid查找
      -nouser 查看所有的没有属主的文件
      -nogroup 查看所有的没有属组的文件
find whatis
find: ‘whatis’: No such file or directory
find which
find: ‘which’: No such file or directory
find whereis
find: ‘whereis’: No such file or directory
find man
find: ‘man’: No such file or directory
find locate
find: ‘locate’: No such file or directory
find find
find: ‘find’: No such file or directory
find type
find: ‘type’: No such file or directory

  1. type
      type命令用来区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which命令。
type whatis
whatis is hashed (/usr/bin/whatis)

type which
which is hashed (/usr/bin/which)

type whereis
whereis is hashed (/usr/bin/whereis)

type man
man is hashed (/usr/bin/man)

type locate
locate is hashed (/usr/bin/locate)

type find
find is hashed (/usr/bin/find)

type type
type is a shell builtin

type cd
cd is a shell builtin

type grep
grep is aliased to `grep --color=auto'

type cat
cat is /bin/cat

type vim
vim is hashed (/usr/bin/vim)

type -p vim
/usr/bin/vim

type python
python is /usr/bin/python
posted @ 2018-10-17 17:47  vercont  阅读(191)  评论(0编辑  收藏  举报