【RH124】Linux常用基础知识点汇总合集续
本文整理了RH124 Linux核心基础知识点,主要包括: 命令行基础:终端与Shell的定义及联系,常见Shell类型(bash/sh/zsh等),CLI与GUI的区别及CLI学习必要性; 文件管理:Linux"一切皆文件"的设计理念,文件系统组织方式,重要目录功能说明(/boot、/etc、/var等),绝对路径与相对路径识别; 文件操作命令:查看文件内容命令(cat/le
RH124 Linux 核心基础知识点整理.md
RH124 Linux 核心基础知识点整理
一、访问命令行
1. 终端、Shell 定义及联系 | 常见 Shell 类型
| 概念 | 定义 |
|---|---|
| 终端 | 基于文本的交互界面,用于向系统输入命令、查看系统输出,是用户与 Shell 的交互载体 |
| Shell | 命令解释程序,负责解析用户从终端输入的命令,转换为系统可执行的指令并执行 |
| 二者联系 | Shell 运行在终端环境中,终端为 Shell 提供输入输出通道,用户通过终端操作 Shell 完成所有命令行交互 |
Linux 系统常见 Shell 类型:
bash(Bourne-Again Shell):Linux 系统默认 Shell,兼容 Bourne Shell,支持命令补全、历史记录、脚本编程等功能;sh(Bourne Shell):早期经典 Shell,语法简洁,无过多扩展功能,适用于简单脚本;zsh:功能丰富,支持主题定制、智能补全,是开发者常用的高级 Shell;csh/tcsh:基于 C 语言语法的 Shell,适合熟悉 C 语言的用户。
2. CLI 和 GUI 定义 | 初学者使用 CLI 的原因
| 概念 | 全称 | 定义 |
|---|---|---|
| CLI | Command Line Interface(命令行界面) | 纯文本形式的交互界面,通过输入命令完成所有系统操作,无图形化元素 |
| GUI | Graphical User Interface(图形化界面) | 可视化交互界面,通过鼠标点击、窗口操作完成系统操作,直观易懂 |
初学者建议使用 CLI 学习 Linux 的核心原因:
- 符合 Linux 设计理念:Linux 所有管理任务均可通过 CLI 实现,图形化工具(GUI)本质是 CLI 命令的可视化封装,掌握 CLI 才能理解 Linux 底层逻辑;
- 功能更全面:部分高级系统操作(如内核参数配置、批量服务器管理)无对应的 GUI 工具,仅能通过 CLI 完成;
- 支持自动化/规模化操作:CLI 可结合 Shell 脚本实现命令批量执行、任务自动化,解决 GUI 工具“重复操作效率低”的问题;
- 跨环境兼容:服务器、云主机等生产环境通常仅提供 CLI 界面,掌握 CLI 可适配所有 Linux 应用场景。
3. 查看文件内容的常用命令
| 命令 | 核心功能 | 常用选项/操作/示例 |
|---|---|---|
cat |
一次性查看文件全部内容,输出到屏幕 | 示例:cat /etc/hosts(查看主机配置文件) |
less |
分页查看大文件内容,支持上下滚动 | 操作:↑/↓ 滚动行、PageUp/PageDown 翻页、q 退出 |
示例:less /var/log/messages(查看系统日志) |
||
head |
查看文件开头内容,默认显示前 10 行 | 示例:head -5 /etc/passwd(仅显示前 5 行用户配置) |
tail |
查看文件末尾内容,默认显示后 10 行 | 常用选项:-f 实时监控文件变化 |
示例:tail -f /var/log/nginx/access.log(实时查看 Nginx 访问日志) |
||
wc |
统计文件的行、字、字符数量 | 常用选项:-l 统计行数、-w 统计字数、-c 统计字符数 |
示例:wc -l /etc/passwd(统计系统用户数量) |
二、从命令行管理文件
4. “Linux 中一切皆文件” | 文件系统组织方式
(1)“一切皆文件”核心理解
Linux 系统将所有资源抽象为文件进行统一管理,不仅包括常规的文本文件、二进制文件,还包括硬件设备、网络套接字、管道、进程等系统资源,均通过文件的形式提供统一的操作接口(打开、读取、写入、关闭)。
- 示例:硬盘设备对应
/dev/sda、终端设备对应/dev/pts/0、网络端口对应/proc/net/tcp,操作这些资源与操作普通文件的命令一致。
(2)Linux 文件系统组织方式
Linux 所有文件和目录组织为单一的、颠倒的目录树结构,所有文件均挂载在该目录树中,核心特征:
- 最顶层为根目录(/),是目录树的起点,所有其他目录均为根目录的子目录;
- 目录树为层级结构,子目录可嵌套,形成“父目录-子目录”的层级关系;
- 所有文件系统(本地磁盘、U盘、网络存储)均可通过“挂载”方式整合到该目录树中,实现统一访问。
5. Linux 目录树核心目录及用途
| 目录路径 | 核心用途 | 关键说明 |
|---|---|---|
/boot |
存储系统启动相关文件 | 包含内核文件(vmlinuz)、启动加载器(grub)、初始化镜像(initrd),系统启动必备 |
/dev |
存储所有设备文件 | 字符设备(如键盘 /dev/tty1)、块设备(如硬盘 /dev/sda),通过文件操作硬件 |
/etc |
存储系统持久化配置文件 | 系统级、服务级配置文件(如 /etc/profile、/etc/nginx/nginx.conf),修改后永久生效 |
/home |
普通用户主目录 | 每个普通用户拥有独立子目录(如 /home/user1),存放用户个人文件、配置 |
/root |
超级用户(root)的主目录 | 仅 root 用户可访问,存放管理员个人文件和配置 |
/run |
存储进程运行时临时数据 | 包含进程 PID 文件、套接字文件,系统重启后自动清空,避免残留无效数据 |
/tmp |
存储系统临时文件 | 所有用户可读写,系统自动清理 10 天未访问的文件,仅建议存放临时数据 |
/var |
存储频繁更新的动态数据 | 包含日志(/var/log)、邮件(/var/spool/mail)、数据库数据(/var/lib/mysql)等 |
/usr |
系统和用户软件安装目录 | 存放系统自带软件、用户安装的软件,类似 Windows 的 C:\Program Files |
/usr/bin |
普通用户可执行的系统命令 | 如 ls、cat、docker 等,所有用户均可执行 |
/usr/sbin |
管理员(root)可执行的系统命令 | 如 systemctl、useradd、kubeadm 等,需 root 权限执行 |
6. 绝对路径与相对路径的识别方法
| 路径类型 | 识别特征 | 示例 | 适用场景 |
|---|---|---|---|
| 绝对路径 | 以根目录(/) 开头,从根目录到目标文件/目录的完整路径 | /home/user1/test.txt、/etc/nginx/conf.d |
路径固定,不受当前工作目录影响,推荐在脚本、配置文件中使用 |
| 相对路径 | 不以根目录(/)开头,以当前工作目录为起点的路径 | test.txt、../conf.d、./docs/file |
路径灵活,随当前工作目录变化,适合手动命令行操作(简化输入) |
快速判断技巧:路径第一个字符是 / 即为绝对路径,否则为相对路径。
7. rm -r 与 rmdir(rm -d)的核心区别
| 命令 | 功能说明 | 适用场景 | 注意事项 |
|---|---|---|---|
rm -r |
递归删除目录,删除目录本身及目录下所有内容(文件+子目录) | 删除非空目录 | 谨慎使用,严禁执行 rm -rf /(强制递归删除根目录,会导致系统崩溃) |
rmdir/rm -d |
仅删除空目录,若目录中有文件/子目录则删除失败 | 删除已清空的空目录 | 安全系数高,不会误删数据,删除前需确保目录内无任何内容 |
实操示例:
# 创建测试非空目录
mkdir -p dir1/subdir && touch dir1/file1.txt
# 尝试用rmdir删除非空目录 → 失败
rmdir dir1
# 用rm -r递归删除非空目录 → 成功
rm -r dir1
# 创建并删除空目录 → 成功
mkdir dir2 && rmdir dir2
8. 文件链接的定义 | 硬链接 vs 软链接核心区别
(1)文件链接定义
文件链接是 Linux 中指向同一文件内容的多个文件名/路径,实现“一个文件内容,多个访问入口”,节省存储空间,方便文件管理。
(2)硬链接与软链接核心区别
| 对比维度 | 硬链接(Hard Link) | 软链接(Symbolic Link,符号链接) |
|---|---|---|
| 适用对象 | 仅支持常规文件,不支持目录、设备文件 | 支持所有文件类型(常规文件、目录、设备文件等) |
| 跨文件系统 | 不支持(仅能在同一分区/文件系统中创建) | 支持(可跨硬盘、跨网络文件系统创建) |
| 链接本质 | 与原文件共享同一个 inode 节点,是文件内容的“别名” | 独立的文件(有自己的 inode),内容为原文件的绝对/相对路径,是原文件的“快捷方式” |
| 原文件删除后 | 只要存在至少一个硬链接,文件内容依然可用(inode 未被释放) | 链接文件变为“无效链接”(红色闪烁),无法访问原文件内容 |
| 链接数量限制 | 受文件系统限制(通常单个文件最多支持 65535 个) | 无数量限制 |
9. 硬链接/软链接的创建与查看
(1)创建命令
# 准备测试原文件
touch test.txt && echo "hello linux link" > test.txt
# 创建硬链接:ln 原始文件名 硬链接文件名
ln test.txt test_hard.link
# 创建软链接:ln -s 原始文件名 软链接文件名(-s 为软链接核心选项)
ln -s test.txt test_soft.link
(2)查看命令及识别技巧
# 查看硬链接:ls -il 原始文件 硬链接文件(-i 显示inode号,核心识别依据)
ls -il test.txt test_hard.link
# 关键特征:inode号相同、链接数字段(第二列)大于1
# 查看软链接:ls -l 软链接文件
ls -l test_soft.link
# 关键特征:权限位开头为l、末尾显示 -> 原文件路径
10. Linux 通配符匹配规则
| 通配符 | 匹配规则 | 示例(匹配当前目录文件) |
|---|---|---|
* |
匹配任意长度的任意字符(包括空字符) | *.txt 匹配所有.txt后缀文件、a* 匹配以a开头的所有文件 |
? |
匹配单个任意字符 | ?.txt 匹配“1.txt”、“a.txt”(仅1个字符前缀) |
??? |
匹配恰好3个任意字符 | ???.log 匹配“abc.log”、“123.log”(前缀恰好3个字符) |
a* |
匹配以字母a开头的任意文件 | 匹配“a.txt”、“abc.jpg”、“a123.sh” |
*b |
匹配以字母b结尾的任意文件 | 匹配“123b”、“testb.txt”、“ab” |
*c* |
匹配文件名包含字母c的任意文件 | 匹配“c.txt”、“testc.jpg”、“abc123.sh” |
[ac]* |
匹配以a或c开头的任意文件 | 匹配“a.txt”、“c.log”,不匹配“b.txt” |
[^abc] |
匹配不以a、b、c中任意一个开头的单个字符 | [^abc].txt 匹配“d.txt”、“1.txt”,不匹配“a.txt” |
[!abc] |
与[^abc]功能完全一致,bash兼容写法 |
同[^abc]规则 |
11. $HOSTNAME、${HOSTNAME}、$(hostname) 的区别
| 语法 | 实现原理 | 特点/使用场景 | 示例(主机名:node1) |
|---|---|---|---|
$HOSTNAME |
变量引用,读取系统内置环境变量HOSTNAME |
直接读取值,效率高;变量名后紧跟字符易解析错误 | echo $HOSTNAME-test → 输出-test(解析错误) |
${HOSTNAME} |
带边界的变量引用,明确变量名边界 | 解决解析错误问题,语法更严谨,推荐脚本中使用 | echo ${HOSTNAME}-test → 输出node1-test(正确) |
$(hostname) |
命令替换,执行hostname命令并获取输出 |
动态执行命令,结果最准确,不受环境变量修改影响 | echo $(hostname)-test → 输出node1-test(正确) |
12. 单引号(‘’)与双引号(“”)的转义区别(防止Shell扩展)
| 引号类型 | 解析规则 | 适用场景 | 示例(主机名:node1,当前目录有a.txt、b.txt) |
|---|---|---|---|
| 单引号(‘’) | 纯字面解析,引号内所有字符(包括特殊字符)均按原始含义解析,无任何扩展 | 需完全屏蔽Shell扩展,保留字符原始形态(如固定字符串、特殊符号) | echo '$HOSTNAME *' → 输出$HOSTNAME * |
| 双引号(“”) | 部分扩展解析,仅保留$(变量)、\(转义)、`(命令替换)、!(历史命令)的扩展功能,其他特殊字符按字面解析 |
需保留变量/命令替换,同时屏蔽*、?等通配符扩展 |
echo "$HOSTNAME *" → 输出node1 * |
核心总结:完全保留原始内容用单引号,需保留变量/命令替换用双引号。
三、控制对文件的访问
1. 文件系统权限:定义 | 工作原理 | 查看方法
(1)核心定义
Linux 文件系统权限是系统对文件/目录的访问控制规则,是 Linux 多用户系统的核心安全机制,用于限制不同用户对文件/目录的操作范围(读、写、执行),防止文件资源被非法访问、修改或执行。
(2)工作原理
Linux 按用户与文件的归属关系,将所有用户分为三类,为每类用户单独分配「读(r)、写(w)、执行(x)」三种基础权限,形成“三类用户 + 三种权限”的核心管控模型:
- 所有者(Owner):文件/目录的创建者或通过
chown指定的专属用户,拥有最高管理权限; - 所属组(Group):文件/目录所属的用户组,该组所有成员共享组权限;
- 其他用户(Other):既非所有者、也不在所属组的所有系统用户,权限最低。
(3)查看命令
# 查看文件权限
ls -l test.txt
# 查看目录权限(-d 仅显示目录本身,不显示内部文件)
ls -ld /home
查看关键:输出结果开头的10个字符段即为权限标识(文件类型+三类用户权限)。
2. 权限字符串 -rw-r--r-- 逐字符解析
该字符串为 Linux 标准权限表示形式,共10个字符,分为4个部分,逐字符解析如下:
| 字符位 | 分段类型 | 字符/权限 | 具体说明 |
|---|---|---|---|
| 第1位 | 文件类型 | - |
表示普通文件(其他类型:d=目录、l=软链接、b=块设备) |
| 第2-4位 | 所有者权限 | rw- |
所有者拥有读(r)、写(w) 权限,无执行(x) 权限 |
| 第5-7位 | 所属组权限 | r-- |
所属组成员仅拥有读(r) 权限,无写、执行权限 |
| 第8-10位 | 其他用户权限 | r-- |
所有其他用户仅拥有读(r) 权限,无写、执行权限 |
基础权限对应:r(读)、w(写)、x(执行)、-(无权限)。
3. 修改文件/目录权限:chmod 命令(符号法+数值法)
(1)核心命令
chmod(change mode):Linux 专用的文件/目录权限修改命令,支持符号法(直观,适合新手)和数值法(高效,适合批量操作),文件和目录修改格式一致。
(2)权限数值基础(必记)
数值法将权限转换为三位数字,每位对应一类用户,计算规则:r=4、w=2、x=1、-=0,权限值为对应权限数字之和:
- 754:所有者rwx(4+2+1)、所属组r-x(4+0+1)、其他用户r–(4+0+0)
- 775:所有者rwx(7)、所属组rwx(7)、其他用户r-x(5)
- 变更核心:给所属组添加写(w) 权限
(3)从754修改为775的具体命令
# 准备初始权限754的测试文件
touch test.txt && chmod 754 test.txt
# 方法1:符号法 - 给所属组(g)添加写(w)权限
chmod g+w test.txt
# 方法2:数值法 - 直接指定最终权限775
chmod 775 test.txt
# 验证修改结果
ls -l test.txt
符号法核心标识:
- 用户:u(所有者)、g(所属组)、o(其他用户)、a(所有用户)
- 操作:+(添加)、-(移除)、=(强制设置)
- 权限:r(读)、w(写)、x(执行)
4. 修改文件的所有者和所属组
(1)核心命令说明
| 命令 | 功能 | 执行权限 |
|---|---|---|
chown(change owner) |
修改所有者,可同时修改所有者和所属组 | 需root权限(普通用户加sudo) |
chgrp(change group) |
仅修改所属组 | 需root权限或文件所有者且属于目标组 |
注意:修改前需确保目标用户/用户组已存在(
useradd/groupadd创建)。
(2)实操命令
# 前提:创建测试用户和组
useradd testuser && groupadd testgroup
# 1. 仅修改所有者
chown testuser test.txt
# 2. 仅修改所属组
chgrp testgroup test.txt
# 3. 合并修改所有者和所属组(推荐,冒号分隔)
chown root:root test.txt
# 验证结果
ls -l test.txt
5. SUID、SGID、Sticky 特殊权限的作用
| 特殊权限 | 适用对象 | 核心作用 | 典型应用/权限标识 |
|---|---|---|---|
| SUID(Set User ID) | 仅对可执行文件有效 | 用户执行该文件时,临时获得文件所有者的权限(执行后恢复) | passwd 命令(-rwsr-xr-x):普通用户临时获root权限修改/etc/shadow |
| SGID(Set Group ID) | 目录(常用)/可执行文件 | 1. 可执行文件:执行时临时获文件所属组权限; |
- 目录:新建文件子目录自动继承目录所属组 | 团队协作目录(
drwxr-sr-x):确保团队文件归属于团队组 |
| Sticky(粘滞位) | 仅对目录有效 | 目录内的文件/子目录,仅文件所有者、目录所有者或root用户可删除/重命名,其他用户即使有目录写权限也无法操作 |/tmp目录(drwxrwxrwt):所有用户可读写,但不能删除他人文件 |
特殊权限标识位置:
- SUID:占用所有者权限的
x位,显示为s(所有者有x权限)或S(所有者无x权限); - SGID:占用所属组权限的
x位,显示为s(所属组有x权限)或S(所属组无x权限); - Sticky:占用其他用户权限的
x位,显示为t(其他用户有x权限)或T(其他用户无x权限)。
6. umask 的作用 | umask 0022 命令解释
(1)umask 的核心作用
umask(用户文件创建掩码)是 Linux 中控制新建文件/目录默认权限的核心机制,系统通过固定公式自动为新建文件/目录分配默认权限,无需手动修改:
# 核心计算公式
新建文件默认权限 = 文件最大默认权限(666) - umask 数值
新建目录默认权限 = 目录最大默认权限(777) - umask 数值
关键说明:
- 文件最大默认权限为
666(无执行权限x),避免新建文件直接可执行带来安全风险; - 目录最大默认权限为
777(目录需要执行权限x才能进入,故默认包含x); umask数值为四位八进制数(如0022),前一位为特殊权限掩码,后三位为基础权限掩码(核心关注后三位)。
(2)umask 0022 命令的作用
umask 0022 表示将当前 Shell 会话的权限掩码设置为 0022,按公式计算可得新建文件/目录的默认权限,这是 Linux 服务器默认的 umask 配置,兼顾开放和安全。
# 1. 新建文件默认权限计算
666(文件最大权限) - 0022(umask) = 644
# 对应权限字符串:-rw-r--r--(所有者rw-、所属组r--、其他r--)
# 2. 新建目录默认权限计算
777(目录最大权限) - 0022(umask) = 755
# 对应权限字符串:drwxr-xr-x(所有者rwx、所属组r-x、其他r-x)
# 查看当前umask数值
umask → 输出:0022
# 验证默认权限
touch newfile && mkdir newdir && ls -l
# 输出:
# -rw-r--r-- 1 root root 0 1月 29 16:00 newfile(644)
# drwxr-xr-x 2 root root 4096 1月 29 16:00 newdir(755)
永久生效设置:若需让umask 0022永久生效,可将其写入全局配置文件/etc/profile(所有用户生效)或用户个人配置文件~/.bashrc(仅当前用户生效),写入后执行source /etc/profile或source ~/.bashrc立即生效。
核心知识点总结(快速查阅)
- 命令行基础:终端是交互载体,Shell 是命令解释器,bash 是默认 Shell;CLI 是 Linux 核心,支持自动化操作。
- 文件管理核心:一切皆文件,目录树以
/为根;熟记/etc、/home、/var等核心目录;硬链接共享inode,软链接是快捷方式。 - 变量与引号:
${变量名}避免解析错误,$(命令)实现命令替换;单引号完全屏蔽扩展,双引号保留变量/命令替换。 - 权限核心:三类用户+三种权限(r=4、w=2、x=1);改权限用
chmod,改所有者用chown;特殊权限对应特定场景;umask 0022是默认配置。
更多推荐


所有评论(0)