Linux下的重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password

时间:2021-12-08 16:25:53

linux已经学习了一段时间了,接下来我们来学习linux的重要的命令。

一、du命令

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

1)语法:du 【选项】【文件】

2)功能:显示每个文件和目录的磁盘使用空间。

3)命令参数:

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

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

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

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

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

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

-h或--human-readable  以K,M,G为单位,提高信息的可读性。

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

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

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

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

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

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

-H或--si  与-h参数相同,但是K,M,G是以1000为换算单位。   

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

二、df命令

用来检查文件系统磁盘的占用情况,使用的权限是所有用户。

1)语法:df【选项】【文件】

2)功能:查看磁盘剩余空间

3)命令参数:

-a--all,显示所有的文件系统,包括虚拟文件系统。 
-B--block-size,指定单位大小。比如1k,1m等。 
-h--human-readable,以人们易读的GB、MB、KB等格式显示。 
-H--si,和-h参数一样,但是不是以1024,而是1000,即1k=1000,而不是1k=1024。 
-i--inodes,不用硬盘容量,而是以inode的数量来显示。 
-k:以KB的容量显示各文件系统,相当于--block-size=1k。 
-m:以KB的容量显示各文件系统,相当于--block-size=1m。 
-l--local,只显示本地文件系统。 
--no-sync:在统计使用信息之前不调用sync命令(默认)。 
-sync:在统计使用信息之前调用sync命令。 
-P--portability,使用POSIX格式显示。 
-t--type=TYPE,只显示指定类型的文件系统。 
-T--print-type,显示文件系统类型。 
-x--exclude-type=TYPE,不显示指定类型的文件系统。 
--help:显示帮助信息。 
--version:显示版本信息。

三、top命令

p命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解。

1)语法:top

2)功能:命令用来显示执行中的程序进程,使用权限是所有用户 。

3)命令参数:一般在执行top命令的时候,会有以下详细的信息

Linux下的重要命令. du, df, top, free, pstack, su, sudo(sudo -, sudo -s), adduser, password

  • PID(Process ID):进程标示号。
  • USER:进程所有者的用户名。
  • PR:进程的优先级别。
  • NI:进程的优先级别数值。
  • VIRT:进程占用的虚拟内存值。
  • RES:进程占用的物理内存值。
  • SHR:进程使用的共享内存值。
  • S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
  • %CPU:该进程占用的CPU使用率。
  • %MEM:该进程占用的物理内存和总内存的百分比。
  • TIME+:该进程启动后占用的总的CPU时间。
  • Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
  • top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的

    • <空格>:立刻刷新。
    • P:根据CPU使用大小进行排序。
    • M:根据使用内存大小进行排序。
    • T:根据时间、累计时间排序。
    • q:退出top命令。
    • m:切换显示内存信息。
    • t:切换显示进程和CPU状态信息。
    • c:切换显示命令名称和完整命令行。
    • W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

    可以看到,top命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

  • 使用top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面

四、free命令

free命令可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区。

1)语法:free【选项】

2)功能:用来显示内存的使用情况,使用用户是所有用户。

3)命令参数:

  • -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。
  • -s delay:显示每隔多少秒数来显示一次内存使用情况。
  • l-t:显示内存总和列。
  • -o:不显示缓冲区调节列。

五、pstack

pstack 是 Linux(比如 Red Hat Linux 系统、Ubuntu Linux 系统等)下一个很有用的工具,它的功能是打印输出此进程的堆栈信息。可以输出所有线程的调用关系栈。

pstack命令可显示每个进程的栈跟踪。pstack命令必须由相应进程的属主或 root 运行。可以使用 pstack来确定进程挂起的位置。

1)语法:

2)功能:显示每个进程的栈跟踪。

3)命令参数:此命令允许使用的唯一选项是要检查的进程的 PID

六、su

1)语法:su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

2)功能:su的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。

3)命令参数:

-f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于csh或tcsh两种Shell。

-l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如HOME、SHELL和USER等)都是以该使用者(USER)为主,并

且工作目录也会改变。如果没有指定USER,缺省情况是root。

-m, -p ,–preserve-environment:执行su时不改变环境变数。

-c command:变更账号为USER的使用者,并执行指令(command)后再变回原来使用者。

–help 显示说明文件

–version 显示版本资讯

USER:欲变更的使用者账号,

ARG:  传入新的Shell参数。

七、sudo(sudo -, sudo -s)

1)语法:sudo【选项】【参数】

2)功能:sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

3)命令参数:

 
-b:在后台执行指令;-h:显示帮助;-H:将HOME环境变量设为新身份的HOME环境变量;-k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。-l:列出目前用户可执行与无法执行的指令;-p:改变询问密码的提示符号;-s<shell>:执行指定的shell;-u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;-v:延长密码有效期限5分钟;-V :显示版本信息。

配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。

八、adduser 

useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。 

1)语法:useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name 

2)功能:作用 (linuxso注:useradd和adduser相同,但是addgroup是不存在的命令,所以建议使用useradd,当然你的习惯才是最重要的.) 

3)命令参数:
新帐号建立当不加-D参数,useradd指令使用命令列来指定新帐号的设定值and使用系统上的预设值.新使用者帐号将产生一些系统档案,使用者目录建立,拷备起始档案等,这些均可以利用命令列选项指定。此版本为RedHatLinux提供,可帮每个新加入的使用者建立个别的group,毋须添加-n选项。useradd可使用的选项为-ccomment新帐号password档的说明栏。-dhome_dir新帐号每次登入时所使用的home_dir。预设值为default_home内login名称,并当成登入时目录名称。 
-e expire_date 帐号终止日期。日期的指定格式为MM/DD/YY。 
-f inactive_days 帐号过期几日后永久停权。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1 
-g initial_group group名称或以数字来做为使用者登入起始群组(group)。群组名须为现有存在的名称。群组数字也须为现有存在的群组。预设的群组数字为1。 
-G group,[...] 定义此使用者为此一堆groups的成员。每个群组使用","区格开来,不可以夹杂空白字元。群组名同-g选项的限制。定义值为使用者的起始群组。 
-m 使用者目录如不存在则自动建立。如使用-k选项skeleton_dir内的档案将复制至使用者目录下。然而在/etc/skel目录下的档案也会复制过去取代。任何在skeleton_diror/etc/skel的目录也相同会在使用者目录下一一建立。The-k同-m不建立目录以及不复制任何档案为预设值。 
-M 不建立使用者目录,即使/etc/login.defs系统档设定要建立使用者目录。 
-n 预设值使用者群组与使用者名称会相同。此选项将取消此预设值。 
-r 此参数是用来建立系统帐号。系统帐号的UID会比定义在系统档上/etc/login.defs.的UID_MIN来的小。注意useradd此用法所建立的帐号不会建立使用者目录,也不会在乎纪录在/etc/login.defs.的定义值。如果你想要有使用者目录须额外指定-m参数来建立系统帐号。这是REDHAT额外增设的选项。 
-s shell 使用者登入后使用的shell名称。预设为不填写,这样系统会帮你指定预设的登入shell。 
-u uid 使用者的ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值。预设为最小不得小于999而逐次增加。0~999传统上是保留给系统帐号使用。改变预设值当-D选项出现时,useradd秀出现在的预设值,或是藉由命令列的方式更新预设值。可用选项为∶ 
-b default_home 定义使用者所属目录的前一个目录。使用者名称会附加在default_home后面用来建立新使用者的目录。当然使用-d后则此选项无效。 
-e default_expire_date 使用者帐号停止日期。 
-f default_inactive 帐号过期几日后停权。 
-g default_group 新帐号起始群组名或ID。群组名须为现有存在的名称。群组ID也须为现有存在的群组。 
-s default_shell 使用者登入后使用的shell名称。往后新加入的帐号都将使用此shell.如不指定任何参数,useradd显示目前预设的值。注记系统管理者有义务在/etc/skel目录下放置使用者定义档。 

九 、password 

passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被root用户锁定;如果root用户运行passwd ,可以设置或修改任何用户的密码。
1)语法:passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码;

2)功能:如果是普通用户执行passwd 只能修改自己的密码;
如果新建用户后,要为新用户创建密码,则用 passwd 用户名 ,注意要以root用户的权限来创建;

3)命令参数:

-k, --keep-tokens       keep non-expired authentication tokens注:保留即将过期的用户在期满后能仍能使用;

-d, --delete            delete the password for the named account (root only)注:删除用户密码,仅能以root权限操作;

-l, --lock              lock the named account (root only)注:锁住用户无权更改其密码,仅能通过root权限操作;
-u, --unlock            unlock the named account (root only)注:解除锁定;
-f, --force             force operation注:强制操作;仅root权限才能操作;
-x, --maximum=DAYS      maximum password lifetime (root only) 注:两次密码修正的最大天数,后面接数字;仅能root权限操作;
-n, --minimum=DAYS      minimum password lifetime (root only) 注:两次密码修改的最小天数,后面接数字,仅能root权限操作;
-w, --warning=DAYS      number of days warning users receives before 注:在距多少天提醒用户修改密码;仅能root权限操作;
password expiration (root only)
-i, --inactive=DAYS     number of days after password expiration when an 注:在密码过期后多少天,用户被禁掉,仅能以root操作;
account becomes disabled (root only)
-S, --status            report password status on the named account (root   注:查询用户的密码状态,仅能root用户操作;
only)
--stdin                 read new tokens from stdin (root only)
以上就是在linux下的一些重要的命令的总结。