第一章-Linux 基础入门

  计算机组成

控制器 (CPU) 是计算机的核心,负责执行指令、进行运算和控制其他设备。

运算器执行算术和逻辑运算。

存储器 (RAM) 存储程序和数据,速度比硬盘快。

输入设备 (键盘、鼠标) 将数据输入计算机。

输出设备 (显示器、打印机) 将结果输出到用户。

  操作系统

操作系统管理硬件资源 (CPU、内存、硬盘等) 和软件资源 (程序、数据)。

提供用户界面和系统设备接口,方便用户使用计算机。

  LINUX简介与特点

Linux 是一种开源操作系统,用户可以自由使用、修改和分发。

开源社区庞大,拥有大量开发者和用户。

具有许多优势,例如低风险、高品质、低成本、更透明等。

特点:

源代码开放,用户可以查看、修改和改进代码。

真正的多用户多任务,可以同时运行多个程序。

完全兼容 POSIX 标准,方便应用程序移植。

强大的可移植性,可以运行在不同的硬件平台上。

丰富的网络功能,支持各种网络协议和工具。

良好的用户界面,包括图形界面和字符界面。

可靠的系统安全,拥有完善的权限控制和安全机制。

高度的稳定性,系统崩溃率低,运行时间长。

  LINUX认证

红帽认证是 Linux 行业价值最高的认证之一,包括 RHCSA、RHCE、RHCA 等。

RHCSA 是基础认证,考察 Linux 系统管理知识和技能。

RHCE 是中级认证,考察更高级的系统管理和故障排除能力。

RHCA 是高级认证,考察架构设计和解决方案能力。

第二章-LINUX中的执行命令

命令格式

命令由主命令、参数和操作对象组成。

ls -l /etc/passwd 中,ls 是主命令,-l 是参数,/etc/passwd 是操作对象。

命令类型 

常见的内置命令

cd: 切换目录                                                        ls: 列出目录内容

pwd: 显示当前工作目录                                        echo: 输出文本

cat: 显示文件内容                                               date: 显示或设置系统日期和时间

常见的外部命令:

ls: 列出目录内容                                                 cat: 显示文件内容

more: 翻页查看文件内容                                      less: 翻页查看文件内容

head: 查看文件开头内容                                      tail: 查看文件结尾内容

file: 查看文件类型                                             stat: 显示文件属性信息

grep: 在文件中查找字符串                                   cut: 按列提取文本内容

sort: 对文本内容进行排序                                   uniq: 去除文本中连续的重复行

tr: 替换或删除文本中的字符                                wc: 统计文本中的行数、字数或字节数

cp: 复制文件或目录                                               mv: 移动或重命名文件或目录

rm: 删除文件或目录                                               mkdir: 创建目录

rmdir: 删除空目录                                                 touch: 创建空文件或修改文件时间戳

dd: 创建大文件                                                       cat > 文件名: 创建文件并输入内容

echo > 文件名: 创建文件并写入一行内容

建立文件与建立目录 

创建文件

  1. touch 命令
    • 用于创建空文件或修改现有文件的时间戳。
    • 格式:touch 文件名
    • 例如:touch my_file.txt 创建一个名为 my_file.txt 的空文件。
  2. dd 命令
    • 用于创建指定大小和格式的文件。
    • 格式:dd if=来源 of=目标文件 count=数量 bs=块大小
    • 例如:dd if=/dev/zero of=my_file.txt count=1 bs=1M 创建一个 1MB 大小的空文件。
  3. cat > 文件名
    • 用于创建文件并输入内容。
    • 例如:cat > my_file.txt 进入命令行编辑器,输入内容后按 Ctrl+D 保存并退出。
  4. echo > 文件名
    • 用于创建文件并写入一行内容。
    • 格式:echo "内容" > 文件名
    • 例如:echo "Hello, world!" > my_file.txt 创建一个名为 my_file.txt 的文件,并写入内容 “Hello, world!”。

创立目录 :

  1. mkdir 命令
    • 用于创建目录。
    • 格式:mkdir [-p] 目录名
    • 例如:mkdir my_dir 创建一个名为 my_dir 的目录。
    • -p 参数可以递归创建目录结构,例如:mkdir -p my_dir/sub_dir 会创建 my_dir 和 my_dir/sub_dir 两个目录。

命令行中常用快捷键 

Ctrl + A: 移动光标到命令行开头。                           Ctrl + E: 移动光标到命令行结尾。

Ctrl + C: 中断当前执行的命令。                              Ctrl + D: 退出命令行。

Ctrl + Z: 将当前命令挂起,可以使用 fg 或 bg 命令恢复。     Ctrl + L: 清屏。

Ctrl + U: 删除光标之前的所有内容。                       Ctrl + K: 删除光标之后的所有内容。

Ctrl + W: 删除光标之前的单词。                             Ctrl + Y: 将之前删除的内容重新插入。

Ctrl + P: 显示上一个输入的命令。                          Ctrl + N: 显示下一个输入的命令。

Ctrl + F: 向前移动一个字符。                                 Ctrl + B: 向后移动一个字符。

Alt + F: 向前移动一个单词。                                  Alt + B: 向后移动一个单词。

Ctrl + Left: 向左移动一个单词。                            Ctrl + Right: 向右移动一个单词。

Ctrl + H: 删除光标前的字符。                                Ctrl + D: 删除光标后的字符。

系统时间管理 

查看系统时间

  • date 命令
    • 格式:date
    • 显示当前系统日期和时间。
    • 可以使用不同的格式参数显示日期和时间,例如 date "+%Y-%m-%d %H:%M:%S" 显示 “年-月-日 时:分:秒” 格式的日期和时间。
  • timedatectl 命令
    • 格式:timedatectl
    • 显示系统时间和时区信息。
    • 可以使用不同的参数设置系统时间、时区和 NTP 服务。

设置系统时间

  • date 命令
    • 格式:date -s "YYYY-MM-DD HH:MM:SS"
    • 设置系统时间。
    • 例如:date -s "2023-10-01 12:00:00" 设置系统时间为 2023 年 10 月 1 日 12:00:00。
  • timedatectl 命令
    • 格式:timedatectl set-time "YYYY-MM-DD HH:MM:SS"
    • 设置系统时间。
    • 例如:timedatectl set-time "2023-10-01 12:00:00" 设置系统时间为 2023 年 10 月 1 日 12:00:00。

设置时区

  • timedatectl 命令
    • 格式:timedatectl set-timezone 时区名称
    • 设置系统时区。
    • 例如:timedatectl set-timezone "Asia/Shanghai" 设置系统时区为上海时区。

查看帮助 

想查看的命令+--help

 第三章-LINUX文件类型与根目录结构

文件类型

1. 目录 (Directory):

用 d 开头,例如 my_dir

包含其他文件和目录。

可以使用 cd 命令进入目录,使用 ls 命令查看目录内容。

2. 普通文件 (Regular File):

用 - 开头,例如 my_file.txt

存储数据、程序或文本内容。

可以使用 catmoreless 等命令查看文件内容。

3. 字符设备文件 (Character Device File):

用 c 开头,例如 tty

代表字符设备,例如键盘、鼠标。

可以使用 catdd 等命令读写设备。

4. 块设备文件 (Block Device File):

用 b 开头,例如 sda

代表块设备,例如硬盘。

可以使用 catdd 等命令读写设备。

5. 管道文件 (Pipe File):

用 p 开头,例如 pipe

用于进程间通信。

可以使用 mkfifo 命令创建管道文件。

6. 套接字文件 (Socket File):

用 s 开头,例如 sock

用于网络通信。

可以使用 socket 等库创建套接字文件。

7. 符号链接 (Symbolic Link):

用 l 开头,例如 link

指向另一个文件或目录的快捷方式。

可以使用 ln -s 命令创建符号链接。

8. 命名管道 (Named Pipe):

用 p 开头,例如 fifo

用于进程间通信。

可以使用 mkfifo 命令创建命名管道。

9. 空文件 (Empty File):

内容为空的文件。

可以使用 touch 命令创建空文件。

10. 隐藏文件 (Hidden File):

文件名以 . 开头的文件。

可以使用 ls -a 命令查看隐藏文件。

根目录结构 

FHS层级结构标准结构图:

/ (根目录):

Linux 文件系统的最上层目录。

包含其他所有目录和文件。

/boot (引导目录):

存放系统启动时所需的文件,例如内核、初始化文件等。

这些文件如果损坏可能会导致系统无法启动。

/bin (二进制文件目录):

存放常用的系统命令,例如 lscpmvrm 等。

这些命令对所有用户都可用。

/sbin (系统二进制文件目录):

存放系统管理命令,例如 systemctlrebootshutdown 等。

只有 root 用户可以执行这些命令。

/etc (系统配置目录):

存放系统配置文件,例如网络配置文件、用户信息文件等。

这些文件通常由 root 用户修改。

/home (用户目录):

存放用户的主目录,例如 /home/user

每个用户都有自己的主目录。

/lib (库文件目录):

存放系统库文件,例如 C 库、Glibc 等。

这些文件被系统程序和其他应用程序使用。

/lib64 (64 位库文件目录):

存放 64 位系统库文件。

通常在 64 位系统上使用。

/usr (用户文件系统目录):

存放用户数据和应用程序,例如软件包、文档等。

/usr/bin 存放用户命令。

/usr/lib 存放用户库文件。

/usr/share 存放共享文件,例如文档、图标等。

/opt (可选软件目录):

存放可选软件包。

可以安装大型软件包,例如办公软件、开发工具等。

/root (root 用户目录):

root 用户的个人目录。

只有 root 用户可以访问。

/run (运行时目录):

存放系统运行时的临时文件,例如日志文件、系统状态文件等。

这些文件在系统重启后会消失。

/sys (系统信息目录):

存放系统硬件信息,例如 CPU、内存、硬盘等。

可以使用 cat 命令查看硬件信息。

/tmp (临时文件目录):

存放临时文件,例如应用程序产生的临时文件。

这些文件在系统重启后会消失。

/var (变量文件目录):

存放可变文件,例如日志文件、邮件文件等。

这些文件在系统重启后可能不会消失。

/proc (进程信息目录):

存放系统进程信息,例如进程状态、进程资源使用情况等。

可以使用 cat 命令查看进程信息。

/dev (设备文件目录):

存放设备文件,例如硬盘、鼠标、键盘等。

可以使用 catdd 等命令读写设备。

/mnt (挂载点目录):

用于挂载文件系统,例如挂载 USB 硬盘、光盘等。

可以使用 mount 命令挂载文件系统。

/media (媒体文件目录):

用于挂载可移动媒体,例如 U 盘、光盘等。

可以使用 mount 命令挂载媒体。

/etc/fstab (文件系统表):

存放文件系统信息,例如挂载点、文件系统类型、挂载选项等。

系统启动时会自动挂载列在 fstab 文件中的文件系统。

切换当前工作目录-cd

基本用法

cd:切换到用户的主目录。

cd ~:与 cd 命令效果相同。

cd /:切换到根目录。

cd -:切换到上一个工作目录。

cd ..:切换到当前目录的父目录。

cd /path/to/directory:切换到指定路径的目录。

选项 

-P:切换到实际的路径,而不是使用 tilde (~) 和波浪号 (-) 的解析。

-L:切换到解析过的路径,即 tilde (~) 和波浪号 (-) 会被解析成对应的路径。

-:保存当前目录的路径,下次使用 cd - 命令时切换回该目录。

第四章-从命令行管理文件 

文件命名规则

文件名长度不超过 255 个字符。

文件名区分大小写,例如 file.txt 和 File.txt 是不同的文件。

文件名中不能包含以下字符:\/:*?"<>|

同一路径下文件不能同名

 硬链接

       硬链接 (Hard Link) 是指向同一个文件的不同路径,它们共享相同的文件内容和索引节点 (inode)。

特点:

硬链接不是文件的副本,只是指向同一文件的一个新路径。

硬链接的数量与文件的数量相同。

删除一个硬链接不会删除文件本身,只有当所有硬链接都被删除后,文件才会被删除。

硬链接不能跨越文件系统,只能指向同一文件系统中的文件。

创建硬链接

使用 ln 命令创建硬链接。

格式:ln [-s] 源文件 目标文件

例如:ln my_file.txt my_link.txt 创建一个指向 my_file.txt 的硬链接 my_link.txt

查看硬链接

使用 ll 命令或 stat 命令查看文件的硬链接数量和路径。

例如:ll my_file.txt 会显示 my_file.txt 的硬链接数量和路径。

软链接 

       软链接 (Soft Link),也称为符号链接 (Symbolic Link),是一种特殊的文件类型,它不包含文件内容,而是包含一个指向另一个文件或目录的路径。软链接类似于 Windows 系统中的快捷方式。

特点:

软链接是一个指向另一个文件或目录的指针。

软链接不包含文件内容,而是包含一个指向文件的路径。

软链接可以跨越文件系统。

删除软链接不会影响原始文件或目录。

软链接的权限和属性与原文件或目录不同。

创建软链接

使用 ln 命令创建软链接。

格式:ln -s 源文件 目标文件

例如:ln -s my_file.txt my_link.txt 创建一个指向 my_file.txt 的软链接 my_link.txt

查看软链接

使用 ll 命令查看文件的类型和路径。

例如:ll my_link.txt 会显示 my_link.txt 是一个软链接,并显示它指向的文件。

统计文件大小

du(Disk Usage)命令用于统计文件和目录的磁盘使用情况。

  1. 基本用法

    • du [选项] [文件或目录]
    • 例如,du /home 将显示/home目录下所有文件和子目录的磁盘使用情况。
  2. 显示目录大小

    • du -sh [目录]
    • -s 选项表示只显示总计,不显示每个子目录的详细使用情况。
    • -h 选项表示以人类可读的格式(如K、M、G等)显示大小。
  3. 递归显示所有文件和目录的大小

    • du -ah [目录]
    • -a 选项表示递归显示目录下所有文件和目录的大小。
  4. 显示特定目录的大小

    • du -sh [目录]
    • 例如,du -sh /var/log 将显示/var/log目录的总大小。

 显示目录结构

tree命令是一个用于以树状格式显示目录内容的实用工具。它可以帮助用户快速查看目录结构和文件布局。

  1. 基本用法

    • tree [选项] [目录]
    • 例如,tree /home 将显示/home目录及其子目录的树状结构。
  2. 显示隐藏文件

    • -a 选项表示显示所有文件,包括隐藏文件。
  3. 显示文件大小

    • -h 选项表示以人类可读的格式(如K、M、G等)显示文件大小。
  4. 显示文件类型

    • -F 选项表示在文件名后显示文件类型指示符(如/表示目录,*表示可执行文件)。
  5. 递归显示目录

    • -R 选项表示递归显示所有子目录。
  6. 显示文件数量

    • -d 选项表示只显示目录,不显示文件。
  7. 显示文件权限

    • -p 选项表示显示文件的权限。
  8. 显示文件修改时间

    • -u 选项表示显示文件的最后修改时间。
  9. 显示文件的所有者和组

    • -g 选项表示显示文件的所有者。
    • -G 选项表示显示文件的组。
  10. 显示文件的大小

    • -s 选项表示显示文件的大小。

创建指定大小文件 

dd命令可以用来复制数据,也可以用来创建指定大小的文件。

dd if=/dev/zero of=文件名 bs=块大小 count=块数

重定向 

重定向是将命令的输出从默认的终端(标准输出)重定向到另一个文件或设备。

常见的重定向操作符包括:

>:将命令的输出重定向到一个文件,如果文件已存在,则会被覆盖。

>>:将命令的输出追加到文件的末尾,如果文件不存在,则创建新文件。

<:从文件中读取输入,而不是从键盘读取。

<<:从标准输入读取,直到遇到指定的分隔符。

 将命令输出重定向到文件

ls > list.txt
 

将命令输出追加到文件

echo "Hello, World!" >> list.txt 

从文件中读取输入: 

mail -s "Subject" user@example.com < message.txt

使用<<操作符

 mail -s "Subject" user@example.com << EOF

This is a test email.

EOF

管道-| 

       通过管道可以将多个命令连接起来,形成一个流水线,每个命令的输出都会作为下一个命令的输入。

ls | grep "txt"

     使用tee命令tee命令可以从标准输入读取数据,并将其写入标准输出和文件。例如:

ls | tee file1.txt | grep "txt"

 注意事项

管道只能连接命令的输出和输入,不能连接命令的输出和输出,或者输入和输入。

管道只能连接命令的标准输出和标准输入,不能连接命令的标准错误。

第五章-文件内容显示 

stat命令用法

  在 Linux 中用于显示文件或文件系统的状态信息。它提供了关于文件大小、权限、所有者、组、修改时间、创建时间、访问时间、链接数、文件类型等详细信息。

stat [选项] 文件或目录

选项: 

-a:显示所有信息,包括文件名。

-c:以逗号分隔的格式输出信息。

-f:显示文件系统的信息。

-L:跟随符号链接,显示链接指向的文件的信息。

-t:以表格格式输出信息。

-x:以可读的格式输出信息。

sort排序

sort [选项] 文件

选项:

-b:忽略每行开头的空白字符。                                -c:检查文件是否已排序。

-d:仅对空白字符和字母进行排序。                         -f:忽略大小写。

-g:使用通用数字比较。                                           -i:忽略非字母数字字符。

-k:指定排序字段。                                                  -m:合并已排序的文件。

-n:按数字排序。                                                      -o:将排序结果输出到指定文件。

-r:反转排序顺序。                                                    -t:指定字段分隔符。

-u:删除重复行。

grep字符搜索

     用于在文件中查找匹配特定模式的行

grep [选项] 模式 [文件]

选项: 

-c:仅显示匹配行的数量。                                      -i:忽略大小写。

-l:显示匹配行的文件名。                                      -n:显示匹配行的行号。

-v:显示不匹配的行。                                            -w:仅匹配整个单词。

-o:仅显示匹配的部分。                                        -E:使用扩展正则表达式。

-F:将模式视为固定字符串(不使用正则表达式)。 -r 或 -R:递归搜索目录。

uniq与tr命令

   uniq 命令用于过滤和排序输入中的重复行。它通常与排序命令 sort 一起使用,以确保 uniq 处理的行是连续的。

sort file.txt | uniq [选项]

选项: 

-c:在每行前添加重复行的计数。         -d:仅显示重复行。

-u:仅显示不重复的行。                       -f N:跳过前 N 个字段。

-s N:跳过前 N 个字符。                      -w N:比较时仅考虑每个行的前 N 个字符。

     tr 命令用于转换或删除文件中的字符。它可以将输入中的字符映射到输出中的不同字符。 

tr [选项] SET1 [SET2]

 SET1:指定要转换或删除的字符集。

 SET2:指定要转换成的字符集。如果省略 SET2,tr 将删除 SET1 中的字符。

 选项:

-c 或 –complement:使用 SET1 的补集。

-d 或 –delete:删除 SET1 中的字符。

-s 或 –squeeze-repeats:压缩 SET2 中重复的字符。

-t 或 –truncate-set1:将 SET1 和 SET2 的长度设置为相同的长度。

第六章-LINUX文件系统

文件类型

普通文件: 类似于 Windows 的记事本,用于存储文本信息。

目录文件: 类似于 Windows 的文件夹,用于存储其他文件或目录。

字符设备文件: 串行端口设备,可以进行顺序读写操作,例如键盘、鼠标等。

块设备文件: 可随机读写设备,例如硬盘、U盘等。

管道文件: 用于进程间通信,数据单向流动。

套接字文件: 用于网络通信,例如 TCP/UDP 套接字。

符号链接: 指向另一个文件或目录的指针,类似于 Windows 的快捷方式。

文件系统管理

mkfs: 用于创建新的文件系统。

mnt: 用于挂载文件系统。

umount: 用于卸载文件系统。

df: 用于查看磁盘空间使用情况。

du: 用于查看文件和目录的磁盘空间占用情况。

第八章-用户和组管理 

超级用户 (root): 拥有最高权限,可以进行所有系统操作。

系统用户: 用于运行特定程序的系统账户,例如 httpd、mysql 等。

普通用户: 普通用户,只能进行有限的系统操作。

用户管理

useradd: 用于创建新用户。

userdel: 用于删除用户。

usermod: 用于修改用户信息。

groupadd: 用于创建新组。

groupdel: 用于删除组。

groupmod: 用于修改组信息。

gpasswd: 用于修改组密码。

文件权限管理

chmod: 用于修改文件或目录的权限。

chown: 用于修改文件或目录的所有者和所属组。

chgrp: 用于修改文件或目录的所属组。

umask: 用于设置文件的默认权限。

特殊权限

setuid: 设置文件所有者权限,允许普通用户执行该文件时拥有文件所有者的权限。

setgid: 设置文件所属组权限,允许普通用户执行该文件时拥有文件所属组的权限。

sticky bit: 设置目录中文件的 sticky 位,只有文件所有者和 root 可以删除该文件。

第九章-LINUX网络管理 

网络接口

以太网接口: 用于连接以太网设备的网络接口。

无线接口: 用于连接无线网络的网络接口。

VPN 接口: 用于连接 VPN 网络的网络接口。

第十章-管理Linux软件包 

rpm管理工具

标准格式:rpm   -参数   软件包名

-i, --install        安装软件包

--nodeps         不验证软件包依赖

--force             安装时提示已安装则重新覆盖安装

-U                    软件包升级

-e                     软件包卸载

实例(下载QQ): 

 遇到问题:因为依赖性问题导致无法打开

 解决依赖性:

扩展:这里还可以通过建立仓库来解决依赖性问题

rpm查询功能

rpm    –q       包名

-a               查询所有已安装的软件包

-l                显示已安装软件包的相关文件列表和信息

-f                查询文件所属软件包

-i                显示已经安装的rpm软件包信息

 DNF管理工具

功能:在线下载、 安装、 卸载、 升级rpm软件包 自动查找并解决rpm包之间的依赖关系,一次性安装所有具有依赖关系的rpm包,而无需管理员逐 个或者手工地去安装每一个rpm包

      系统会去读取 /etc/yum.repos.d/ 目录下的 .repo 结尾的文件,从该文件中读取以下内容实现装 包: 包含各种rpm安装文件的软件仓库:

BaseOS存储库:提供一套核心的底层操作系统功能,为基础软件安装库

AppStream存储库:包括额外的用户空间应用程序、运行时语言和数据库

建立本地源的过程:

 编辑库如下图:

最后重新建立缓存:

第十一章-进程

概念
程序、进程、线程
  • 程序: 二进制文件,文件存储在磁盘中,例如/usr/bin/目录下

  • 进程:进程是已启动的可执行程序的运行实例

  • 进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程

  • 线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。

  • 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有

  • 线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行。

查看进程

ps命令
  • 作用:ps显示某个时间点的程序运行情况

  • 格式

ps  -参数
  • 参数

-a :显示所有用户的进程
-u :显示用户名和启动时间
-x :显示 没有控制终端的进程
-e :显示所有进程,包括没有控制终端的进程
-l :长格式显示
-w:宽行显示,可以使用多个 w 进行加宽显示 
-f:做一个更完整的输出
top命令

格式

top [-d 数字]  |  [-bnp]

参数

-d:后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒
-b:以批次的方式执行top,还有更多的参数可用。通常会搭配数据流重定向来将批处理的结果输出为文件。
-n:与-b搭配,进行几次top的输出结果
-i:不显示闲置或者僵死的进程信息
-c:显示进程的整个命令路径,而不是只显示命令名称
-s:使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险
-p:指定某些个PID来进行查看检测

kill命令

作用:强制结束进程

格式:
kill 进程名/pid
killall 进程名/pid

第十二章-磁盘

硬盘分区概述

MBR分区

概念
  • MBR(Master Boot Record,主引导记录)包含硬盘一系列参数和一段引导程序,硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后引导具有激活标志的分区上的操作系统,并将控制权交给启动程序

  • MBR是由分区程序(如Fdisk.exe)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而实现多系统共存

  • MBR位于整个硬盘的0磁道0柱面1扇区

    • 主引导扇区512B

    • MBR=446B

    • MPT(Disk Partition Table硬盘分区表)=64B

    • 最后两个字节“55,AA”是分区的结束标志

MBR分区类型
  • 主分区(primary partition)

    • 一块硬盘最多4个主分区,主分区不可以再进行二次分区

    • 主分区可以直接建立文件系统,存放数据

    • 可以用来引导、启动操作系统

  • 扩展分区(extended partition)

    • 一块硬盘最多一个扩展分区,加主分区最多4个

    • 不能创建文件系统

    • 可以划分逻辑分区

  • 逻辑分区(logical partition)

    • 可以创建文件系统,存放数据

    • 逻辑分区的数量没有限制。

  • 支持的分区数量:4个主分区或者3个主分区1个扩展分区

  • 为什么MBR最多只能有4个主分区: 因为分区表占据64个字节,其中每个分区的信息占用16个字节,分区表里面可以记录四个分区信息描述。

GPT分区

产生原因
  • MBR分区表中最高支持磁盘容量为2.2TB

  • MBR分区表中,没有备份机制,分区表被干掉则磁盘全部死光光

  • MBR中存储开机管理程序的容量只有446B,无法存储较多内容

概念
  • GPT(GUID Partition Table,全局唯一标识分区表)是一种比MBR分区更先进、更灵活的磁盘分区模式

  • GPT分区表使用LBA(Logical Block Address)逻辑区块地址来记录磁盘引导、分区的相关信息

    • LAB区块大小(512B-4KB),默认为512B

    • LAB区块共68个,前34个记录分区信息,后34个进行备份

    • 图:

  • 不在区分主分区与其它分区,默认情况下,GPT最多可支持128个分区

  • 支持大于2.2TB的总容量及大于2.2TB的分区,最大支持18EB(1EB=1024PB,1PB=1024TB,1TB=1024GB)

  • GPT分区机制在较老的BIOS中不能识别,则提供了一个UEFI (Unified Extensible Firmware Interface)统一的可扩展固件接口,来取代传统的BISO,又称为UEFI BIOS,UEFI使用C语言编写,支持较多的平台

查看磁盘信息lsblk

指令: lsblk   [选项]  设备名

-d :仅列出硬盘本身信息,不显示分区信息

-f :列出磁盘的内的文件系统名称

-i : 使用ASCII码格式输出信息

-t :显示磁盘的详细信息

-p :显示设备完整名称

 

NAME :设备名称,默认省略前导/dev 目录名

MAJ:MIN :主要:次要 设备代码

RM :是否可以卸载

SIZE : 容量

RO :是否为 只读 TYPE : 设备类别(磁盘、分区、光盘等)

MOUNTPOINT :挂载点

 磁盘分区fdisk

作用

  • fdisk命令工具默认将磁盘划分为==MBR==格式的分区

  • 命令:fdisk 设备名

  • 注意:fdisk命令以交互方式进行操作的,在菜单中选择相应功能键即可

指令 作用 指令 作用
a 调整磁盘的启动分区 p 显示当前磁盘的分区信息
d 删除磁盘分区 t 更改分区类型
l 显示所有支持的分区类型 u 切换所显示的分区大小单位
m 查看所有指令的帮助信息 n 创建新分区
q 不保存更改,退出fdisk命令 w 把修改写入磁盘分区表,然后退出fdisk命令
g 新建一个空的GPT分区表 o 新建一个空的DOS分区表

 

使用gdisk管理分区

注意

注意:gdisk命令针对GPT分区格式,若在MBR分区格式下进行添加分区,则所有数据会全部丢失,切记:一块硬盘中fdisk与gdisk不能混用

格式:gdisk 设备名

df(Disk Free):用于显示磁盘空间使用情况的命令。它显示每个文件系统(通常是磁盘分区)的总空间、已用空间、可用空间以及挂载点。df命令对于监控磁盘空间和确定何时需要清理或扩展存储非常有用。

挂载

概念

mount point:挂载点,是一个目录,该目录是进入磁盘分区(文件系统)的入口

挂载:将一个分区或者设备挂载至挂载点目录,建立连接,通过挂载点目录进入分区空间

mount命令

格式
mount  [-t  文件系统类型]  设备名   挂载点目录
参数
-a:依照配置文件/etc/fstab的数据将所有未挂载的磁盘都挂载上来
-t:指定文件系统类型
-o 特殊设备选项:挂载设备时使用逗号分割输入额外参数

umount命令

作用

卸载分区,要移除USB磁盘、U盘、光盘和硬盘时,需要先卸载

格式

umount  参数   设备名称[挂载点]

参数

-f :强制卸载

增添swap分区

swap分区:类似于Windows系统虚拟内存的功能,将一部分硬盘空间虚拟成内存来使用,从而解决内存容量不足的情况,因为swap毕竟是用硬盘资源虚拟的,所以速度上比真实物理内存要慢。

查看:

添加过程:新建分区->格式化该分区->启用新的swap->查看系统信息->挂载

 

 查看磁盘空间使用量

作用
  • 列出文件系统的磁盘空间占用情况

  • df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了

格式
df -参数 目录或文件名
参数
 -a:列出所有的文件系统,包括系统特有的/proc等文件系统
 -k:以KB的容量显示各文件系统
 -m:以MB的容量显示各文件系统
 -h:以人们较易阅读的GB,MB,KB等格式自行显示
 -H:以M=1000K替代M=1024K的进位方式
 -T:连同该分区的文件系统名称(例如ext3)也列出
 -i:不用硬盘容量,而以inode的数量来显示
​
# 由于df主要读取的数据几乎都是针对整个文件系统,因此读取的范围主要是在Super block内的信息,所以这个命令显示结果的速度非常快速。

du命令

作用
  • du:显示磁盘空间使用量(统计目录或文件所占磁盘空间大小),在默认情况下,文件大小的单位是KB。

  • du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和,当文件系统也确定删除了该文件后,这时候du与df就一致了

 格式:

du  -参数   文件或目录名
参数
-a : 列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已;
-h : 以人们较易读的容量格式(G/M)显示;
-s : 列出总量,而不列出每个个别的目录占用了容量;
-S : 不包括子目录下的总计,与-s有点差别;
-k : 以KB列出容量显示;
-m : 以MB列出容量显示。

RAID

mdadm命令

作用
  • 管理系统中的RAID磁盘阵列

格式
mdadm   [模式]   <RAID设备名>   -参数   [成员设备名称]
参数
-a :检测设备名称   
-n :指定硬盘数量
-l :指定RAID级别   
-C :创建RAID
-v :显示过程     
-f :模拟设备损坏
-r :移除设备     
-Q : 查看摘要
-D :查看详细信息   
-S :停止RAID磁盘阵列 
创建RAID10

备注:这里因为sdb繁忙未能创建成功,需要再添加一块空闲硬盘

创立成功后正式创立RAID:

[root@server ~]# mkfs.xfs  /dev/md0
[root@server ~]# mkdir   /RAID
[root@server ~]# mount    /dev/md0   /RAID
[root@server ~]# df  -h
文件系统               容量  已用  可用 已用% 挂载点
devtmpfs               4.0M     0  4.0M    0% /dev
tmpfs                  968M     0  968M    0% /dev/shm
tmpfs                  388M  9.7M  378M    3% /run
/dev/mapper/rhel-root   16G  4.2G   12G   27% /
/dev/nvme0n1p1         395M  235M  160M   60% /boot
tmpfs                  194M   52K  194M    1% /run/user/42
tmpfs                  194M   36K  194M    1% /run/user/0
/dev/md0                40G  319M   40G    1% /RAID
[root@server ~]# vim  /etc/fstab  
/dev/md0        /RAID   xfs     defaults        0       0

 修复损坏的RAID:

# 模拟某个硬盘损坏
mdadm   /dev/md0   -f  /dev/sdb
[root@server ~]# mdadm   /dev/md0   -f  /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
# 此期间不影响RAID的使用

[root@server ~]# mdadm   -D  /dev/md0
[root@server ~]# umount  /RAID
[root@server ~]# mdadm  /dev/md0  -a  /dev/sde  # 添加新硬盘
mdadm: added /dev/sde
[root@server ~]# mdadm   -D  /dev/md0
[root@server ~]# mount  -a   # 重新挂载

取消RAID:

[root@server ~]# umount /dev/md0
[root@server ~]# vim  /etc/fstab   # 删除开机挂载项,切记
[root@server ~]# mdadm  -S /dev/md0  # 停止
mdadm: stopped /dev/md0

 管理逻辑卷

 

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐