【Linux】基础知识与操作汇总:一份给新手的 Linux 学习总结

  • 🎓作者简介: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:(可选非必填)命令的参数,多用于命令的指向目标等。

注:语法中的[]表示可选。

例:

  1. ls -l /home/josels是命令本身,-l是选项,/home/jose是参数------以列表的形式,显示/home/jose目录内的内容。
  2. cp -r test1 test2cp是命令,-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 选项的组合使用

语法中的选项都可以组合使用。

如:

  1. ls -l -a
  2. ls -la
  3. 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,表示自动创建不存在的父目录,适用于创建连续多层级的目录

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

由于test1test2不存在导致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命令支持通配符*,用于模糊匹配

  • *表示通配符,即匹配任意内容(包含空),如:
    1. test*,表示匹配任何以test开头的内容
    2. *test,表示匹配任何以test结尾的内容
    3. *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的工作模式

  1. 命令模式(Command Mode):该模式下,编辑器将所敲入的案件都视为命令,以命令驱动执行不同的功能。此模式下,不能自由地进行文本编辑。
  2. 输入模式(Insert Mode):即所谓的编辑模式。此模式下,可对文件内容进行自由编辑。
  3. 底线命令模式 (Last Line Mode):以:开始,通常用于文件的保存、退出。

当我们需要通过vi/vim编辑文件时,只需通过以下命令:

  • vi 文件路径
  • vim 文件路径
    一般都使用vim。
    注:如果目标文件不存在,此命令即用于编辑新文件;如果文件存在,则用于编辑已有文件。

示例:

  1. 输入vim hello.txt创建新文件并进入命令模式

  2. 命令模式下输入i,进入输入模式

  3. 在此模式下可输入任意文本内容,通过Esc键退出该模式,如:

  4. 回到命令模式后,输入:进入底线命令模式

  5. 此模式下输入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,其中711151011001

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:防火墙服务。
  • sshdssh服务,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程序:自动校准系统时间

  1. 安装:yum -y install ntp
  2. 启动并开启开机自启:
    • 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.0192.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. 公认端口1~1023通常用于一些系统内置或知名程序的预留使用 ,如SSH服务的22端口、HTTPS服务的443端口等,非特殊需要,不要占用这个范围的端口
  2. 注册端口1024~49151 ,通常可以随意使用用于松散的绑定一些程序或服务
  3. 动态端口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秒刷新一次,按dctrl+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/joseUSER: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使文件在任意工作目录下均能执行对应文件。

步骤:

  1. 创建文件,在其中加入命令。
  2. 为文件赋予execute权限。
  3. 将文件路径添加到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要创建的文件或要解压的文件,必须位于选项中的末尾
  • 选项-zgzip模式,不使用则为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,指定解压的位置。

注:同名内容会自动被替换。

相关推荐
ZLRRLZ2 小时前
【Linux操作系统】基础开发工具
linux·运维·服务器
float_六七2 小时前
Nginx反向代理核心原理揭秘
运维·nginx·状态模式
风已经起了2 小时前
FPGA学习笔记——图像锐化之非锐化掩蔽
图像处理·笔记·学习·fpga开发·fpga
羚羊角uou3 小时前
【Linux】线程控制
linux·运维·服务器
Nix Lockhart3 小时前
《算法与数据结构》第七章[第1节]:图
c语言·数据结构·学习·算法
ftswsfb3 小时前
Docker进阶-管理和应用
运维·docker·容器
用户1761600587583 小时前
工作中用到的Linux命令记录
linux
CIb0la3 小时前
非常好的学习方法是哪样
笔记·学习·学习方法
864记忆3 小时前
ubuntu18.04安装五笔字型的方法
linux