linux 管理系统命令

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

df

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

2.格式
df [options]

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

4.说明
df命令被广泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息,包括总容量、可用的空闲空间、目前的安装点等.

超级权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%.这是 Linux系统为超级用户保留了10%的空间,由其单独支配.也就是说,对于超级用户而言,他所见到的硬盘容量将是110%.这样的安排对于系统管理而言是有好处的,当硬盘被使用的容量接近100%时系统管理员还可以正常工作.

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

#df -T
文件系统 类型 容量  已用   可用  已用% 挂载点
/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.

 

图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这样的系统账号


  图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>
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“这个参数,练习时最好不要运行一些重要的程序.

posted @ 2012-03-28 14:32  linux—jock  阅读(193)  评论(0编辑  收藏  举报