
中心主题:Linux
一级分支 1:基础概念
- 定义与起源
- 内核:操作系统的核心,管理硬件资源。
- GNU 计划:提供自由软件工具集(如 GCC, Bash)。
- Linus Torvalds:1991 年创建 Linux 内核。
- 开源与自由:遵循 GPL 协议,源代码公开,可自由使用、修改和分发。
- Linux vs. Windows
- 内核:Linux (单内核),Windows (混合内核)。
- 文件系统:Linux (一切皆文件,树形结构),Windows (驱动器盘符 C:, D:)。
- 命令行:Linux (核心功能,强大),Windows (PowerShell/CMD,辅助功能)。
- 开源:Linux (完全开源),Windows (闭源)。
- 稳定性与安全性:Linux (普遍认为更高),Windows (受病毒攻击更多)。
- 应用场景:Linux (服务器、嵌入式、开发),Windows (桌面办公、游戏)。
- Linux 体系结构
- 用户空间
- Shell (命令解释器)
- 应用程序
- GNU 工具集
- 内核空间
- 进程管理
- 内存管理
- 文件系统
- 设备驱动
- 系统调用/网络协议栈
- 硬件层:CPU, 内存, 硬盘, 显卡等。
- 用户空间
一级分支 2:核心组件
- 内核
- 功能:系统的大脑,与硬件直接交互。
- 特性:多用户、多任务、多线程、支持多种文件系统。
- Shell
- 定义:用户与内核之间的命令解释器。
- 常见类型:
- Bash (Bourne-Again Shell): Linux 默认 Shell,功能强大。
- Zsh (Z Shell): Bash 的超集,插件丰富 (如 Oh My Zsh)。
- Fish: 用户友好,语法高亮。
- Tcsh/csh: 传统 Shell。
- 文件系统
- 概念:组织和管理文件的方式。
- 核心思想:一切皆文件。
- 重要目录:
- (根目录)
/bin(基本命令)/etc(配置文件)/home(用户主目录)/usr(用户程序)/var(经常变化的文件,如日志)/proc(内核与进程信息)/sys(设备与内核信息)/tmp(临时文件)
- 包管理器
- 作用:自动化软件的安装、更新、卸载和依赖管理。
- 基于 Debian/Ubuntu (
.deb):apt(高级工具)dpkg(底层工具)
- 基于 RedHat/CentOS/Fedora (
.rpm):yum(旧版)dnf(新版)rpm(底层工具)
- 基于 Arch (
.pkg.tar.xz):pacman
- Snap/Flatpak:跨发行版的通用打包格式,解决依赖问题。
一级分支 3:常用命令
- 文件与目录操作
ls(list): 列出文件/目录。cd(change directory): 切换目录。pwd(print working directory): 显示当前路径。mkdir(make directory): 创建目录。touch: 创建空文件或更新文件时间。cp(copy): 复制文件/目录。mv(move/rename): 移动或重命名文件/目录。rm(remove): 删除文件/目录 (-r递归,-f强制)。ln(link): 创建链接 (硬链接/软链接)。
- 查看文件内容
cat: 显示整个文件内容。less/more: 分页显示文件内容。head: 显示文件开头几行。tail: 显示文件结尾几行 (-f实时追踪)。grep: 在文本中搜索匹配的行。
- 文本处理
nano/vim/emacs: 文本编辑器。echo: 输出文本到终端或文件。sed: 流编辑器,用于文本替换。awk: 文本处理工具,用于提取和格式化文本。
- 压缩与打包
tar: 打包/解包 (.tar,.tar.gz,.tar.bz2,.tar.xz)。gzip/gunzip: (.gz)。bzip2/bunzip2: (.bz2)。zip/unzip: (.zip)。
- 用户与权限
chmod: 修改文件/目录权限 (rwx,ugo)。chown: 修改文件/目录所有者。chgrp: 修改文件/目录所属组。su(switch user): 切换到其他用户 (如root)。sudo: 以超级用户权限执行命令。useradd/userdel: 添加/删除用户。passwd: 修改用户密码。
- 系统信息
uname -a: 显示所有系统信息。top/htop: 实时显示进程和资源占用。ps: 显示当前进程快照。df -h: 显示磁盘空间使用情况 (人类可读)。free -h: 显示内存使用情况。lscpu: 显示 CPU 信息。
- 网络命令
ifconfig/ip addr: 查看和配置网络接口。ping: 测试网络连通性。ssh: 安全远程登录。scp: 安全远程复制文件。wget/curl: 从网络下载文件。netstat/ss: 查看网络连接、端口监听状态。firewall-cmd/ufw: 管理防火墙。
一级分支 4:发行版
- 定义:将 Linux 内核与 GNU 工具集、桌面环境、应用软件等打包而成的完整操作系统。
- 分类
- Debian 及其衍生版
- Ubuntu: 最流行的桌面版,对新手友好。
- Linux Mint: 基于 Ubuntu,提供传统桌面体验。
- Debian: 稳定、纯净,是许多发行版的基础。
- Red Hat 及其衍生版
- Fedora: Red Hat 的社区版,技术前沿,适合开发者。
- CentOS: Red Hat 的企业版复刻,追求稳定,曾是服务器首选 (现由 CentOS Stream 接替)。
- RHEL (Red Hat Enterprise Linux): 商业支持,企业级稳定。
- Rocky Linux/AlmaLinux: CentOS 的社区继承者。
- SUSE 及其衍生版
- openSUSE: 以 YaST 配置工具和稳定性著称。
- SUSE Linux Enterprise Server (SLES): 商业企业版。
- Arch Linux 及其衍生版
- Arch Linux: 滚动更新,高度可定制,适合高级用户。
- Manjaro: 基于 Arch,提供易用的安装和配置。
- 其他
- Gentoo: 源码级安装,极致性能,适合专家。
- Slackware: 最古老的发行版之一,简洁、稳定。
- Deepin/Ubuntu Kylin: 专注于美观的中文桌面环境。
- Debian 及其衍生版
一级分支 5:学习与职业发展
- 学习路径
- 入门阶段:熟悉基本命令、文件系统结构、用户权限。
- 进阶阶段:Shell 脚本编程、网络配置、软件安装与编译、系统服务管理 (
systemd)。 - 高级阶段:内核编译、性能调优、安全加固、容器化技术。
- 推荐资源
- 书籍:《鸟哥的 Linux 私房菜》、《Linux 命令行与 shell 脚本编程大全》。
- 网站:The Linux Documentation (TLDP)、菜鸟教程、Runoob。
- 实践:在自己的电脑上安装双系统或虚拟机,多动手操作。
- 职业方向
- 运维工程师:负责服务器部署、监控、维护和高可用性。
- DevOps 工程师:融合开发和运维,自动化部署、持续集成/持续交付。
- 系统工程师:设计、构建和维护复杂的 IT 基础设施。
- 后端开发工程师:使用 Linux 作为开发和部署环境。
- 网络安全工程师:在 Linux 平台上进行安全审计和防御。
- 嵌入式开发:在物联网设备、路由器等硬件上运行定制化 Linux。
一级分支 6:高级主题
- Shell 脚本编程
- 变量、条件判断 (
if-else)、循环 (for,while)、函数。 - 自动化任务、批处理。
- 变量、条件判断 (
- 虚拟化与容器化
- 虚拟化:VMware, VirtualBox (模拟整个操作系统)。
- 容器化:
- Docker: 应用打包和运行的标准环境。
- Kubernetes (K8s): 容器编排平台,管理大规模容器应用。
- 桌面环境
- GNOME: 现代化、简洁,Ubuntu 默认。
- KDE Plasma: 功能丰富、高度可定制。
- XFCE: 轻量、快速,适合老旧硬件。
- Cinnamon: 传统、易用,Linux Mint 默认。
- 服务器应用
- Web 服务器: Apache, Nginx。
- 数据库: MySQL, PostgreSQL, MongoDB。
- 编程语言环境: Python, Java, Go, Node.js。
