Linux系统管理命令大全

1.adduser命令


Linux adduser命令用于新增使用者帐号或更新预设的使用者资料。


adduser 与 useradd 指令为同一指令(经由符号连结 symbolic link)。


使用权限:系统管理员。


adduser是增加使用者。相对的,也有删除使用者的指令,userdel。语法:userdel [login ID]


语法
adduser [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M] [-p passwd] [-s shell] [-u uid [ -o]] [-n] [-r] loginid



adduser -D [-g default_group] [-b default_home] [-f default_inactive] [-e default_expire_date] [-s default_shell]


参数说明:
-c comment 新使用者位于密码档(通常是 /etc/passwd)的注解资料
-d home_dir 设定使用者的家目录为 home_dir ,预设值为预设的 home 后面加上使用者帐号 loginid
-e expire_date 设定此帐号的使用期限(格式为 YYYY-MM-DD),预设值为永久有效
-f inactive_time 范例:


实例


添加一个一般用户
# useradd kk //添加用户kk


为添加的用户指定相应的用户组
# useradd ?g root kk //添加用户kk,并指定用户所在的组为root用户组


创建一个系统用户
# useradd ?r kk //创建一个系统用户kk


为新添加的用户指定/home目录
# useradd-d /home/myf kk //新添加用户kk,其home目录为/home/myf
//当用户名kk登录主机时,系统进入的默认目录为/home/myf


2.chfn命令


Linux chfn命令提供使用者更改个人资讯,用于 finger and mail username


使用权限:所有使用者。


语法
shell>> chfn


实例


改变finger信息
# chfn
Changing finger information for root.
Name [root]: hnlinux
Office []: hn
Office Phone []: 888888
Home Phone []: 9999999


Finger information changed.




改变账号真实姓名
# chfn -f hnunix
Changing finger information for root.
Finger information changed.


3.useradd命令


Linux useradd命令用于建立用户帐号。


useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。


语法
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]



useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]


参数说明:
-c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录>  指定用户登入时的启始目录。
-D  变更预设值.
-e<有效期限>  指定帐号的有效期限。
-f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
-g<群组>  指定用户所属的群组。
-G<群组>  指定用户所属的附加群组。
-m  自动建立用户的登入目录。
-M  不要自动建立用户的登入目录。
-n  取消建立以用户名称为名的群组.
-r  建立系统帐号。
-s<shell>   指定用户登入后所使用的shell。
-u<uid>  指定用户ID。


实例


添加一般用户
# useradd tt


为添加的用户指定相应的用户组
# useradd -g root tt


创建一个系统用户
# useradd -r tt


为新添加的用户指定home目录
# useradd -d /home/myd tt


建立用户且制定ID
# useradd caojh -u 544


4.date命令


Linux date命令可以用来显示或设定系统的日期与时间,在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:


时间方面:
% : 印出 %
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区


日期方面:
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)


若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数。


使用权限:所有使用者。


当您不希望出现无意义的 0 时(比如说 1999/03/07),则可以在标记中插入 - 符号,比如说 date '+%-H:%-M:%-S' 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。


当您以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。


语法
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]


参数说明:
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号


实例


显示当前时间
# date
三 5月 12 14:08:12 CST 2010
# date '+%c' 
2010年05月12日 星期三 14时09分02秒
# date '+%D' //显示完整的时间
05/12/10
# date '+%x' //显示数字日期,年份两位数表示
2010年05月12日
# date '+%T' //显示日期,年份用四位数表示
14:09:31
# date '+%X' //显示24小时的格式
14时09分39秒


按自己的格式输出
# date '+usr_time: $1:%M %P -hey'
usr_time: $1:16 下午 -hey


显示时间后跳行,再显示目前日期
date '+%T%n%D'


显示月份与日数
date '+%B %d'


显示日期与设定时间(12:34:56)
date --date '12:34:56'


5.exit命令


Linux exit命令用于退出目前的shell。


执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。


语法
exit [状态值]


实例


退出终端
# exit


6.finger命令


Linux finger命令可以让使用者查询一些其他使用者的资料。会列出来的资料有:
Login Name
User Name
Home directory
Shell
Login status
mail status
.plan
.project
.forward


其中 .plan、.project 和 .forward 就是使用者在他的 Home Directory 里的 .plan , .project 和 .forward 等档案里的资料。如果没有就没有。finger 指令并不限定于在同一服务器上查询,也可以寻找某一个远端服务器上的使用者。只要给一个像是 E-mail address 一般的地址即可。


使用权限:所有使用者。


语法
finger [options] user[@address]


参数说明:
-l  多行显示。
-s  单行显示。这个选项只显示登入名称、真实姓名、终端机名称、闲置时间、登入时间、办公室号码及电话号码。如果所查询的使用者是远端服务器的使用者,这个选项无效。


实例


列出当前登录用户的相关信息
# finger -l //显示用户信息
Login: root Name: root
Directory: /root Shell: /bin/bash
On since Fri Apr 9 20:17 (CST) on :0 (messages off)
On since Fri Apr 9 20:17 (CST) on pts/1 32 days 22 hours idle
On since Fri Apr 9 20:17 (CST) on pts/3 4 hours 5 minutes idle
(messages off)
On since Wed May 12 18:08 (CST) on pts/4 from 192.168.1.10
On since Wed May 12 18:35 (CST) on pts/5 from 192.168.1.10
7 minutes 54 seconds idle
On since Wed May 12 14:37 (CST) on pts/2 from 192.168.1.10
3 hours 14 minutes idle
On since Wed May 12 14:53 (CST) on pts/7 34 minutes 25 seconds idle
(messages off)
On since Wed May 12 16:53 (CST) on pts/8 from 192.168.1.10
30 minutes 18 seconds idle
Mail last read Mon Mar 31 04:02 2008 (CST)
No Plan.


显示指定用户信息
# finger -m hnlinux


显示远程用户信息
# finger -m [email protected]


下列指令可以查询本机管理员的资料:
finger root


其结果如下:
Login: root Name: root
Directory: /root Shell: /bin/bash
Never logged in.
No mail.
No Plan.


7.fwhios命令


Linux fwhios命令用于查找并显示用户信息。


本指令的功能有点类似finger指令,它会去查找并显示指定帐号的用户相关信息。不同之处在于fwhois指令是到Network Solutions的WHOIS数据库去查找,该帐号名称必须有在上面注册才能寻获,且名称没有大小写的差别。


语法
fwhios [帐号名称]


8.sleep命令


Linux sleep命令可以用来将目前动作延迟一段时间。


使用权限:所有使用者。


语法
sleep [--help] [--version] number[smhd]


参数说明:
--help : 显示辅助讯息
--version : 显示版本编号
number : 时间长度,后面可接 s、m、h 或 d
其中 s 为秒,m 为 分钟,h 为小时,d 为日数


实例


休眠5分钟
# sleep 5m


显示目前时间后延迟 1 分钟,之后再次显示时间
date;sleep 1m;date


9.suspend命令


Linux suspend命令用于暂停执行shell。


suspend为shell内建指令,可暂停目前正在执行的shell。若要恢复,则必须使用SIGCONT信息。


语法
suspend [-f]


参数说明:
-f  若目前执行的shell为登入的shell,则suspend预设无法暂停此shell。若要强迫暂停登入的shell,则必须使用-f参数。


实例


暂停shell
# suspend 
-bash: suspend: 无法挂起一个登录 shell
# suspend -f


10.groupdel命


Linux groupdel命令用于删除群组。


需要从系统上删除群组时,可用groupdel(group delete)指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。


语法
groupdel [群组名称]


实例


删除一个群组
# groupdel hnuser


11.groupmod命令


Linux groupmod命令用于更改群组识别码或名称。


需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。


语法
groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]


参数:
-g <群组识别码>  设置欲使用的群组识别码。
-o  重复使用群组识别码。
-n <新群组名称>  设置欲使用的群组名称。


实例


修改组名 
[[email protected] ~]# groupadd linuxso 
[[email protected] ~]# tail -1 /etc/group 
linuxso:x:500: 
[[email protected] ~]# tail -1 /etc/group 
linuxso:x:500: 
[[email protected] ~]# groupmod -n linux linuxso 
[[email protected] ~]# tail -1 /etc/group 
linux:x:500:


12.halt命令


若系统的 runlevel 为 0 或 6 ,则Linux halt命令关闭系统,否则以 shutdown 指令(加上 -h 参数)来取代。


使用权限:系统管理者。


语法
halt [-n] [-w] [-d] [-f] [-i] [-p]


参数说明:
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) -f : 强迫关机,不呼叫 shutdown 这个指令
-i : 在关机之前先把所有网络相关的装置先停止
-p : 当关机的时候,顺便做关闭电源(poweroff)的动作


实例


关闭系统
# halt


关闭系统并关闭电源
# halt -p


关闭系统,但不留下纪录
# halt -d


13.kill命令


Linux kill命令用于删除执行中的程序或工作。


kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。


语法
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]


参数说明:
-l <信息编号>  若不加<信息编号>选项,则-l参数会列出全部的信息名称。
-s <信息名称或编号>  指定要送出的信息。
[程序]  [程序]可以是程序的PID或是PGID,也可以是工作编号。


实例


杀死进程
# kill 12345


强制杀死进程
# kill -KILL 123456


发送SIGHUP信号,可以使用一下信号
# kill -HUP pid


彻底杀死进程
# kill -9 123456


显示信号
# kill -l
1) SIGHUP     2) SIGINT     3) SIGQUIT     4) SIGILL     5) SIGTRAP
6) SIGABRT     7) SIGBUS     8) SIGFPE     9) SIGKILL    10) SIGUSR1
11) SIGSEGV    12) SIGUSR2    13) SIGPIPE    14) SIGALRM    15) SIGTERM
16) SIGSTKFLT    17) SIGCHLD    18) SIGCONT    19) SIGSTOP    20) SIGTSTP
21) SIGTTIN    22) SIGTTOU    23) SIGURG    24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM    27) SIGPROF    28) SIGWINCH    29) SIGIO    30) SIGPWR
31) SIGSYS    34) SIGRTMIN    35) SIGRTMIN+1    36) SIGRTMIN+2    37) SIGRTMIN+3
38) SIGRTMIN+4    39) SIGRTMIN+5    40) SIGRTMIN+6    41) SIGRTMIN+7    42) SIGRTMIN+8
43) SIGRTMIN+9    44) SIGRTMIN+10    45) SIGRTMIN+11    46) SIGRTMIN+12    47) SIGRTMIN+13
48) SIGRTMIN+14    49) SIGRTMIN+15    50) SIGRTMAX-14    51) SIGRTMAX-13    52) SIGRTMAX-12
53) SIGRTMAX-11    54) SIGRTMAX-10    55) SIGRTMAX-9    56) SIGRTMAX-8    57) SIGRTMAX-7
58) SIGRTMAX-6    59) SIGRTMAX-5    60) SIGRTMAX-4    61) SIGRTMAX-3    62) SIGRTMAX-2
63) SIGRTMAX-1    64) SIGRTMAX




杀死指定用户所有进程
#kill -9 $(ps -ef | grep hnlinux) //方法一 过滤出hnlinux用户进程 
#kill -u hnlinux //方法二


14.last命令


Linux last命令用于显示系统开机以来获是从每月初登入者的讯息。


使用权限:所有使用者。


语法
shell>> last [options]


参数说明:
-R 省略 hostname 的栏位
-num 展示前 num 个
username 展示 username 的登入讯息
tty 限制登入讯息包含终端机代号


实例
shell>> last -R -2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in
wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp
shell>> last -2 minery
minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02)
wtmp begins Tue Aug 1 09:01:10 2000




一般显示方法
# last


简略显示,并指定显示的个数
# last -n 5 -R
root   pts/4    Thu May 13 17:25  still logged in  
root   pts/2    Thu May 13 17:23 - 17:25 (00:02)  
root   pts/1    Thu May 13 16:46  still logged in  
root   pts/7    Thu May 13 15:36  still logged in  
root   pts/9    Thu May 13 15:35  still logged in  


wtmp begins Thu May 13 18:55:40 2014




显示最后一列显示主机IP地址
# last -n 5 -a -i
root   pts/4    Thu May 13 17:25  still logged in  192.168.1.10
root   pts/2    Thu May 13 17:23 - 17:25 (00:02)   192.168.1.10
root   pts/1    Thu May 13 16:46  still logged in  192.168.1.10
root   pts/7    Thu May 13 15:36  still logged in  192.168.1.10
root   pts/9    Thu May 13 15:35  still logged in  192.168.1.10


wtmp begins Thu May 13 18:55:40 2014


15.lastb命令


Linux lastb命令用于列出登入系统失败的用户相关信息。


单独执行lastb指令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容


记录的登入失败的用户名单,全部显示出来。


语法
lastb [-adRx][-f <记录文件>][-n <显示列数>][帐号名称...][终端机编号...]


参数说明:
-a  把从何处登入系统的主机名称或IP地址显示在最后一行。
-d  将IP地址转换成主机名称。
-f<记录文件>  指定记录文件。
-n<显示列数>或-<显示列数>  设置列出名单的显示列数。
-R  不显示登入系统的主机名称或IP地址。
-x  显示系统关机,重新开机,以及执行等级的改变等信息。


实例


显示登录失败的用户
# lastb 
root   tty7     :1        Thu May 13 11:26 - 11:26 (00:00)  


btmp begins Thu May 13 11:26:39 2014


16.login命令


Linux login命令用于登入系统。


login指令让用户登入系统,您亦可通过它的功能随时更换登入身份。在Slackware发行版中 ,您可在指令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当/etc目录里含名称为nologin的文件时,系统只root帐号登入系统,其他用户一律不准登入。


语法
login


实例


使用新的身份登录系统
# login


17.logname命令


Linux logname命令用于显示用户名称。


执行logname指令,它会显示目前用户的名称。


语法
logname [--help][--version]


参数:
--help  在线帮助。
--vesion  显示版本信息。


实例


显示登录账号的信息:
# logname 
root


18.logout命令


Linux logout命令用于退出系统。


logout指令让用户退出系统,其功能和login指令相互对应。


语法
logout


实例


退出系统:
[[email protected] ~]# logout


19.ps命令


Linux ps命令用于显示当前进程 (process) 的状态。


语法
ps [options] [--help]


参数:
ps 的参数非常多, 在此仅列出几个常用的参数并大略介绍含义
-A 列出所有的行程
-w 显示加宽可以显示较多的资讯
-au 显示较详细的资讯
-aux 显示所有包含其他使用者的行程
au(x) 输出格式 :
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 行程拥有者
PID: pid
%CPU: 占用的 CPU 使用率
%MEM: 占用的记忆体使用率
VSZ: 占用的虚拟记忆体大小
RSS: 占用的记忆体大小
TTY: 终端的次要装置号码 (minor device number of tty)
STAT: 该行程的状态:
D: 不可中断的静止 (通悸□□缜b进行 I/O 动作)
R: 正在执行中
S: 静止状态
T: 暂停执行
Z: 不存在但暂时无法消除
W: 没有足够的记忆体分页可分配
<: 高优先序的行程
N: 低优先序的行程
L: 有记忆体分页分配并锁在记忆体内 (实时系统或捱A I/O)
START: 行程开始时间
TIME: 执行的时间
COMMAND:所执行的指令


实例
# ps -A 显示进程信息
PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
  17 ?    00:00:00 kacpi_notify
  18 ?    00:00:00 kacpi_hotplug
  19 ?    00:00:27 ata/0
……省略部分结果
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31396 pts/2  00:00:00 ps


显示指定用户信息
# ps -u root //显示root进程用户信息
 PID TTY     TIME CMD
  1 ?    00:00:02 init
  2 ?    00:00:00 kthreadd
  3 ?    00:00:00 migration/0
  4 ?    00:00:00 ksoftirqd/0
  5 ?    00:00:00 watchdog/0
  6 ?    00:00:00 events/0
  7 ?    00:00:00 cpuset
  8 ?    00:00:00 khelper
  9 ?    00:00:00 netns
  10 ?    00:00:00 async/mgr
  11 ?    00:00:00 pm
  12 ?    00:00:00 sync_supers
  13 ?    00:00:00 bdi-default
  14 ?    00:00:00 kintegrityd/0
  15 ?    00:00:02 kblockd/0
  16 ?    00:00:00 kacpid
……省略部分结果
30487 ?    00:00:06 gnome-terminal
30488 ?    00:00:00 gnome-pty-helpe
30489 pts/0  00:00:00 bash
30670 ?    00:00:00 debconf-communi 
30749 pts/0  00:00:15 gedit
30886 ?    00:01:10 qtcreator.bin
30894 ?    00:00:00 qtcreator.bin 
31160 ?    00:00:00 dhclient
31211 ?    00:00:00 aptd
31302 ?    00:00:00 sshd
31374 pts/2  00:00:00 bash
31397 pts/2  00:00:00 ps


显示所有进程信息,连同命令行
# ps -ef //显示所有命令,连带命令行
UID    PID PPID C STIME TTY     TIME CMD
root     1   0 0 10:22 ?    00:00:02 /sbin/init
root     2   0 0 10:22 ?    00:00:00 [kthreadd]
root     3   2 0 10:22 ?    00:00:00 [migration/0]
root     4   2 0 10:22 ?    00:00:00 [ksoftirqd/0]
root     5   2 0 10:22 ?    00:00:00 [watchdog/0]
root     6   2 0 10:22 ?    /usr/lib/NetworkManager
……省略部分结果
root   31302 2095 0 17:42 ?    00:00:00 sshd: root@pts/2 
root   31374 31302 0 17:42 pts/2  00:00:00 -bash
root   31400   1 0 17:46 ?    00:00:00 /usr/bin/python /usr/sbin/aptd
root   31407 31374 0 17:48 pts/2  00:00:00 ps -ef


20.nice命令


Linux nice命令以更改过的优先序来执行程序,如果未指定程序,则会印出目前的排程优先序,内定的 adjustment 为 10,范围为 -20(最高优先序)到 19(最低优先序)。


使用权限:所有使用者。


语法
nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]


参数说明:
-n adjustment, -adjustment, --adjustment=adjustment 皆为将该原有优先序的增加 adjustment
--help 显示求助讯息
--version 显示版本资讯


实例


设置程序运行时的优先级
# vi & //后台运行
[1] 15297
# nice vi & //设置默认优先级
[2] 15298


[1]+ Stopped         vi
# nice -n 19 vi & //设置优先级为19
[3] 15299


[2]+ Stopped         nice vi
# nice -n -20 vi & //设置优先级为 -20
[4] 15300


[3]+ Stopped         nice -n 19 vi
# ps -l //显示进程
F S  UID  PID PPID C PRI NI ADDR SZ WCHAN TTY     TIME CMD
4 S   0 15278 15212 0 80  0 - 1208 wait  pts/2  00:00:00 bash
0 T   0 15297 15278 0 80  0 - 2687 signal pts/2  00:00:00 vi
0 T   0 15298 15278 0 90 10 - 2687 signal pts/2  00:00:00 vi
0 T   0 15299 15278 1 99 19 - 2687 signal pts/2  00:00:00 vi
4 T   0 15300 15278 3 60 -20 - 2687 signal pts/2  00:00:00 vi
4 R   0 15301 15278 0 80  0 -  625 -   pts/2  00:00:00 ps


[4]+ Stopped         nice -n -20 vi


将 ls 的优先序加 1 并执行
nice -n 1 ls


将 ls 的优先序加 10 并执行
nice ls


注意:优先序 (priority) 为操作系统用来决定 CPU 分配的参数,Linux 使用『回合制(round-robin)』的演算法来做 CPU 排程,优先序越高,所可能获得的 CPU时间就越多。


21.procinfo命令


Linux procinfo命令用于显示系统状态。


procinfo(process information)指令从/proc目录里读取相关数据,将数据妥善整理过后输出到标准输出设备。


语法
procinfo [-abdDfhimsSv][-F <输出文件>][-n <间隔秒数>]


参数说明:
-a  显示所有信息。
-b  显示磁盘设备的区块数目,而非存取数目。
-d  显示系统信息每秒间的变化差额,而非总和的数值。本参数必须配合"-f"参数使用
-D  此参数效果和指定"-d"参数类似,但内存和交换文件的信息为总和数值。
-f  进入全画面的互动式操作界面。
-F<输出文件>  把信息状态输出到文件保存起来,而非预设的标准输出设备。
-h  在线帮助。
-i  显示完整的IRP列表。
-m  显示系统模块和外围设备等相关信息。
-n<间隔秒数>  设置全画面互动模式的信息更新速度,单位以秒计算。
-s  显示系统的内存,磁盘空间,IRP和DMA等信息,此为预设值。
-S  搭配参数"-d"或"-D"使用时,每秒都会更新信息,不论是否有使用参数"-n"。
-v  显示版本信息。


实例


显示系统状态
# procinfo


22.top命令


Linux top命令用于实时显示 process 的动态。


使用权限:所有使用者。


语法
top [-] [d delay] [q] [c] [S] [s] [i] [n] [b]


参数说明:
d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称S : 累积模式,会将己完成或消失的子行程 ( dead child process ) 的 CPU time 累积起来
s : 安全模式,将交谈式指令取消, 避免潜在的危机
i : 不显示任何闲置 (idle) 或无用 (zombie) 的行程
n : 更新的次数,完成后将会退出 top
b : 批次档模式,搭配 "n" 参数一起使用,可以用来将 top 的结果输出到档案内


实例


显示进程信息
# top


显示完整命令
# top -c


以批处理模式显示程序信息
# top -b


以累积模式显示程序信息
# top -S


设置信息更新次数
top -n 2


//表示更新两次后终止更新显示


设置信息更新时间
# top -d 3


//表示更新周期为3秒


显示指定的进程信息
# top -p 139


//显示进程号为139的进程信息,CPU、内存占用率等


显示更新十次后退出
top -n 10


使用者将不能利用交谈式指令来对行程下命令
top -s


将更新显示二次的结果输入到名称为 top.log 的档案里
top -n 2 -b < top.log


23.pstree命令


Linux pstree命令将所有行程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的行程。


使用权限:所有使用者。


语法
pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]



pstree -V


参数说明:
-a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号
-c 如果有重覆的行程名, 则分开列出(预设值是会在前面加上 *)


实例


显示进程的关系
pstree
init-+-amd
|-apmd
|-atd
|-httpd---10*[httpd]
%pstree -p
init(1)-+-amd(447)
|-apmd(105)
|-atd(339)
%pstree -c
init-+-amd
|-apmd
|-atd
|-httpd-+-httpd
| |-httpd
| |-httpd
| |-httpd
....


特别表明在运行的进程
# pstree -apnh //显示进程间的关系


同时显示用户名称
# pstree -u //显示用户名称


24.reboot命令


Linux reboot命令用于用来重新启动计算机。


若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代


语法
reboot [-n] [-w] [-d] [-f] [-i]


参数:
-n : 在重开机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d) 
-f : 强迫重开机,不呼叫 shutdown 这个指令
-i : 在重开机之前先把所有网络相关的装置先停止


实例


重新启动
# reboot


25.rlogin命令


Linux rlogin命令用于远端登入。


执行rlogin指令开启终端机阶段操作,并登入远端主机。


语法
rlogin [-8EL][-e <脱离字符>][-l <用户名称>][主机名称或IP地址]


必要参数:
-E 忽略escape字符
-8 只识别8位字的字符
-L 允许rlogin会话运行在litout模式
-ec 设置escape字符为c
-c 断开连接前要求确认
-a 强制要求远程主机在发送完一个空的本地用户名之后请求一个密码
-f 向远端主机发送一个本地认证
-F 向远程主机发送一个可转寄的本地认证
-7 强制执行7为的传输
-d 打开用于远端主机通信的TCP套接口的调试
-k 要求包含远端主机的tisckets
-x 启动数据传输的DES加密
-4 只使用 kerkberos的版本4的认证


选择参数:
• -e<字符> 设置退出字符
• -l<用户> 指定登陆的用户
• -t<终端类型> 设置终端类型 


实例


显示rlogin服务是否开启 
# chkconfig --list //检测rlogin服务是否开启


开启rlogin服务
# chkconfig rlogin on //开启rlogin服务


登陆远程主机
# rlogin 192.168.1.88
Password:
Password:
Login incorrect
Login:root
Passwd:
Login incorrect
Login:kk
Passwd:


指定用户名登陆远程主机 
# rlogin 192.168.1.88 -l hnlinux


Passord:
Last login:Mon May 28 15:30:25 from 192.168.1.88





26.rsh命令


Linux rsh命令用于远端登入的Shell。


rsh(remote shell)提供用户环境,也就是Shell,以便指令能够在指定的远端主机上执行。


语法
rsh [-dn][-l <用户名称>][主机名称或IP地址][执行指令]


参数说明:
-d  使用Socket层级的排错功能。
-l<用户名称>  指定要登入远端主机的用户名称。
-n  把输入的指令号向代号为/dev/null的特殊外围设备。


实例


开启rsh服务
# chkconfig --list //检测rlogin服务是否开启


# chkconfig rsh on //开启rsh服务


# chkconfig -list //检测开启的服务


远程命令执行
# rsh -l hnlinux 192.168.1.88 /bin/ls //远程执行ls命令


27.sliplogin命令


Linux sliplogin命令用于将SLIP接口加入标准输入。


sliplogin可将SLIP接口加入标准输入,把一般终端机的连线变成SLIP连线。通常可用来建立SLIP服务器,让远端电脑以SLIP连线到服务器。sliplogin活去检查/etc/slip/slip.hosts文件中是否有相同的用户名称。通过检查后,sliplogin会调用执行shell script来设置IP地址,子网掩码等网络界面环境。此shell script通常是/etc/slip/slip.login。


语法
sliplogin [用户名称]


实例


改变用户的连接方式
# sliplogin kk // 改变用户的连接方式


28.screen命令


Linux screen命令用于多重视窗管理程序。


screen为多重视窗管理程序。此处所谓的视窗,是指一个全屏幕的文字模式画面。通常只有在使用telnet登入主机或是使用老式的终端机时,才有可能用到screen程序。


语法
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s <shell>][-S <作业名称>]


参数说明:
-A  将所有的视窗都调整为目前终端机的大小。
-d<作业名称>  将指定的screen作业离线。
-h<行数>  指定视窗的缓冲区行数。
-m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称>  恢复离线的screen作业。
-R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s<shell>  指定建立新视窗时,所要执行的shell。
-S<作业名称>  指定screen作业的名称。
-v  显示版本信息。
-x  恢复之前离线的screen作业。
-ls或--list  显示目前所有的screen作业。
-wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。


实例


创建 screen 终端
# screen //创建 screen 终端


创建 screen 终端 并执行任务
# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令


离开 screen 终端
# screen vi ~/main.c //创建 screen 终端 ,并执行 vi命令


#include 


main ()
{


}


"~/mail.c"       0,0-1    


在 screen 终端 下 按下 Ctrl+a d键




重新连接离开的 screen 终端
# screen -ls  //显示已创建的screen终端 
There are screens on:
2433.pts-3.linux    (2013年10月20日 16时48分59秒)    (Detached)
2428.pts-3.linux    (2013年10月20日 16时48分05秒)    (Detached)
2284.pts-3.linux    (2013年10月20日 16时14分55秒)    (Detached)
2276.pts-3.linux    (2013年10月20日 16时13分18秒)    (Detached)
4 Sockets in /var/run/screen/S-root.


# screen -r 2276 //连接 screen_id 为 2276 的 screen终端


29.shutdown命令


Linux shutdown命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。


使用权限:系统管理者。


语法
shutdown [-t seconds] [-rkhncfF] time [message]


参数说明:
-t seconds : 设定在几秒钟之后进行关机程序
-k : 并不会真的关机,只是将警告讯息传送给所有只用者
-r : 关机后重新开机
-h : 关机后停机
-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机
-c : 取消目前已经进行中的关机动作
-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)
-F : 关机时,强迫进行 fsck 动作
time : 设定关机的时间
message : 传送给所有使用者的警告讯息


实例


立即关机
# shutdown -h now


指定5分钟后关机
# shutdown +5 “System will shutdown after 5 minutes” //5分钟够关机并显示警告信息


30.rwho命令


Linux rwho命令用于查看系统用户。


rwho指令的效果类似who指令,但它会显示局域网里所有主机的用户。主机必须提供rwhod常驻服务的功能,方可使用rwho指令。


语法
rwho [-a]


参数说明:
-a  列出所有的用户,包括闲置时间超过1个小时以上的用户。


实例


显示本地局域网内的所有用户
# rwho
root   snail-hnlinux:pts/2 May 14 17:42


31.sudo命令


Linux sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。


使用权限:在 /etc/sudoers 中有出现的使用者。


语法
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command


参数说明:
-V 显示版本编号
-h 会显示版本编号及指令的使用方式说明
-l 显示出自己(执行 sudo 的使用者)的权限
-v 因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码
-k 将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称, %h 会显示主机名称
-u username/#uid 不加此参数,代表要以 root 的身份执行指令,而加了此参数,可以以 username 的身份执行指令(#uid 为该 username 的使用者号码)
-s 执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell
-H 将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
command 要以系统管理者身份(或以 -u 更改为其他人)执行的指令


实例


sudo命令使用
$ sudo ls
[sudo] password for hnlinux: 
hnlinux is not in the sudoers file. This incident will be reported.


指定用户执行命令
# sudo -u userb ls -l


显示sudo设置
$ sudo -L //显示sudo设置
Available options in a sudoers ``Defaults'' line:


syslog: Syslog facility if syslog is being used for logging
syslog_goodpri: Syslog priority to use when user authenticates successfully
syslog_badpri: Syslog priority to use when user authenticates unsuccessfully
long_otp_prompt: Put OTP prompt on its own line
ignore_dot: Ignore '.' in $PATH
mail_always: Always send mail when sudo is run
mail_badpass: Send mail if user authentication fails
mail_no_user: Send mail if the user is not in sudoers
mail_no_host: Send mail if the user is not in sudoers for this host
mail_no_perms: Send mail if the user is not allowed to run a command
tty_tickets: Use a separate timestamp for each user/tty combo
lecture: Lecture user the first time they run sudo
lecture_file: File containing the sudo lecture
authenticate: Require users to authenticate by default
root_sudo: Root may run sudo
log_host: Log the hostname in the (non-syslog) log file
log_year: Log the year in the (non-syslog) log file
shell_noargs: If sudo is invoked with no arguments, start a shell
set_home: Set $HOME to the target user when starting a shell with -s
always_set_home: Always set $HOME to the target user's home directory
path_info: Allow some information gathering to give useful error messages
fqdn: Require fully-qualified hostnames in the sudoers file
insults: Insult the user when they enter an incorrect password
requiretty: Only allow the user to run sudo if they have a tty
env_editor: Visudo will honor the EDITOR environment variable
rootpw: Prompt for root's password, not the users's
runaspw: Prompt for the runas_default user's password, not the users's
targetpw: Prompt for the target user's password, not the users's
use_loginclass: Apply defaults in the target user's login class if there is one
set_logname: Set the LOGNAME and USER environment variables
stay_setuid: Only set the effective uid to the target user, not the real uid
preserve_groups: Don't initialize the group vector to that of the target user
loglinelen: Length at which to wrap log file lines (0 for no wrap)
timestamp_timeout: Authentication timestamp timeout
passwd_timeout: Password prompt timeout
passwd_tries: Number of tries to enter a password
umask: Umask to use or 0777 to use user's
logfile: Path to log file
mailerpath: Path to mail program
mailerflags: Flags for mail program
mailto: Address to send mail to
mailfrom: Address to send mail from
mailsub: Subject line for mail messages
badpass_message: Incorrect password message
timestampdir: Path to authentication timestamp dir
timestampowner: Owner of the authentication timestamp dir
exempt_group: Users in this group are exempt from password and PATH requirements
passprompt: Default password prompt
passprompt_override: If set, passprompt will override system prompt in all cases.
runas_default: Default user to run commands as
secure_path: Value to override user's $PATH with
editor: Path to the editor for use by visudo
listpw: When to require a password for 'list' pseudocommand
verifypw: When to require a password for 'verify' pseudocommand
noexec: Preload the dummy exec functions contained in 'noexec_file'
noexec_file: File containing dummy exec functions
ignore_local_sudoers: If LDAP directory is up, do we ignore local sudoers file
closefrom: File descriptors >= %d will be closed before executing a command
closefrom_override: If set, users may override the value of `closefrom' with the -C option
setenv: Allow users to set arbitrary environment variables
env_reset: Reset the environment to a default set of variables
env_check: Environment variables to check for sanity
env_delete: Environment variables to remove
env_keep: Environment variables to preserve
role: SELinux role to use in the new security context
type: SELinux type to use in the new security context
askpass: Path to the askpass helper program
env_file: Path to the sudo-specific environment file
sudoers_locale: Locale to use while parsing sudoers
visiblepw: Allow sudo to prompt for a password even if it would be visisble
pwfeedback: Provide visual feedback at the password prompt when there is user input
fast_glob: Use faster globbing that is less accurate but does not access the filesystem
umask_override: The umask specified in sudoers will override the user's, even if it is more permissive


以root权限执行上一条命令
$ sudo !!


以特定用户身份进行编辑文本
$ sudo -u uggc vi ~www/index.html
//以 uggc 用户身份编辑  home 目录下www目录中的 index.html 文件


列出目前的权限
sudo -l


列出 sudo 的版本资讯
sudo -V


32.gitps命令


Linux gitps命令用于报告程序状况。


gitps(gnu interactive tools process status)是用来报告并管理程序执行的指令,基本上它就是通过ps指令来报告,管理程序,也能通过gitps指令随时中断,删除不必要的程序。因为gitps指令会去执行ps指令,所以其参数和ps指令相当类似。


语法
gitps [acefgjlnrsSTuvwxX][p <程序识别码>][t <终端机编号>][U <帐号名称>]


参数说明:
a  显示 现行终端机下的所有程序,包括其他用户的程序。
c  列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或是常驻服务的标示.
e  列出程序时,显示每个程序所使用的环境变量。
f  用ASCII字符显示树状结构,表达程序间的相互关系。
g  显示现行终端机下的所有程序,包括群组领导者的程序。
j  采用工作控制的格式来显示程序状况。
l  采用纤细的格式来显示程序状况。
n  以数字来表示USER和WCHAN栏位。
p<程序识别码>  指定程序识别码,并列出该程序的状况。
r  只列出现行终端机正在执行中的程序。
s  采用程序信号的格式显示程序状况。
S  列出程序时,包括已中断的子程序信息。
t<终端机机标号>  指定终端机编号,并列出属于该终端机的程序的状况。
T  显示现行终端机下的所有程序。
u  以用户为主的格式来显示程序状况。
U<帐号名称>  列出属于该用户的程序的状况。
v  采用虚拟内存的格式显示程序状况。
w  采用宽阔的格式来显示程序状况。
x  显示所有程序,不以终端机来区分。
X  采用旧试的Linux i386登陆格式显示程序状况。


实例


显示指定用户信息
# gitps hnlinux


33.swatch命令


Linux swatch命令用于系统监控程序。


swatch可用来监控系统记录文件,并在发现特定的事件时,执行指定的动作。swatch所监控的事件以及对应事件的动作都存放在swatch的配置文件中。预设的配置文件为拥护根目录下的.swatchrc。然而在Red Hat Linux的预设用户根目录下并没有.swatchrc配置文件,您可将/usr/doc/swatch-2.2/config_files/swatchrc.personal文件复制到用户根目录下的.swatchrc,然后修改.swatchrc所要监控的事件及执行的动作。


语法
swatch [-A <分隔字符>][-c <设置文件>][-f <记录文件>][-I <分隔字符>][-P <分隔字符>][-r <时间>][-t <记录文件>]


参数说明:
-A<分隔字符>  预设配置文件中,动作的分隔字符,预设为逗号。
-c<设置文件>  指定配置文件,而不使用预设的配置文件。
-f<记录文件>  检查指定的记录文件,检查完毕后不会继续监控该记录文件。
-I<分隔字符>  指定输入记录的分隔字符,预设为换行字符。
-P<分隔字符>  指定配置文件中,事件的分隔字符,预设为逗号。
-r<时间>  在指定的时间重新启动。
-t<记录文件>  检查指定的记录文件,并且会监控加入记录文件中的后继记录。


实例


开启系统监视
# swatch


34.tload命令


Linux tload命令用于显示系统负载状况。


tload指令使用ASCII字符简单地以文字模式显示系统负载状态。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形。


语法
tload [-V][-d <间隔秒数>][-s <刻度大小>][终端机编号]


参数说明:
-d<间隔秒数>  设置tload检测系统负载的间隔时间,单位以秒计算。
-s<刻度大小>  设置图表的垂直刻度大小,单位以列计算。
-V  显示版本信息。


实例


显示系统负载
# tload


35.logrotate命令


Linux logrotate命令用于管理记录文件。


使用logrotate指令,可让你轻松管理系统所产生的记录文件。它提供自动替换,压缩,删除和邮寄记录文件,每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc目录下,文件名称为logrotate.conf。


语法
logrotate [-?dfv][-s <状态文件>][--usage][配置文件]


参数说明:
-?或--help  在线帮助。
-d或--debug  详细显示指令执行过程,便于排错或了解程序执行的情况。
-f或--force  强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然。
-s<状态文件>或--state=<状态文件>  使用指定的状态文件。
-v或--version  显示指令执行过程。
-usage  显示指令基本用法。


实例


指定记录文件
# logrotate /root/log.config


36.uname命令


Linux uname命令用于显示系统信息。


uname可显示电脑以及操作系统的相关信息。


语法
uname [-amnrsv][--help][--version]


参数说明:
-a或--all  显示全部的信息。
-m或--machine  显示电脑类型。
-n或-nodename  显示在网络上的主机名称。
-r或--release  显示操作系统的发行编号。
-s或--sysname  显示操作系统名称。
-v  显示操作系统的版本。
--help  显示帮助。
--version  显示版本信息。


实例


显示系统信息
# uname -a
Linux snail-hnlinux 2.6.32-21-generic #32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2010 i686 GNU/Linux


显示计算机类型
# uname -m
i686


显示计算机名
# uname -n
snail-hnlinux


显示操作系统发行编号
# uname -r
2.6.32-21-generic


显示操作系统名称
# uname -s
Linux


显示系统时间
# uname -v
#32-Ubuntu SMP Fri Apr 16 08:10:02 UTC 2014


37.chsh命令


Linux chsh命令用于更改使用者 shell 设定。


使用权限:所有使用者。


语法
shell>> chsh


实例
shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的 shell]
[del]
shell>> chsh -l ### 展示 /etc/shells 档案内容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh


改变当前的shell。当前的shell 设置为//bin/bash,通过chsh命令,改变shell的设置/bin/csh。
# chsh
Changing shell for root.
New shell [/bin/bash]: /bin/csh //输入新的shell地址
Shell changed.


通过 -s 参数改变当前的shell设置
# chsh -s /bin/csh //改变当前设置为 /bin/csh
Changing shell for root.
Shell not changed.


38.userconf命令


Linux userconf命令用于用户帐号设置程序。


userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。


语法
userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称><shell>][--delgroup <群组>][--deluser <用户ID>][--help]


参数说明:
--addgroup<群组>  新增群组。
--adduser<用户ID><群组><用户名称><shell>  新增用户帐号。
--delgroup<群组>  删除群组。
--deluser<用户ID>  删除用户帐号。
--help  显示帮助。


实例


新增用户
# userconf --adduser 666 tt lord /bin/bash //新增用户账号


39.userdel命令


Linux userdel命令用于删除用户帐号。


userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。


语法
userdel [-r][用户帐号]


参数说明:
-r  删除用户登入目录以及目录中所有文件。


实例


删除用户账号
# userdel hnlinux


40.usermod命令


Linux usermod命令用于修改用户帐号。


usermod可用来修改用户帐号的各项设定。


语法
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]


参数说明:
-c<备注>  修改用户帐号的备注文字。
-d登入目录>  修改用户登入时的目录。
-e<有效期限>  修改帐号的有效期限。
-f<缓冲天数>  修改在密码过期后多少天即关闭该帐号。
-g<群组>  修改用户所属的群组。
-G<群组>  修改用户所属的附加群组。
-l<帐号名称>  修改用户帐号名称。
-L  锁定用户密码,使密码无效。
-s<shell>  修改用户登入后所使用的shell。
-u<uid>  修改用户ID。
-U  解除密码锁定。


实例


更改登录目录
# usermod -d /home/hnlinux root


改变用户的uid
# usermod -u 777 root


41.vlock命令


Linux vlock命令用于锁住虚拟终端。


执行vlock(virtual console lock)指令可锁住虚拟终端,避免他人使用。


语法
vlock [-achv]


参数说明:
-a或--all  锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
切换终端机的功能一并关闭。
-c或--current  锁住目前的终端阶段作业,此为预设值。
-h或--help  在线帮助。
-v或--version  显示版本信息。


实例


锁定虚拟终端
# vlock


42.who命令


Linux who命令用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。


使用权限:所有使用者都可使用。


语法
who - [husfV] [user]


参数说明:
-H 或 --heading:显示各栏位的标题信息列;
-i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m:此参数的效果和指定"am i"字符串相同;
-q 或--count:只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;
--help:在线帮助;
--version:显示版本信息。


实例


显示当前登录系统的用户
# who  //显示当前登录系统的用户
root   tty7     2014-05-13 12:12 (:0)
root   pts/0    2014-05-14 17:09 (:0.0)
root   pts/1    2014-05-14 18:51 (192.168.1.17)
root   pts/2    2014-05-14 19:48 (192.168.1.17)




显示标题栏
# who -H
NAME   LINE     TIME       COMMENT
root   tty7     2014-05-13 12:12 (:0)
root   pts/0    2014-05-14 17:09 (:0.0)
root   pts/1    2014-05-14 18:51 (192.168.1.17)
root   pts/2    2014-05-14 19:48 (192.168.1.17)




显示用户登录来源
# who -l -H
NAME   LINE     TIME       IDLE     PID COMMENT
LOGIN  tty4     2014-05-13 12:11        852 id=4
LOGIN  tty5     2014-05-13 12:11        855 id=5
LOGIN  tty2     2014-05-13 12:11        862 id=2
LOGIN  tty3     2014-05-13 12:11        864 id=3
LOGIN  tty6     2014-05-13 12:11        867 id=6
LOGIN  tty1     2014-05-13 12:11       1021 id=1




显示终端属性
# who -T -H
NAME    LINE     TIME       COMMENT
root   + tty7     2014-05-13 12:12 (:0)
root   + pts/0    2014-05-14 17:09 (:0.0)
root   - pts/1    2014-05-14 18:51 (192.168.1.17)
root   - pts/2    2014-05-14 19:48 (192.168.1.17)




只显示当前用户
# who -m -H
NAME   LINE     TIME       COMMENT
root   pts/1    2014-05-14 18:51 (192.168.1.17)




精简模式显示
# who -q
root root root root
# users=4


43.whoami命令


Linux whoami命令用于显示自身用户名称。


显示自身的用户名称,本指令相当于执行"id -un"指令。


语法
whoami [--help][--version]


参数说明:
--help  在线帮助。
--version  显示版本信息。


实例


显示用户名
# whoami 
root


44.whois命令


Linux whois命令用于查找并显示用户信息。


whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。


语法
whois [帐号名称]


实例


显示指定用户信息
# whois root


//查找root用户信息


查询域名描述信息
# whois .Lx138.COm


Whois Server Version 2.0


Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.


...省略部分内容


查询域名信息
# whois Lx138.COm


The Registry database contains ONLY .COM, .NET, .EDU domains and
Registrars.
Domain Name ..................... Lx138.COm
Name Server ..................... dns15.hichina.com
                 dns16.hichina.com
Registrant ID ................... hc937242545-cn


...省略部分内容


查询域名信息省略法律声明
# whois -H Lx138.COm


...省略内容


指定端口查询
# whois -p 80 Lx138.COm


...省略内容


45.newgrp命令


Linux newgrp命令用于登入另一个群组。


newgrp指令类似login指令,当它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。


语法
newgrp [群组名称]


实例


改变群组
# newgrp root


46.renice命令


Linux renice命令用于重新指定一个或多个行程(Process)的优先序(一个或多个将根据参数而定)。


注意:每一个行程(Process)都有一个唯一的(unique)id。


使用权限:所有使用者。


语法
renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]


参数说明:
-p pid 重新指定行程的 id 为 pid 的行程的优先序
-g pgrp 重新指定行程群组(process group)的 id 为 pgrp 的行程 (一个或多个) 的优先序
-u user 重新指定行程拥有者为 user 的行程的优先序


实例


将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1
renice +1 987 -u daemon root -p 32


47.su命令


Linux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。


使用权限:所有使用者。


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


参数说明:
-f 或 --fast 不必读启动档(如 csh.cshrc 等),仅用于 csh 或 tcsh
-m -p 或 --preserve-environment 执行 su 时不改变环境变数
-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
-s shell 或 --shell=shell 指定要执行的 shell (bash csh tcsh 等),预设值为 /etc/passwd 内的该使用者(USER) shell
--help 显示说明文件
--version 显示版本资讯
- -l 或 --login 这个参数加了之后,就好像是重新 login 为该使用者一样,大部份环境变数(HOME SHELL USER等等)都是以该使用者(USER)为主,并且工作目录也会改变,如果没有指定 USER ,内定是 root
USER 欲变更的使用者帐号
ARG 传入新的 shell 参数


实例


变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su -c ls root


变更帐号为 root 并传入 -f 参数给新执行的 shell
su root -f


变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)
su - clsung


切换用户
[email protected]:~$ whoami //显示当前用户
hnlinux
[email protected]:~$ pwd //显示当前目录
/home/hnlinux
[email protected]:~$ su root //切换到root用户
密码: 
[email protected]:/home/hnlinux# whoami 
root
[email protected]:/home/hnlinux# pwd
/home/hnlinux


切换用户,改变环境变量
[email protected]:~$ whoami //显示当前用户
hnlinux
[email protected]:~$ pwd //显示当前目录
/home/hnlinux
[email protected]:~$ su - root //切换到root用户
密码: 
[email protected]:/home/hnlinux# whoami 
root
[email protected]:/home/hnlinux# pwd //显示当前目录
/root


48.skill命令


Linux skill命令送个讯号给正在执行的程序,预设的讯息为 TERM (中断),较常使用的讯息为 HUP、INT、KILL、STOP、CONT 和 0。


讯息有三种写法:分别为 -9、-SIGKILL、-KILL,可以使用 -l 或 -L 已列出可使用的讯息。


使用权限:所有使用者。


其他相关的命令:kill


语法
skill [signal to send] [options] 选择程序的规则


一般参数:
-f 快速模式/尚未完成
-i 互动模式/ 每个动作将要被确认
-v 详细输出/ 列出所选择程序的资讯
-w 智能警告讯息/ 尚未完成
-n 没有动作/ 显示程序代号


参数:选择程序的规则可以是:终端机代号、使用者名称、程序代号、命令名称。
-t 终端机代号 ( tty 或 pty )
-u 使用者名称
-p 程序代号 ( pid )
-c 命令名称可使用的讯号


以下列出已知的讯号名称、讯号代号、功能。




名称(代号)


功能/描述


ALRM 14 离开 
HUP 1 离开 
INT 2 离开 
KILL 9 离开/强迫关闭 
PIPE 13 离开 
POLL 离开 
PROF 离开 
TERM 15 离开 
USR1 离开 
USR2 离开 
VTALRM 离开 
STKFLT 离开/只适用于i386、m68k、arm 和 ppc 硬件 
UNUSED 离开/只适用于i386、m68k、arm 和 ppc 硬件 
TSTP 停止/产生与内容相关的行为 
TTIN 停止/产生与内容相关的行为 
TTOU 停止/产生与内容相关的行为 
STOP 停止/强迫关闭 
CONT 重新启动/如果在停止状态则重新启动,否则忽略 
PWR 忽略/在某些系统中会离开 
WINCH 忽略 
CHLD 忽略 
ABRT 6 核心 
FPE 8 核心 
ILL 4 核心 
QUIT 3 核心 
SEGV 11 核心 
TRAP 5 核心 
SYS 核心/或许尚未实作 
EMT 核心/或许尚未实作 
BUS 核心/核心失败 
XCPU 核心/核心失败 
XFSZ 核心/核心失败 


实例


停止所有在 PTY 装置上的程序
skill -KILL -v pts/*


停止三个使用者 user1、user2、user3
skill -STOP user1 user2 user3


49.w命令


Linux w命令用于显示目前登入系统的用户信息。


执行这项指令可得知目前登入系统的用户有哪些人,以及他们正在执行的程序。


单独执行 w 指令会显示所有的用户,您也可指定用户名称,仅显示某位用户的相关信息。


语法
w [-fhlsuV][用户名称]


参数说明:
-f  开启或关闭显示用户从何处登入系统。
-h  不显示各栏位的标题信息列。
-l  使用详细格式列表,此为预设值。
-s  使用简洁格式列表,不显示用户登入时间,终端机阶段作业和程序所耗费的CPU时间。
-u  忽略执行程序的名称,以及该程序耗费CPU时间的信息。
-V  显示版本信息。


实例


显示当前用户
w  //显示当前用户,不显示登录位置
19:50:14 up 9:27, 4 users, load average: 0.31, 0.26, 0.18
USER   TTY   FROM       LOGIN@  IDLE  JCPU  PCPU WHAT
root   tty7   :0        Thu12  31:39m 10:10  0.60s gnome-session
root   pts/0  :0.0       17:09  2:18m 15.26s 0.15s bash
root   pts/1  192.168.1.17   18:51  1.00s 1.24s 0.14s -bash
root   pts/2  192.168.1.17   19:48  60.00s 0.05s 0.05s -bash


不显示登录位置
w -f
19:53:59 up 9:31, 4 users, load average: 0.05, 0.16, 0.15
USER   TTY    LOGIN@  IDLE  JCPU  PCPU WHAT
root   tty7   Thu12  31:43m 10:10  0.60s gnome-session
root   pts/0   17:09  2:21m 15.26s 0.15s bash
root   pts/1   18:51  0.00s 1.04s 0.14s -bash
root   pts/2   19:48  4:45  0.05s 0.05s -bash


以精简模式显示
w -s
19:54:37 up 9:31, 4 users, load average: 0.24, 0.19, 0.16
USER   TTY   FROM        IDLE WHAT
root   tty7   :0        31:43m gnome-session
root   pts/0  :0.0       2:22m bash
root   pts/1  192.168.1.17   0.00s -bash
root   pts/2  192.168.1.17   5:23 -bash


不显示标题
w -h
root   tty7   :0        Thu12  31:44m 10:10  0.60s gnome-session
root   pts/0  :0.0       17:09  2:23m 15.26s 0.15s bash
root   pts/1  192.168.1.17   18:51  0.00s 1.05s 0.14s -bash
root   pts/2  192.168.1.17   19:48  5:54  0.05s 0.05s -bash


50.id命令


Linux id命令用于显示用户的ID,以及所属群组的ID。


id会显示用户以及所属群组的实际与有效ID。若两个ID相同,则仅显示实际ID。若仅指定用户名称,则显示目前用户的ID。


语法
id [-gGnru][--help][--version][用户名称]


参数说明:
-g或--group  显示用户所属群组的ID。
-G或--groups  显示用户所属附加群组的ID。
-n或--name  显示用户,所属群组或附加群组的名称。
-r或--real  显示实际ID。
-u或--user  显示用户ID。
-help  显示帮助。
-version  显示版本信息。


实例


显示当前用户信息
# id //显示当前用户ID
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t


显示用户群组的ID
# id -g
0


显示所有群组的ID
# id -g
0 1 2 3 4 5 6 10


显示指定用户信息
# id hnlinux


51.free命令


Linux free命令用于显示内存状态。


free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。


语法
free [-bkmotV][-s <间隔秒数>]


参数说明:
-b  以Byte为单位显示内存使用情况。
-k  以KB为单位显示内存使用情况。
-m  以MB为单位显示内存使用情况。
-o  不显示缓冲区调节列。
-s<间隔秒数>  持续观察内存使用状况。
-t  显示内存总和列。
-V  显示版本信息。


实例


显示内存使用情况
# free //显示内存使用信息
total used free shared buffers cached
Mem: 254772 184568 70204 0 5692 89892
-/+ buffers/cache: 88984 165788
Swap: 524280 65116 459164


以总和的形式显示内存的使用信息
# free -t //以总和的形式查询内存的使用信息
total used free shared buffers cached
Mem: 254772 184868 69904 0 5936 89908
-/+ buffers/cache: 89024 165748
Swap: 524280 65116 459164
Total: 779052 249984 529068


周期性的查询内存使用信息
# free -s 10 //每10s 执行一次命令
total used free shared buffers cached
Mem: 254772 187628 67144 0 6140 89964
-/+ buffers/cache: 91524 163248
Swap: 524280 65116 459164


total used free shared buffers cached
Mem: 254772 187748 67024 0 6164 89940
-/+ buffers/cache: 91644 163128
Swap: 524280 65116 459164

猜你喜欢

转载自blog.csdn.net/buoujiang/article/details/80965698