The whereis command is used to find binary files, source code and help manuals. whereis only searches within the scope of several commonly used installation directories, and does not search all files on the entire system. Although this is a limitation of whereis, it is precisely for this reason that the search speed of whereis is very fast. It's also worth noting that whereis will not look for commands built into the shell.
For example, we want to find the ls command:
whereis ls
The results are as follows, where /bin/ls is the path of ls, and the other two are the paths of the help manual.
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
If we copy ls to the home directory and /usr/bin/ls directory, execute the whereis command again:
cp /bin/ls ~ cp /bin/ls /usr/bin/ls whereis ls
The results are as follows. It can be found that whereis does not search the home directory because The home directory is not one of the commonly used installation directories.
ls: /bin/ls /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
Use whereis to find cd shell built-in commands:
whereis cd
The results are as follows, only the path to the help manual is shown.
cd: /usr/share/man/man1/cd.1.gz /usr/share/man/man1p/cd.1p.gz
The locate command is a search tool based on the file database (/var/lib/mlocate/mlocate.db). The file database is a mirror of the entire file system. The search mode of the locate command defaults to fuzzy matching, which means that all files containing file names will be found, so there are usually more results returned. It's worth noting that the file database is usually updated once a day, so some files that have just been created or deleted may not be found. We can execute the updatedb command to manually update this database. Since the search is based on the file database rather than the file system, the execution speed of locate is also quite fast.
Still using ls as an example to search:
locate ls
We will get a large number of results containing ls. In order to make the output results more accurate, you can use the -b command, which uses exact matching mode to search.
locate -b "\ls"
The output will only contain the path where the ls command is located.
/bin/ls
The search scope of which command is the environment variable PATH, and only the first result is returned by default, and the execution speed is very fast. If we are looking for an alias, the which command will also map to the real path corresponding to the alias before searching.
For example, we have defined an alias named ll, and the search command is as follows:
which ll
The results are as follows:
alias ll='ls -l --color=auto' /bin/ls
If we want to display all results, add the -a command That’s it.
which -a your_command
The type command is used to display the type of a certain command, such as aliases, keywords, functions, built-in commands, files, etc. Like the whereis command, the type command only searches within the range of several commonly used installation directories.
Display the type of cd command:
type cd cd is a shell builtin
Display the type of a certain binary file:
type sudo sudo is /usr/bin/sudo
Display alias:
type ls ls is aliased to `ls --color=auto'
Among the five search commands, the find command is the most powerful command and the slowest execution speed. Different from the other four commands, the find command is based on file system search, one file node and one file node. The find command can even perform subsequent operations on the search results.
Basic usage of the find command:
find [path] [option] [action]
In the home directory and its subdirectories, find the file named aaa:
find ~ -name 'aaa'
In the entire file system, Search for files with modification time within 24 hours:
find / -mtime 0
In the nginx web directory and its subdirectories, search for files whose user is nginx:
find /usr/share/nginx/html/ -user nginx
In the current directory, search permissions are 744 files:
find -perm -0744
In the current directory, find the file named aaa and display its details:
find -name 'aaa' -exec ls -l {} \;
The above is the detailed content of What are the search commands for Linux cloud servers and how to use them. For more information, please follow other related articles on the PHP Chinese website!