Linux-系统管理命令

futurezone 2014-04-03

系统管理命令:df、top、free、at、lp、adduser、groupadd、kill、crontab

1.df

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

df [options] 

-a:显示所有文件系统的磁盘使用情况,包括0块(block)的文件系统,如/proc文件系统。 

-k 以k字节为单位显示。

-i 显示i节点信息,而不是磁盘块。

-t 显示各指定类型的文件系统的磁盘空间使用情况。

-x 列出不是某一指定类型文件系统的磁盘空间使用情况(与t选项相反)。

  -T 显示文件系统类型。 
  -h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB。

  -H:与-h参数相同,不过在根式化的时候,采用1000而不是1024进行容量转换

 

2.top

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

top [-d] | top [-bnp]
参数:
-d :后面可以接秒数,就是整个程序画面更新的秒数。预设是 5 秒;
-b :以批次的方式执行 top ,还有更多的参数可以使用喔!
通常会搭配数据流重导向来将批次的结果输出成为档案。
-n :与 -b 搭配,意义是,需要进行几次 top 的输出结果。
-p :指定某些个 PID 来进行观察监测而已。
在 top 执行过程当中可以使用的按键指令:
? :显示在 top 当中可以输入的按键指令;
top命令使用过程中,还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的。 
<空格>:立刻刷新。 <br />P:根据CPU使用大小进行排序。 
T:根据时间、累计时间排序。 
q:退出top命令。 
m:切换显示内存信息。 <br />t:切换显示进程和CPU状态信息。 
c:切换显示命令名称和完整命令行。 
M:根据使用内存大小进行排序。 <br />W:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。
 
 
top - 09:32:45 up 2 days, 23:20,  3 users,  load average: 0.00, 0.00, 0.00
Tasks: 174 total,   1 running, 171 sleeping,   2 stopped,   0 zombie
Cpu(s):  0.1%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%
Mem:   2047732k total,   787016k used,  1260716k free,   105400k buffers
Swap:  3145720k total,        0k used,  3145720k free,   282548k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND        
15851 root      20   0 14940 1236  900 R  0.3  0.1   0:00.03 top            
    1 root      20   0 19236 1432 1156 S  0.0  0.1   0:01.15 init           
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd       
    3 root      RT   0     0    0    0 S  0.0  0.0   0:00.40 migration/0    
    4 root      20   0     0    0    0 S  0.0  0.0   0:00.01 ksoftirqd/0    
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0     
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.25 migration/1    
    7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/1    
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/1     
    9 root      RT   0     0    0    0 S  0.0  0.0   0:00.51 migration/2

 
top 也是个挺不错的程序观察工具!但不同于 ps 是静态的结果输出, top 这个程序可以持续的监测 (monitor) 整个系统的程序工作状态,例如上面的范例一所示啊! 在预设的情况下,每次更新程序资源的时间为 5 秒,不过,可以使用 -d 来进行修改。 top 主要分为两个画面,上面的画面为整个系统的资源使用状态,基本上总共有六行, 显示的内容依序是:
• 第一行:显示系统已启动的时间、目前上线人数、系统整体的负载(load)。 比较需要注意的是系统的负载,三个数据分别代表 1, 5, 10 分钟的平均负载。 一般来说,这个负载值应该不太可能超过 1 才对,除非您的系统很忙碌。 如果持续高于 5 的话,那么.....仔细的看看到底是那个程序在影响整体系统吧!
• 第二行:显示的是目前的观察程序数量,比较需要注意的是最后的 zombie 那个数值,如果不是 0 ,嘿嘿!好好看看到底是那个 process 变成疆尸了吧?!
• 第三行:显示的是 CPU 的整体负载,每个项目可使用 ? 查阅。需要观察的是 id (idle) 的数值,一般来说,他应该要接近 100% 才好,表示系统很少资源被使用啊! ^_^。
• 第四行与第五行:表示目前的物理内存与虚拟内存 (Mem/Swap) 的使用情况。
• 第六行:这个是当在 top 程序当中输入指令时,显示状态的地方。 例如范例四就是一个简单的使用例子。
至于 top 底下的画面,则是每个 process 使用的资源情况。比较需要注意的是:
• PID :每个 process 的 ID 啦!
• USER:该 process 所属的使用者;
• PR :Priority 的简写,程序的优先执行顺序,越小越早被执行;
• NI :Nice 的简写,与 Priority 有关,也是越小越早被执行;
• %CPU:CPU 的使用率;
• %MEM:内存的使用率;
• TIME+:CPU 使用时间的累加;

VIRT:进程占用的虚拟内存值。 

RES:进程占用的物理内存值。 

SHR:进程使用的共享内存值。

S:进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。

Command:进程启动的启动命令名称,如果这一行显示不下,进程会有一个完整的命令行。

3.free

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

参数 
-b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。 

-s delay:显示每隔多少秒数来显示一次内存使用情况。 

-t:显示内存总和列。 

-o:不显示缓冲区调节列。

[root@localhost temp]# free -m
             total       used       free     shared    buffers     cached
Mem:          1999        768       1231          0        103        275
-/+ buffers/cache:        389       1610
Swap:         3071          0       3071

第一行:
total 物理内存总数

used 已经使用的内存数

free 空闲的内存数

shared 当前已经废弃不用,总是0
buffers 即Buffer Cache内存数

cached 即Page Cache内存数

关系:total = used + free

第二行:
-/+ buffers/cache的意思相当于:
-buffers/cache 的内存数:(等于第1行的 used – buffers – cached),实际上是应用程序所使用的内存。
+buffers/cache 的内存数:(等于第1行的 free + buffers + cached),是对应用程序来说还剩余的内存。

可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。

第三行是交换分区swap, 列出已使用、空闲的swap.

 4.at (参考http://www.cnblogs.com/peida/archive/2013/01/05/2846152.html)

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

at [-V] [-q x] [-f file] [-m] time

at允许使用一套相当复杂的指定时间的方法。他能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。 上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,究竟是几天,还是几小时,等等。 更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。
TIME:时间格式,这里可以定义出什么时候要进行 at 这项任务的时间,格式有:
HH:MM
ex> 04:00
在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此任务。
HH:MM YYYY-MM-DD
ex> 04:00 2009-03-17
强制规定在某年某月的某一天的特殊时刻进行该项任务
HH:MM[am|pm] [Month] [Date]
ex> 04pm March 17
也是一样,强制在某年某月某日的某时刻进行该项任务
HH:MM[am|pm] + number [minutes|hours|days|weeks]
ex> now + 5 minutes
ex> 04pm + 3 days
就是说,在某个时间点再加几个时间后才进行该项任务。

在一个指定的时间执行一个指定任务,只能执行一次,且需要开启atd进程(

ps -ef | grep atd查看, 开启用/etc/init.d/atd start or restart; 开机即启动则需要运行chkconfig --level 2345 atd on)。

命令参数:

-m 当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出

-I atq的别名

-d atrm的别名

-v 显示任务将被执行的时间

-c 打印任务的内容到标准输出

-V 显示版本信息

-q<列队> 使用指定的列队

-f<文件> 从指定文件读入任务而不是从标准输入读入

-t<时间参数> 以时间参数的形式提交要运行的任务 

计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务

删除已经设置的任务命令:atrm 7

显示已经设置的任务内容命令:at -c 8

    

      

atd 的启动

要使用一次性计划任务时,我们的 Linux 系统上面必须要有负责这个计划任务的服务,那就是 atd 服务。 不过并非所有的 Linux distributions 都默认会把他打开的,所以,某些时刻我们需要手动将atd 服务激活才行。 激活的方法很简单,就是这样:

命令:

/etc/init.d/atd start 

/etc/init.d/atd restart 

配置一下启动时就启动这个服务,免得每次重新启动都得再来一次

命令:

chkconfig atd on

5.lp

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

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

参数 
-c:先拷贝文件再打印。 

-d:打印队列文件。 
-m:打印结束后发送电子邮件到用户。 

-number:打印份数。 

-title:打印标题。 
-p:设定打印的优先级别,最高为100。 

6.useradd 

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

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

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

参数 
-c:加上备注文字,备注文字保存在passwd的备注栏中。  

-d:指定用户登入时的启始目录。 

-D:变更预设值。 
-e:指定账号的有效期限,缺省表示永久有效。 

-f:指定在密码过期后多少天即关闭该账号。 

-g:指定用户所属的群组。 

-G:指定用户所属的附加群组。 

-m:自动建立用户的登入目录。 

-M:不要自动建立用户的登入目录。 

-n:取消建立以用户名称为名的群组。 

-r:建立系统账号。 
-s:指定用户登入后所使用的shell。 

-u:指定用户ID号。

7.groupadd

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

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

参数 
-g gid:指定组ID号。 

-o:允许组ID号,不必惟一。 

-r:加入组ID号,低于499系统账号。 

-f:加入已经有的组时,发展程序退出。

(/etc/passwd)

8.kill

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

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

kill -l [ signal ] 

参数 
-s:指定发送的信号。 

-p:模拟发送信号。 

-l:指定信号的名称列表。

kill -9 12345//强制终止进程12345

9.crontab 

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

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

参数 
-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三个环境变量。

例如:*/1 * * * * wall "Hello!",每分钟发送一个Hello!

上面时间分别是:分钟、小时、天、月、星期

相关推荐