![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=1739253483-NodUHQpQUQlfG66Ibzg9AG99eGaPmnRb-0-99f414570539725db43f96a0bb1f1085)
在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=1739253483-VkvCfpO2UzJdLsEvTqRuExGkROq0vlLv-0-fba2ca47a0bda17955c83964ff355712)
图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=1739253483-Wbc6hSMm21XH2Ts8r6HXp9hxZeoksyRm-0-135c6f9bedae6fd6515fa2d7448df444)
图4-2 pwd命令结果
4.2.2 cd命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P65_3285.jpg?sign=1739253483-1DjoNZO9lLdDphrZCRAGWxRvQTSHaRAg-0-6cbb257963d075b805d139b4f03f783d)
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=1739253483-FOEuMzWppt7bj2Eoeh92BzYtJA1hQJ3R-0-d45f2328fdcfb69347ac63bef06d43d0)
4.2.3 ls命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P65_3291.jpg?sign=1739253483-mgFgL8HCvGeQPwGttadXt49qtu6EYcCq-0-97c653024a9fc292effd44d91f881bc0)
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=1739253483-b4SHiH3oTCqlZQnQDKCVWpRn0SF0RcWG-0-20a15d1d0a02997621a8f46fbb21a39e)
注意:当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=1739253483-LgPU2yUZR32H5R8goMiPKgBeK22Y0Gtb-0-8abeb39f3c47c8be047eb5e1a5b0d132)
图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=1739253483-zku5f4osjahhYjuwCiucb72uggktsKXG-0-04036690a1869de841a0f7281c3e5c38)
图4-4 隐藏文件显示结果
4.2.4 date和cal命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P67_3510.jpg?sign=1739253483-dBKsWDqeP5wfzjzKaJVmaqTsnK13Nhos-0-7552c5a48481d6c10456d8f96128f973)
(1)date命令用来显示系统当前的日期和时间。我们要想获取当前的日期和时间,可以在Linux系统中运行如下命令:
[abcd@localhost ~]$ date
运行结果如图4-5所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P67_3489.jpg?sign=1739253483-3HlVweZZmyirR1yHBg2PVVpjom8VtEsz-0-e6676aacf6287fbf3f2f398c7f9f9b57)
图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=1739253483-qY71umGJtYFHtjggLPuQH4owBR9Y7Oup-0-5cbca22c09bdbb9e69d1756dbdfd4fc8)
【例4-4】显示当月日历。
打开终端页面,输入命令如下:
[abcd@localhost ~]$ cal
输出结果如图4-6所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P68_3591.jpg?sign=1739253483-SWEMO39B5DFtKV9VE4BdC3nHeaNHFKMh-0-882115495b4b06d23cea2a061b0f8a40)
图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=1739253483-TCjEPFfZdiKDelXe9HNs83KT1yXR5mTn-0-c9641a882d12e4e0149a9fde035b8b63)
图4-7 自定义参数显示
4.2.5 su和passwd命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P68_3631.jpg?sign=1739253483-qzEtFUclQdgs9swfavWB26K7hGmoBIOL-0-9333aca0aff279a97a78f831132ee1b2)
(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=1739253483-ZAb2rFY2i9Av13SEEHEnfE7fxWXCCTrO-0-1be17a255877e51e960fe3e9f0201789)
图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=1739253483-19RTLB12ISVc5iKseFq7NxLOKeFZoDT1-0-6a0961b1a3f1fce0c413fa54d7c5b714)
【例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=1739253483-ZI8XVkJcl0eSeMh7qH5MiWgQDdfFs87P-0-5e196e000c13ccb34275629376b19dce)
图4-9 修改密码成功
4.2.6 man命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P70_3876.jpg?sign=1739253483-KAuOghZ3VmTK80DhdcxqupMd9ELodsie-0-e0537f51d559feb6b4027e807a9865d4)
通过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=1739253483-1X4cqUELajSa2H96qkv7KdWqTsQn6OQf-0-c553c320d73fd350fb51e5cad44270a7)
图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=1739253483-hzh9L07qUedS5QRxp3A5FJxx5DXIKajk-0-4cdbd922d61902bcaeec4bac8fed446e)
4.2.7 who和w命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P71_3981.jpg?sign=1739253483-DAhF2rhS7LMh9QxHaDfKGlTi3VJLRBKE-0-e9bef08077ed96ef2bdf6a20c1c36427)
(1)who命令主要用于查看当前在系统上工作的用户有哪些。who命令格式如下:
[abcd@localhost ~]$ who
在终端页面中输入该命令,运行结果如图4-11所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P71_3925.jpg?sign=1739253483-XenU7rDpyUiaTlco2hqXYNDc7UhkcS2s-0-98f384e17ab7dc8f924cca309ad25629)
图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=1739253483-LD8btYu82w0d9IOBLbsLBYk3dfATRft4-0-61f6ea9c7e8f0aef8cf9bce23b4468cc)
图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=1739253483-3B5CfhWJDnd3JFSuZhJQRLNsbVlMqfaO-0-0b38ab0c47bd038308d99ccf95564162)
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=1739253483-DAyP7mqK9PKGaC1FHOAJz4R5Ld3P9QOI-0-ef1362071567dd3aee5633c5243c5dcf)
【例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=1739253483-d7DAYffA0aHOAGWALRFcpTK3Vw79N766-0-7f94753ef8486007c4c91530379bea56)
图4-13 输出结果
4.2.9 last命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P72_4163.jpg?sign=1739253483-2Kh6bhPPWxyhOrAwWleXYuZIIoWLZbgc-0-a402f62cf714f489f770446598b55c57)
last命令用于查看当前和过去登录系统用户的相关信息。基本格式如下:
[abcd@localhost ~]$ last [选项]
last命令常用的选项及含义如表4-7所示。
表4-7 last命令常用选项及含义
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-T72_29046.jpg?sign=1739253483-1ZCJzcfNGbbYy9sauQCFq0JVi2TYR9Dx-0-ba0ce8cfae2ed42c389bb72fc90eaaec)
使用last命令显示输出结果,如图4-14所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P73_4168.jpg?sign=1739253483-iU8uOrgu3n68AGdHeQyYOPQh0GZLI9g3-0-b29b2cd4a6ef99afa87f5aae11764ede)
图4-14 last命令输出结果
4.2.10 uptime和free命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P73_4233.jpg?sign=1739253483-4DucJR6lslWsKKQZs1Ph7Bq6pXpcA3rv-0-f3c3b55a67e11f7f2b12cd8a3dfb9e87)
(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=1739253483-cRboX0EjTOQNv9a2VvIkZbhXPZV4GSXa-0-6a468eefba7cf1b959401e3cac716c57)
图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=1739253483-SV61HIXb05BQyd9Wum503lFwM7dpNoal-0-3d092d920273a01afe9dd40938fb56c6)
4.2.11 dmesg命令
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P74_4341.jpg?sign=1739253483-3QzwHKkOx2A5zrd7r0z1lgzmxbCfvXqJ-0-5d65943a5fffc36619923ed1a7a3404e)
dmesg命令用于显示开机信息,常用于查看系统的硬件信息。无论是在系统的启动过程中,还是在系统的运行过程中,由内核产生的信息,都会被存储在系统缓冲区中,如果开机时来不及查看相关信息,可以使用dmesg命令将信息显示出来。
dmesg命令的基本格式如下:
[abcd@localhost ~]$ dmesg
输出结果如图4-16所示。
![](https://epubservercos.yuewen.com/EDE45B/17527146006010206/epubprivate/OEBPS/Images/Figure-P74_4306.jpg?sign=1739253483-5SEqlQxeCC6bvxciI6gTnJ9RDdUKogUN-0-bd32753ad09d2fbf366a3ed834796011)
图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=1739253483-PGwPSBC7khTx4NPAiNGlJUTjxWYDzK11-0-7759c4e11b253f79e1929737bd0af9ab)
(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=1739253483-pyWXcTqK5uFriM9l6aBevsghUUL5cYUU-0-0cf5cee8653b5eff25bc963ffeceba5f)
注意: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=1739253483-OgbX9U5dH5tnu8LwuLfb9uufog2YLaFw-0-a4a20daafbbb02acbb2b6b90a1512cec)
图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=1739253483-5aipr861HQMtwa30xIcgRtynSqIWyy8q-0-5d6b17a5db7aa51991af95d94ab6ab75)