Linux must learn 60 commands [3] system management

For a Linux system, whether it is the central processing unit, memory, disk drive, keyboard, mouse, or user, etc.
are files, and the commands of Linux system management are the core of its normal operation. After being familiar with the file processing commands commonly used in Linux, this lecture introduces the commands for managing the system and users.

df

1. Function
The df command is used to check the disk space occupancy of the file system, and the use permission is for all users.

2. Format
df [options]

3. Main parameter
-s: For each Names parameter, only the total number of occupied data blocks is given.
-a: Recursively display the number of data blocks occupied by each file in the specified directory and each file in the subdirectory. If neither -s
nor -a is specified, only the number of disk blocks occupied by each directory and each subdirectory in Names is displayed.
-k: List disk space usage in units of 1024 bytes.
-x: Skip directories on different file systems without counting.
-l: Calculate all file sizes, multiple times for hard-linked files.
-i: Display inode information instead of block usage.
-h: Print the file system size in an easy-to-understand format, such as 136KB, 254MB, 21GB.
-P: Use POSIX output format.
-T: Display the file system type.

4. Explain that the
df command is widely used to generate file system usage statistics. It can display information about all file systems in the system
, including total capacity, available free space, and current mount points.

A super-privileged user will find this situation when using the df command: a partition's capacity exceeds 100%. This is because the
Linux system reserves 10% of the space for the superuser, which is at his sole disposal. That is, for a superuser,
the hard drive capacity he sees will be 110%. Such an arrangement is beneficial for system administration, and the
system administrator can still work normally when the hard disk is used close to 100% capacity.

5. Application Examples
Linux supports many file systems, including JFS, ReiserFS, ext, ext2, ext3, ISO9660, XFS,
Minx, vfat, MSDOS, etc. You can also get file system information when you use the df -T command to view disk space:

#df -T
file system type capacity used free used% mount point
/dev/hda7 reiserfs 5.2G 1.6G 3.7G 30% /
/dev/hda1 vfat 2.4G 1.6G 827M 66% /windows/C
/dev/ hda5 vfat 3.0G 1.7G 1.3G 57% /windows/D
/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E
/dev/hda10 NTFS 3.2G 573M 2.6G 18% /windows/F
/dev/hda11 vfat 1.6G 1.5G 23M 99% /windows/G

 

从上面除了可以看到磁盘空间的容量、使用情况外,分区的文件系统类型、挂载点等信息也
一览无遗。

top

1.作用
top命令用来显示执行中的程序进程,使用权限是所有用户。

2.格式
top [-] [d delay] [q] [c] [S] [s] [i] [n]

3.主要参数
d:指定更新的间隔,以秒计算。
q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。
c:显示进程完整的路径与名称。
S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。
s:安全模式。
i:不显示任何闲置(Idle)或无用(Zombie)的行程。
n:显示更新的次数,完成后将会退出top。

4.说明
top命令是Linux系统管理的一个主要命令,通过它可以获得许多信息。这里我们结合图1来
说明它给出的信息。
图1 top命令的显示

在图1中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平
均负载。第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用
(Zombie)的进程。第三行显示的是目前CPU的使用情况,包括系统占用的比例、用户使用比
例、闲置(Idle)比例。第四行显示物理内存的使用情况,包括总的可以使用的内存、已用内
存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况,包括总的交换分区、使
用的、空闲的和用于高速缓存的大小。第六行显示的项目最多,下面列出了详细解释。
PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是
负数。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的CPU时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过
快捷键启动的。
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

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

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

free

1.作用
free命令用来显示内存的使用情况,使用权限是所有用户。

2.格式
free [-b|-k|-m] [-o] [-s delay] [-t] [-V]

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

4.应用实例
free命令是用来查看内存使用情况的主要命令。和top命令相比,它的优点是使用简单,并
且只占用很少的系统资源。通过-S参数可以使用free命令不间断地监视有多少内存在使用
,这样可以把它当作一个方便实时监控器。
#free -b -s5

使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次。

quota

1.作用
quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户。

2.格式
quota [-g][-u][-v][-p] 用户名 组名

3.参数
-g:显示用户所在组的磁盘使用限制。
-u:显示用户的磁盘使用限制。
-v:显示没有分配空间的文件系统的分配情况。
-p:显示简化信息。

4.应用实例
在企业应用中磁盘配额非常重要,普通用户要学会看懂自己的磁盘使用情况。要查询自己的
磁盘配额可以使用下面命令(下例中用户账号是caojh):

#quota caojh
Disk quotas for user caojh(uid 502):
Filesystem blocks quota limit grace files quota limit grace
/dev/hda3   58      200000 400000   41   500    1000

 

以上显示ID号为502的caojh账号,文件个数设置为500~1000个,硬盘空间限制设置为
200MB~400MB。一旦磁盘配额要用完时,就需要删除一些垃圾文件或向系统管理员请求追加
配额。

at

1.作用
at命令用来在指定时刻执行指定的命令序列。

2.格式
at [-V] [-q x] [-f file] [-m] time

3.主要参数
-V:显示标准错误输出。
-q:许多队列输出。
-f:从文件中读取作业。
-m:执行完作业后发送电子邮件到用户。
time:设定作业执行的时间。time格式有严格的要求,由小时、分钟、日期和时间的偏移量
组成,其中日期的格式为MM.DD.YY,MM是分钟,DD是日期,YY是指年份。偏移量的格式为时
间+偏移量,单位是minutes、hours和days。

4.应用实例
#at -f data 15:30 +2 days

上面命令表示让系统在两天后的17:30执行文件data中指明的作业。

lp

1.作用
lp是打印文件的命令,使用权限是所有用户。

2.格式
lp [-c][-d][-m][-number][-title][-p]

3.主要参数
-c:先拷贝文件再打印。
-d:打印队列文件。
-m:打印结束后发送电子邮件到用户。
-number:打印份数。
-title:打印标题。
-p:设定打印的优先级别,最高为100。

4.应用实例
(1)使用lp命令打印多个文件
#lp 2 3 4
request id is 11 (3 file(s))

其中2、3、4分别是文件名;“request id is 11 (3 file(s)) ”表示这是第11个打印命令
,依次打印这三个文件。

(2)设定打印优先级别
#lp lp -d LaserJet -p 90 /etc/aliases

通过添加“-p 90”,规定了打印作业的优先级为90。它将在优先级低于90的打印作业之前
打印,包括没有设置优先级的作业,缺省优先级是50

useradd

1.作用
useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

2.格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive]
[-e expire ] [-p passwd] [-r] name

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

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

5.应用实例
建立一个新用户账户,并设置ID:
#useradd caojh -u 544

需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特殊用
户,一般0到499之间的值留给bin、mail这样的系统账号。

groupadd

1.作用
groupadd命令用于将新组加入系统。

2.格式
groupadd [-g gid] [-o]] [-r] [-f] groupname

3.主要参数
-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。

4.应用实例
建立一个新组,并设置组ID加入系统:
#groupadd -g 344 cjh

此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。

kill

1.作用
kill命令用来中止一个进程。

2.格式
kill [ -s signal | -p ] [ -a ] pid …
kill -l [ signal ]

3.参数
-s:指定发送的信号。
-p:模拟发送信号。
-l:指定信号的名称列表。
pid:要中止进程的ID号。
Signal:表示信号。

4.说明
进程是Linux系统中一个非常重要的概念。Linux是一个多任务的操作系统,系统上经常同时
运行着多个进程。我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片
的,所关心的是如何去控制这些进程,让它们能够很好地为用户服务。

Linux 操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互进程是由
一个Shell启动的进程。交互进程既可以在前台运行,也可以在后台运行。批处理进程和终
端没有联系,是一个进程序列。监控进程(也称系统守护进程)时Linux系统启动时启动的
进程,并在后台运行。例如,httpd是著名的 Apache服务器的监控进程。

kill命令的工作原理是,向Linux系统的内核发送一个系统操作信号和某个程序的进程标识
号,然后系统内核就可以对进程标识号指定的进程进行操作。比如在top命令中,我们看到
系统运行许多进程,有时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆
命令时,曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统死锁时,可以切换到
其它虚拟控制台工作关闭这个程序。此时使用的命令就是kill,因为kill是大多数Shell内
部命令可以直接调用的。

5.应用实例
(1)强行中止(经常使用杀掉)一个进程标识号为324的进程:
#kill -9 324

(2)解除Linux系统的死锁
在Linux 中有时会发生这样一种情况:一个程序崩溃,并且处于死锁的状态。此时一般不用
重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可。当 kill处于
X-Window界面时,主要的程序(除了崩溃的程序之外)一般都已经正常启动了。此时打开一个
终端,在那里中止有问题的程序。比如,如果 Mozilla浏览器程序出现了锁死的情况,可以
使用kill命令来中止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID,
然后使用kill命令停止这个程序:
#kill -SIGKILL XXX
其中,XXX是包含有Mozolla浏览器的程序的进程标识号。

(3)使用命令回收内存
我们知道内存对于系统是非常重要的,回收内存可以提高系统资源。kill命令可以及时地中
止一些“越轨”的程序或很长时间没有相应的程序。例如,使用top命令发现一个无用
(Zombie) 的进程,此时可以使用下面命令:
#kill -9 XXX
其中,XXX是无用的进程标识号。

然后使用下面命令:
#free
此时会发现可用内存容量增加了。

(4)killall命令
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:
# killall -HUP inetd

crontab

1.作用
使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行
,该命令使用权限是所有用户。

2.格式
crontab [ -u user ] 文件
crontab [ -u user ] { -l | -r | -e }

3.主要参数
-e:执行文字编辑器来设定时程表,内定的文字编辑器是vi。
-r:删除目前的时程表。
-l:列出目前的时程表。

crontab 文件的格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~
23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。
cmd表示要运行的程序,它被送入sh执行,这个Shell只有USER、HOME、SHELL三个环境变量

4.说明
和at命令相比,crontab命令适合完成固定周期的任务。

5.应用实例
设置一个定时、定期的系统提示:
[cao @www cao]#crontab -e
此时系统会打开一个vi编辑器。

如果输入以下内容:35 17 * * 5 wall “Tomorrow is Saturday I will go CS”,然后存盘
退出。这时在/var/spool/cron/目录下会生产一个cao的文件,内容如下:

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.2707 installed on Thu Jan  1 22:01:51 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
35 17 * * 5 wall “Tomorrow is Saturday I will play CS ”

这样每个星期五17:35系统就会弹出一个终端,提醒星期六可以打打CS了!显示结果见图3
所示。

动手练习

1.联合使用kill和top命令观察系统性能的变化

首先启动一个终端运行top命令,然后再启动一个终端使用kill命令,见图4所示。
图4 观察kill命令对top终端的影响

这时利用上面介绍的kill命令来中止一些程序:
#kill SIGKILL XXX

然后再看top命令终端的变化,包括内存容量、CPU使用率、系统负载等。注意,有些进程是
不能中止的,不过学习Linux命令时可以试试,看看系统有什么反应。

2.使用at和halt命令定时关机
首先设定关机时间是17:35,输入下面代码:

#at 17:35
warning: commands will be executed using (in order) a) $SHELL b) login shell c)
/bin/sh
at>halt `-i -p
at> <EOT>
job 6 at 2004-01-01 17:35

 

此时实际上就已经进入Linux系统的Shell,并且编写一个最简单程序:halt -i -p。上面
Shell中的文本结束符号表示按“Ctrl+D”组合键关闭命令,提交任务退出Shell。“Job
6 at 2004-01-01 17:35”表示系统接受第6个at命令,在“2004-01-01 17:35”时执行
命令:先把所有网络相关的装置停止,关闭系统后关闭电源。

3.用crontab命令实现每天定时的病毒扫描
前面已经介绍了一个简单的crontab命令操作,这里看一些更重要的操作。

(1)建立一个文件,文件名称自己设定,假设为caoproject:
#crontab -e

(2)文件内容如下:
05 09 * * * antivir
用vi编辑后存盘退出。antivir是一个查杀Linux病毒的软件,当然需要时先安装在系统中。

(3)使用crontab命令添加到任务列表中:
#crontab caoproject
这样系统内所有用户在每天的9点05分会自动进行病毒扫描。

4.用kill使修改的配置文件马上生效
Windows用户一般都知道,重要配置文件修改后往往都要重新启动计算机才能使修改生效。
而Linux由于采用了模块化设计,可以自己根据需要实时设定服务。这里以网络服务inetd为
例介绍一些操作技巧。

inetd 是一个监听守护进程,监听与提供互联网服务进程(如rlogin、telnet、ftp、rsh)
进行连接的要求,并扩展所需的服务进程。默认情况下,inetd监听的这些daemon均列于
/etc /inetd.conf文件中。编辑/etc/inetd.conf文件,可以改变inetd启动服务器守护进程
的选项,然后驱使inetd以 SIGHUP(signal 1)向当前的inetd进程发送信号,使inetd重读
该文件。这一过程由kill命令来实现。
用vi或其它编辑器修改inetd.conf后,首先使用下面命令:
#ps -ef |grep inetd

上面代码表明查询inetd.conf的进程号(PID),这里假设是1426,然后使用下面命令:
# kill -1426 inetd
这样配置文件就生效了。

这一讲介绍的系统管理命令都是比较重要的,特别是crontab命令和quota命令使用起来会有
一定难度,需要多做一些练习。另外,使用kill命令要注意“-9“这个参数,练习时最好
不要运行一些重要的程序。

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326351257&siteId=291194637