![Linux 从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/734/32463734/b_32463734.jpg)
4.2 系统管理与维护命令
本小节将要学习Linux系统最基础的命令,系统通过使用该命令来完成一些基础的日常工作,这些命令就是系统管理和维护命令。
4.2.1 pwd命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P64_3180.jpg?sign=1739116626-AUQHQUpvuKYTEvWdGdZh6bow3dbA3JL5-0-1f17ffa10048e8e4b4893ddf2a9e6656)
在Linux文件系统中有许多目录,当用户执行一条命令但没有表明该命令所在的目录时,Linux系统就会首先在当前目录(目前的工作目录)搜索这个命令。因此,用户在执行命令之前,常常需要确定目前所在的工作目录,即当前目录。
当用户登录Linux系统之后,其当前目录就是它的主目录。
Linux系统中的pwd命令就是用来显示当前工作目录的名称,它是Print Working Directory(打印工作目录)的缩写,命令的基本格式如下:
pwd [选项]
【例4-1】pwd命令的使用。
步骤1:使用whoami命令确定现在的用户名称(whoami命令用于确定当前登录的用户),使用命令如下:
[abcd@localhost ~]$ whoami
显示结果表明当前用户为“abcd”,如图4-1所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P64_3150.jpg?sign=1739116626-gujMjs2jFFBQQNmqx3WZHYWjw2j0ARxM-0-6a40acbf097671cc0d71880bf411ac5a)
图4-1 whoami命令结果
步骤2:使用pwd命令来确定现在所在的工作目录,命令如下:
[abcd@localhost ~]$ pwd
显示结果表明“abcd”用户的当前目录就是它的主目录/home/abcd,如图4-2所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P65_3185.jpg?sign=1739116626-z2uc1dwwfuumONBF6ZwMPWKsAjfnKExM-0-7e0de8b05f8ddea64c2fa2044ef9f4dd)
图4-2 pwd命令结果
4.2.2 cd命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P65_3285.jpg?sign=1739116626-ilxU6zeYGYymiYV1zx3wPsgzw2h29DQW-0-01fc1e0b8bb76dcde4651e311565bd3d)
Linux命令可以分为Shell内置命令和外部命令两种。Shell内置命令,是指Shell本身自带的命令,这些命令没有执行文件;外部命令,是单独开发的命令,因此这些命令会有执行文件。Linux系统中的大部分命令都是外部命令,而cd命令则是一个典型的Shell内置命令,所以cd命令没有执行文件所在的路径。
cd(Change Directory)命令的作用是可以切换当前工作目录。
cd命令的语法格式如下:
[abcd@localhost ~]$ cd[相对路径或绝对路径]
cd命令后面还可以加特殊符号,表示固定的含义,如表4-1所示。
表4-1 cd命令特殊符号及功能
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T65_29013.jpg?sign=1739116626-pObeFXPQch7alPrvK8AfMUpgeh8RvDL6-0-9b6cb1cf95601cf9df15aa828e51b33d)
4.2.3 ls命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P65_3291.jpg?sign=1739116626-STzCSSc6RHIjklDtZ2batdhjst6F5PgM-0-c51cce7da482aa26bad8c58c3b9bacbe)
ls是list的缩写,是最常见的目录操作命令。ls命令的功能是列出当前目录或指定目录中的内容(显示目录与文件信息)。ls命令的语法格式如下:
ls [选项] [文件/目录] ls [options] [files/directories]
选项(options):以“-”开始的选项,可以同时使用多个选项。
文件/目录(files/directories):文件或目录,也可以同时使用多个文件或多个目录。
ls命令常用的选项及各自的功能如表4-2所示。
表4-2 ls命令常用选项和功能
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T66_29014.jpg?sign=1739116626-6wfUDAxuPN2HLWEmu9Xjbf4ixZE0hgHV-0-36320e3929658f2ff26477a453f0a1fa)
注意:当ls命令不使用任何选项时,默认只会显示非隐藏文件的名称,并以文件名进行排序,同时会根据文件的具体类型给文件名配色(蓝色显示目录,白色显示一般文件)。除此之外,如果要使用ls命令显示更多内容,就需要使用表4-1相应的选项。
【例4-2】用ls列出当前目录。
步骤1:使用mkdir命令(在4.4.2节中将详细介绍)在当前目录下创建一个hello的子目录,如下所示:
[abcd@localhost ~]$ mkdir hello
步骤2:分别使用以下命令在当前目录中创建两个文件,它们的文件名分别为dog和cat2010,如下所示:
[abcd@localhost ~]$ ls -l / > dog [abcd@localhost ~]$ cal 2015 > cat2010
步骤3:用最简单的ls命令列出当前目录,即abcd的家目录中所有的文件和目录,如图4-3所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P67_3434.jpg?sign=1739116626-3EORgsu3njXUP3040AUXmgTqWwWHQXKt-0-f57d42daa4f1ab5ef7ae4e82413a4f89)
图4-3 ls命令输出结果
【例4-3】显示隐藏文件。
打开终端页面,输入命令如下:
[abcd@localhost ~]$ ls -a
输出结果如图4-4所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P67_3461.jpg?sign=1739116626-kTNeNHaO2poxpyeMH2GW2y3QgctkCaug-0-c0c01c92d54671b707a103f548513af6)
图4-4 隐藏文件显示结果
4.2.4 date和cal命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P67_3510.jpg?sign=1739116626-ejiNfKssS2MbdGgUL6JZ6CwIIGOBFuNW-0-a1cc903a20e29e920f69a1cb2f4c8a9f)
(1)date命令用来显示系统当前的日期和时间。我们要想获取当前的日期和时间,可以在Linux系统中运行如下命令:
[abcd@localhost ~]$ date
运行结果如图4-5所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P67_3489.jpg?sign=1739116626-PQBk6BMgFjajlWQMEXbdliEUG8jW4ohF-0-e27daee7647c9921cfd0623eda5ff23d)
图4-5 date命令运行结果
(2)cal(calendar)命令主要用于查看日历,如果后面只有一个参数,则表示年份,有两个参数,则表示月份和年份。
cal命令常用的选项及各自的功能如表4-3所示。
表4-3 cal命令常用选项及功能
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T68_29019.jpg?sign=1739116626-cIM9ESq76WR8unBmsnWVbfg8QLSarCRm-0-177a7a8ba2e78444c61a2afd85177899)
【例4-4】显示当月日历。
打开终端页面,输入命令如下:
[abcd@localhost ~]$ cal
输出结果如图4-6所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P68_3591.jpg?sign=1739116626-ZZ80r4haKMBZqSgMxqfK48OV5r5nceRW-0-77ee4d08ec60a0aa565c2f1d2c96470e)
图4-6 显示当月日历
【例4-5】自定义参数。
在终端页面中输入命令如下:
[abcd@localhost ~]$ cal 5 1997
第一个参数5表示月份,第二个参数1997表示年份,输出结果如图4-7所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P68_3604.jpg?sign=1739116626-c72u1sGnI6APugv4Meueh1Zy8boUuqbd-0-918c19ea17922dd5606f748cade3a05a)
图4-7 自定义参数显示
4.2.5 su和passwd命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P68_3631.jpg?sign=1739116626-pFAqHIDDH78cjQjCLDbSJHJ6XfATfHj1-0-014e05302e2065f7db9f043b0feff10d)
(1)su(switch user)命令是可以将当前用户切换到一个指定的其他用户。
注意:su命令可以从普通用户切换到root用户,也可以从一个普通用户切换到另一个普通用户,还可以从root用户切换到一个普通用户。
【例4-6】从普通用户切换到root用户。
在终端页面中输入命令如下:
[abcd@localhost ~]$ su - root
输出结果如图4-8所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P69_3635.jpg?sign=1739116626-dHuWI5Swwe8BXTEchy1qT6qsyC0ZWB7W-0-ae2ede20dbd0a30ddf586f8018635e67)
图4-8 普通用户到root用户的切换
从图4-8中可以看出,输入su命令切换到root用户时,需要输入root密码。当输入正确的root密码之后系统会出现root用户的提示符“#”。
(2)passwd命令:可以用来修改用户密码,该用户既可以是普通用户也可以是root用户。同时还可以查询某一用户密码的状态,仅root用户可以使用。
passwd命令的基本格式如下:
[abcd@localhost ~]$ passwd [选项] [用户名]
passwd命令常用的选项及各自的功能如表4-4所示。
表4-4 passwd命令常用选项及功能
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T69_29025.jpg?sign=1739116626-s7fiqDqToMDFgJHPwhnd4CI2vgtU8l9K-0-a8d840e3c729d38b986e268cbdbc9c1e)
【例4-7】修改abcd用户密码。
步骤1:输入su命令切换到root用户,命令如下:
[abcd@localhost ~]$ su - root
步骤2:输入passwd命令,修改用户abcd密码,命令如下:
[root@localhost ~]# passwd abcd
步骤3:根据提示输入新密码,再次确认密码,最后有修改成功提示,输出结果如图4-9所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P69_3745.jpg?sign=1739116626-VBvDDwm49tjVYlVXVwhTsiagC7CTJEmg-0-52f208ba32e13183abc15212ab4cc8b5)
图4-9 修改密码成功
4.2.6 man命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P70_3876.jpg?sign=1739116626-S0ndgru7yxeBWEbPeGYzP4LOm7xVe6zK-0-6e5645f3ccd6439a75e44de96257658b)
通过man(manual:手册)命令可以快速查询其他每个Linux命令的详细描述和使用方法,man手册一般保存在/user/share/man目录下。man是最常见的帮助命令,也是Linux最主要的帮助命令。man命令格式如下:
[abcd@localhost ~]$ man [选项] [命令]
【例4-8】man命令的使用。
在终端页面中输入命令如下:
[abcd@localhost ~]$ man ls
输出结果如图4-10所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P70_3791.jpg?sign=1739116626-6cIfUO72y4Y5ATiYY9rQ3Kiep0LoFIAP-0-b1362e583b6e88a89915b0a33a002164)
图4-10 输出结果
在执行man命令时,命令的开头会有一个数字标识这个命令的帮助级别。例如:
LS(1) User Commands LS(1)
注意:“1”表示这是ls的1级别的帮助信息。
man命令的帮助级别及功能如表4-5所示。
表4-5 man命令的帮助级别及功能
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T70_29034.jpg?sign=1739116626-YG2Zkt0rILSXvQvB2YisYTFq8PEpq93C-0-2b39aad5f9d1f8bf2e4dc00589d5d924)
4.2.7 who和w命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P71_3981.jpg?sign=1739116626-kU41fj2bu84W5DXvtLd4mPImGtiSp33C-0-014cc419e4178e9299cf86942e4e83f0)
(1)who命令主要用于查看当前在系统上工作的用户有哪些。who命令格式如下:
[abcd@localhost ~]$ who
在终端页面中输入该命令,运行结果如图4-11所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P71_3925.jpg?sign=1739116626-xXEW27xYsU6Z5F62GuKJETMUWTgWlFCt-0-046bb22d6a461b68c9f8292a8355d14f)
图4-11 who命令运行结果
(2)w命令与who命令类似,但w命令主要用于显示登录到系统的用户情况。w命令不但可以显示有哪些用户登录到该系统,还可以显示出这些用户当前正在进行的工作。
w命令格式如下:
[abcd@localhost ~]$ w
输出结果如图4-12所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P71_3950.jpg?sign=1739116626-r33vJrHQ1e6aJvRVShO3qe7d1PEKVjOC-0-6690c5ef7ead78fc03ef2a2c6806967b)
图4-12 w命令运行结果
从图4-12中可以看到当前用户正在进行的工作,显示结果的第1行从左到右依次为当前时间、系统启动到现在的时间、登录用户的数目、系统在最近1分钟、5分钟和15分钟的平均负载;然后是每个用户的各项数据,项目显示顺序从左至右依次为登录账号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。
4.2.8 uname命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P71_3987.jpg?sign=1739116626-0wkZZqK3ULxlNMs0VAS0hjNOrDmIOCdh-0-760bad5b3ac8e0077bba633f9f7417af)
uname(UNIX name)命令用于显示操作系统的信息。
在终端页面中输入如下命令:
[abcd@localhost ~]$ uname
显示结果则是所使用的操作系统是Linux。
Linux
uname命令常用的选项及作用如表4-6所示。
表4-6 uname命令常用选项及作用
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T72_29045.jpg?sign=1739116626-rOa4Zs0nNZ0s4QGhmsfRhX6o0suDgpdT-0-135bf6d7f52c1bd4c8e10a4beeeb6f7c)
【例4-9】使用-n和-i组合的uname命令。
在终端页面输入如下命令:
[abcd@localhost ~]$ uname -n -i
显示结果如图4-13所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P72_4078.jpg?sign=1739116626-FjULigHGBydSyel33JjlJ8mAxctYhKxO-0-e691929848a32bcac8dbcd61b02857ed)
图4-13 输出结果
4.2.9 last命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P72_4163.jpg?sign=1739116626-b56QXEgspcf5eLcEIXQD7fyxIDDWoEo6-0-19fb7fd645a5ff58c0547dba531e44f9)
last命令用于查看当前和过去登录系统用户的相关信息。基本格式如下:
[abcd@localhost ~]$ last [选项]
last命令常用的选项及含义如表4-7所示。
表4-7 last命令常用选项及含义
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T72_29046.jpg?sign=1739116626-pE557Ndq8O1DaFXUxEXcINF2QTinMsQn-0-6e3cb730e39f1567e0e321b6a8befbcb)
使用last命令显示输出结果,如图4-14所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P73_4168.jpg?sign=1739116626-OrnI2lE0xP2vtCMDn88rAzH2O23uiZqE-0-ff8988d9e422f9681ad5e7c9ce234eaa)
图4-14 last命令输出结果
4.2.10 uptime和free命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P73_4233.jpg?sign=1739116626-BT0F2i2MQRAT8HGqdyF7ukYtV2u2BX0l-0-c3202ccbd64d2a3fba6b4015933c5105)
(1)uptime命令主要用于显示系统已经运行的时间、当前登录的用户数量和系统的平均负载。格式如下:
[abcd@localhost ~]$ uptime
【例4-10】uptime命令的使用。
在终端页面输入如下命令:
[abcd@localhost ~]$ uptime
输出结果如图4-15所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P73_4212.jpg?sign=1739116626-yx79MRwCxKlhxe3kE3gbpm4pPsAOZhlB-0-7892532003e43f181c74f9abc83b4544)
图4-15 uptime命令的输出结果
以上信息显示出当前系统的时间为23:31:37、已经运行2分钟,当前有两个用户在登录,最近1分钟、5分钟和15分钟内系统的平均负载。
(2)free命令用来显示系统内存的状态,包括系统的物理内存、虚拟内存(swap交换分区)、共享内存和系统缓存的使用情况。free命令的语法格式如下:
[abcd@localhost ~]$ free [选项]
free命令常用的选项及作用如表4-8所示。
表4-8 uname命令常用选项及作用
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T74_29053.jpg?sign=1739116626-ELzQrVR0VbwHX9Qdc9bd3TzZvoZYY8CZ-0-025fae33b68bf066702bc066b383cfd7)
4.2.11 dmesg命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P74_4341.jpg?sign=1739116626-eku2M3yjiOKqqduAssglYvWfFq1jNiDu-0-9be9f40f1d3582f855a062f5e6df5f03)
dmesg命令用于显示开机信息,常用于查看系统的硬件信息。无论是在系统的启动过程中,还是在系统的运行过程中,由内核产生的信息,都会被存储在系统缓冲区中,如果开机时来不及查看相关信息,可以使用dmesg命令将信息显示出来。
dmesg命令的基本格式如下:
[abcd@localhost ~]$ dmesg
输出结果如图4-16所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P74_4306.jpg?sign=1739116626-mJfS6kYQ8iyjjVunYTZ8t0NiaeqKQIWS-0-e37b6abec71f9af2c4ee4d91da82c024)
图4-16 dmesg命令的输出结果
注意:dmesg命令的参数有3种:①-c:显示信息完成后清除环缓冲内的内容;②-s:缓冲区大小,定义一个缓冲区用于查询内核环缓冲区,默认大小为8196;③-n级别:设置级别为记录控制台启动信息的级别。
4.2.12 ps和top命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P74_4347.jpg?sign=1739116626-iJ16NMaddmSVY7owLBpTeNfdtMWgpdu7-0-abf26e1a120c32e485fdd4879da75701)
(1)ps(Process Status)命令主要用于监控进程,通过此命令可以查看系统中所有运行进程的详细信息。
ps命令的基本格式如下:
[abcd@localhost ~]$ ps [选项]
ps命令常用的选项及作用如表4-9所示。
表4-9 ps命令常用选项及作用
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T75_29057.jpg?sign=1739116626-XAABp6o1U82jhguo5w6B2IxUSYR6bBGe-0-b09291be92f0bbe4accda6927afce32f)
注意:aux和-axu都能显示终端的所有进程。aux使用的是BS操作系统格式;-axu则使用的是Linux标准命令格式。
在终端页面输入如下命令:
[abcd@localhost ~]$ ps aux
输出结果如图4-17所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P75_4422.jpg?sign=1739116626-JpJ5WnMp2CwXTUZ8S4uBicLnXi4ULo7B-0-c5eb71a3a1db8d9aa9130274c8823a92)
图4-17 全部进程信息
在命令的输出信息中,USER代表进程的执行用户;PID代表进程的唯一编号;%CPU表示进程的CPU占有率;%MEM表示进程的内存占有率;VSZ代表进程使用的虚拟内存的大小(KB);RSS代表进程使用的真实内存大小(KB);TTY表示终端;STAT代表进程的状态:D为不可中断的进程,R为正在运行的进程,S为正在睡眠的进程,T为停止或被追踪的进程,X为死掉的进程,Z为僵死进程;START代表进程启动的时间;TIME代表进程占有CPU的总时间;COMMAND代表进程命令。
(2)top命令可以动态地查看进程地运行状态。ps命令的基本格式如下:
[abcd@localhost ~]$ top [选项]
top命令常用的选项及作用如表4-10所示。
表4-10 top命令常用选项及作用
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T76_29058.jpg?sign=1739116626-fokpfyfQluQNv4fDjFARnZOYpQ5PKpJY-0-21be5ffacf6c698ff50e6e1a7d907b36)