在当今技术生态中,Linux 占据着不可撼动的地位——它是互联网服务器、云计算平台、嵌入式设备乃至超级计算机的核心操作系统。掌握 Linux 基础不仅是运维工程师和开发者的必备技能,更是理解现代计算体系的关键入口。本教程将带你系统学习 Linux 的核心概念与实用技能。

一、Linux 系统概述:开源世界的基石

Linux基础教程:初学者快速上手操作指南

Linux 并非单一操作系统,而是一个基于 Linux 内核的开源操作系统家族(称为“发行版”)。常见发行版包括:

Ubuntu:用户友好,适合新手

CentOS/RHEL:企业级稳定性代表

Debian:以稳定性和自由软件理念著称

Arch Linux:极简主义,高度可定制

> 深入理解:Linux 的“一切皆文件”哲学是其设计精髓。硬件设备(如 `/dev/sda`)、进程信息(如 `/proc/cpuinfo`)、系统配置(如 `/etc` 目录)均通过文件接口暴露。这种一致性极大简化了系统管理和编程模型。

二、命令行基础:与系统对话的核心工具

图形界面虽直观,但命令行(Terminal/Shell)才是 Linux 的真正力量源泉。常用 Shell 包括 `Bash`(最流行)、`Zsh`、`Fish`。

1. 基础命令与高效操作

bash

目录操作

ls -lht 按时间倒序列出详情(-h 人性化文件大小)

cd ~/Documents 切换目录

mkdir -p project/src 创建多级目录

文件操作

cp -r dir1 dir2/ 递归复制目录

mv old.txt new.txt 重命名/移动

rm -i .log 交互式删除日志文件

查看文件

cat -n config.conf 显示行号

less +F /var/log/syslog 实时跟踪日志(按 Ctrl+C 退出)

head -20 access.log 查看前20行

2. 管道与重定向:命令组合的艺术

bash

统计当前目录下 .py 文件数量

find . -name ".py" | wc -l

过滤日志并保存结果

grep "ERROR" app.log | tee errors.txt

组合命令:列出大于100MB的文件按大小排序

du -ah | grep '[0-9]+M' | sort -hr

> 高效技巧:善用 `Tab` 自动补全、`Ctrl+R` 历史命令搜索、`!!` 重复上条命令。在 `~/.bashrc` 中设置别名(如 `alias ll='ls -alF'`)可显著提升效率。

三、Linux 文件系统结构:目录树的智慧

Linux 文件系统采用层级树状结构,关键目录作用如下:

/ 根目录

├── bin 基础用户命令(ls, cp)

├── etc 系统全局配置文件

├── home 用户主目录

├── var 动态数据(日志、缓存)

├── tmp 临时文件

├── usr 用户程序与文档(相当于 C:Program Files)

└── dev 设备文件(磁盘、USB等)

> 重要建议绝对路径(如 `/home/user/file`)与相对路径(如 `./script.sh`)的选择取决于场景。脚本中建议使用绝对路径避免歧义;日常操作可用相对路径提升效率。

四、用户、组与权限管理:安全的核心

Linux 通过用户(User)、组(Group)、其他(Others) 三级权限控制资源访问。权限分为 读(r)、写(w)、执行(x)

1. 权限查看与修改

bash

查看权限(示例:-rw-rr)

ls -l file.txt

修改权限(数字法)

chmod 755 script.sh 用户:rwx,组:r-x,其他:r-x

修改权限(符号法)

chmod g+w,o-r report.doc 给组加写,移除其他读权限

修改所有者

sudo chown user:group file

2. 特殊权限与安全实践

`sudo`:临时获取 root 权限(避免长期使用 root 账户!)

`SUID`(如 `/usr/bin/passwd`):允许用户以文件所有者身份执行

`Sticky Bit`(如 `/tmp`):目录内文件仅所有者可删除

> 安全建议:遵循最小权限原则。使用 `sudo` 而非 root 登录;敏感文件设置 `600` 权限(仅用户可读写);定期审计用户账户 (`/etc/passwd`) 和 sudo 权限 (`/etc/sudoers`)。

五、软件包管理:系统的扩展引擎

不同发行版使用不同的包管理工具:

| 发行版 | 包管理工具 | 常用命令示例 |

| Debian/Ubuntu | apt | `sudo apt update && sudo apt install nginx` |

| RHEL/CentOS | yum/dnf | `sudo dnf install httpd` |

| Arch/Manjaro | pacman | `sudo pacman -Syu firefox` |

> 深入建议

> 1. 定期更新:`sudo apt update && sudo apt upgrade` 保持系统安全

> 2. 清理缓存:`sudo apt clean` / `dnf clean all` 释放空间

> 3. 优先使用官方源,第三方源需验证可信度

> 4. 学习编译安装(`./configure && make && sudo make install`)应对特殊软件需求

六、进程管理与系统监控

1. 进程基础操作

bash

ps aux | grep nginx 查找 nginx 进程

kill -9 1234 强制终止 PID 1234

pkill -f "python app" 按名称终止进程

2. 系统资源监控

bash

top 动态查看进程(类似任务管理器)

htop 增强版 top(更直观)

free -h 查看内存使用

df -hT 查看磁盘空间与文件系统类型

> 性能洞察:理解 `Load Average`(1/5/15分钟负载)比单纯看 CPU% 更重要;`iostat` 和 `iotop` 可诊断磁盘 I/O 瓶颈;`nethogs` 监控进程网络流量。

七、文本处理三剑客:grep、sed、awk

这些工具是日志分析和数据提取的神器:

bash

grep:文本搜索

grep -i "error" /var/log/syslog 忽略大小写搜索

grep -r "function_name" src/ 递归搜索目录

sed:流编辑器(批量替换)

sed 's/old/new/g' input.txt > output.txt

sed -i.bak '/^/d' config.conf 删除注释行并备份

awk:模式扫描与处理(统计 HTTP 状态码)

awk '{print $9}' access.log | sort | uniq -c | sort -nr

> 高级技巧:组合使用三者(如 `grep 'pattern' | awk '{print $2}' | sed 's/://g'`);学习基础正则表达式(如 `.`、``、`[]`、`^`、`$`)能极大提升效率。

八、Shell 脚本入门:自动化起点

基础脚本示例(保存为 `backup.sh` 并赋予执行权限):

bash

!/bin/bash

简单备份脚本

BACKUP_DIR="/backup

SOURCE_DIR="/var/www

TODAY=$(date +%Y%m%d)

tar -czf $BACKUP_DIR/web_$TODAY.tar.gz $SOURCE_DIR

echo "Backup completed at $(date)" >> $BACKUP_DIR/backup.log

> 脚本最佳实践

> 1. 首行 `!/bin/bash` 指定解释器

> 2. 使用变量而非硬编码路径

> 3. 添加错误检查(如 `if [ ! -d "$SOURCE_DIR" ]; then exit 1; fi`)

> 4. 重要操作前加确认提示(`read -p "Continue? (y/n) " ANSWER`)

> 5. 使用 `set -e` 让脚本遇错即停

持续学习之路

Linux 的精髓在于理解其设计哲学而非死记命令。通过本教程,你已掌握:

1. 命令行高效操作技巧

2. 文件系统结构与权限模型

3. 软件包与进程管理核心

4. 文本处理与基础自动化能力

下一步建议

在虚拟机或云服务器(如 AWS EC2、阿里云 ECS)中实践

学习配置基础服务(Nginx 网站、SSH 安全加固)

掌握版本控制 Git 与 Linux 环境协同工作

探索容器技术 Docker(基于 Linux 命名空间与 cgroups)

Linux 世界广袤无垠,唯有持续实践与探索,方能在开源生态中游刃有余。当你深入理解其设计逻辑时,便会发现:命令行不是冰冷的工具,而是与计算系统对话的优雅语言。

> 资源推荐

  • 在线终端实践:
  • Bash 脚本指南:

    > - Linux 文档项目: