Linux系统管理命令

对于 Linux 系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux 系统管理的命令是它正常运行的核心。熟悉了 Linux 常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令。

df

1.作用

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

2.格式

df [options]

3.主要参数

-s:对每个 Names 参数只给出占用的数据块总数。
-a:递归地显示指定目录中各文件及子目录中各文件占用的数据块数。若既不指定 -s,也不指定 -a,则只显示 Names 中的每一个目录及其中的各子目录所占的磁盘块数。
-k:以 024 字节为单位列出磁盘空间使用情况。
-x:跳过在不同文件系统上的目录不予统计。
-l:计算所有的文件大小,对硬链接文件则计算多次。
-i:显示 inode 信息而非块使用量。
-h:以容易理解的格式印出文件系统大小,例如 36kB、254MB、2 GB。
-P:使用 POSIX 输出格式。
-T:显示文件系统类型。

4.说明

df 命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等。
超级权限用户使用 df 命令时会发现这样的情况:某个分区的容量超过了100%。这是因为
Linux 系统为超级用户保留了10%的空间,由其单独支配。也就是说,对于超级用户而言, 他所见到的硬盘容量将是10%。这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作。

5.应用实例

Linux 支持的文件系统非常多,包括 JFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、
vfat、MSDOS 等。使用 df -T 命令查看磁盘空间时还可以得到文件系统的信息:
井号df -T

文件系统 类型 容量 己用 可用 己用%  挂载点

/dev/hda7 reiserfs 5.2G .6G 3.7G 30%  /

/dev/hda  vfat 2.4G .6G 827M 66% /windows/C

/dev/hda5 vfat 3.0G .7G .3G 57% /windows/D

/dev/hda9 vfat 3.0G 2.4G 566M 82% /windows/E

/dev/hda 0 NTFS 3.2G 573M 2.6G 8% /windows/F

/dev/hda  vfat  .6G  .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 系统管理的一个主要命令,通过它可以获得许多信息。这里结合图 来说明它给出的信息。

这里写图片描述
这里写图片描述

在图中,第一行表示的项目依次为当前时间、系统启动时间、当前系统登录用户数目、平均负载。
第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。
第三行显示的是目前 CPU 的使用情况,包括系统占用的比例、用户使用比例、闲置(Idle)比例。
第四行显示物理内存的使用情况,包括总的可以使用的内存、己用内存、空闲内存、缓冲区占用的内存。
第五行显示交换分区使用情况,包括总的交换分区、使用的、空闲的和用于高速缓存的大小。
第六行显示的项目最多,下面列出了详细解释。PID(Process ID):进程标示号。
USER:进程所有者的用户名。
PR:进程的优先级别。
NI:进程的优先级别数值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中 S 表示休眠,R 表示正在运行,Z 表示僵死状态,N 表示该进程优先值是负数。
%CPU:该进程占用的 CPU 使用率。
%NEM:该进程占用的物理内存和总内存的百分比。
TIME+:该进程启动后占用的总的 CPU 时间。
Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

top 命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过
快捷键启动的。

<空格>:立刻刷新。
P:根据 CPU 使用大小进行排序。
T:根据时间、累计时间排序。
q:退出 top 命令。
m:切换显示内存信息。
t:切换显示进程和 CPU 状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
W:将当前设置写入~/.toprc 文件中。这是写 top 配置文件的推荐方法。
可以看到,top 命令是一个功能十分强大的监控系统的工具,对于系统管理员而言尤其重要。但是,它的缺点是会消耗很多系统资源。

5.应用实例

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

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

上面命令表示让系统在两天后的 15: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 (3 file(s)) 表示这是第 个打印命令,依次打
印这三个文件。

(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      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 7 * * 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   22:0 :5  2004)
井号 (Cron version - -$Id:crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 
35  7 * * 5 wall ”Tomorrow is Saturday I will play CS ”

这样每个星期五 7:35 系统就会弹出一个终端,提醒星期六可以打打 CS 了!

动手练习

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

首先启动一个终端运行 top 命令,然后再启动一个终端使用 kill 命令。
这时利用上面介绍的 kill 命令来中止一些程序:

井号kill SIGkILL XXX

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

2.使用 at 和halt 命令定时关机

首先设定关机时间是 7:35,输入下面代码:

井号at 7: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 )向当前的 inetd 进程发送信号,使 inetd 重读该文件。这一过程由 kill 命令来实现。
用 vi 或其它编辑器修改 inetd.conf 后,首先使用下面命令:

井号ps -ef|grep inetd

上面代码表明查询 inetd.conf 的进程号(PID),这里假设是 426,然后使用下面命令:

井号kill - 426 inetd

这样配置文件就生效了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值