linux必须学会的60个命令(60个命令示例在Linux入门时会详细讲解)对于Linux系统来说,CPU、内存、磁盘、键盘、鼠标、用户都是文件,Linux系统管理的命令是其正常运行的核心。在熟悉了Linux的常用文件处理命令之后,本讲座将介绍管理系统和用户的命令。
df
1.功能
df命令用于检查文件系统的磁盘空的占用情况,权限为所有用户。
2.格式
df[选项]
3.主要参数
-s:对于每个Names参数,只给出被占用的数据块的总数。
-a:递归显示指定目录和子目录中文件占用的数据块数。如果既没有指定-s也没有指定-a,那么将只显示每个目录及其子目录在Names中占用的磁盘块数。
-k:以1024字节为单位列出disks 空之间的使用情况。
-x:跳过不同文件系统上的目录不会被计算在内。
-l:计算所有文件的大小,对于硬链接文件,计算多次。
-I:显示inode信息,而不是块使用情况。
-H:以易于理解的格式打印出文件系统大小,比如136KB、254MB、21GB。
-p:使用POSIX输出格式。
-t:显示文件系统类型。
解释
df命令广泛用于生成文件系统使用统计信息。它可以显示系统中所有的文件系统信息,包括总容量、可用空空闲时间空、当前安装点等。
当超级特权用户使用df命令时,他们会发现一个分区的容量超过了100%。这是因为Linux系统为超级用户预留了10%的空房间,由超级用户单独控制。也就是说,对于超级用户来说,他看到的硬盘容量将是110%。这种安排有利于系统管理,系统管理员可以在硬盘容量接近100%时正常工作。
5.应用示例
Linux支持许多文件系统,包括JFS、ReiserFS、ext、ext2、ext3、XFS、ISO9660、Minx、vfat、MSDOS等。当您使用df -T命令查看磁盘之间的空间空时,也可以获得有关文件系统的信息:
#df -T
文件类型容量已用可用已用%装载点
/dev/hda 7 reiserfs 5.2G 1.6G 3.7G 30%/
/dev/hda 1 vfat 2.4G 1.6G 827m 66%/windows/C
/dev/HD a5 vfat 3.0G 1.7G 1.3G 57%/windows/D
/dev/hda 9 vfat 3.0G 2.4G 566m 82%/windows/E
/dev/hda 10 NTFS 3.2G 573m 2.6G 18%/windows/F
/dev/hda 11 vfat 1.6G 1.5G 23M 99%/windows/G
通过上面的内容,您不仅可以看到disks 空的容量和使用情况,还可以看到分区的文件系统类型和挂载点。
顶端
1.功能
top命令用于显示正在执行的程序进程,权限为所有用户。
2.格式
top [-] [d延迟] [q] [c] [S] [s] [i] [n]
3.主要参数
d:指定更新间隔,以秒为单位。
问:没有延迟更新。如果用户拥有超级用户,top命令将以最高优先级顺序执行。
c:显示进程的完整路径和名称。
s:累计模式将累计完成或消失的子行程的CPU时间。
安全模式。
I:不显示任何空闲或僵尸行程。
n:显示更新次数,完成后你将退出顶部。
解释
Top命令是Linux系统管理中的一个主要命令,通过它可以获得很多信息。这里,我们将参考图1解释它给出的信息。
图1顶层命令的显示
在图1中,第一行表示的项目是当前时间、系统启动时间、当前系统登录用户的数量和平均负载。第二行显示所有已启动的进程,当前正在运行、睡眠和僵尸进程。第三行显示当前的CPU使用率,包括系统占用率、用户使用率和空闲率。第四行显示物理内存的使用情况,包括总可用内存、已用内存、空空闲内存和缓冲区占用的内存。第五行显示了交换分区的使用情况,包括总的交换分区使用情况、空空闲情况和用于缓存的大小。第六行显示了最多的项目,下面列出了详细的解释。
PID(进程ID):进程标识号。
用户:流程责任人的用户名。
PR:流程的优先级。
NI:进程的优先级值。
VIRT:进程占用的虚拟内存值。
RES:进程占用的物理内存值。
SHR:进程使用的共享内存值。
S:进程的状态,其中S是休眠的,R是运行的,Z是死的,N是负的。
%CPU:该进程占用的CPU使用率。
%MEM:该进程占用的物理内存和总内存的百分比。
Time+:该进程自启动以来占用的总CPU时间。
Command:启动进程的启动命令的名称。如果这一行无法显示,该进程将有一个完整的命令行。
在使用top命令的过程中,还可以使用一些交互命令来完成其他参数的功能。这些命令由快捷键启动。
:立即刷新。
p:根据CPU使用大小排序。
t:按时间和累计时间排序。
问:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换命令名和完整命令行的显示。
m:按照使用的内存大小排序。
w:将当前设置写入~/。toprc文件。这是编写顶级配置文件的推荐方法。
如您所见,top命令是监视系统的强大工具,这对系统管理员尤其重要。但是它的缺点是会消耗大量的系统资源。
5.应用示例
使用top命令监视指定的用户。默认情况下,监控所有用户的进程。如果要查看指定用户的情况,在终端中按“U”键,输入用户名,系统会切换到指定用户的流程运行界面,如图2所示。
图2使用top命令监控指定的用户
自由的
1.功能
free命令用于显示内存使用情况,权限为所有用户。
2.格式
自由[-b|-k|-m] [-o] [-s延迟] [-t] [-V]
3.主要参数
-B-K-M:分别以字节(KB,MB)显示内存使用情况。
- s delay:显示显示内存使用的秒数。
-t:显示内存总和列。
-o:不显示缓冲调整列。
4.应用示例
free命令是用于检查内存使用情况的主要命令。与top命令相比,它使用简单,只占用很少的系统资源。使用-s参数,您可以使用free命令来连续监视使用了多少内存,这可以用作一个方便的实时监视器。
#免费-b -s5
使用该命令后,终端将持续报告内存使用情况(以字节为单位),并每5秒更新一次。
配额
1.功能
Quota命令用于显示磁盘使用情况、限制和超级用户权限。
2.格式
配额[-g] [-u] [-v] [-p]用户名组名
3.因素
-g:显示用户组的磁盘使用限制。
-u:显示用户的磁盘使用限制。
-v:显示空之间文件系统的分配情况,没有分配。
-p:显示简化的信息。
4.应用示例
磁盘配额在企业应用中非常重要,普通用户要学会了解自己的磁盘使用情况。要查询您的磁盘配额,您可以使用以下命令(以下示例中的用户帐户是caojh):
#配额caojh
用户caojh的磁盘配额(uid 502):
文件系统数据块配额限制宽限期文件配额限制宽限期
/dev/hda 3 58 200000 400000 41 500 1000
上图为ID号为502的caojh账号。文件数量设置为500 ~ 1000,硬盘空之间的限制设置为200MB~400MB。一旦磁盘配额即将用完,您需要删除一些垃圾文件或向系统管理员申请额外的配额。
在
1.功能
At命令用于在指定的时间执行指定的命令序列。
2.格式
在[-V] [-q x] [-f文件] [-m]时间
3.主要参数
-v:显示标准错误输出。
-Q:许多队列输出。
-f:从文件中读取作业。
-M:在作业完成后向用户发送电子邮件。
时间:设置作业运行的时间。时间的格式有严格的要求,由小时、分钟、日期和时间的偏移量组成,其中日期的格式为MM.DD.YY,MM为分钟,DD为日期,YY为年。偏移的格式为时间+偏移,单位为分钟、小时和天。
4.应用示例
#at -f数据15:30 +2天
上述命令表示系统将在两天后的17: 30执行文件数据中指示的作业。
线性规划(Linear Programming)
1.功能
Lp是打印文件的命令,权限是所有用户。
2.格式
LP[-c][-d][-m][-数字][-标题][-p]
3.主要参数
-C:打印前复制文件。
-d:打印队列文件。
-M:打印后给用户发邮件。
-数量:打印的份数。
-标题:打印标题。
-p:设置打印的优先级别,最高为100。
4.应用示例
(1)使用lp命令打印多个文件。
#lp 2 3 4
请求id为11 (3个文件)
其中2、3和4分别是文件名;“请求id为11 (3个文件)”表示这是第11个打印命令,三个文件依次打印。
(2)设置打印优先级
#lp lp -d激光打印机-p90/etc/别名
通过添加“-p 90”,规定打印作业的优先级为90。它将在优先级低于90的打印作业(包括未设置优先级的作业)之前打印。默认优先级为50。
用户名
1.功能
useradd命令用于建立用户帐号,创建用户的主目录,权限为超级用户。
2.格式
useradd [-d home] [-s shell] [-c注释] [-m [-k模板]][-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号。
解释
Useradd可用于建立用户帐户,这与adduser命令相同。建立帐户后,使用passwd设置帐户的密码。使用useradd命令建立的帐户实际上保存在/etc/passwd文本文件中。
5.应用示例
设置新的用户帐户并设置ID:
#useradd caojh -u 544
需要注意的是,ID值应尽量大于500,以避免冲突。因为Linux安装后会建立一些特殊用户,一般0到499之间的值是留给bin、mail等系统账号的。
增加组
1.功能
add命令用于向系统添加新组。
2.格式
groupadd [-g gid] [-o]] [-r] [-f]组名
3.主要参数
- g gid:指定组id号。
-o:组ID号是允许的,不是唯一的。
-R:加入群ID号,低于499系统账号。
-F:加入现有组时,开发程序退出。
4.应用示例
创建新组并设置组ID以加入系统:
#groupadd -g 344 cjh
此时,在/etc/passwd文件中会生成一个组ID(GID)为344的项目。
杀
1.功能
kill命令用于中止进程。
2.格式
杀死[ -s信号| -p ] [ -a ] pid...
kill -l [信号
3.因素
-s:指定要发送的信号。
-p:模拟传输信号。
-l:指定信号名称的列表。
PID:要中止的进程的ID号。
信号:表示信号。
解释
进程是Linux系统中一个非常重要的概念。Linux是一个多任务操作系统,很多进程经常同时在系统上运行。我们不关心这些进程是如何分配的,也不关心内核如何管理分配的时间片,而是关心如何控制这些进程,让它们能够很好地服务于用户。
Linux操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性。交互是由Shell启动的过程。进程可以在前台或后台运行。批处理与终端没有关系,而是一个进程序列。监控进程(也称为系统守护进程)是在Linux系统启动时启动的进程,在后台运行。比如httpd就是著名的Apache服务器的监控进程。
kill命令的工作原理是向Linux系统内核发送一个系统运行信号和一个程序的进程标识号,然后系统内核就可以运行进程标识号指定的进程。比如在top命令中,我们看到系统运行很多进程,有时需要使用kill来停止一些进程,以提高系统资源。在解释安装和登录命令时,提到了系统中多个虚拟控制台的作用是,当一个程序错误导致系统死锁时,可以切换到其他虚拟控制台关闭程序。此时使用的命令是kill,因为kill可以被大多数Shell内部命令直接调用。
5.应用示例
(1)强制挂起(通常是终止)进程ID号为324的进程:
#kill -9 324
(2)释放Linux系统的死锁。
在Linux中有时会发生程序崩溃并处于死锁状态的情况。一般这个时候不需要重启电脑,只要停止(或者关闭)这个有问题的程序就可以了。kill在X-Window界面时,主程序(崩溃的程序除外)一般已经正常启动。此时,打开一个终端,在这里可以停止有问题的程序。例如,如果Mozilla浏览器程序被锁定,您可以使用kill命令停止所有包含Mozilla浏览器的程序。首先使用top命令调查程序的PID,然后使用kill命令停止程序:
#kill -SIGKILL XXX
其中XXX是包含Mozolla browser的程序的进程标识号。
(3)使用命令回收内存。
我们知道内存对系统非常重要,回收内存可以提高系统资源。kill命令可以及时停止一些“离经叛道”的程序或者长时间没有对应的程序。例如,如果使用top命令找到了僵尸进程,可以使用以下命令:
#kill -9 XXX
其中XXX是无用的进程标识号。
然后使用以下命令:
#免费
这时,你会发现可用内存容量增加了。
(4)killall命令
Linux还提供了一个killall命令,它可以直接使用进程名而不是进程ID号,例如:
# killall -HUP inetd
例行性工作排程
1.功能
使用crontab命令修改crontab配置文件,然后由cron实用程序在适当的时候执行配置。该命令的权限是所有用户。
2.格式
Crontab [-u用户]文件
crontab [ -u用户] { -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。
解释
与at命令相比,crontab命令适合完成有固定周期的任务。
5.应用示例
设置定期的系统提示:
[曹@www曹]#crontab -e
将会打开一个vi编辑器。
如果输入以下内容:35 17 * * 5墙“明天是周六我要去cs”,那么保存并退出。此时,将在/var/spool/cron/目录中生成一个cao文件,其内容如下:
#不要编辑此文件-编辑母版并重新安装。
# (/tmp/crontab.2707安装于2004年1月1日星期四22:01:51)
# (C Yoyo资源网络Ron版本-$ ID: crontab.c,v 2.13 1994/01/17 03:20:37 Vixie EXP $)
35 17 * * 5墙“明天是星期六我要打CS”
所以每周五17: 35系统会弹出一个终端提醒你周六可以玩CS!
动手实践
1.联合使用kill和top命令来观察系统性能的变化。
首先启动一个终端来运行top命令,然后启动一个终端来使用kill命令,如图4所示。
图4观察kill命令对top终端的影响
然后使用上面介绍的kill命令来停止一些程序:
#杀死SIGKILL XXX
然后再看顶层命令终端的变化,包括内存容量、CPU利用率、系统负载等。注意,有些进程是无法停止的,但是可以在学习Linux命令的时候尝试一下,看看系统反应如何。
2.使用at和halt命令定期关机。
首先,将关机时间设置为17:35,并输入以下代码:
#在17点35分
警告:将使用(按顺序)a) $SHELL b) login shell c) /bin/sh执行命令
在>停止`-i -p
at >
工作6在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 * * *红伞
用vi编辑,保存并退出。红伞是一款查杀Linux病毒的软件。当然,必要时应该先安装在系统中。
(3)使用crontab命令添加到任务列表中:
# crontab项目
这样,系统中的所有用户都会在每天9: 05自动扫描病毒。
4.使用kill使修改后的配置文件立即生效。
Windows用户一般都知道,重要配置文件修改后,往往要重启电脑才能使修改生效。Linux由于其模块化设计,可以根据需要实时设置自己的服务。这里以网络服务inetd为例介绍一些操作技巧。
Inetd是一个监控守护进程,它监控与Internet服务提供商(如rlogin、telnet、ftp、rsh)的连接需求,并扩展所需的服务流程。默认情况下,inetd侦听的这些守护程序列在/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”。练习时最好不要运行一些重要的程序。