
- 🎓作者简介:CS专业的大二在校生
- 👨💻 博主主页:@Ahu_iii
文章目录
- [1. 什么是命令](#1. 什么是命令)
-
- [1.1 Linux命令格式](#1.1 Linux命令格式)
- [2. 相对路径、绝对路径和特殊路径符](#2. 相对路径、绝对路径和特殊路径符)
- [2. 基础命令](#2. 基础命令)
-
- [2.1 ls命令:查看指定路径下内容](#2.1 ls命令:查看指定路径下内容)
- [2.2 选项的组合使用](#2.2 选项的组合使用)
- [2.3 HOME目录和工作目录](#2.3 HOME目录和工作目录)
- [2.4 cd命令:切换工作目录](#2.4 cd命令:切换工作目录)
- [2.6 pwd命令:查看工作目录](#2.6 pwd命令:查看工作目录)
- [2.7 mkdir命令:创建目录](#2.7 mkdir命令:创建目录)
- [3. 文件操作命令](#3. 文件操作命令)
-
- [3.1 touch命令:创建文件](#3.1 touch命令:创建文件)
- [3.2 cat命令:查看文件内容](#3.2 cat命令:查看文件内容)
- [3.3 more命令:查看文件内容](#3.3 more命令:查看文件内容)
- [3.4 cp命令:复制文件、文件夹](#3.4 cp命令:复制文件、文件夹)
- [3.5 mv命令:移动文件或文件夹](#3.5 mv命令:移动文件或文件夹)
- [3.5 rm命令:删除文件或文件夹](#3.5 rm命令:删除文件或文件夹)
-
- [3.5.1 通配符](#3.5.1 通配符)
- [3.5.2 -f 强制删除](#3.5.2 -f 强制删除)
- [4. 查找命令](#4. 查找命令)
-
- [4.1 which命令:查看Linux命令本体所在位置](#4.1 which命令:查看Linux命令本体所在位置)
- [4.2 find命令:查找文件位置](#4.2 find命令:查找文件位置)
-
- [4.2.1 按文件名查找](#4.2.1 按文件名查找)
- [4.2.2 按文件大小查找](#4.2.2 按文件大小查找)
- [5. 过滤、统计和管道符](#5. 过滤、统计和管道符)
-
- [5.1 grep命令:过滤文件内容](#5.1 grep命令:过滤文件内容)
- [5.2 wc命令:统计数量](#5.2 wc命令:统计数量)
- [5.3 管道符:|](#5.3 管道符:|)
- [6. 输出命令](#6. 输出命令)
-
- [6.1 echo命令:输出指定内容](#6.1 echo命令:输出指定内容)
- [6.2 反引号:\`](#6.2 反引号:`)
- [6.3 重定向符:>、>>](#6.3 重定向符:>、>>)
- [6.4 tail命令:查看文件尾部内容](#6.4 tail命令:查看文件尾部内容)
- [7. VI/VIM编辑器](#7. VI/VIM编辑器)
-
- [7.1 什么是VI/VIM编辑器](#7.1 什么是VI/VIM编辑器)
- [7.2 VI/VIM的工作模式](#7.2 VI/VIM的工作模式)
- [7.3 VI/VIM命令模式下的快捷键](#7.3 VI/VIM命令模式下的快捷键)
- [8. 用户及权限管理](#8. 用户及权限管理)
-
- [8.1 Linux下的root用户](#8.1 Linux下的root用户)
- [8.2 用户、用户组](#8.2 用户、用户组)
- [8.3 用户组管理](#8.3 用户组管理)
-
- [8.3.1 创建和删除命令](#8.3.1 创建和删除命令)
- [8.4 用户管理](#8.4 用户管理)
-
- [8.4.1 创建用户](#8.4.1 创建用户)
- [8.4.2 删除用户](#8.4.2 删除用户)
- [8.4.3 查看用户所属组](#8.4.3 查看用户所属组)
- [8.4.4 修改用户所属组](#8.4.4 修改用户所属组)
- [8.5 getent命令:查看用户、用户组](#8.5 getent命令:查看用户、用户组)
-
- [8.5.1 查看用户信息](#8.5.1 查看用户信息)
- [8.5.2 查看用户组信息](#8.5.2 查看用户组信息)
- [9. 权限信息](#9. 权限信息)
- [10. 权限修改](#10. 权限修改)
-
- [10.1 chmod命令:修改文件/文件夹的读写等权限](#10.1 chmod命令:修改文件/文件夹的读写等权限)
- [10.2 chown命令:修改文件/文件夹的所属用户或用户组](#10.2 chown命令:修改文件/文件夹的所属用户或用户组)
- [11. systemctl命令:控制软件启动、停止等](#11. systemctl命令:控制软件启动、停止等)
- [11. ln命令:创建软链接](#11. ln命令:创建软链接)
- [12. 日期和时区](#12. 日期和时区)
-
- [12.1 date命令:查看系统时间](#12.1 date命令:查看系统时间)
- [12.2 修改时区](#12.2 修改时区)
-
- [12.2.1 ntp程序:自动校准系统时间](#12.2.1 ntp程序:自动校准系统时间)
- [13. IP地址和主机名](#13. IP地址和主机名)
-
- [13.1 IP地址](#13.1 IP地址)
- [13.2 ifconfig命令:查看IP地址](#13.2 ifconfig命令:查看IP地址)
- [13.3 特殊IP地址](#13.3 特殊IP地址)
- [13.2 主机名](#13.2 主机名)
-
- [13.2.1 修改主机名](#13.2.1 修改主机名)
- [13.3 域名解析](#13.3 域名解析)
- [14. 配置固定IP](#14. 配置固定IP)
-
- [14.1 为什么要固定IP](#14.1 为什么要固定IP)
- [14.2 VMware Workstation配置固定IP](#14.2 VMware Workstation配置固定IP)
- [15. 网络请求和下载](#15. 网络请求和下载)
-
- [15.1 Ping命令](#15.1 Ping命令)
- [15.2 wget命令](#15.2 wget命令)
- [15.3 curl命令](#15.3 curl命令)
- [16. 端口](#16. 端口)
-
- [16.1 什么是端口](#16.1 什么是端口)
- [16.2 端口](#16.2 端口)
- [16.3 namp命令:查看端口占用](#16.3 namp命令:查看端口占用)
- [16.4 netstat命令:查看指定端口的占用](#16.4 netstat命令:查看指定端口的占用)
- [17. 进程管理](#17. 进程管理)
-
- [17.1 进程的概念](#17.1 进程的概念)
- [17.2 ps命令:Linux查看进程](#17.2 ps命令:Linux查看进程)
- [17.3 kill命令:Linux关闭进程](#17.3 kill命令:Linux关闭进程)
- [18. 主机状态监控](#18. 主机状态监控)
-
- [18.1 top命令:查看系统资源占用](#18.1 top命令:查看系统资源占用)
- [18.2 df命令:磁盘信息监控](#18.2 df命令:磁盘信息监控)
- [18.3 iostat命令:查看CPU、磁盘信息](#18.3 iostat命令:查看CPU、磁盘信息)
- [18.4 sar命令:网络监控](#18.4 sar命令:网络监控)
- [19. 环境变量](#19. 环境变量)
-
- [19.1 环境变量的作用](#19.1 环境变量的作用)
- [19.2 环境变量:PATH](#19.2 环境变量:PATH)
- [19.3 符号:获取环境变量的值](#19.3 符号:获取环境变量的值)
- [19.4 配置环境变量](#19.4 配置环境变量)
-
- [19.4.1 配置PATH](#19.4.1 配置PATH)
- [20. Linux文件的上传和下载](#20. Linux文件的上传和下载)
-
- [20.1 FinalShell中的上传、下载](#20.1 FinalShell中的上传、下载)
- [20.2 rz、sz命令:命令行上传下载](#20.2 rz、sz命令:命令行上传下载)
- [21. 压缩和解压](#21. 压缩和解压)
-
- [21.1 压缩格式](#21.1 压缩格式)
- [21.2 tar命令:处理tar、gzip文件](#21.2 tar命令:处理tar、gzip文件)
-
- [21.2.1 常用压缩组合](#21.2.1 常用压缩组合)
- [21.2.2 常见解压组合](#21.2.2 常见解压组合)
- [21.3 zip、unzip命令:处理zip文件](#21.3 zip、unzip命令:处理zip文件)
-
- [21.3.1 zip命令:压缩文件](#21.3.1 zip命令:压缩文件)
- [21.3.2 unzip命令:解压文件](#21.3.2 unzip命令:解压文件)
1. 什么是命令
学习Linux,实际上就是学习Linux的各种命令。
命令行 :即Linux终端(Terminal),是一种命令提示符页面,以纯"字符"的形式操作系统,使用各种字符化的命令对系统发出操作指令 。
命令 :即Linux程序。一个命令就是Linux的一个程序 。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈。

1.1 Linux命令格式
无论什么命令,在Linux中有其通用的格式:
command [-options] [parameter]
command:命令本身。-option:(可选非必填)命令的一些选项,通过选项控制命令的行为细节。parameter:(可选非必填)命令的参数,多用于命令的指向目标等。
注:语法中的[]表示可选。
例:
ls -l /home/jose:ls是命令本身,-l是选项,/home/jose是参数------以列表的形式,显示/home/jose目录内的内容。cp -r test1 test2:cp是命令,-r是选项,表示复制文件夹test1成为test2。
2. 相对路径、绝对路径和特殊路径符
相对路径 :以当前目录为起点 描述路径,无需以/开头。
以进入HOME目录下的Desktop作为演示:

绝对路径 :以根目录为起点 描述路径,以/开头。

特殊路径符:
.:表示当前目录 ,如cd ./Desktop表示切换到当前目录下的Desktop内,和cd Desktop一致。..:表示上一级目录 ,如cd ..表示切换到上一级目录,cd ../..切换到上二级目录内。~:表示HOME目录 ,如cd ~表示切换到HOME目录,cd ~/Desktop表示切换到HOME目录下的Desktop内。
2. 基础命令
2.1 ls命令:查看指定路径下内容
语法:ls [-a -l -h] [Linux路径]。
-a -l -h是分别可选的选项。Linux路径是可选 的参数。
没有选项和参数时,表示以平埔形式,列出当前工作目录下的内容 。

根目录下内容:

-a:表示all,即列出全部文件(包含隐藏文件/文件夹) 。

图中以.开头的即Linux系统的隐藏文件/文件夹,只有通过-a选项才能看到隐藏文件/文件夹。
-l:表示list,即以列表(竖向排列)的形式列出内容,并能够展示出更多信息 。

-h:表示以易于阅读的形式,列出文件大小 ,如K、M、G。

2.2 选项的组合使用
语法中的选项都可以组合使用。
如:
ls -l -als -lals -al
上述三种写法是一样的,均表示同时使用-l和-a。
如:

2.3 HOME目录和工作目录
Linux系统的命令行终端启动时,默认会加载当前用户的HOME目录作为当前工作目录 。
HOME目录 :Linux用户在Linux系统的个人账户目录 ,路径:/home/用户名。
2.4 cd命令:切换工作目录
cd:即Change Directory。
语法 :cd [Linux路径]。
- 无需选项,只有参数,表示要切换到哪个目录。
- 不写参数,表示回到HOME目录 。
作用:切换工作目录。
切换到根目录下,并列出当前目录下的内容:

2.6 pwd命令:查看工作目录
当我们不清楚所处工作目录是什么的时候,可以通过pwd命令验证工作目录。
pwd即为Print Work Directory。
语法 :pwd。
- 该命令无选项,无参数,直接使用。
作用:输出当前所在工作目录。
如:

2.7 mkdir命令:创建目录
mkdir即为Make Directory。
语法 :mkdir [-p] Linux路径。
- 参数必填,表示要创建的文件夹路径,相对路径或绝对路径均可。
-p选项可选,即parents,表示自动创建不存在的父目录,适用于创建连续多层级的目录 。

当我们想要一次性创建多层级的目录,如

由于test1和test2不存在导致test3无法创建,而这时我们可以通过-p选项,一次创建路径上所有不存在的文件。

此外,当你觉得屏幕中的命令过多时,使用clear命令可以清屏。
注意:创建文件夹需要修改权限,以上操作只可在HOME目录内进行。后续会涉及权限管控的知识。
3. 文件操作命令
3.1 touch命令:创建文件
语法 :touch Linux路径。
- 该命令无选项,参数必填 ,表示要创建的文件路径,相对、绝对和特殊路径均可使用。

此外,当你用ls -l列出文件及文件夹的信息时,

其中第一列信息,首字符为d代表文件夹,首字符为-代表文件。
3.2 cat命令:查看文件内容
语法 :cat Linux路径。
- cat命令无选项,参数必填 ,表示要查看的文件路径,相对、绝对和特殊路径均可使用。

3.3 more命令:查看文件内容
more与cat都是查看文件内容的命令,但与cat不同的是:more支持翻页,适合文件内容过多的时候 。
语法 :more Linux路径。
相关操作:
- 查看过程中通过
空格翻页 - 通过
q退出查看

其中,最底部的0%代表了当前查看进度。
3.4 cp命令:复制文件、文件夹
cp即copy,
语法 :cp [-r] 参数1 参数2
-r选项可选,用于复制文件夹使用,表示递归。参数1,Linux路径,表示被复制的文件或文件夹。参数2,Linux路径,表示要复制到的目标路径。
文件复制:

文件夹复制:

3.5 mv命令:移动文件或文件夹
mv即move.
语法 : mv 参数1 参数2。
- 参数1,Linux路径,表示被移动的对象。
- 参数2,Linux路径,表示移动的目标路径,若目标不存在,则将被移动对象改名为目标对象。
目标存在:

目标不存在:

3.5 rm命令:删除文件或文件夹
rm即remove.
语法 :rm [-r -f] 参数1 参数2 ... 参数N。
-r选项用于删除文件夹。-f即force,表示强制删除 (不弹出提示确认信息)。- 普通用户删除内容不会弹出提示,只有root管理员用户删除内容会有提示。
- 一般用户用不到
-f选项。
参数1,参数2,...... ,参数N表示要删除的文件或文件夹路径,用空格隔开。
删除文件:

删除文件夹:

3.5.1 通配符
rm命令支持通配符*,用于模糊匹配
*表示通配符,即匹配任意内容(包含空),如:test*,表示匹配任何以test开头的内容。*test,表示匹配任何以test结尾的内容。*test*,表示匹配任何包含test的内容 。
示例:
删除所有以test开头的文件夹
![[Pasted image 20250623182334.png]]
3.5.2 -f 强制删除
由于root用户执行rm命令时会出现提示,此命令可强制删除跳过提示。
- 通过
su - root命令,并输入用户密码可临时切换到root用户。 - 通过
exit命令可退回普通用户。
删除文件夹,其中y表示同意:

强制删除文件夹:

注:使用完后记得退出root权限。
注意 :rm是一个危险的命令,特别是处于root用户的时候,
以下命令千万不要在root用户下执行:
rm -rf /rm -rf /*
效果等同于在windows上执行C盘格式化。
4. 查找命令
4.1 which命令:查看Linux命令本体所在位置
所谓的Linux命令实际就是一个个二进制可执行程序,和windows中的.exe文件是一样的。
我们可以通过which命令查看所使用的一系列命令的程序文件存放位置。
语法 :which 要查找的命令

4.2 find命令:查找文件位置
在以windows为例的图形化界面下,我们可以通过系统提供的搜索功能查找指定文件。
同样地,在Linux系统中,我们可以使用find命令去搜索指定文件。
4.2.1 按文件名查找
语法 :find 起始路径 -name "被查找文件名"。
以根目录为起始进行全盘搜索名为test的文件:

使用通配符,全盘搜索以test为开头的文件:

4.2.2 按文件大小查找
语法 :find 起始路径 -size +或-n[kMG]。
+,-表示大于和小于。n表示文件大小。kMG表示单位,k表示kb,M表示MB,G表示GB。
如:查找小于10kb的文件,即find / -size -10k。
5. 过滤、统计和管道符
5.1 grep命令:过滤文件内容
通过grep命令,可以从文件中通过关键字过滤文件行.
语法 :grep [-n] 关键字 文件路径。
- 选项
-n可选,表示在结果中显示匹配行的行号。 - 参数1-关键字,必填,表示过滤的关键字 ,若带有空格或其它特殊符号,建议使用
""将关键字括起来。 - 参数2-文件路径,必填,表示要过滤内容的文件路径 ,可作为内容输入端口 。

5.2 wc命令:统计数量
通过wc命令可以统计文件的行数、字符数量等。
语法 :wc [-c -m -l -w] 文件路径。
- 选项
-c,统计字节数。 - 选项
-m,统计字符数。 - 选项
-l,统计行数。 - 选项
-w,统计单词数。 - 参数-文件路径,表示统计对象,可作为内容输入端口。
首先,在图形化界面下test文件大小显示为:

使用-c和-w统计test:

如果不带选项,从左到右分别是行数、单词数、字节数以及文件名 :

5.3 管道符:|
管道符的含义是;将管道符左边命令的结果,作为右边命令的输入 。
如:

上述两种命令得到了同样的结果,其中第二条命令|左端的命令所得到的结果作为|右端命令中所缺失的参数文件路径的输入,即在cat test所返回的内容中过滤出包含jose的行。
这就是为什么说grep命令中的文件路径可作为输入端口,同样地,wc命令中的文件路径也可作为输入端口,像这样:

即在左边命令返回的结果中统计单词数。
类似地我们可以用管道符玩一些别的花样,比如:
过滤文件:

查看特定文件的详细信息:

统计文件数(列表形式下,每个文件占据一行):

6. 输出命令
6.1 echo命令:输出指定内容
语法 :echo 输出内容。
- 无选项,含一个参数,表示要输出的内容 ,带有空格等特殊符号用
""括起来。

6.2 反引号:`
当我们想将某一命令的结果使用echo输出时,可能不会正常实现
如:
当我们想要将当前路径作为输出内容时,echo将pwd看作参数而不是命令

我们可使用反引号`将pwd括起来,像这样

此时pwd被看作命令。
提示:当某一命令可能被看做普通字符而不是命令时,我们可以使用该符号。
6.3 重定向符:>、>>
重定向符分为两种:
>:将左侧命令的结果,覆盖到符号右侧指定文件中>>:将左侧命令的结果,追加到符号右侧指定文件中
将echo的结果覆盖到test中

将echo的结果追加到test中

6.4 tail命令:查看文件尾部内容
使用tail命令,可以查看文件尾部内容,或跟踪文件的最新更改。
语法 :tail [-f -数字] Linux路径。
- 参数-Linux路径,表示目标文件路径。
- 选项
-f,即follow,表示持续跟踪。 - 选项
-数字,表示查看尾部多少行,默认10行。
查看test文件中最后1行的内容

-f持续跟踪,此时可另开一个标签页远程连接,通过echo和>>追加尾部内容的同时,进行持续跟踪的标签页会同步更新(通过ctrl+C中止):

7. VI/VIM编辑器
7.1 什么是VI/VIM编辑器
VI是visual interface的简称,顾名思义就是虚拟接口,是Linux中最经典的文本编辑器。与图形化界面中的文本编辑器一样,VI是命令行下对文本文件进行编辑的绝佳选择。VIM是VI的加强版,兼容了VI的所有指令,不仅能够编辑文本,而且具有shell程序编辑的功能,以不同颜色的字体来辨别语法的正确性,方便了程序的设计和编辑。
7.2 VI/VIM的工作模式
- 命令模式(Command Mode):该模式下,编辑器将所敲入的案件都视为命令,以命令驱动执行不同的功能。此模式下,不能自由地进行文本编辑。
- 输入模式(Insert Mode):即所谓的编辑模式。此模式下,可对文件内容进行自由编辑。
- 底线命令模式 (Last Line Mode):以
:开始,通常用于文件的保存、退出。

当我们需要通过vi/vim编辑文件时,只需通过以下命令:
vi 文件路径vim 文件路径
一般都使用vim。
注:如果目标文件不存在,此命令即用于编辑新文件;如果文件存在,则用于编辑已有文件。
示例:
-
输入
vim hello.txt创建新文件并进入命令模式 -
命令模式下输入
i,进入输入模式 -
在此模式下可输入任意文本内容,通过
Esc键退出该模式,如:

-
回到命令模式后,输入
:进入底线命令模式 -
此模式下输入
wq保存并退出vim,其中w为保存,q为退出最终呈现:

7.3 VI/VIM命令模式下的快捷键
| 模式 | 命令 | 描述 |
|---|---|---|
| 命令模式 | i | 在当前光标位置进入 输入模式 |
| 命令模式 | a | 在当前光标位置之后进入 输入模式 |
| 命令模式 | I | 在当前行的开头进入 输入模式 |
| 命令模式 | A | 在当前行的结尾进入 输入模式 |
| 命令模式 | o | 在当前光标下一行进入 输入模式 |
| 命令模式 | O | 在当前光标上一行进入 输入模式 |
| 输入模式 | esc | 回到命令模式 |
| 命令模式 | k / ↑ | 向上移动光标 |
| 命令模式 | j / ↓ | 向下移动光标 |
| 命令模式 | h / ← | 向左移动光标 |
| 命令模式 | l / → | 向右移动光标 |
| 命令模式 | 0 | 移动光标到当前行的开头 |
| 命令模式 | $ | 移动光标到当前行的结尾 |
| 命令模式 | pageup (PgUp) | 向上翻页 |
| 命令模式 | pagedown (PgDn) | 向下翻页 |
| 命令模式 | / | 进入搜索模式 |
| 命令模式 | n | 向下继续搜索 |
| 命令模式 | N | 向上继续搜索 |
| 命令模式 | dd | 删除光标所在行的内容 |
| 命令模式 | ndd | 删除光标开始的 n 行 |
| 命令模式 | yy | 复制当前行 |
| 命令模式 | nyy | 复制当前行和下面的 n 行 |
| 命令模式 | p | 粘贴复制的内容 |
| 命令模式 | u | 撤销修改 |
| 命令模式 | ctrl + r | 反向撤销(重做) |
| 命令模式 | gg | 跳到第一行 |
| 命令模式 | G | 跳到最后一行 |
| 命令模式 | dG | 从当前行开始,向下全部删除 |
| 命令模式 | dgg | 从当前行开始,向上全部删除 |
| 命令模式 | d$ | 从当前位置开始,删除到本行的结尾 |
| 命令模式 | d0 | 从当前位置开始,删除到本行的开头 |
| 底线命令模式 | :wq | 保存并退出 |
| 底线命令模式 | :q | 仅退出 |
| 底线命令模式 | :q! | 强制退出 |
| 底线命令模式 | :w | 仅保存 |
| 底线命令模式 | :set nu | 显示行号 |
| 底线命令模式 | :set paste | 设置粘贴模式,防止格式错乱 |
8. 用户及权限管理
8.1 Linux下的root用户
无论是windows、mac还是Linux均采用多用户的管理模式 管理权限。
Linux中,拥有最大权限的账户名为:root(超级管理员),而日常使用的则是普通用户,root用户有着比普通用户更大的权限,能够执行普通用户无法执行的命令(所有命令)。
比如,当我们想要在根目录下创建文件夹:
普通用户权限:

root用户权限:

最后,通过ctrl + d退出root。
注:普通用户权限一般在其HOME目录下不受限,一旦出了HOME目录,大多地方,普通用户仅有只读和执行权限,无修改权限。
8.2 用户、用户组
Linux系统中可以配置多个用户或用户组,每个用户可以加入多个用户组中 。
Linux系统可对用户或用户组进行权限管理,针对某个文件或文件夹,可以修改用户或用户组对其能够执行的操作。
8.3 用户组管理
注意:以下命令需root用户执行
8.3.1 创建和删除命令
创建用户组 :groupadd 用户组名
删除用户组 :groupdel 用户组名
8.4 用户管理
注意:以下命令由root用户执行
8.4.1 创建用户
语法 :ueseradd [-g -d] 用户名
- 选项
-g,用于指定用户组,不指定会创建同名组并自动加入 ,指定则需要组存在,若已存在同名组,则必须使用-g - 选项
-d,用于指定用户HOME路径,不指定,则HOME目录默认为/home/用户名
尝试创建用户:

创建test用户于test组下,并指定home目录:

创建成功,切换至该用户:

8.4.2 删除用户
语法 :userdel [-r] 用户名
- 选项
-r,删除用户的HOME目录,不使用-r,则保留HOME目录
将用户test及其home目录删除:

8.4.3 查看用户所属组
语法 :id [用户名]
- 参数
用户名,被查看用户,若不提供则查看自身
创建test用户于jose组下:

root用户下可查看任何用户所属组:

8.4.4 修改用户所属组
语法 :usermod -aG 用户组 用户名
- 将
用户名加入到用户组中
创建test2用户于同名组下,并重新将其加入到jose组下:

8.5 getent命令:查看用户、用户组
8.5.1 查看用户信息
语法 :getent passwd
用户信息

上图的信息分别对应:用户名:密码:用户ID:组ID:描述信息:HOME目录:执行终端-默认bash
8.5.2 查看用户组信息
语法 :getent group
用户组信息

图中信息分别为:组名:组认证(显示x):组ID
9. 权限信息

其中第一列所展示的权限信息格式为:

即除首字母外,每3个字母表示所属用户、所属用户组、其它用户的权限信息 :r: read; w: write; x: executive。
- r:针对文件或文件夹可以查看内容。
- w:针对文件或文件夹可以修改。
- x:针对文件可将其作为程序执行;针对文件夹可更改工作目录到此文件夹。
10. 权限修改
10.1 chmod命令:修改文件/文件夹的读写等权限
语法 :chmod [-R] 权限 文件或文件夹
- 选项
-R,对文件夹内全部内容应用相同操作
注:只对文件/文件夹的所属用户或root用户有权执行该命令。
对文件或文件夹单独修改:

对文件夹及其内部所有文件修改:

其中u表示所属用户user,g表示group,o表示其他用户other。
此外,chmod还有一种快捷写法 :利用二进制xxx转为的十进制0-7的数来表示对应用户权限,如:chmod 751 hello.txt,其中7即 111,5即 101,1即 001。

10.2 chown命令:修改文件/文件夹的所属用户或用户组
语法 :chown [-R] [用户][:][用户组] 文件或文件夹
- 选项
-R,对文件夹及其内部所有文件进行相同操作 - 选项
用户,修改所属用户 - 选项
用户组,修改所属用户组 :用于分隔用户和用户组
注:普通用户无法修改所属用户或用户组,即此命令只适用于root用户。
将test文件夹的所属用户修改为root:

再将所属用户组修改为root:

重置test权限并用-R再次演示:

11. systemctl命令:控制软件启动、停止等
Linux中很多内置或第三方软件均支持使用systemctl命令控制:启动、停止、开机启动。能够被systemctl管理的软件一般称为:服务。
语法 :systemctl start | stop | status | enable | disable 服务名。
start:启动。stop:关闭。status:查看状态。enable:开启开机自启。disable:关闭开机自启。
Linux内置服务比较多,比如:
NetworkManager:主网络服务。network:副网络服务。firewalld:防火墙服务。sshd和ssh服务,FinalShell远程登陆Linux使用的就是这个服务。
查看firewalld状态

关闭firewalld

注:能够通过systemctl管理的第三方软件是因为安装后会自动集成到systemctl中,而部分软件安装后不会自动集成到其中,此时我们需要手动添加。
11. ln命令:创建软链接
软链接类似于windows系统中的"快捷方式",可将文件、文件夹链接到其他位置。
语法 :ln -s 参数1 参数2。
- 选项
-s,创建软链接。 参数1,被链接的文件或文件夹。参数2,软链接目标位置。
将etc下的文件yum.conf链接到根目录下

软链接信息:l 表示快捷方式

链接文件夹

12. 日期和时区
12.1 date命令:查看系统时间
语法 :date [-d] [+格式化字串]。
- 选项
-d,按照给定的字串计算并显示日期,一般用于日期计算。year:年。month:月。day:天。hour:小时。minute:分钟。second:秒。
格式化字串,通过特定的字串标记,控制显示的日期格式。%Y:年。%y:年份后两位数字。%m:月份。%d:日。%H:小时。%M:分钟。%S:秒。%s:自 1970-01-01 00:00:00 UTC 到现在的秒数。
直接查看

按照年-月-日查看日期

更详细的时间,日期和时间

可以看到,若字串中存在空格,需要用双引号将选项包围。
查看一天后的日期

12.2 修改时区
中国的时区应是东八区(CST),Linux默认的时区可能不准确,此时需要修改系统时区。
方法 :切换到root用户,删除etc下的localtime,将/usr/share/zoneinfo/Asia/Shanghai通过软链接,链接到/etc/localtime即可。

12.2.1 ntp程序:自动校准系统时间
- 安装:
yum -y install ntp - 启动并开启开机自启:
systemctl start ntpdsystemctl enable ntpd
启用后ntpd将定期联网校准系统时间。
此外也可通过ntpd手动实现校准(root权限):ntpdate -u ntp.aliyun.com,即通过阿里云提供的服务网址配合ntpdate命令自动校准 。

13. IP地址和主机名
13.1 IP地址
每台联网的电脑都会有一个地址 ,用于和其它计算机进行通讯。
IP地址主要有两个版本,v4和v6版本,其中v6很少用。
IPv4的地址格式是:a.b.c.d,其中abcd分别表示0~255的数字符 ,如192.168.88.101就是一个IP地址。
13.2 ifconfig命令:查看IP地址
Linux中使用ifconfig命令查看本机的IP地址。
如无法使用ifconfig,可以安装:yum -y install net-tools

13.3 特殊IP地址
除几个标准IP地址外,有几个特殊的IP地址需了解:
127.0.0.1:这个IP地址用于指代本机.0.0.0.0:特殊IP地址。- 可以用于指代本机。
- 可以在端口绑定中用于确定绑定关系。
- 在一些IP地址限制中,表示所有IP 的意思,如放行规则设置为
0.0.0.0,表示允许任意IP访问。
13.2 主机名
电脑除了对外联络地址(IP)外,也可以有一个名字,称之为主机名。无论是Windows还是Linux系统,都可以给系统设置主机名。
Linux系统主机名用hostname查看:

13.2.1 修改主机名
通过命令:hostnamectl set-hostname 主机名实现主机名的修改。


13.3 域名解析
由数字组成的IP地址实在难以记忆,通常使用字符化的地址去访问服务器 ,如百度的地址:www.baidu.com,这样的地址我们称之为域名 。
即当我们想要访问百度www.baidu.com时,会先查看本地记录中是否存在该域名对应的IP地址,如果没有则会向DNS服务器进行询问。
类似的我们可以在hosts文件中建立Linux虚拟机IP与主机名的映射,在hosts文件中添加如下内容 :

此时FinalShell可以通过主机名centos而不是IP地址来远程连接对应虚拟机。
14. 配置固定IP
14.1 为什么要固定IP
没有配置固定IP时,我们虚拟机的IP地址是通过DHCP服务来获取的。
DHCP服务:动态获取IP地址,即每次重启设备后都会获取一次,可能导致IP地址频繁变更。
由于我们需要远程连接Linux,此时如果IP频繁变更我们就要频繁修改配置 ,并且如果我们配置了虚拟机IP与主机名的映射,也需要频繁修改映射关系,因此我们需要将IP固定。
14.2 VMware Workstation配置固定IP
第一步:
打开编辑->虚拟网络编辑器

第二步:
设置子网IP和子网掩码,子网掩码的作用是设置IP范围,如图中就是192.168.183.0到192.168.183.254。

将子网IP改为192.168.88.0,然后打开NAT设置

确保网关IP后缀为88.2
第三步:
回到Linux,使用vim编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,注意使用root用户 。

拼写错误:是NETMASK不是NETMACK。
第四步:执行systemctl restart network,重启网络。
15. 网络请求和下载
15.1 Ping命令
功能 :检查指定的网络服务器是否为可联通状态。
语法 :ping [-c num] ip或主机名。
- 选项
-c,检查的次数,不使用则将无限次持续检查。 - 参数
ip或主机名,被检查的服务器的ip地址或主机名。
15.2 wget命令
功能 :wget是非交互式的文件下载器 ,可以在命令行内下载网络文件。
语法 :wget [-b] url
- 选项
-b,可选,后台下载,将日志写入当前工作目录的wget-log文件 - 参数
url,下载链接
注意:无论下载是否完成,都会生成要下载的文件。
15.3 curl命令
功能 :发送http网络请求,可用于下载文件、获取信息等。
语法 :curl [-O] url。
- 选项
-O,用于下载文件,当url是下载链接时,使用此选项保存文件。 - 参数
url,要发起请求的网络地址。
向cip.cc发送网络请求

注:curl命令本质上与浏览器访问网站是一样的。
16. 端口
16.1 什么是端口
端口是设备与外界通讯交流的出入口。
端口分为物理端口 和虚拟端口。
- 物理端口:又称接口,是可见的端口,如USB接口、RJ45网口等。
- 虚拟端口:指计算机内部的端口,不可见,用来操作系统和外部进行交互使用的。
虚拟端口的作用 :计算机只能通过IP锁定计算机,而不能锁定具体的程序。通过端口可以锁定计算机具体的程序,确保程序间进行沟通。类比的话就是,IP相当于小区地址,而端口则是各个住户的门牌号。
16.2 端口
Linux系统支持65535个端口,这些端口分为3类进行使用:
- 公认端口 :1~1023 ,通常用于一些系统内置或知名程序的预留使用 ,如SSH服务的22端口、HTTPS服务的443端口等,非特殊需要,不要占用这个范围的端口。
- 注册端口 :1024~49151 ,通常可以随意使用 ,用于松散的绑定一些程序或服务。
- 动态端口 :49152~65535 ,通常不会固定绑定程序,而是当程序对外进行网络连接时临时使用。
16.3 namp命令:查看端口占用
使用该命令需要先安装nmap:yum -y install nmap。
功能 :查看端口的占用情况。
语法 :nmap 被查看的IP地址。
查看本机的端口占用

16.4 netstat命令:查看指定端口的占用
使用该命令需先安装net-tools:yum -y install net-tools。
功能 :查看指定端口的占用情况。
语法 :netstat -anp | grep 端口号。
其中netstat -anp输出所有端口占用,通过管道符和grep从中过滤出指定端口。
查看端口111的占用

17. 进程管理
17.1 进程的概念
程序在运行时,是被操作系统所管理的。为管理运行的程序,每个程序运行的时候,都被操作系统注册为系统的一个进程,并为每个进程都分配一个独有的进程ID(进程号)。
17.2 ps命令:Linux查看进程
语法 :ps [-e -f]。
- 选项
-e,显示全部进程。 - 选项
-f,已完全格式化的形式展示信息(展示全部信息)。
一般的用法就是ps -ef列出全部进程的全部信息。

UID:进程所属用户ID。PID:进程号ID。PPID:进程的父ID(启动此进程的其它进程)。C:此进程的CPU占用率。STIME:进程的启动时间。TTY:启动此进程的终端序号,如显示?,表示非终端启动。TIME:进程占用CPU的时间。CMD:进程对应的命令或进程启动的路径或启动命令。
17.3 kill命令:Linux关闭进程
语法 :kill [-9] 进程ID
- 选项
-9,表示强制关闭。否则向进程发送信号要求其关闭,是否关闭看进程自身的处理。
注:不使用-9关闭进程,进程状态变为为Terminated;否则就是killed。
18. 主机状态监控
18.1 top命令:查看系统资源占用
功能 :查看CPU、内存使用情况,类似Win的任务管理器。
语法 :top。
注:默认每5秒刷新一次,按d或ctrl+c退出。

其中包含许多信息。
第一行:
top:命令名称。15:45:03:当前系统时间。up 25 min:启动了25分钟。3 users:3个用户登录。load average:分别是1、5、15分钟的平均负载。
第二行:Tasks:进程数。1 running:1个进程在运行。199 sleeping:199个在睡眠。0 stopped:0个停止进程。0 zombie:0个僵尸进程。
第三行:%cpu(s):CPU使用率。us:用户CPU使用率。sy:系统PCPU使用率。ni:高优先级进程占用CPU时间百分比。id:空闲CPU率。wa:IO等待CPU占用率。hi:CPU硬件中断率。si:CPU软件中断率。st:强制等待CPU占用率。
第四五行:Kib Mem:物理内存。KibSwap:虚拟内存(交换空间)。total:总量。free:空闲。used:使用中。buff/cache:buff和cache占用。avail Mem:可用内存。
而关于进程的信息包括:
PID:进程ID。USER:进程所属用户。PR:进程优先级,与小越高。NI:负值表示高优先级,否则为低优先级。VIRT:进程使用虚拟内存,单位KB。RES:进程使用物理内存,单位KB。SHR:进程使用共享内存,单位KB。S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲)。%CPU:进程占用CPU率。%MEM:进程占用内存率。TIME+:进程使用CPU总时间,单位10毫秒。COMMAND:进程的命令或名称或程序文件路径。
top支持的其他选项:

以交互式运行时的选项:

18.2 df命令:磁盘信息监控
功能 :查看磁盘的使用情况。
语法 :df[-h]。
- 选项
-h,以更加人性化的单位显示。

18.3 iostat命令:查看CPU、磁盘信息
主要是查看磁盘速率等信息。
语法 :iostat [-x] [-num1] [num2]。
- 选项
-x,显示更多信息。 num1,刷新间隔。num2,刷新次数。

其中tps为设备每秒的传输次数。
详细信息:

其中比较重要的是:
rKB/s:每秒发送到设备的读取请求数。wKB/s:每秒发送到设备的写入请求数。%util:磁盘利用率。
18.4 sar命令:网络监控
功能 :查看网络的相关统计(由于该命令非常复杂,这里仅简单学习)。
语法 :sar -n DEV num1 num2。
- 选项
-n,查看网络;DEV表示查看网络接口。 num1,刷新间隔。num2:刷新次数。

其中的信息分别是:
IFACE:本地网卡接口的名称。rxpck/s:每秒接受的数据包。txpck/s:每秒发送的数据包。rxKB/s:每秒接收的数据包大小,单位KB。txKN/s:每秒发送的数据包大小,单位KB。rxcmp/s:每秒接受的压缩数据包。txcmp/s:每秒发送的压缩包。rxmcst/s:每秒接受的多播数据包。
19. 环境变量
19.1 环境变量的作用
Linux命令实际上就是一个个可执行程序。
如:cd ./Desktop/的cd:/usr/bin/cd。
Linux如何知道cd表示什么含义?
环境变量是一种key-value型结构,其中存储了用于辅助系统运行的一系列关键信息 ,如:HOME:/home/jose,USER:jose。
使用env可查看环境变量。

19.2 环境变量:PATH
我们知道Linux无论在当前工作目录是什么都能够执行cd命令,即/usr/bin/cd程序,其实就是借助了环境变量中的PATH项目。

PATH中记录了系统执行任何命令的搜索路径,当想要执行任何命令时,系统按照顺序搜索对应命令程序。
19.3 $符号:获取环境变量的值
LInux中想要某个环境变量的value时,使用该符号可实现。
语法 :$环境变量名
如:

或者

这里被遮住了,是bin/ans。
当和其他内容混在一起时,使用{}包围环境变量。
19.4 配置环境变量
环境变量可由用户自行设置,分为临时设置 和永久设置 。
临时设置 :export 变量名=变量值。
永久设置 :
将export命令添加到对应文件中,
- 针对当前用户:配置在
~/.bashrc文件中。 - 针对所有用户:配置在
~/etc/profile文件中。 - 默认重启生效,使用
source 配置文件完成立刻生效。
如:
使用vim进入.bashrc文件

添加命令

令配置生效

结果

19.4.1 配置PATH
通过PATH使文件在任意工作目录下均能执行对应文件。
步骤:
- 创建文件,在其中加入命令。
- 为文件赋予execute权限。
- 将文件路径添加到PATH中:
export PATH=$PATH:文件路径。
注意:不能将第3步写为export PATH=文件路径,会将原有内容覆写。:是文件内部用于分隔路径的,表示将原有内容接上:文件路径。
20. Linux文件的上传和下载
20.1 FinalShell中的上传、下载
finalshell的下方有文件视图,通过它可以很方便地进行上传和下载:

注:想要视图中显示root下的文件内容,需在配置中修改账户为root。
下载 :右键对应文件以下载到本地电脑。
上传:将本地电脑文件通过拓展进入,或将文件拖拽进对应目录即可。
20.2 rz、sz命令:命令行上传下载
除了通过finalshell实现外,还能够使用rz/sz实现文件传输。
使用前需要安装服务:yum -y install lrasz。
rz命令:上传,直接输入rz即可。
sz命令:下载,语法是sz 下载文件。
注:文件会自动下载到fsdownload文件中。
21. 压缩和解压
21.1 压缩格式

21.2 tar命令:处理tar、gzip文件
Linux和Mac系统常用的2中压缩格式是:
.tar:称为tarball,归档文件,即简单地将文件组装到一个.tar文件中,没有太多的体积减少(封装)。.gz:或.tar.gz,gzip格式压缩文件,使用gzip压缩算法将文件压缩到一个文件内,可以极大地减少压缩后的体积。
.tar可被看作整合文件,.gz可看作压缩文件。
针对这两种格式,都可使用tar命令进行压缩和解压地处理。
语法 :tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数N。
- 选项
-c,创建压缩文件,用于压缩模式。 - 选项
-v,显示压缩、解压过程,用于查看进度。 - 选项
-x,用于解压模式。 - 选项
-f,要创建的文件或要解压的文件,必须位于选项中的末尾。 - 选项
-z,gzip模式,不使用则为tarball模式。 - 选项
-C,选择解压目的地,用于解压模式。
注:-C建议单独使用。
21.2.1 常用压缩组合
将f1 f2 f3.txt文件压缩到test.tar文件:
bash
tar -cvf test.tar f1.txt f2.txt f3.txt

将f1 f2 f3.txt文件压缩到test.tar.gz文件则是:
bash
tar -zcvf test.tar.gz f1.txt f2.txt f3.txt
21.2.2 常见解压组合
将test.tar解压至当前目录:
bash
tar -xvf test.tar
将test.tar解压至指定目录:
bash
tar -xvf test.tar -C /home/jose
将test.tar.gz解压至指定目录:
bash
tar -zxvf test.tar.gz -C /home/jose
21.3 zip、unzip命令:处理zip文件
21.3.1 zip命令:压缩文件
功能 :将文件压缩为.zip压缩包。
语法 :zip [-r] 压缩文件名 参数1 参数2 ... 参数N。
- 选项
-r,用于被压缩文件包含文件夹时。
21.3.2 unzip命令:解压文件
语法 :unzip [-d] 参数。
- 选项
-d,指定解压的位置。
注:同名内容会自动被替换。
