which、whereis、whatis、du、who、w、whoami用法总结

简介:

1.which

命令用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

语法

which(选项)(参数)

选项

-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;

-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;

-w:指定输出时栏位的宽度;

-V:显示版本信息。

参数

指令名:指令名列表。

实例

查找文件、显示命令路径:

[root@localhost~]# which pwd

/bin/pwd

[root@localhost~]#  which adduser

/usr/sbin/adduser

说明:which是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

2.whereis

命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。

whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。

find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereislocate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

语法

whereis(选项)(参数)

选项

-b:只查找二进制文件;

-B<目录>:只在设置的目录下查找二进制文件;

-f:不显示文件名前的路径名称;

-m:只查找说明文件;

-M<目录>:只在设置的目录下查找说明文件;

-s:只查找原始代码文件;

-S<目录>只在设置的目录下查找原始代码文件;

-u:查找不包含指定类型的文件。

参数

指令名:要查找的二进制程序、源文件和man手册页的指令名。

实例

将相关的文件都查找出来

[root@localhost~]# whereis tomcat

tomcat:

[root@localhost~]# whereis svn

svn:/usr/bin/svn /usr/local/svn /usr/share/man/man1/svn.1.gz

说明:tomcat没安装,找不出来,svn安装找出了很多相关文件

 

只将二进制文件查找出来

 

[root@localhost~]# whereis -b svn

svn:/usr/bin/svn /usr/local/svn

 

[root@localhost~]# whereis -m svn

svn:/usr/share/man/man1/svn.1.gz

 

[root@localhost~]# whereis -s svn

svn:

说明:whereis -m svn查出说明文档路径,whereis -s svnsource源文件。

 

3.whatis

命令是用于查询一个命令执行什么功能,并将查询结果打印到终端上。

 

whatis命令在用catman -w命令创建的数据库中查找command参数指定的命令、系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息。whatis命令等同于使用man -f命令。

语法

whatis

实例

[root@localhost~]# whatis ls

ls                   (1)  - list directory contents

ls                   (1p)  - list directory contents

 

[root@localhost~]# whatis cp

cp                   (1)  - copy files and directories

cp                   (1p)  - copy files

 

[root@localhost~]# whatis chown

chown                (1)  - change file owner and group

chown                (1p)  - change the file ownership

chown                (2)  - change ownership of a file

chown                (3p)  - change owner and group of a file

 

[root@localhost~]# whatis man

man                  (1)  - format and display the on-line manual pages

man                  (1p)  - display system documentation

man                  (7)  - macros to format man pages

man                 (rpm) - A set of documentationtools: man, apropos and whatis.

man-pages           (rpm) - Man (manual) pages from theLinux Documentation Project.

man.config[man]     (5)  -configuration data for man

 

4.du

命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。

语法

du [选项][文件]

选项

-a-all 显示目录中个别文件的大小。

-b-bytes 显示目录或文件大小时,以byte为单位。

-c--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

-k--kilobytes KB(1024bytes)为单位输出。

-m--megabytes MB为单位输出。

-s--summarize 仅显示总计,只列出最后加总的值。

-h--human-readable KMG为单位,提高信息的可读性。

-x--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-L<符号链接>--dereference<符号链接显示选项中所指定符号链接的源文件大小。

-S--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。

-X<文件>--exclude-from=<文件<文件>指定目录或文件。

--exclude=<目录或文件略过指定的目录或文件。

-D--dereference-args 显示指定符号链接的源文件大小。

-H--si -h参数相同,但是KMG是以1000为换算单位。

-l--count-links 重复计算硬件链接的文件。

实例

显示目录或者文件所占空间:

 

[root@localhosttest]# du

608 ./test6

308 ./test4

4 ./scf/lib

4 ./scf/service/deploy/product

4./scf/service/deploy/info

12./scf/service/deploy

16 ./scf/service

4 ./scf/doc

4 ./scf/bin

32 ./scf

8 ./test3

1288 .

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小

 

显示指定文件所占空间:

 

[root@localhosttest]# du log2012.log

300 log2012.log

查看指定目录的所占空间:

[root@localhosttest]# du scf

4 scf/lib

4scf/service/deploy/product

4scf/service/deploy/info

12scf/service/deploy

16 scf/service

4 scf/doc

4 scf/bin

32 scf

显示多个文件所占空间:

 

[root@localhosttest]# du log30.tar.gz log31.tar.gz

4 log30.tar.gz

4 log31.tar.gz

只显示总和的大小:

 

[root@localhosttest]# du -s

1288 .

 

[root@localhosttest]# du -s scf

32 scf

 

[root@localhosttest]# cd ..

[root@localhostsoft]# du -s test

1288 test

 

5.who

命令是显示目前登录系统的用户信息。执行who命令可得知目前有那些用户登入系统,单独执行who命令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个X显示器。

语法

who(选项)(参数)

选项

-H--heading:显示各栏位的标题信息列;

-i-u--idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;

-m:此参数的效果和指定"am i"字符串相同;

-q--count:只显示登入系统的帐号名称和总人数;

-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;

-w-T--mesg--message--writable:显示用户的信息状态栏;

--help:在线帮助;

--version:显示版本信息。

参数

文件:指定查询文件。

 

实例

[root@localhost~]# who

root     pts/0        2013-08-19 15:04 (192.168.0.134)

root     pts/1        2013-12-20 10:37 (180.111.155.40)

 

[root@localhost~]# who -q

root root

# users=2

 

[root@localhost~]# who -H

NAME     LINE         time             COMMENT

root     pts/0        2013-08-19 15:04 (192.168.0.134)

root     pts/1        2013-12-20 10:37 (180.111.155.40)

 

[root@localhost~]# who -w

root     + pts/0        2013-08-19 15:04 (192.168.0.134)

root     + pts/1        2013-12-20 10:37 (180.111.155.40)

 

6.w

命令用于显示已经登陆系统的用户列表,并显示用户正在执行的指令。执行这个命令可得知目前登入系统的用户有那些人,以及他们正在执行的程序。单独执行w命令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。

 

语法

w(选项)(参数)

选项

-h:不打印头信息;

-u:当显示当前进程和cpu时间时忽略用户名;

-s:使用短输出格式;

-f:显示用户从哪登录;

-V:显示版本信息。

参数

用户:仅显示指定用户。

 

实例

w

 20:39:37 up 136 days,  3:58, 1 user,  load average: 0.00, 0.00,0.00

USER     TTY     FROM              login@   IDLE  JCPU   PCPU WHAT

root     pts/0   222.94.97.122    20:39    1.00s 0.00s  0.00s w

 

7.whoami

命令用于打印当前有效的用户名称,相当于执行id -un命令。

 

语法

whoami(选项)

选项

--help:在线帮助;

--version:显示版本信息。

实例

[root@localhost~]# whoami

root

 

[root@localhost~]# id -un

root




本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/1906884,如需转载请自行联系原作者
相关文章
|
3月前
|
Unix Shell Linux
shell命令之cat
shell命令之cat
75 1
|
6月前
|
NoSQL Linux Redis
每日一个Linux命令之ls
每日一个Linux命令之ls
|
Unix Linux 开发工具
Linux命令ls的自我实现(上)
Linux命令ls的自我实现(上)
Linux命令ls的自我实现(上)
|
弹性计算 Shell Linux
3天玩转shell--6.sed 和grep用法
本文将通过shell代码示例,简单通俗的讲解shell。通过执行代码和运行结果反向掌握shell编程方法。准备一台低配的阿里云ECS Linux环境,跟着教程走起,本文比较适合shell小白。
164 0
|
Linux 编译器 Shell
04_Linux基础-.&..-cat-tac-重定向-EOF-Shell-more-ps-less-head-tail-sed-grep-which-whereis-PATH-bash-usr-locate-find
cat-tac-重定向-EOF-Shell-more-ps-less-head-tail-sed-grep-which-whereis-PATH-bash-usr-locate-find
118 0
04_Linux基础-.&..-cat-tac-重定向-EOF-Shell-more-ps-less-head-tail-sed-grep-which-whereis-PATH-bash-usr-locate-find
|
安全 Linux Shell
linux命令_which&&whereis&&locate以及区别
linux命令_which&&whereis&&locate以及区别
164 0
|
Shell Linux
-bash: ls: 未找到命令
centos7 Linux 报错问题 [root@localhost pgsql]# ll -bash: ls: 未找到命令
983 0
|
存储 NoSQL Linux
Linux命令ls的自我实现(下)
Linux命令ls的自我实现(下)