
4.2 系统管理与维护命令
本小节将要学习Linux系统最基础的命令,系统通过使用该命令来完成一些基础的日常工作,这些命令就是系统管理和维护命令。
4.2.1 pwd命令

在Linux文件系统中有许多目录,当用户执行一条命令但没有表明该命令所在的目录时,Linux系统就会首先在当前目录(目前的工作目录)搜索这个命令。因此,用户在执行命令之前,常常需要确定目前所在的工作目录,即当前目录。
当用户登录Linux系统之后,其当前目录就是它的主目录。
Linux系统中的pwd命令就是用来显示当前工作目录的名称,它是Print Working Directory(打印工作目录)的缩写,命令的基本格式如下:
pwd [选项]
【例4-1】pwd命令的使用。
步骤1:使用whoami命令确定现在的用户名称(whoami命令用于确定当前登录的用户),使用命令如下:
[abcd@localhost ~]$ whoami
显示结果表明当前用户为“abcd”,如图4-1所示。

图4-1 whoami命令结果
步骤2:使用pwd命令来确定现在所在的工作目录,命令如下:
[abcd@localhost ~]$ pwd
显示结果表明“abcd”用户的当前目录就是它的主目录/home/abcd,如图4-2所示。

图4-2 pwd命令结果
4.2.2 cd命令

Linux命令可以分为Shell内置命令和外部命令两种。Shell内置命令,是指Shell本身自带的命令,这些命令没有执行文件;外部命令,是单独开发的命令,因此这些命令会有执行文件。Linux系统中的大部分命令都是外部命令,而cd命令则是一个典型的Shell内置命令,所以cd命令没有执行文件所在的路径。
cd(Change Directory)命令的作用是可以切换当前工作目录。
cd命令的语法格式如下:
[abcd@localhost ~]$ cd[相对路径或绝对路径]
cd命令后面还可以加特殊符号,表示固定的含义,如表4-1所示。
表4-1 cd命令特殊符号及功能

4.2.3 ls命令

ls是list的缩写,是最常见的目录操作命令。ls命令的功能是列出当前目录或指定目录中的内容(显示目录与文件信息)。ls命令的语法格式如下:
ls [选项] [文件/目录] ls [options] [files/directories]
选项(options):以“-”开始的选项,可以同时使用多个选项。
文件/目录(files/directories):文件或目录,也可以同时使用多个文件或多个目录。
ls命令常用的选项及各自的功能如表4-2所示。
表4-2 ls命令常用选项和功能

注意:当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所示。

图4-3 ls命令输出结果
【例4-3】显示隐藏文件。
打开终端页面,输入命令如下:
[abcd@localhost ~]$ ls -a
输出结果如图4-4所示。

图4-4 隐藏文件显示结果
4.2.4 date和cal命令

(1)date命令用来显示系统当前的日期和时间。我们要想获取当前的日期和时间,可以在Linux系统中运行如下命令:
[abcd@localhost ~]$ date
运行结果如图4-5所示。

图4-5 date命令运行结果
(2)cal(calendar)命令主要用于查看日历,如果后面只有一个参数,则表示年份,有两个参数,则表示月份和年份。
cal命令常用的选项及各自的功能如表4-3所示。
表4-3 cal命令常用选项及功能

【例4-4】显示当月日历。
打开终端页面,输入命令如下:
[abcd@localhost ~]$ cal
输出结果如图4-6所示。

图4-6 显示当月日历
【例4-5】自定义参数。
在终端页面中输入命令如下:
[abcd@localhost ~]$ cal 5 1997
第一个参数5表示月份,第二个参数1997表示年份,输出结果如图4-7所示。

图4-7 自定义参数显示
4.2.5 su和passwd命令

(1)su(switch user)命令是可以将当前用户切换到一个指定的其他用户。
注意:su命令可以从普通用户切换到root用户,也可以从一个普通用户切换到另一个普通用户,还可以从root用户切换到一个普通用户。
【例4-6】从普通用户切换到root用户。
在终端页面中输入命令如下:
[abcd@localhost ~]$ su - root
输出结果如图4-8所示。

图4-8 普通用户到root用户的切换
从图4-8中可以看出,输入su命令切换到root用户时,需要输入root密码。当输入正确的root密码之后系统会出现root用户的提示符“#”。
(2)passwd命令:可以用来修改用户密码,该用户既可以是普通用户也可以是root用户。同时还可以查询某一用户密码的状态,仅root用户可以使用。
passwd命令的基本格式如下:
[abcd@localhost ~]$ passwd [选项] [用户名]
passwd命令常用的选项及各自的功能如表4-4所示。
表4-4 passwd命令常用选项及功能

【例4-7】修改abcd用户密码。
步骤1:输入su命令切换到root用户,命令如下:
[abcd@localhost ~]$ su - root
步骤2:输入passwd命令,修改用户abcd密码,命令如下:
[root@localhost ~]# passwd abcd
步骤3:根据提示输入新密码,再次确认密码,最后有修改成功提示,输出结果如图4-9所示。

图4-9 修改密码成功
4.2.6 man命令

通过man(manual:手册)命令可以快速查询其他每个Linux命令的详细描述和使用方法,man手册一般保存在/user/share/man目录下。man是最常见的帮助命令,也是Linux最主要的帮助命令。man命令格式如下:
[abcd@localhost ~]$ man [选项] [命令]
【例4-8】man命令的使用。
在终端页面中输入命令如下:
[abcd@localhost ~]$ man ls
输出结果如图4-10所示。

图4-10 输出结果
在执行man命令时,命令的开头会有一个数字标识这个命令的帮助级别。例如:
LS(1) User Commands LS(1)
注意:“1”表示这是ls的1级别的帮助信息。
man命令的帮助级别及功能如表4-5所示。
表4-5 man命令的帮助级别及功能

4.2.7 who和w命令

(1)who命令主要用于查看当前在系统上工作的用户有哪些。who命令格式如下:
[abcd@localhost ~]$ who
在终端页面中输入该命令,运行结果如图4-11所示。

图4-11 who命令运行结果
(2)w命令与who命令类似,但w命令主要用于显示登录到系统的用户情况。w命令不但可以显示有哪些用户登录到该系统,还可以显示出这些用户当前正在进行的工作。
w命令格式如下:
[abcd@localhost ~]$ w
输出结果如图4-12所示。

图4-12 w命令运行结果
从图4-12中可以看到当前用户正在进行的工作,显示结果的第1行从左到右依次为当前时间、系统启动到现在的时间、登录用户的数目、系统在最近1分钟、5分钟和15分钟的平均负载;然后是每个用户的各项数据,项目显示顺序从左至右依次为登录账号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。
4.2.8 uname命令

uname(UNIX name)命令用于显示操作系统的信息。
在终端页面中输入如下命令:
[abcd@localhost ~]$ uname
显示结果则是所使用的操作系统是Linux。
Linux
uname命令常用的选项及作用如表4-6所示。
表4-6 uname命令常用选项及作用

【例4-9】使用-n和-i组合的uname命令。
在终端页面输入如下命令:
[abcd@localhost ~]$ uname -n -i
显示结果如图4-13所示。

图4-13 输出结果
4.2.9 last命令

last命令用于查看当前和过去登录系统用户的相关信息。基本格式如下:
[abcd@localhost ~]$ last [选项]
last命令常用的选项及含义如表4-7所示。
表4-7 last命令常用选项及含义

使用last命令显示输出结果,如图4-14所示。

图4-14 last命令输出结果
4.2.10 uptime和free命令

(1)uptime命令主要用于显示系统已经运行的时间、当前登录的用户数量和系统的平均负载。格式如下:
[abcd@localhost ~]$ uptime
【例4-10】uptime命令的使用。
在终端页面输入如下命令:
[abcd@localhost ~]$ uptime
输出结果如图4-15所示。

图4-15 uptime命令的输出结果
以上信息显示出当前系统的时间为23:31:37、已经运行2分钟,当前有两个用户在登录,最近1分钟、5分钟和15分钟内系统的平均负载。
(2)free命令用来显示系统内存的状态,包括系统的物理内存、虚拟内存(swap交换分区)、共享内存和系统缓存的使用情况。free命令的语法格式如下:
[abcd@localhost ~]$ free [选项]
free命令常用的选项及作用如表4-8所示。
表4-8 uname命令常用选项及作用

4.2.11 dmesg命令

dmesg命令用于显示开机信息,常用于查看系统的硬件信息。无论是在系统的启动过程中,还是在系统的运行过程中,由内核产生的信息,都会被存储在系统缓冲区中,如果开机时来不及查看相关信息,可以使用dmesg命令将信息显示出来。
dmesg命令的基本格式如下:
[abcd@localhost ~]$ dmesg
输出结果如图4-16所示。

图4-16 dmesg命令的输出结果
注意:dmesg命令的参数有3种:①-c:显示信息完成后清除环缓冲内的内容;②-s:缓冲区大小,定义一个缓冲区用于查询内核环缓冲区,默认大小为8196;③-n级别:设置级别为记录控制台启动信息的级别。
4.2.12 ps和top命令

(1)ps(Process Status)命令主要用于监控进程,通过此命令可以查看系统中所有运行进程的详细信息。
ps命令的基本格式如下:
[abcd@localhost ~]$ ps [选项]
ps命令常用的选项及作用如表4-9所示。
表4-9 ps命令常用选项及作用

注意:aux和-axu都能显示终端的所有进程。aux使用的是BS操作系统格式;-axu则使用的是Linux标准命令格式。
在终端页面输入如下命令:
[abcd@localhost ~]$ ps aux
输出结果如图4-17所示。

图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命令常用选项及作用
