Linux 核心概念

FreeGuideOnline 最新 2026-07-15

bash echo $SHELL # 查看当前使用的 Shell cat /etc/shells # 查看系统安装了哪些 Shell man bash # 查看 Bash 的手册


掌握 Shell 是学习 Linux 的第一步,你发出的每一个命令都会经过它的解析。

---

## 2. 文件系统:一切皆文件

Linux 中最具颠覆性的哲学之一:**一切皆文件**。普通文件、目录、键盘、硬盘,甚至进程信息,都以文件的形式呈现。

### 虚拟文件系统(VFS)
Linux 通过 VFS 抽象层,让不同文件系统(ext4、XFS、NTFS、网络文件系统)对上层的用户程序呈现统一的接口。你不需要关心底层是机械硬盘还是固态硬盘,`cat` 命令的工作方式完全相同。

### 目录结构标准(FHS)
根目录 `/` 下这些关键目录一定要记住:

- `/bin`:系统基础命令(如 `ls`, `cp`)
- `/boot`:启动引导相关文件,内核镜像 vmlinuz 在此
- `/dev`:设备文件,如 `/dev/sda` 代表第一块硬盘
- `/etc`:系统级别的配置文件(**几乎是管理的起点**)
- `/home`:普通用户的家目录,个人数据和配置都在这里
- `/proc`:虚拟文件系统,存放运行中的内核和进程信息(如 `/proc/cpuinfo`)
- `/tmp`:临时文件,重启后通常被清空
- `/var`:经常变化的数据,如日志、邮件队列

### 理解挂载(Mount)
与 Windows 的盘符(C:、D:)不同,Linux 只有一个根文件系统树。新的硬盘分区、U 盘不是凭空出现,而是需要“挂载”到某个目录(挂载点)。  
例如,把第二块硬盘挂载到 `/mnt/data`,之后访问 `/mnt/data` 就是在操作这块硬盘。

---

## 3. 用户与权限:安全基石

Linux 是一个多用户系统,权限隔离是其安全模型的核心。

### 用户与组
- **用户(User)**:每个用户拥有唯一的 UID。root 用户的 UID 为 0,拥有至高权限。
- **组(Group)**:每个用户属于至少一个组,组的权限可以分配给组内所有成员。
- 运行 `whoami`、`id` 可查看当前用户信息。

### 文件权限模型
使用 `ls -l` 看到的一串字符 `-rw-r--r--` 是权限的核心表达:

  • rw- r-- r-- │ │ │ │ │ 所属主 所属组 其他人 文件类型 (- 普通文件, d 目录, l 符号链接)

- `r` (4):读权限
- `w` (2):写权限
- `x` (1):执行权限(对目录而言,x 表示可以进入)

### 修改权限
```bash
chmod u+x script.sh    # 给文件所有者添加执行权限
chmod 755 mydir        # 数字模式:rwxr-xr-x
chown user:group file  # 修改文件的所有者和所属组

最佳实践:永远避免用 root 身份执行日常操作,使用 sudo 临时提权。


4. 进程管理:系统的活细胞

进程是正在执行的程序实例,是分配系统资源的基本单位。

进程的属性

每个进程拥有唯一的 PID,以及父进程 PPID。Linux 的初始进程(PID 1)通常是 systemdinit,所有其他进程都由它直接或间接派生。

进程状态

  • 运行(R):正在运行或排队等待运行
  • 睡眠(S):可中断的等待(等待输入、资源等)
  • 磁盘睡眠(D):不可中断的睡眠,通常等待 I/O
  • 僵尸(Z):进程已终止,但父进程未回收其资源,需要留意
  • 停止(T):被作业控制信号暂停

常用查看与管理命令

ps aux                    # 查看全部进程的详细快照
top                       # 动态实时显示进程
htop                      # top 的增强版(更直观)
kill -9 PID               # 强制杀死进程(慎用)
kill -15 PID              # 优雅终止进程
jobs                      # 查看当前终端后台任务
bg / fg                   # 后台/前台切换任务

理解进程有助于你定位性能瓶颈、卡死问题和后台服务管理。


5. 内存管理:虚拟内存与缓存

不要被 free 输出吓到——Linux 喜欢用尽空闲内存作为缓存,这恰恰是高效的表现。

虚拟内存

每个进程拥有自己独立的虚拟地址空间,通过内核的 MMU 映射到物理内存或磁盘上的交换空间(Swap)。这样进程之间不会互相干扰,也实现了更灵活的内存使用。

缓存与缓冲

  • Page Cache:缓存文件内容,加速读写。
  • Buffer:缓存磁盘块的元数据。
  • 当应用程序需要更多内存时,内核会主动回收干净的缓存页,不会影响正常运行。

查看内存使用

free -h                  # 查看总量、已用、空闲、缓冲/缓存
cat /proc/meminfo        # 详细的内存信息
vmstat 1                 # 定期监视虚拟内存活动

记住:available 的值才是真正可用于新程序的内存。


6. 软件包管理:轻松安装世界

Linux 告别了“下载-双击-下一步”的安装方式,采用软件包管理器统一管理软件。

两大流派

  • Debian 系(Ubuntu、Debian):apt / dpkg
    sudo apt update                # 更新软件源索引
    sudo apt install nginx         # 安装软件
    sudo apt remove --purge nginx  # 卸载并删除配置文件
    
  • Red Hat 系(Fedora、Rocky Linux):dnf / yum / rpm
    sudo dnf check-update
    sudo dnf install nginx
    sudo dnf remove nginx
    

软件源

位于 /etc/apt/sources.list/etc/yum.repos.d/ 下,定义了从哪些远程仓库获取软件包和更新。保持源在稳定可靠状态是系统安全的基础。


7. 网络基础:管道连接世界

Linux 天生为网络而生,所有网络接口也可以视为文件(/dev 下的设备或 socket)。

查看与配置

ip addr show              # 查看所有网络接口及 IP 地址
ip route show             # 查看路由表
ping -c 4 8.8.8.8        # 测试连通性
ss -tlnp                  # 查看所有监听的 TCP 端口和对应进程