Linux命令(系统管理)
1.adduser
adduser命令用于新增使用者帐号或更新预设的使用者资料。
adduser与useradd指令为同一指令(经由符号连结的符号链接)。
使用权限:系统管理员。
adduser是增加使用者。相对的,也有删除使用者的指令,userdel。语法:userdel [登录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 / myf
//当用户名KK登录主机时,系统进入的默认目录为/家/山羊myf
2.chfn
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
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。 - -u
指定用户ID。
实例
添加一般用户
# useradd tt
为添加的用户指定相应的用户组
# useradd -g root tt
创建一个系统用户
# useradd -r tt
为新添加的用户指定home目录
# useradd -d /home/myd tt
建立用户且制定ID
# useradd caojh -u 544
4.date
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
exit命令用于退出目前的shell。
执行exit可使shell以指定的状态值退出。若不设置状态值参数,则shell以预设值退出。状态值0代表执行成功,其他值代表执行失败。exit也可用在script,离开正在执行的script,回到shell。
语法
exit [状态值]
实例
退出终端
# exit
6.finger
finger命令可以让使用者查询一些其他使用者的资料。会列出来的资料有:
- 登录名
- 用户名
- 主目录
- 贝壳
- 登录状态
- 邮件状态
- 。计划
- 。项目
- 。向前
其中.plan,.project和.forward就是使用者在他的主目录里的.plan,.project和.forward等档案里的资料。如果没有就没有.finger指令并不限定于在同一服务器上查询,也可以寻找某一个远端服务器上的使用者。只要给一个像是电子邮件地址一般的地址即可。
使用权限:所有使用者。
语法
finger [options]用户[@address]
参数说明:
- -l多行显示。
- -s单行显示。这个选项显示登入名称,真实姓名,终端机名称,闲置时间,登入时间,办公室号码及电话号码。如果所查询的使用者是远端服务器的使用者,这个选项无效。
实例
列出当前登录用户的相关信息
#finger -l //显示用户信息
登录:root名称:root
目录:/ root Shell:/ bin / bash
自4月9日星期五20:17(CST)开始:0(消息关闭)
自4月9日星期五20:17(CST)开始,在pts / 1 32天22小时闲置
自4月9日星期五20:17(CST)开始,在pts / 3 4小时5分钟闲置
(消息关闭)
自5月12日星期三18:08(CST)起,从192.168.1.10开始
自5月12日星期三18:35(CST)起,从192.168.1.10开始,在pts / 5
闲置7分54秒
自5月12日星期三14:37(CST)开始,从192.168.1.10开始
闲置3小时14分钟
从5月12日星期三14:53(CST)开始,在pts / 7 34分25秒闲置
(消息关闭)
自5月12日星期三16:53(CST)起,从192.168.1.10开始,在pts / 8
空闲30分18秒
邮件最后阅读Mon Mar 31 04:02 2008(CST)
没有计划。
显示指定用户信息
#finger -m hnlinux
显示远程用户信息
#finger -m root@192.168.1.13
下列指令可以查询本机管理员的资料:
手指根
其结果如下:
登录:root名称:root
目录:/ root Shell:/ bin / bash
从未登录过。
没有邮件。
没有计划。
7.fwhios
fwhios命令用于查找并显示用户信息。
本指令的功能有点类似finger指令,它会去查找并显示指定帐号的用户相关信息。不同之处在于fwhois指令是到Network Solutions的WHOIS数据库去查找,该帐号名称必须有在上面注册才能寻获,且名称没有大小写的差别。
语法
fwhios [帐号名称]
8.sleep
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.supend
suspend命令用于暂停执行shell。
suspend为shell内建指令,可暂停目前正在执行的shell。若要恢复,则必须使用SIGCONT信息。
语法
suspend [-f]
参数说明:
- -f 若目前执行的shell为登入的shell,则suspend预设无法暂停此shell。若要强迫暂停登入的shell,则必须使用-f参数。
实例
暂停shell
# suspend
-bash: suspend: 无法挂起一个登录 shell
# suspend -f
10.groupdel
groupdel命令用于删除群组。
需要从系统上删除群组时,可用groupdel(group delete)指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
语法
groupdel [群组名称]
实例
删除一个群组
# groupdel hnuser
11.groupmod
groupmod命令用于更改群组识别码或名称。
需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。
语法
groupmod [-g <群组识别码> <-o>][-n <新群组名称>][群组名称]
参数:
- -g <群组识别码> 设置欲使用的群组识别码。
- -o 重复使用群组识别码。
- -n <新群组名称> 设置欲使用的群组名称。
实例
修改组名
[root@runoob.com ~]# groupadd linuxso
[root@runoob.com ~]# tail -1 /etc/group
linuxso:x:500:
[root@runoob.com ~]# tail -1 /etc/group
linuxso:x:500:
[root@runoob.com ~]# groupmod -n linux linuxso
[root@runoob.com ~]# tail -1 /etc/group
linux:x:500:
12.half
若系统的 runlevel 为 0 或 6 ,则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
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
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
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
login命令用于登入系统。
login指令让用户登入系统,您亦可通过它的功能随时更换登入身份。在Slackware发行版中 ,您可在指令后面附加欲登入的用户名称,它会直接询问密码,等待用户输入。当/etc目录里含名称为nologin的文件时,系统只root帐号登入系统,其他用户一律不准登入。
语法
login
实例
使用新的身份登录系统
# login
17.logname
logname命令用于显示用户名称。
执行logname指令,它会显示目前用户的名称。
语法
logname [--help][--version]
参数:
- –help 在线帮助。
- –vesion 显示版本信息。
实例
显示登录账号的信息:
# logname
root
18.logout
logout命令用于退出系统。
logout指令让用户退出系统,其功能和login指令相互对应。
语法
logout
实例
退出系统:
[root@runoob.com ~]# logout
19.ps
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: 无法中断的休眠状态 (通常 IO 的进程)
- 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
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
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
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
23.pstree
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
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
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
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
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
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。 - -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
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
rwho命令用于查看系统用户。
rwho指令的效果类似who指令,但它会显示局域网里所有主机的用户。主机必须提供rwhod常驻服务的功能,方可使用rwho指令。
语法
rwho [-a]
参数说明:
- -a 列出所有的用户,包括闲置时间超过1个小时以上的用户。
实例
显示本地局域网内的所有用户
# rwho
root snail-hnlinux:pts/2 May 14 17:42
31.sudo
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命令
参数说明:
- -V显示版本编号
- -h会显示版本编号及指令的使用方式说明
- -l显示出自己(执行sudo的使用者)的权限
- -v因为sudo在第一次执行时或是在N分钟内没有执行(N预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
- -k将会强迫使用者在下一次执行sudo时问密码(不论有没有超过N分钟)
- -b将要执行的指令放在背景执行
- -p prompt可以更改问密码的提示语,其中%u会代换为使用者的帐号名称,%h会显示主机名称
- -u username /#uid不加此参数,代表要以root的身份执行指令,而加了此参数,可以以username的身份执行指令(#uid为该用户名的使用者号码)
- -s执行环境变数中的SHELL所指定的shell,或是/ etc / passwd里所指定的shell
- -H将环境变数中的HOME(家目录)指定为要变更身份的使用者家目录(如不加-u参数就是系统管理者root)
- command要以系统管理者身份(或以-u更改为其他人)执行的指令
实例
sudo的命令使用
$ sudo ls
hnlinux的[sudo]密码:
hnlinux不在sudoers文件中。将报告此事件。
指定用户执行命令
#sudo -u userb ls -l
显示须藤设置
$ sudo -L //显示sudo设置
sudoers“默认值”行中的可用选项:
syslog:如果syslog用于记录,则为Syslog工具
syslog_goodpri:用户成功进行身份验证时使用的Syslog优先级
syslog_badpri:用户进行身份验证失败时使用的Syslog优先级
long_otp_prompt:将OTP提示放在自己的行上
ignore_dot:忽略'。' 在$ PATH
mail_always:在运行sudo时始终发送邮件
mail_badpass:如果用户身份验证失败,则发送邮件
mail_no_user:如果用户不在sudoers中,则发送邮件
mail_no_host:如果用户不在此主机的sudoers中,则发送邮件
mail_no_perms:如果不允许用户运行命令,则发送邮件
tty_tickets:为每个user / tty组合使用单独的时间戳
讲座:他们第一次运行sudo时讲授用户
lecture_file:包含sudo讲座的文件
authenticate:默认情况下要求用户进行身份验证
root_sudo:root可以运行sudo
log_host:在(非syslog)日志文件中记录主机名
log_year:在(非syslog)日志文件中记录年份
shell_noargs:如果没有参数调用sudo,则启动shell
set_home:使用-s启动shell时,将$ HOME设置为目标用户
always_set_home:始终将$ HOME设置为目标用户的主目录
path_info:允许收集一些信息以提供有用的错误消息
fqdn:要求sudoers文件中的完全限定主机名
侮辱:用户输入错误密码时会侮辱他们
requiretty:只允许用户运行sudo,如果他们有tty
env_editor:Visudo将尊重EDITOR环境变量
rootpw:提示root的密码,而不是用户的密码
runaspw:提示runas_default用户的密码,而不是用户的密码
targetpw:提示目标用户的密码,而不是用户的密码
use_loginclass:在目标用户的登录类中应用默认值(如果有)
set_logname:设置LOGNAME和USER环境变量
stay_setuid:仅将有效uid设置为目标用户,而不是真实的uid
preserve_groups:不要将组向量初始化为目标用户的向量
loglinelen:包装日志文件行的长度(0表示没有换行)
timestamp_timeout:身份验证时间戳超时
passwd_timeout:密码提示超时
passwd_tries:输入密码的尝试次数
umask:使用Umask或0777使用用户
logfile:日志文件的路径
邮件路径:邮件程序的路径
mailerflags:邮件程序的标志
mailto:发送邮件的地址
mailfrom:发送邮件的地址
mailsub:邮件消息的主题行
badpass_message:密码错误消息不正确
timestampdir:身份验证时间戳目录的路径
timestampowner:身份验证时间戳目录的所有者
exempt_group:该组中的用户免于密码和PATH要求
passprompt:默认密码提示
passprompt_override:如果设置,passprompt将在所有情况下覆盖系统提示。
runas_default:运行命令的默认用户
secure_path:用于覆盖用户的$ PATH的值
编辑器:visudo使用的编辑器的路径
listpw:何时需要“list”伪命令的密码
verifypw:何时需要密码“verify”伪命令
noexec:预加载'noexec_file'中包含的虚拟exec函数
noexec_file:包含虚拟exec函数的文件
ignore_local_sudoers:如果LDAP目录已启动,我们是否忽略本地sudoers文件
closefrom:文件描述符> =%d将在执行命令之前关闭
closefrom_override:如果设置,用户可以使用-C选项覆盖`closefrom'的值
setenv:允许用户设置任意环境变量
env_reset:将环境重置为一组默认变量
env_check:用于检查健全性的环境变量
env_delete:要删除的环境变量
env_keep:要保留的环境变量
role:SELinux在新安全上下文中使用的角色
type:要在新安全上下文中使用的SELinux类型
askpass:askpass帮助程序的路径
env_file:特定于sudo的环境文件的路径
sudoers_locale:解析sudoers时使用的语言环境
visiblepw:允许sudo提示输入密码即使它是可见的
pwfeedback:当有用户输入时,在密码提示处提供视觉反馈
fast_glob:使用速度较慢的globbing,但不能访问文件系统
umask_override:sudoers中指定的umask将覆盖用户,即使它更宽松
以根权限执行上一条命令
$ sudo !!
以特定用户身份进行编辑文本
$ sudo -u uggc vi~www / index.html
//以uggc用户身份编辑home目录下www目录中的index.html文件
列出目前的权限
sudo -l
列出sudo的版本信息
sudo -V
32.gitps
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
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
tload命令用于显示系统负载状况。
tload指令使用ASCII字符简单地以文字模式显示系统负载状态。假设不给予终端机编号,则会在执行tload指令的终端机显示负载情形。
语法
tload [-V][-d <间隔秒数>][-s <刻度大小>][终端机编号]
参数说明:
- -d<间隔秒数> 设置tload检测系统负载的间隔时间,单位以秒计算。
- -s<刻度大小> 设置图表的垂直刻度大小,单位以列计算。
- -V 显示版本信息。
实例
显示系统负载
# tload
35.logrotate
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
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
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
userconf命令用于用户帐号设置程序。
userconf实际上为linuxconf的符号连接,提供图形界面的操作方式,供管理员建立与管理各类帐号。若不加任何参数,即进入图形界面。
语法
userconf [--addgroup <群组>][--adduser <用户ID><群组><用户名称><shell>][--delgroup <群组>][--deluser <用户ID>][--help]
参数说明:
- –addgroup<群组> 新增群组。
- –adduser<用户ID><群组><用户名称>
新增用户帐号。 - –delgroup<群组> 删除群组。
- –deluser<用户ID> 删除用户帐号。
- –help 显示帮助。
实例
新增用户
# userconf --adduser 666 tt lord /bin/bash //新增用户账号
39.userdel
userdel命令用于删除用户帐号。
userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
语法
userdel [-r][用户帐号]
参数说明:
- -r 删除用户登入目录以及目录中所有文件。
实例
删除用户账号
# userdel hnlinux
40.usermod
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。 - -u
修改用户ID。 - -U 解除密码锁定。
实例
更改登录目录
# usermod -d /home/hnlinux root
改变用户的uid
# usermod -u 777 root
41.vlock
vlock命令用于锁住虚拟终端。
执行vlock(virtual console lock)指令可锁住虚拟终端,避免他人使用。
语法
vlock [-achv]
参数说明:
- -a或–all 锁住所有的终端阶段作业,如果您在全屏幕的终端中使用本参数,则会将用键盘
- 切换终端机的功能一并关闭。
- -c或–current 锁住目前的终端阶段作业,此为预设值。
- -h或–help 在线帮助。
- -v或–version 显示版本信息。
实例
锁定虚拟终端
# vlock
42.who
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
whoami命令用于显示自身用户名称。
显示自身的用户名称,本指令相当于执行”id -un”指令。
语法
whoami [--help][--version]
参数说明:
- –help 在线帮助。
- –version 显示版本信息。
实例
显示用户名
# whoami
root
44.whois
whois命令用于查找并显示用户信息。
whois指令会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
语法
who [帐号名称]
实例
显示指定用户信息
#whys root
//查找根用户信息
查询域名描述信息
#whis .Lx138.COm
Whois服务器版本2.0
现在可以注册.com和.net域中的域名
与许多不同的竞争注册商。转到http://www.internic.net
了解详细信息。
...省略部分内容
查询域名信息
#whis Lx138.COm
Registry数据库仅包含.COM,.NET,.EDU域和
登记。
域名..................... Lx138.COm
名称服务器..................... dns15.hichina.com
dns16.hichina.com
注册人ID ................... hc937242545-cn
...省略部分内容
查询域名信息省略法律声明
#whois -H Lx138.COm
...省略内容
指定端口查询
#whis -p 80 Lx138.COm
...省略内容
45.newgrp
newgrp命令用于登入另一个群组。
newgrp指令类似login指令,当它是以相同的帐号,另一个群组名称,再次登入系统。欲使用newgrp指令切换群组,您必须是该群组的用户,否则将无法登入指定的群组。单一用户要同时隶属多个群组,需利用交替用户的设置。若不指定群组名称,则newgrp指令会登入该用户名称的预设群组。
语法
newgrp [群组名称]
实例
改变群组
# newgrp root
46.renice
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
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
切换用户
hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su root //切换到root用户
密码:
root@runoob.com:/home/hnlinux# whoami
root
root@runoob.com:/home/hnlinux# pwd
/home/hnlinux
切换用户,改变环境变量
hnlinux@runoob.com:~$ whoami //显示当前用户
hnlinux
hnlinux@runoob.com:~$ pwd //显示当前目录
/home/hnlinux
hnlinux@runoob.com:~$ su - root //切换到root用户
密码:
root@runoob.com:/home/hnlinux# whoami
root
root@runoob.com:/home/hnlinux# pwd //显示当前目录
/root
48.skill
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
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
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
free命令用于显示内存状态。
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
语法
free [-bkmotV][-s <间隔秒数>]
参数说明:
-b 以Byte为单位显示内存使用情况。
-k 以KB为单位显示内存使用情况。
-m 以MB为单位显示内存使用情况。
-h 以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:
B = bytes K = kilos M = megas G = gigas T = teras
-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
参考文章:
如有侵权,联系 2025685938@qq.com 删除