前言

Linux 是一款开源、多用户、多任务的类 Unix 操作系统,广泛应用于服务器、嵌入式、云平台,后端、测试开发等相关工作。

本文整理 Linux 系统架构、Vim 编辑器核心操作、文件系统、软硬链接、权限管理、高频文件操作命令,覆盖日常运维开发基础场景。

一、Linux 系统整体组成

Linux 整体由四大模块构成:内核、系统库、Shell、应用程序

1. 内核(Kernel)

操作系统最核心,管理硬件资源,向上提供调用接口,主要模块:

  • 设备驱动程序:对接硬件,管理外设
  • 进程管理:调度 CPU 资源,管理进程生命周期
  • 内存管理:虚拟内存分配、回收、内存隔离
  • 文件系统:统一管理磁盘文件,屏蔽底层硬件差异
  • 网络协议栈:实现 TCP/IP 等网络通信

2. 系统库

介于应用程序与内核之间,封装系统调用,简化开发:

  • C 标准库:最基础系统库(glibc)
  • 数学库、动态链接库、线程库、各类第三方库

3. Shell(命令解释器)

用户与操作系统内核交互的接口。接收用户输入命令,解析后传递给内核执行。我们日常使用的 bash、zsh 都属于 Shell。

4. 应用程序

运行在操作系统之上的各类软件,如vimnginx、mysql 等。

二、Vim/Vi 编辑器详解

   vi是 Unix 原生文本编辑器;vim 是 vi 的增强升级版,增加语法高亮、查找、复制粘贴、撤销等丰富功能。

命令:vi filename 文件存在:直接打开;文件不存在:新建并打开。

三大基础模式(重点是模式切换)

  1. 命令模式(默认进入) 打开文件默认处于该模式,用于光标移动、复制、删除、查找、切换其他模式。
  2. 插入模式(编辑模式) 真正编辑文本,输入字符写入文件;按下ESC退回命令模式。
  3. 底行模式 命令模式按下:进入,用于保存退出、全局替换、显示行号等操作;ESC退回命令模式。

模式切换速记
  • 命令模式 → 插入模式:i / a / o
    • i:光标插入;I:当前行首插入
    • a:光标插入;A:当前行尾插入
    • o:光标下新建一行;O:光标上新建一行
  • 命令模式 → 底行模式:输入:
  • 插入 / 底行模式 → 命令模式:ESC

命令模式常用快捷键

表格

按键 功能
h j k l 光标左、下、上、右移动
^ 快速跳转到行首
$ 快速跳转到行尾
yy 复制当前整行
dd 删除当前整行
p 粘贴内容
u 撤销操作
/内容 向下查找;?内容向上查找,n切换匹配结果

底行模式高频指令

1.保存退出

  :w 保存;:q 退出;:wq保存并退出;:q!强制不保存退出

2.文本替换

vim

:s/hello/world      # 当前行,第一个hello替换成world
:s/hello/world/g    # 当前行,所有hello替换world
:num1,num2 s/hello/world/g  # 第num1~num2行范围内全局替换

3.辅助配置

   :set number 显示行号

拓展:~/.vimrc 文件,存放 vim 永久自定义配置,打开编辑器自动生效。

三、Linux 文件系统基础

1. 目录结构

Windows:分盘结构(C 盘、D 盘)

Linux:树形结构,唯一根目录 /,所有文件、目录都挂载在根目录之下。

2. 路径概念

  • 绝对路径:从根目录/开始完整路径,如/home/user/test.txt
  • 相对路径:相对于当前目录;.代表当前目录;..代表上一级目录
  • ~:代表当前用户家目录

3. 根目录常见核心目录

  • /bin:存放系统基础可执行命令
  • /etc:系统、软件配置文件目录
  • /home:普通用户家目录
  • /sys:系统内核相关文件

4. 目录切换基础命令

bash

pwd        # 查看当前所在目录
cd /       # 切换到根目录
cd ..      # 返回上一级目录
cd ~       # 回到用户家目录

四、Linux 常用文件操作命令

1. ls 列出目录内容

ls          # 列出当前目录文件
ls -l       # 展示详细信息(权限、所有者、修改时间)
ls -a       # 显示隐藏文件(以.开头的文件)
ls -h       # 人性化展示文件大小
ls -t       # 按修改时间排序
ls -r       # 倒序展示

2. 创建链接 ln

Linux 分为硬链接、软链接(符号链接)

ln 源文件 target        # 创建【硬链接】
ln -s 源文件 target     # 创建【软链接】

软硬链接核心区别

(1) 软链接(ln -s) 类似 Windows 快捷方式,存储目标文件路径;

  • 删除原始文件,软链接失效;
  • 支持指向文件、目录;可以跨分区。

(2)硬链接 同一文件的多个文件名,共享 inode;

  • 删除源文件,硬链接依旧正常访问;
  • 仅支持文件,不支持目录,不能跨分区

3. 文件创建

touch test.txt
# 文件存在:更新文件时间戳;文件不存在:创建空文件
echo "内容"               # 控制台直接打印文本
echo "hello" > test.txt   # 覆盖写入文件
echo "hello" >> test.txt  # 追加写入文件

4. 文件复制 cp

cp 源文件 目标文件         # 复制文件
cp -r 源目录 目标目录      # -r 递归复制目录(包含子目录)

5. 文件移动 / 重命名 mv

mv 源文件 目标路径
# 目标路径不存在 → 重命名;目标路径存在 → 移动文件

6. 删除 rm、rmdir

rm 文件名称                # 删除文件
rm -r 目录                 # 递归删除目录(高危操作!谨慎使用)
rmdir 空目录               # 仅能删除空目录,目录有文件会报错

重要提示:Linux 默认没有回收站,删除文件很难恢复!

7. 目录创建 mkdir

mkdir dirname             # 创建单层目录
mkdir -p /a/b/c           # -p 自动创建多级嵌套目录

8. 查看文件大小与目录结构

du         # 查看文件/目录占用磁盘大小
tree       # 树形打印目录结构(部分系统需要额外安装)

9. 查看文件内容 cat

cat test.txt   # 将文件全部内容输出到控制台

五、Linux 文件权限管理

1. 权限结构 ls -l

输出示例:-rw-r--r-- 权限分为三段:

  1. 所有者 (user):文件创建者权限
  2. 所属组 (group):同用户组其他成员权限
  3. 其他用户 (other):系统其余所有人权限

基础权限标识:

  • r read:可读,数字 4
  • w write:可写,数字 2
  • x execute:可执行,数字 1
  • -:无对应权限

2. chmod 修改权限

两种写法:符号模式 / 数字模式

方式 1:符号方式
# u=user,g=group,o=other,a=all全部用户
chmod u+x test.txt    # 给文件所有者增加执行权限
chmod u-x test.txt    # 移除所有者执行权限
方式 2:数字模式(工作最常用)

r=4,w=2,x=1,权限相加组合

chmod 777 test.txt    # u=rwx,g=rwx,o=rwx,所有用户完全权限
chmod 644 test.txt    # u=rw-,g=r--,o=r-- 普通文件标准权限

六、实用技巧与常见问题

1. 提高效率的 Shell 技巧

掌握以下技巧可以大幅提升 Linux 使用效率:

  • 命令历史搜索:按 Ctrl + R 搜索历史命令,再次按 Ctrl + R 向前搜索
  • 快速清屏Ctrl + L 或输入 clear 命令
  • 命令补全:按 Tab 键自动补全命令、文件名、路径
  • 快速跳转cd - 返回上一个工作目录
  • 后台运行:命令后加 & 让程序在后台运行,如 python script.py &

2. 文件操作常见问题

Q1: 如何查看隐藏文件?

使用 ls -als -la(显示详细信息)。Linux 中以 . 开头的文件为隐藏文件。

Q2: 如何查找文件?
find /path -name "filename"    # 按名称查找
find /path -type f -name "*.txt"  # 查找所有txt文件
find /path -mtime -7           # 查找7天内修改的文件
Q3: 如何查看文件类型?

使用 file 命令:file filename,可以识别文本、二进制、压缩包等文件类型。

Q4: 如何查看文件内容(分页)?
less filename    # 分页查看,支持搜索(/关键词)
more filename    # 分页查看,功能较简单
head -n 10 filename  # 查看文件前10行
tail -n 10 filename  # 查看文件后10行
tail -f logfile  # 实时查看日志文件更新

3. 权限管理实战技巧

修改文件所有者
chown user:group filename  # 修改所有者和所属组
chown user filename        # 只修改所有者
chgrp group filename       # 只修改所属组
特殊权限位
  • SUID(Set User ID):文件执行时以所有者身份运行,如 chmod 4755 filename
  • SGID(Set Group ID):目录下新建文件继承目录所属组,如 chmod 2755 dirname
  • Sticky Bit:目录下文件只有所有者能删除,如 chmod 1777 /tmp

4. Vim 高级技巧

多窗口编辑
:split filename    # 水平分割窗口
:vsplit filename   # 垂直分割窗口
Ctrl+W + 方向键    # 切换窗口
:q                 # 关闭当前窗口
宏录制
q[寄存器]          # 开始录制宏,如 qa
...操作序列...     # 执行要录制的操作
q                 # 停止录制
@[寄存器]          # 执行宏,如 @a
@@                # 重复上次执行的宏
批量注释/取消注释
# 注释多行(在命令模式)
:起始行,结束行 s/^/#/g    # 添加#注释
:起始行,结束行 s/^#//g    # 删除#注释
示例:注释第10-20行
:10,20 s/^/#/g

七、进阶学习建议

1. 生产环境注意事项

  • 备份第一:重要操作前务必备份,可使用 cp -rrsync
  • 权限最小化:遵循最小权限原则,不要随意使用 chmod 777
  • 日志监控:定期检查 /var/log/ 下的系统日志
  • 版本控制:配置文件修改前使用 Git 或备份,便于回滚
  • 安全加固:定期更新系统、使用强密码、配置防火墙

2. 面试准备要点

Linux 相关岗位面试常考内容:

  • 基础命令:文件操作、权限管理、进程查看(pstop
  • Shell脚本:变量、循环、条件判断、函数编写
  • 系统管理:用户管理、磁盘管理、网络配置
  • 故障排查:日志分析、性能监控、常见问题解决思路
  • 原理理解:进程与线程区别、内存管理机制、文件系统原理
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐