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