参考书目:Linux网络操作系统实用教程
第一章 Linux基本操作命令
1.1 Shell命令基础
Linux操作系统的Shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
Shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,Shell就是围绕内核的外层。当从Shell或其他程序向Linux传递命令时,内核会做出相应的反应。
Shell是使用Linux操作系统的主要环境,Linux操作系统提供的图形用户界面X windows就像windows一样,也有窗口、菜单和图标。打开终端,即可启动Shell。
在终端中输入的命令就是依靠Shell来解释执行完成的。
当用户成功登录后,系统将执行Shell程序,提供命令提示符,对于普通用户,用$作为提示符,对于超级用户,用#作为提示符。如果要中止命令的执行,可以按Ctrl+C。
1.2 显示系统信息的命令
(1)who——查看用户登录信息
wudawei@wudawei-virtual-machine:~$ who -a //显示所有用户的信息
系统引导 2023-03-30 20:28
运行级别 5 2023-03-30 20:29
wudawei + tty7 2023-03-30 20:29 00:25 1485 (:0)
登录 tty1 2023-03-30 20:29 1378 id=tty1
(2)whoami——显示当前操作用户
wudawei@wudawei-virtual-machine:~$ whoami
wudawei
(3)date——显示时间
wudawei@wudawei-virtual-machine:~$ date
2023年 03月 30日 星期四 20:56:56 CST
(4)clear——清除屏幕 也可以使用快捷键Ctrl+L
(5)history——显示历史命令
如果需要查看最近使用过的命令,可以在终端中执行history命令。
执行历史命令,最简单的方法就是上下方向键,并且按Enter执行。
当history命令没有参数时,将显示整个历史命令列表的内容,如果使用n参数,会显示最近n条历史命令。
wudawei@wudawei-virtual-machine:~$ history
1 su root
2 sudo passwd root
3 su root
4 su rooot
5 su root
6 sudo apt-get autoremove open-vm-tools
7 sudo apt-get install open-vm-tools-desktop
8 sudo vi /etc/yum.repos.d/CentOS-Base.repo
wudawei@wudawei-virtual-machine:~$ history 5
25 clear
26 ip address
27 clear
28 history
29 history 5
如果需要重复某一条命令,参数可以用!n的格式,来执行第n条命令,这个n就是执行history后,命令前面的数字。
wudawei@wudawei-virtual-machine:~$ !23
date
2023年 03月 30日 星期四 21:03:32 CST
(6)alias——别名
用户可以为一个复杂的命令设置一个简单的别名,可以用alias命令创建别名。注意,定义别名时等号两边不能有空格,等号右边的命令一般会包括空格和特殊字符,此时需要使用单引号。
alias 别名=命令名称
alias 别名='命令名称'
如果不加参数,仅输入alias,会显示当前所有的别名设置。
例如:
(7)help——查询命令
我们不需要去把Linux的所有命令格式记住,借助帮助工具可以很好地解决问题。
command --help
1.3 Linux文件及目录管理
1.3.1 Linux操作系统的目录结构
Linux的文件系统结构不同于Windows,Linux操作系统只有一颗文件树,整个文件系统是以一个树根"/"作为起点的,所有的文件和外部设备都以文件的方式挂在这颗树上。通常Linux的根目录包含:/boot 、/dev 、/etc 、/home 、/media 、/mnt 、/opt 、/proc 、/root 、/run 、/srv 、/tmp 、/usr 、/var 、/bin、/lib 、/lib64 、/sbin等目录。
1.3.2 文件及目录显示类命令
(1)pwd——显示当前工作目录
pwd是print working directory的缩写,用来显示当前工作目录,以绝对路径的方式显示。
每次打开终端时,系统都会处在某个当前工作目录中,一般开启终端后默认当前工作目录是用户的主目录。(普通用户的主目录是/home,系统管理员的主目录是/root)
wudawei@wudawei-virtual-machine:~$ pwd
/home
root@wudawei-virtual-machine:/home/wudawei# pwd
/root
(2)cd——改变当前工作目录
cd是change directory的缩写,用来改变当前工作目录。
cd 绝对路径或相对路径
绝对路径:从根目录(/)开始的路径。
相对路径:路径不是从根目录开始的,相对路径的起点是当前目录,如果现在位于/usr目录中,那么相对路径local/etc所指示的位置是绝对路径/usr/local/etc。
如果只输入cd,不指定路径,则返回到当前用户的主目录(相当于cd ~)。
特殊符号 | 表示的目录 |
---|---|
~ | 代表当前登录用户的主目录 |
. | 代表当前目录 |
… | 代表上级目录 |
(3)ls——显示目录文件
ls是list的缩写,不加参数时,ls用来显示当前目录清单,是Linux中最常用的命令,通过ls不仅可以查看Linux文件夹包含的文件,还可以查看文件及目录的权限、目录信息等,其目录格式如下:
选项 | 功能说明 |
---|---|
-a | 显示所有文件,包括隐藏文件,如".“”…" |
-d | 仅可以查看目录的属性参数及信息 |
-h | 以阅读的方式显示文件的大小 |
-l | 长格式输出,包含文件属性,显示详细信息。 |
(4)stat——显示文件或文件系统状态信息
stat是status的缩写,通过该命令可以查看文件的大小,类型,环境,访问权限,访问和修改时间等。
如果要显示/etc/passwd的文件系统信息,可以使用stat /etc/passwd。
1.3.3 文件及目录操作类命令
(1)touch——创建文件或修改文件的存取时间
touch命令可以用来创建文件或者修改文件的存取时间,如果指定的文件不存在,则会生成一个空文件,其格式如下
touch 选项 目录或文件名
选项 | 功能说明 |
---|---|
-a | 只把文件存取时间修改为当前时间 |
-d | 把文件的存取/修改时间改为yyyymmdd |
-m | 只把文件的修改时间改为当前时间 |
root@wudawei-virtual-machine:~# cd /home //进入home
root@wudawei-virtual-machine:/home# touch a1.txt //创建文件a1
root@wudawei-virtual-machine:/home# touch a2.txt //创建文件a2
root@wudawei-virtual-machine:/home# ls -l //显示当前信息
总用量 4
-rw-r--r-- 1 root root 0 3月 30 22:02 a1.txt
-rw-r--r-- 1 root root 0 3月 30 22:02 a2.txt
drwxr-xr-x 19 wudawei wudawei 4096 3月 30 20:29 wudawei
root@wudawei-virtual-machine:/home# touch -d 20200621 /home/* //修改home中的所有文件的修改时间
root@wudawei-virtual-machine:/home# ls -l
总用量 4
-rw-r--r-- 1 root root 0 6月 21 2020 a1.txt
-rw-r--r-- 1 root root 0 6月 21 2020 a2.txt
drwxr-xr-x 19 wudawei wudawei 4096 6月 21 2020 wudawei
(2)mkdir——创建新目录
mkdir用来创建指定的目录名,并且指定的目录名不能是当前目录中已有的目录名,目录名可以是绝对路径也可以是相对路径。
格式如下:
mkdir 选项 目录名
选项 | 功能说明 |
---|---|
-p | 创建目录时,递归创建,如果父目录不存在,则此时可以和子目录一起创建。同时建立多个目录 |
-m | 给创建的目录设定权限 |
-v | 输入目录创建的详细信息 |
root@wudawei-virtual-machine:/home# mkdir a11 //mkdir创建a11目录
root@wudawei-virtual-machine:/home# ls -l
drwxr-xr-x 2 root root 4096 3月 31 10:38 a11
//使用递归创建,同时创建了usr01和里面的a01
root@wudawei-virtual-machine:/home# mkdir -p /home/usr01/a01
root@wudawei-virtual-machine:/home# ls -l
drwxr-xr-x 3 root root 4096 3月 31 10:39 usr01
root@wudawei-virtual-machine:/home# cd usr01
root@wudawei-virtual-machine:/home/usr01# ls -l
总用量 4
drwxr-xr-x 2 root root 4096 3月 31 10:39 a01
(3)rm——删除文件或目录
rm是remove的缩写,可以删除目录或者文件其命令格式如下:
rm 选项 目录名或文件名
选项 | 功能说明 |
---|---|
-r | 删除某个目录及其中的所有文件和子目录 |
-d | 删除空文件或目录 |
-v | 显示指令执行过程 |
root@wudawei-virtual-machine:/home# mkdir a01 //建立a01目录
root@wudawei-virtual-machine:/home# rm -v -r a01 //删除目录,并显示执行过程
removed directory 'a01'
root@wudawei-virtual-machine:/home# ls -l
总用量 0
(4)cp——复制文件或目录
要将一个文件或目录复制到另一个文件或目录下,可以使用cp命令。
cp 选项 原目录或文件名 目标目录或文件名
选项 | 功能说明 |
---|---|
-r | 递归复制目录,既包含目录下的所有子目录内容 |
-i | 如果目标文件或目录已存在,则提示是否覆盖 |
-v | 显示执行过程 |
root@wudawei-virtual-machine:/home# mkdir a01 a02 a03 //建立目录
root@wudawei-virtual-machine:/home# touch w01 w02 w03 //建立文件
root@wudawei-virtual-machine:/home# ls -l
总用量 12
drwxr-xr-x 2 root root 4096 3月 31 10:56 a01
drwxr-xr-x 2 root root 4096 3月 31 10:56 a02
drwxr-xr-x 2 root root 4096 3月 31 10:56 a03
-rw-r--r-- 1 root root 0 3月 31 10:56 w01
-rw-r--r-- 1 root root 0 3月 31 10:56 w02
-rw-r--r-- 1 root root 0 3月 31 10:56 w03
root@wudawei-virtual-machine:/home# cp -v -i w01 a01/test01 //将w01文件复制到a01里面的test01
'w01' -> 'a01/test01'
root@wudawei-virtual-machine:/home# ls -l
总用量 12
drwxr-xr-x 2 root root 4096 3月 31 10:57 a01
drwxr-xr-x 2 root root 4096 3月 31 10:56 a02
drwxr-xr-x 2 root root 4096 3月 31 10:56 a03
-rw-r--r-- 1 root root 0 3月 31 10:56 w01
-rw-r--r-- 1 root root 0 3月 31 10:56 w02
-rw-r--r-- 1 root root 0 3月 31 10:56 w03
root@wudawei-virtual-machine:/home# cd a01
root@wudawei-virtual-machine:/home/a01# ls -l
总用量 0
-rw-r--r-- 1 root root 0 3月 31 10:57 test01
(5)mv——移动文件或目录
使用mv命令可以吧文件或目录重命名或移入另一个目录,如果在同一个目录下移动,可以理解为重命名。
root@wudawei-virtual-machine:/home# mkdir a01 //建立目录a01
root@wudawei-virtual-machine:/home# mv -v a01 a02 //移动a01到a02 并且显示过程
'a01' -> 'a02'
root@wudawei-virtual-machine:/home# ls -l
总用量 4
drwxr-xr-x 2 root root 4096 3月 31 11:02 a02
(6)tar——打包
使用tar命令可以把整个目录的内容归并为一个单一的文件,许多用于Linux操作系统的程序就是打包为tar文件的格式。
tar命令可以用于建立、还原、查看、管理文件。
tar 选项 文件目录列表
选项 | 功能说明 |
---|---|
-c | 创建一个新压缩文件,如果备份的话,需要使用这个命令 |
-f | 使用归档文件或设备,这个选项通常是必选的 |
-z | 使用gzip来压缩/解压缩文件 |
-x | 从归档文件中释放文件 |
-v | 显示处理的文件信息 |
root@wudawei-virtual-machine:/home# mkdir a01 a02 //建立两个目录
root@wudawei-virtual-machine:/home# touch w01 w02 //建立两个文件
root@wudawei-virtual-machine:/home# ls -l
总用量 8
drwxr-xr-x 2 root root 4096 3月 31 11:17 a01
drwxr-xr-x 2 root root 4096 3月 31 11:17 a02
-rw-r--r-- 1 root root 0 3月 31 11:17 w01
-rw-r--r-- 1 root root 0 3月 31 11:17 w02
root@wudawei-virtual-machine:/home# mkdir test01 //建立放入压缩文件的目录
root@wudawei-virtual-machine:/home# tar -cvf /home/test01/test.tar /home/*
tar: 从成员名中删除开头的“/”
/home/a01/
/home/a02/
/home/test01/
tar: /home/test01/test.tar: 文件是归档文件;未输出
/home/w01
/home/w02
root@wudawei-virtual-machine:/home# ls -l
总用量 12
drwxr-xr-x 2 root root 4096 3月 31 11:17 a01
drwxr-xr-x 2 root root 4096 3月 31 11:17 a02
drwxr-xr-x 2 root root 4096 3月 31 11:19 test01
-rw-r--r-- 1 root root 0 3月 31 11:17 w01
-rw-r--r-- 1 root root 0 3月 31 11:17 w02
root@wudawei-virtual-machine:/home# cd test01
root@wudawei-virtual-machine:/home/test01# ls -l
总用量 12
-rw-r--r-- 1 root root 10240 3月 31 11:19 test.tar
root@wudawei-virtual-machine:/home/test01# tar -xvf test.tar //解压缩
home/a01/
home/a02/
home/test01/
home/w01
home/w02
(7)du——查看文件或目录大小
du 选项 文件或目录
选项 | 功能说明 |
---|---|
-b | 显示时以Byte作为单位 |
-c | 额外显示所有目录或文件的综合 |
-h | 以KB、MB、GB为单位,提高可读性 |
1.3.4 文件内容的显示和预处理命令
(1)cat——显示文件内容
cat命令用来显示文件内容
cat 选项 文件名
root@wudawei-virtual-machine:/home# touch a01.txt
root@wudawei-virtual-machine:/home# cat a01.txt
(2)more——逐页显示文件中的内容(只可向下翻页)
(3)less——逐页显示文件中的内容(可以向上、向下翻页)
less命令比more更加强大,可以向上向下翻页,按Enter下移一行,按Space下移一页,按B上移一页,按Q退出。
(4)head——显示文件的前n行
head -nx 文件名 //x代表需要显示前几行
(5)tail——显示文件的后n行
用法和head类似,显示文件最后几行。
(6)file——查看文件的类型
如果需要知道文件的基本信息,如输入ASCII文件、数据文件、二进制文件,可以用file
file 选项 文件名
(7)wc——统计
如果想要知道一个文件的单词数量、字节数,可以使用wc命令
wc 选项 文件名
选项 | 功能说明 |
---|---|
-c | 显示字节数 |
-m | 显示字符数 |
-l | 显示行数 |
-w | 显示单词个数 |
(8)uniq——去重
uniq命令用来删除文件中的重复行
uniq 选项 文件名
选项 | 功能说明 |
---|---|
-c | 在每行前加相应行出现的次数 |
-d | 只输出重复的行 |
-u | 只显示唯一的行 |
(9)echo——将现实的内容输出到屏幕上
echo命令很简单,如果命令的输出内容没有特殊的含义,则原内容输出到屏幕上,如果有特殊含义,则输出其含义。
echo 选项 输出内容
选项 | 功能说明 |
---|---|
-n | 内容输出后不换行 |
-e | 支持反斜线控制的字符转换 |
在echo中,如果使用了-n选项,表示输出文字不换行。字符串可以加引号,也可以不加引号,echo命令输出加引号的字符串时,将原字符串输出。用echo命令输出不加引号的字符串时,字符串的各个单词作为字符串输出,各字符串之间用一个空格分隔。
如果使用了-e选项,则可以支持控制字符,例如:
控制字符 | 功能说明 |
---|---|
\\ | 输出\本身 |
\a | 输出警告音 |
\f | 换页符 |
\n | 换行符 |
\r | 回车键 |
\t | 制表符 |
1.3.5 文件查找类命令
(1)whereis——查找文件位置
whereis用来查找可执行文件、源代码文件、帮助文件在文件系统中的位置。
whereis 选项 文件
选项 | 功能说明 |
---|---|
-b | 只搜索二进制文件 |
-m | 只搜索man手册 |
-s | 只搜索源代码 |
(2)locate——查找绝对路径中包含指定字符串的文件的位置
locate 选项 文件
选项 | 功能说明 |
---|---|
-b | 仅匹配路径名的基名 |
-c | 只输出找到的数量 |
-i | 忽略字母的大小写 |
1.4 Vi、Vim编辑器的使用
可视化接口(Visual interface ,Vi)也称可视化界面,它为用户提供一个全屏幕的窗口编辑器,窗口中一次可以显示一屏的编辑内容,并且可以上下滚动,Vi是Linux系统中的标准编辑器,类似于windows里的记事本。
Vim是vi的improved版,可以执行输出、移动、删除、查找、替换、复制、粘贴、撤销等众多文件操作。
在命令行执行命令vim filename,如果filename已经存在,则该文件被打开,如果不存在,则vim在第一次存盘时自动在硬盘中新建filename文件。
Vim 有三种基本工作模式:命令模式、编辑模式、末行模式。
1.4.1 命令模式
命令模式(其他模式->Esc)是用户进入Vim的初试状态,在此模式下,用户可以输入Vim命令,使Vim完成不同的任务,如光标移动、复制、粘贴等,也可以从其他模式返回命令模式。
Vim命令模式的光标移动命令:
操作 | 功能说明 |
---|---|
gg | 将光标移动到文章的首行 |
G | 将光标移动到文章的尾行 |
w或W | 将光标移动到下一个单词 |
←、→、↑、↓ | 将光标左、右、上、下移一格 |
pageup、pagedown | 上下翻屏 |
Vim命令模式的复制和粘贴命令:
操作 | 功能说明 |
---|---|
yy | 复制光标所在的整行 |
nyy | 复制n行(含当前行,后n行) |
yw | 复制一个单词 |
y2w | 复制两个单词 |
yG | 复制到文件尾 |
y1G | 复制到文件首 |
p/P | 粘贴到光标的后面/前面 |
Vim命令模式的删除操作命令:
操作 | 功能说明 |
---|---|
dd | 删除当前行 |
ndd | 删除n行(含当前行,后n行) |
ndw | 删除后面n个词 |
dG | 删除到文件尾 |
d1G | 删除到文件首 |
Vim命令模式的撤销操作:
操作 | 功能说明 |
---|---|
u(小写) | 取消上一个更改 |
U(大写) | 取消一行内的所有更改 |
Ctrl+r | 重做一个动作 |
1.4.2 编辑模式
在编辑模式(命令模式下->a/A、i/I、o/O)下,可对编辑的文件添加新的内容并进行修改。
Vim编辑模式命令:
操作 | 功能说明 |
---|---|
a | 在光标之后插入内容 |
A | 在光标当前行的末尾插入内容 |
i | 在光标之前插入内容 |
I | 在光标当前行的开始部分插入内容 |
o | 在光标所在行的下面新增一行 |
O | 在光标所在行的上面新增一行 |
1.4.3 末行模式
末行模式(命令模式->:、/、?)主要用来进行一些文字编辑辅助功能,如查找、替换、文件保存等。在命令模式下输入:,即可进入末行模式,如果命令完成或出错,会退出Vim或返回命令模式。
操作 | 功能说明 |
---|---|
:wq | 保存当前文件并退出 |
:q | 结束Vim程序 |
:set nu | 显示行号,设定之后,会在每一行的前面显示该行的行号 |
:set nonu | 取消行号 |
在命令模式下,输入/或?字符,即可进入末行模式,可以进行查找操作。
选项 | 功能说明 |
---|---|
/word | 向光标下寻找一个名称为word的字符串 |
?word | 向光标之上寻找一个名称为word的字符串 |
n | 表示前一个查找动作。例如:如果刚才执行了查找的操作,按下n后会继续查找下一个同样名称的字符串 |
N | 与n相反,反向进行一个查找 |
1.5 文件管理进阶
1.5.1 硬链接和软链接
Linux中可以为一个文件取多个名称,称为链接文件,链接分为硬链接和软链接。链接文件命令是ln,它是Linux中的一个非常重要的命令,它的功能是在另一个位置建立一个同步的链接,即不必在每一个需要的目录下都存放一个相同的文件,而只要在某个固定的目录下存放文件,并在其他目录下用ln命令来链接他就可。
ln 选项 源文件或目录 目标文件或目录
选项 | 功能说明 |
---|---|
-d | 创建指向目录的硬链接(只适用于超级用户) |
-f | 强制删除已存在的目标文件 |
-s | 软链接(符号链接) |
-v | 显示详细的处理过程 |
yqqq@ubuntu:~$ touch test01.txt
yqqq@ubuntu:~$ ln test01.txt test02.txt
使用ln命令建立链接时,如果不加选项则建立的是硬链接。给源文件test01建立一个硬链接test02,此时,test02可以看做是test01的别名文件,两个不分主次,都指向了硬盘中同一个文件,对test01的内容修改后,test02的内容也会修改。实质上他们两个是同一个文件的两个不同的名称。只能给文件建立硬链接,不能给目录建立硬链接。
而软链接类似于windows中的快捷方式,删除链接的文件,源文件不会有影响,但是删掉了源文件,链接文件也不可以用了。文件和目录都可以建立软链接。
实际上,大量带有->并以不同颜色显示的文件即为链接文件。
硬链接的特点如下:
- 硬链接以文件副本的形式存在,不占用实际空间
- 不允许给目录创建硬链接
- 硬链接只能在同一个文件系统中创建
软链接的特点如下:
- 软链接以路径的形式存在,类似于windows中的快捷方式
- 软链接可以跨文件系统
- 软链接可以对一个不存在的文件名进行链接
- 软链接可以对目录进行链接
1.5.2 通配符
文件名是命令中最常用的参数,用户很多时候只知道文件名的一部分,或者用户想同时对具有相同拓展名的多个文件进行操作,该怎么办呢?
Shell提供了通配符,常用的通配符有星号*,问号?与方括号[]。
通配符 | 功能说明 |
---|---|
* | 匹配任何字符和任何数目的字符组合 |
? | 匹配任何单个字符 |
[] | 匹配任何包含在括号中的单个字符。 |
对于[],只要文件名中[]位置处的字符在[]中指定的范围内,就可以匹配。例如test[2-3]就可以匹配test2和test3。连字符仅在[]内有效,表示字符范围。
1.6 Linux常用快捷键
快捷键 | |
---|---|
Ctrl+C | 结束当前任务 |
Ctrl+L | 清屏,相当于clear |
Ctrl+U | 剪切删除光标前的所有字符 |
Ctrl+Y | 粘贴被剪切的部分 |
Tab | 自动补齐命令行与文件名,双击Tab,可以列出所有可能匹配的选择 |
Alt+Tab | 类似于windows下的Alt+Tab,可以在不同程序窗口切换 |
第二章 用户组群与文件目录权限管理
2.1 用户账户
为了实现安全控制,每次登录Linux都要选择一个用户并输入密码,每个用户拥有不同的权限。下面介绍用户账户分类、用户账户密码文件和用户账户管理等相关内容。
2.1.1 用户账户分类
Linux操作系统中的用户账户分为3种:超级用户(root)、系统用户、普通用户。系统为每一个用户都分配了一个用户ID(UID),它是区分用户的唯一标志,Linux识别的就是用户的UID而不是用户名。
(1)超级用户(root):也称为管理员账户,它具有一切权限。他的任务是对整个系统和普通用户进行管理,默认情况下,超级用户的UID是0。
(2)系统用户:这是Linux正常工作所必需的内建的用户,主要是为了满足相应的系统进程对文件属主的要求而建立的。系统用户不能用来登录,如man、bin、list、sys等用户,系统用户的UID一般为1-999。
(3)普通用户:这是为了让使用者能够使用Linux系统资源而建立的,普通用户只能访问其拥有的权限,UID一般为1000-65535。
Linux采用纯文本文件的方式来保存账户的信息,用户可以通过修改文本文件来管理用户和组,用户基本信息保存在/etc/passwd文件中,用户密码等安全信息保存在/etc/shadow文件中。
因此,账户的管理实际上就是对这几个文件的内容进行添加、修改、删除的操作,可以使用vim编辑器来更改他们,也可以使用专门的命令来更改他们。默认情况下,Linux系统只允许root用户来更改这几个文件。
2.1.2 用户账户密码文件
(1)用户账户管理文件——/etc/passwd
/etc/passwd是一个账户管理文件,这个文件可以实现对用户的管理,每个用户在该文件中都对应一行,其中记录了该用户的相关信息。
在Linux中,所创建的用户账户及相关信息(除密码外)均放在/etc/passwd这个配置文件中,可以使用cat命令来查看里面的内容。
passwd文件中每一行代表一个用户的资料,每行由七个字段组成,字段之间用:分隔。其格式如下:
账户名称:密码:UID:GID:用户信息:主目录:命令解释器(登录shell)
字段 | 功能说明 |
---|---|
账户名称 | 用户登录时所使用的用户名 |
密码 | 这里的密码会显示为X,真正的密码被保存在shadow文件中 |
UID | 用户的标识,是一个数值,Linux系统内部用它来区分不同的用户 |
GID | 用户所在的主组的表示,Linux系统内部用它来区分不用的组 |
用户信息 | 可以记录用户的个人信息,如用户姓名,电话等 |
主目录 | 用户登录后的默认目录 |
命令解释器 | 用户所使用的shell类型,默认为/bin/bash |
(2)用户密码文件——/etc/shadow
Linux系统把加密后的密码重定向到了另一个文件/etc/shadow中,只有root用户可以读取这个文件的内容,这样密码就安全多了。
可以看到shadow文件与passwd文件内容类似。shadow文件中,每一行也是一个用户,用:分隔成了9个字段。其格式如下:
账户名称:密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志字段
手动修改/etc/passwd文件更容易出现问题,所以建议用户在使用时,最好使用命令来修改用户名和密码。
2.1.3 用户账户管理
用户账户管理包括建立用户账户、设置用户账户密码和用户账户维护等内容。
(1)useradd命令——建立用户账户
在Linux中,使用useradd命令来建立用户账户,其格式如下:
useradd 选项 用户名
选项 | 功能说明 |
---|---|
-f | 设置账户过期多少天后用户账户禁用,如果为0,则用户账户过期后立刻被禁用,如果为-1,过期后不被禁用 |
-g | 用户所属组群名称或GID |
-m | 自动建立用户的主目录 |
-p | 加密的口令 |
-u | 指定用户UID,它必须是唯一的 |
-s | 指定用户登录所使用的shell,默认时/bin/bash |
-d | 设置用户的主目录,默认是/home/用户名 |
例如:新建用户user01,UID时2000,用户主目录/home/user01,用户的shell为/bin/bash,用户的密码为admin@123,用户账户永不过期:
(2)passwd命令——设置用户账户密码
passwd命令可以修改用户账户的密码,超级用户可以为自己和其他用户设置密码,普通用户只能为自己设置密码。其命令格式如下:
passwd 用户名 //修改自己的密码时,可以直接passwd
需要注意的是,普通用户修改密码时,passwd会先询问原来的密码,而root用户为用户指定密码时,不需要原来的密码。
(3)usermod命令——修改用户账户
usermod 选项 账户名
Linux操作系统的一切都是文件,用户的信息保存在/etc/passwd文件中,可以直接使用文本编辑器来修改其中的用户参数,也可以使用usermod命令来修改,如用户的UID、用户组、默认终端等。usermod命令的选项如下:
选项 | 功能说明 |
---|---|
-d | 用户的新主目录 |
-g | 变更所属用户组 |
G | 新的附加组列表,变更扩展用户组 |
-a | 将用户追加到-G提到的附加组中,并不从其他组中删除此用户 |
-l | 新的登录名称 |
-L | 锁定用户账户 |
-m | 将家目录内容移动到新位置(仅与-d一起使用) |
-o | 允许使用重复的UID |
-p | 设置新密码 |
-u | 用户账户的新UID |
-U | 解锁用户账户 |
特别的,如果需要临时禁用一个账户而不是删除它,可以通过passwd命令和usermod命令来实现,也可以直接修改文件。
①使用passwd命令
passwd -l user01
通过这种方式禁用用户user01,锁定的密码栏前面会加!!
②使用usermod命令
usermod -L user01
使用这种方式,锁定的密码栏前会加!
③直接修改用户账户配置文件
可以在/etc/passwd或/etc/shadow文件中关于用户user01的passwd域的第一个字符前面加一个星号,达到禁用账户的目的,需要恢复时,再删掉这个星号就好。
(4)userdel命令——删除用户账户
要想删除一个用户账户,可以直接删除/etc/passwd和/etc/shadow文件中需要删除的用户账户对应的行,也可以使用userdel命令进行删除,命令格式如下:
userdel 选项 用户名
选项 | 功能说明 |
---|---|
-r | 删除主目录及目录下所有文件 |
2.2 组群管理
Linux操作系统中包含私有组、系统组、标准组。
(1)私有组:建立用户账户时,如果没有指定其所属的组,则系统会建立一个组名和用户名相同的组,这个组就是私有组,他只容纳一个用户。
(2)系统组:这是Linux操作系统正常运行时所必须的组,安装Linux操作系统或添加新的软件包时会自动建立系统。
(3)标准组:可以容纳多个用户,组内的用户都具有组所拥有的权限。
一个用户可以属于多个组,用户所属的组又有基本组和附加组之分。用户所属组的第一个组称为基本组,基本组在/etc/passwd文件中指定,其他组为附加组,附加组在/etc/group文件中指定。
与用户一样,用户分组也是由一个唯一的身份来标识的,该标识称为用户组ID,即GID。在Linux中,关于组群账户的信息放在/etc/group文件中,而关于组群管理的信息,如组群口、组群管理员等,则存放在/etc/shadow文件中。
2.2.1 理解组群文件
(1)/etc/group文件
/etc/group文件用于存放用户的组账户信息,任何用户都可以读取该文件的内容,每个组群在group里占一行,用:分为四个字段,其格式如下:
组群名称:组群密码(用X占位):GID:组群成员
可以发现,root组的GID是0。group文件中显示的用户的组只有用户的附加组,用户的主组在/etc/passwd文件中。
(2)/etc/gshadow文件中
这个文件用来存放组群的加密口令、组管理员等信息,该文件只有root用户可以读取。每个组群账户在gshadow中占一行,并用:分为四个字段,格式如下:
组群名称:加密后的组群密码:组群管理员:组群成员
字段 | 功能说明 |
---|---|
组群名称 | 组群的名称 |
加密后的组群密码 | 通常不需要设定 |
组群的管理员 | 默认为空 |
组群成员 | 组群所包含的用户,用逗号分隔,如果没有成员,则默认为空 |
2.2.2 组群维护与管理
(1)groupadd命令——创建组群
groupadd命令用来在Linux中创建用户组,只要为不同的用户组赋予不同的权限,再将不同的用户加入不同的组,用户就可以获得所在组群所有的权限。
groupadd 选项 组群名
选项 | 功能说明 |
---|---|
-g | 为新组使用GID |
-p | 为新组使用加密过的密码 |
-r | 创建一个系统账户 |
(2)groupdel命令——删除组群
groupdel用来删除组群,如果组群中仍包含用户,则需要先试用userdel删除这些用户,才可以groupdel删除组群。
group 选项 组群名
(3)groupmod命令——更改组群识别码或名称
groupmod命令用来更改组群识别码和名称
groupmod 选项 组群名
选项 | 功能说明 |
---|---|
-g | 更改GID |
-n | 改组名 |
-p | 更改密码 |
(4)gpasswd——管理组群
gpasswd命令用来在Linux中管理组群,可以将用户加入组群,也可以删除组群中的用户、指定管理员、设置组群成员列表、删除密码等。
gpasswd 选项 组群名
选项 | 功能说明 |
---|---|
-a | 向组中添加用户 |
-d | 从组中删除用户 |
-r | 删除密码 |
-R | 向其成员限制访问组 |
-M | 设置新的成员列表 |
-A | 设置新的管理员列表 |
(5)chown命令——修改文件的拥有者和组群
chown命令可以将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID;组可以是组名或者组ID。
系统管理员经常使用chown命令,在将文件复制到另一个用户的名录之下后,通过chown命令改变文件的拥有者和组群,使用户拥有使用该文件的权限。
chown 选项 user:group 文件名 //新的属主和属组用冒号连接
选项 | 功能说明 |
---|---|
-v | 显示指令的执行过程 |
-h | 只对符号链接的文件做修改,不更改其他任何文件 |
-R | 递归处理,对指定目录下的所有文件和子目录一并处理 |
2.3 su和sudo命令的使用
(1)su命令
su命令可以在不注销的情况下切换到系统中的另一个用户,如果没有指定的账户,默认是root。
su命令的优点:su为管理带来了方便,只把root用户的密码交给普通用户,普通用户就可以通过su切换到root,完成相应工作。
su命令的缺点:root用户把密码给普通用户,存在安全隐患。因此su命令在多人参与的系统管理中不是最好的选择,为了解决该问题,可以使用sudo命令来实现。
(2)sudo命令
sudo命令可以让用户以其他的身份来执行指定的命令,默认的身份时root,在**/etc/sudoers**中设置了可以执行sudo命令的用户,如果没有授权的用户企图使用sudo命令,则会发送警告给管理员。
用户使用sudo命令时,必须先输入密码(当前用户的密码,而不是root的密码),之后有5min的使用期限。sudo可以提供日志,记录每个用户使用sudo时做了那些操作。
通过sudo可以把某些超级权限有针对的下放,亲切不需要普通用户知道root用户的密码,所以sudo相对于权限无限制的su来说是比较安全的。
2.4 文件和目录权限管理
2.4.1 理解文件和目录权限
文件是操作系统用来存储信息的基本结构,Linux操作系统最大的不同时没有扩展名的概念,也就是说,文件的名称和该文件的类型没有直接的关系。例如,file01.txt可能是一个exe文件。
另外,Linux操作系统文件名区分大小写,如果文件名以.符号开始,则表示该文件为隐藏文件,需要ls -a 命令才可以显示出来。
根据赋予权限的不同,不同的用户能够访问不同的文件或目录,所有者是创建文件的用户,文件的所有者能够赋予其他用户的文件访问限制。每一个用户针对系统中的所有文件都有其自身的读、写、执行权限。
以上是文件的详细信息,分为了七组,分别是:
文件/目录权限:-rw-r–r–
连接数:1
文件/目录拥有者:root
文件/目录所属组群:root
文件/目录容量:22
文件/目录最后被修改的时间:4月 20 20:13
文件/目录名称:file01.txt
2.4.2 详解文件和目录的属性信息
(1)第一组表示文件/目录类型权限
第一组一共10个字符,第一个字符用来区分文件的类型:
取值 | 具体含义 |
---|---|
- | 表示该文件是一个普通文件 |
b | 表示该文件是区块设备,是特殊类型的文件 |
c | 表示该文件为其他的外围设备,是特殊类型的文件 |
d | 表示是一个目录 |
I | 表示文件是一个符号链接文件,实际上指向另一个文件 |
s、p | 这些文件关系到系统的数据结构和管道,通常很少见到 |
第2到10个字符表示文件的访问权限,这9个字符每3个为一组,左边3个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。
这9个字符根据权限种类的不同分为3类:
①r(read,读取)
②w(write,写入)
③x(execute,执行)
④-:表示不具有该项权限
例如:-rw-rw-rw-:该文件是一个普通文件,文件所有者、同组用户、其他用户都只有读写权限,而没有执行权限。
(2)第二组表示连接数
每个文件都会将其权限与属性记录到文件系统的i-node中,这个属性记录的就是有多少个不同的文件名连接到同一个i-node。
(3)第三组表示文件/目录拥有者
(4)第四组表示文件/目录所属组群
(5)第五组表示文件/目录容量,以字节为单位
(6)第六组表示文件/目录最后被修改时间
(7)第七组表示文件/目录名称
2.4.3 文字表示法修改文件和目录的权限
1、文字表示法
使用权限的文字表示法时,系统以4中字母表示不同的用户。
(1)u:user,表示所有者
(2)g:group,表示属组
(3)o:other,表示其他用户
(4)a:all,表示以上3中用户
使用以下3种字符的组合表示法设置操作权限:
(1)r:read,表示可读取
(2)w:write,表示可写入
(3)x:execute,表示可执行
操作符号包括以下几种:
(1)+:表示添加某种权限
(2)-:表示减去某种权限
(3)=:表示赋予给定的权限,并且取消原来的权限
使用chmod命令来修改权限:
chmod 选项 文件
2、文件系统高级权限
(1)SET位权限
SET位权限也称特殊权限,一般文件权限是rwx,在某些特殊场合可能无法满足要求,为了方便普通用户执行一些特殊命令,可以设置SUID、SGID权限,允许普通用户以root用户的身份暂时执行某些程序,并在执行结束后回复身份。因此,Linux操作系统提供了一些额外的权限,只要设置了这些权限,就可以具有一些额外的功能。
使用chmod u+s命令就是为某个程序的所有者授予SUID、SGID权限,使其可以像root用户一样进行操作。
chmod u+s 可执行文件
(2)粘滞位权限
在通常情况下,用户只要对某个目录具有写入权限,就可以删除该目录下的任何文件,而不论这些文件的权限是什么,这是不安全的。粘滞位权限就是为了针对这种情况,当目录被设置了粘滞位权限,即使用户对该目录具有写入权限,也不能删除该目录下其他用户的数据,而只有该文件的属主和root用户才有权限将其删除。
chmod o+t 可执行文件
2.4.4 文件访问控制列表ACL
Linux操作系统的传统权限设置方法比较简单,仅有属主权限、属组权限、其他人权限3种身份和读取、写入、执行3种权限,传统权限设置有一定局限性,如某个目录要开放给某个特定的用户使用,则传统权限设置无法满足要求。如果希望对某个指定的用户进行单独的权限控制,则需要用到文件的访问控制列表(ACL)。
基于普通文件或目录设置ACL其实就是针对特定的用户或组设置文件或目录的权限。另外,如果针对某个目录设置了ACL,则目录中的其他文件会继承其ACL。
(1)setfacl——设置ACL权限
setfacl命令用于管理文件的ACL权限,其格式如下:
setfacl 选项 文件名
针对特殊用户设置命令的格式:
setfacl 选项 u:用户名:权限(rwx) 文件名
选项 | 功能说明 |
---|---|
-m | 更改文件的ACL |
-b | 删除所有的扩展ACL条目 |
-x | 移除ACL条目 |
-k | 移除默认ACL |
-R | 递归操作子目录 |
-L | 依照系统逻辑,跟随符号链接 |
-P | 依照自然逻辑,不跟随符号链接 |
文件的ACL提供的是在所有者、所属组、其他人的读取、写入、执行权限之外的特殊权限控制,使用setfacl命令可以针对单一用户或组、单一文件或目录进行读取、写入、执行权限的控制。其中,针对目录文件需要使用-R递归参数,针对普通文件可以使用-m参数,如果想要删除某个文件的ACL,则可以使用-b参数。
当看到文件权限最后一个变成了+,也就意味着文件设置了ACL。
(2)getfacl——显示ACL权限
getfacl命令用来显示ACL权限:
getfacl 选项 文件名
选项 | 功能说明 |
---|---|
-a | 仅显示文件ACL |
-d | 仅显示默认的ACL |
-e | 显示所有的有效权限 |
-R | 显示递归子目录 |
-c | 不显示注释表头 |
第三章 网络配置管理
3.1 网络常用管理命令
Linux主机想与网络中的其他主机进行通信,必须进行正确的网络配置,网络配置通常包括主机名、IP地址、子网掩码、默认网关、DNS服务器等的配置。
(1)ifconfig命令——管理网络接口
ifconfig命令是一个可以用来查看、配置、启用或禁用网络接口的命令。ifconfig命令可以临时性地配置网卡的IP地址、子网掩码、网关等,使用ifconfig命令配置的网络相关信息,在主机重启后就不再存在。如果想要永久有效,则需要去修改网络配置文件。
ifconfig 网络设备 选项
选项 | 功能说明 |
---|---|
up | 启动指定的网络设备 |
down | 关闭指定的网络设备 |
-arp | 检查指定网卡是否支持ARP |
-a | 显示全部接口信息 |
-s | 显示摘要信息 |
add | 给指定网卡配置IPv6地址 |
del | 删除给指定网络配置的IPv6地址 |
netmask<子网掩码> | 设置网卡的子网掩码 |
tunnel<地址> | 建立IPv4和IPv6之间的隧道通信地址 |
设置IPv4地址、子网掩码、广播地址,启动与关闭ARP功能:
(2)hostnamectl命令——设置并查看主机名
使用hostnamectl命令可以设置并查看主机名:
hostnamectl 选项 主机名
选项 | 功能说明 |
---|---|
status | 显示当前主机名状态 |
set-hostname | 设置当前主机名状态 |
set-icon-name | 设置系统主机名 |
(3)route命令——管理路由
route命令用来显示并设置Linux内核中的网络路由表,route命令设置的主要是静态路由,要实现两个不同子网的通信,需要一台连接两个网络的路由器或者同时位于两个网络的网关。
需要注意的是,直接在命令模式下使用route命令添加的路由信息不会永久保存,主机重启之后该路由就失效了。
route 选项
选项 | 功能说明 |
---|---|
add | 添加一条路由 |
del | 删除一条路由 |
target | 指定目标网络或主机,可以是点分十进制的IP地址或主机/网络名 |
netmask | 为添加的路由指定网络掩码 |
gw | 为发往目标网络/主机的任何分组指定网关 |
-net | 路由目标为网络 |
-host | 路由目标为主机 |
(4)ping命令——检测网络连通性
ping命令是Linux操作系统中使用非常频繁的命令,用来测试主机之间网络的连通性。ping命令使用的是ICMP,它发送ICMP回送请求消息给目标主机,ICMP规定,目标主机必须返回ICMP回送应答消息给源主机,如果源主机在一定时间内收到应答,则认为主机可达,否则不可达。
ping 选项 目标网络
选项 | 功能说明 |
---|---|
-c 次数 | 设置要求回应的次数 |
-i 时间间隔秒数 | 指定收发信息的时间间隔 |
-n | 只输出数值 |
-R | 记录路由过程 |
-s 数据包大小 | 设置数据包的大小 |
-t 设置存活数值 | 设置存活数值的大小 |
在Linux中使用不带选项的ping命令后,系统会一直不断的发送检测包,直到按下ctrl+c终止:
(5)netstat命令——查看网络信息
netstat命令是一个综合的网络状态查看命令,可以从显示的Linux操作系统的网络状态信息中得知整个Linux操作系统的网络情况,包括网络连接、路由表、接口状态、网络链路和组播成员等。
netstat 选项
选项 | 功能说明 |
---|---|
-a | 显示所有连接中的端口socket |
-c | 持续列出网络状态 |
-i | 显示网络界面信息表单 |
-n | 直接使用IP地址,而不通过DNS |
-r | 显示路由表 |
-t | 查看TCP连接情况 |
-u | 查看UDP连接情况 |
(6)nslookup——DNS解析
nslookup命令是常用域名查询命令,用于查询DNS信息,其有两种工作模式,即交互模式和非交互模式。在交互模式下,用户可以向DNS服务器查询各类主机、域名信息,或者输出域名中的主机列表。在非交互模式下,用户可以针对一个主机或域名获取特定的名称或所需信息。
nslookup //交互模式
nslookup 域名 //非交互模式
(7)traceroute命令——跟踪路由
traceroute命令用于追踪网络数据包的路由途径,通过traceroute命令可以知道源计算机到达互联网另一端的主机的路径。
traceroute 选项 目标主机或IP地址
选项 | 功能说明 |
---|---|
-f 存活数值 | 设置第一个检测数据包存活数值大小 |
-m 存活数值 | 设置检测数据包的最大存活数值的大小 |
-n | 直接使用IP地址而非主机名称 |
-q | 发送数据包检测次数 |
-i 网络界面 | 使用指定的网络界面发送数据包 |
-g 网关 | 设置来源路由网关,最多8个 |
-d | 使用Socket层级的排错功能 |
可以看到,第一行有4个时间,这就是探测数据包向网关发出了4个数据包。如果是*,可能是因为防火墙拦截了ICMP的返回信息。
3.2 系统监控
系统监控是系统管理员的主要工作之一,Linux系统提供了各种日志及性能监控工具帮助用户完成系统监控工作。
3.2.1 磁盘监控
iostat命令用于查看CPU利用率和磁盘性能等相关信息。在系统性能出现问题时,磁盘性能是一个值得分析的重要指标。
iostat 选项
选项 | 功能说明 |
---|---|
-d | 只显示磁盘利用率 |
-p | 可以报告每个磁盘的每个分区的使用情况 |
-k | 以字节为单位显示磁盘利用率 |
-x | 显示扩张统计 |
iostat命令各字段输出选项及其功能:
输出选项 | 功能说明 |
---|---|
tps | 每秒I/O数,即磁盘连续写和连续读之和 |
KB_read/s | 每秒从磁盘读取的数据大小,单位KB/s |
KB_wrtn/s | 每秒写入磁盘的数据大小,单位KB/s |
KB_read | 从磁盘读出来的数据总和,单位KB |
KB_wrtn | 写入磁盘的数据总和,单位KB |
3.2.2 内存监控
vmstat命令可以实时动态的监控操作系统的虚拟内存、进程、磁盘、CPU活动。
vmstat 选项
选项 | 功能说明 |
---|---|
-a | 显示活跃和非活跃内存 |
使用vmstat命令,每3s显示一次系统内存统计信息,总共显示5次:
vmstat命令各字段输出选项及其功能说明:
字段输出选项(进程) | 功能说明 |
---|---|
r | 运行队列中的进程数量 |
b | 等待I/O的进程数量 |
字段输出选项(内存) | 功能说明 |
---|---|
swpd | 使用虚拟内存大小 |
free | 可用内存大小 |
buff | 用作缓存的内存大小 |
cache | 用作高速缓存的内存大小 |
字段输出选项(交换分区) | 功能说明 |
---|---|
si | 每秒从交换分区写入内存的大小 |
so | 每秒写入交换分区的内存大小 |
字段输出选项(I/O) | 功能说明 |
---|---|
bi | 每秒读取的块数 |
bo | 每秒写入的块数 |
字段输出选项(系统) | 功能说明 |
---|---|
in | 每秒中断数,包括时钟中断 |
cs | 每秒上下文切换数 |
字段输出选项(CPU) | 功能说明 |
---|---|
us | 用户进程执行时间 |
sy | 系统进程执行时间 |
id | 空闲时间 |
wa | I/O等待时间 |
st | 显示虚拟机监控程序为另一个虚拟处理器提供服务时虚拟CPU非自愿等待的时间比例 |
3.2.3 CPU监控
在Linux系统中监控CPU的性能时主要关注3个指标:运行队列、CPU使用率、上下文切换。
(1)运行队列
每个CPU都维护着一个线程的运行队列,线程未处于睡眠状态(阻塞或等待I/O)时就表示处于可运行的状态。如果CPU子系统处于高负荷下,则意味着内核调试将无法及时响应系统请求,导致的结果就是可运行状态进程阻塞在运行队列中,当运行队列越来越大时,线程就花费更多的时间来获取被执行的机会。
(2)CPU使用率
CPU使用率即CPU使用的百分比,多数系统性能监控工具关于CPU使用率的分类大概有以下几种:
①user time(用户进程的时间):用户空间中被执行进程占CPU开销时间的百分比
②system time(内核线程及中断时间):内核空间中线程和中断占CPU开销时间的百分比
③wait I/O time(I/O请求等待时间):所有进程被阻塞时,等待完成一次I/O请求所占CPU开销时间的百分比
④idle time(空闲时间):一个完整空闲状态的进程占CPU开销时间的百分比
(3)上下文切换
一个标准的Linux操作系统内核可以运行50-50000个处理线程,在只有一个CPU时,内核将调试并均衡每个进程和线程,一个进程要么获得时间额度,要么抢先获得较高优先级(如硬件中断),其中较高优先级的线程将重新回到处理器队列中,这种线程的转换关系就是上下文切换。
mpstat命令用于查看具有多个CPU的计算机的性能情况,而vmstat命令只能显示CPU的总性能情况。
mpstat命令可以实时进行系统监控,报告CPU相关的一些统计信息。
mpstat 选项
选项 | 功能说明 |
---|---|
-P[ALL] | 表示监控哪个CPU |
interval | 相邻两次采样的时间间隔 |
count | 采样的次数 |
输出选项 | 功能说明 |
---|---|
%user | 表示处理用户进程所使用的CPU的百分比。用户进程是用于应用程序的非内核进程 |
%nice | 表示使用nice命令对进程进行降级时所使用的CPU的百分比 |
%sys | 表示内核进程使用的CPU百分比 |
%iowait | 表示等待进行I/O所使用的CPU百分比 |
%irq | 表示用于处理系统中断的CPU百分比 |
%soft | 表示用于软件中断的CPU百分比 |
%steal | 显示虚拟机管理器在服务另一个虚拟处理器时,虚拟CPU处于非自愿等待状态下花费时间的百分比 |
%guest | 显示运行虚拟处理器时CPU花费时间的百分比 |
%idle | 显示CPU的空闲时间 |
3.2.4 性能分析监控
top命令是Linux操作系统中常用的性能分析命令,能够实时显示系统中各个进程的资源使用状况,类似于windows的任务管理器。top命令显示的是一个动态过程,可以通过用户按键不断刷新。
top 选项
选项 | 功能说明 |
---|---|
-c | 显示完整的命令行 |
-d | 屏幕刷新间隔时间 |
-i 时间 | 设置时间间隔 |
-u 用户名 | 指定用户名 |
-p 进程号 | 指定进程 |
-n 次数 | 循环显示的次数 |