Linux 必备的20个核心知识点
学习和使用 Linux 所必备的20个核心知识点。这些知识点涵盖了从基础操作到系统管理和网络概念,是构建扎实 Linux 技能的基础。
Linux 必备的 20 个知识点
1. Linux 文件系统层级标准 (FHS)
* 理解: FHS 规定了 Linux 系统中文件和目录的组织结构。了解 /bin, /etc, /home, /var, /tmp, /usr, /opt 等目录的用途至关重要,有助于你找到文件和理解系统配置。
* 示例: 配置文件通常在 /etc;用户数据在 /home;临时文件在 /tmp。
2. 命令行界面 (CLI) 基础
* 理解: 熟练使用 Bash 或 Zsh 等 shell 进行操作,包括命令输入、Tab 自动补全、历史命令查找等。
* 常用命令: ls, cd, pwd, cp, mv, rm, mkdir, rmdir。
3. 文件和目录操作
* 理解: 创建、删除、复制、移动、重命名文件和目录。
* 高级用法: cp -r (递归复制目录), rm -rf (强制递归删除), mv (移动/重命名)。
4. 文件权限和所有权
* 理解: Linux 采用基于用户、组、其他人的读(r)、写(w)、执行(x)权限模型。
* 常用命令: chmod (修改权限), chown (修改所有者), chgrp (修改组)。
* 示例: chmod 755 script.sh (所有者rwx,组和其他r-x)。
5. 用户和组管理
* 理解: 如何创建、删除用户和组,以及将用户添加到组。
* 常用命令: useradd, usermod, userdel, groupadd, groupdel, passwd。
* 配置文件: /etc/passwd, /etc/shadow, /etc/group。
6. 文本文件查看和编辑
* 理解: 能够查看和编辑文本文件,这是日常管理和配置的基础。
* 查看命令: cat, more, less, head, tail。
* 文本编辑器: Vim 或 Nano (至少掌握一种的基本操作)。
7. 输入/输出重定向和管道
* 理解: 将命令的输出发送到文件或作为另一个命令的输入。
* 重定向: > (覆盖), >> (追加), 2> (错误重定向), &> (所有输出重定向)。
* 管道: | (将一个命令的输出作为另一个命令的输入)。
* 示例: ls -l | grep ".txt" (列出所有 .txt 文件)。
8. 进程管理
* 理解: 如何查看、启动、停止和管理系统中的运行程序(进程)。
* 常用命令: ps, top, htop, kill, killall, nice, renice, nohup。
* 概念: PID, PPID, 进程状态 (R, S, D, Z, T)。
9. 服务管理 (Systemd)
* 理解: 现代 Linux 系统(如 CentOS/RHEL 7+, Ubuntu 15+)使用 Systemd 管理系统服务。
* 常用命令: systemctl start/stop/restart/status service_name, systemctl enable/disable service_name。
* 旧版: SysVinit (Service 命令)。
10. 软件包管理
* 理解: 如何安装、更新、卸载软件。
* Debian/Ubuntu: apt (或 apt-get, dpkg)。
* sudo apt update, sudo apt install package_name。
* Red Hat/CentOS/Fedora: yum 或 dnf。
* sudo yum update, sudo yum install package_name。
11. 压缩和解压缩
* 理解: 打包和压缩文件以便存储和传输。
* 常用工具: tar, gzip, bzip2, zip, unzip。
* 示例: tar -czvf archive.tar.gz directory/ (打包并用 gzip 压缩)。
12. 查找文件和内容
* 理解: 在文件系统中查找特定文件或在文件内容中查找文本。
* 文件查找: find (强大且灵活,可按名称、大小、时间等查找)。
* find . -name "*.log"
* 内容查找: grep (在文件中搜索文本模式)。
* grep "error" /var/log/syslog
13. 网络配置基础
* 理解: 如何查看和配置网络接口、IP 地址、网关和 DNS。
* 常用命令: ip a (或 ifconfig - 旧版), ping, netstat (或 ss - 新版), dig (或 nslookup), route。
* 配置文件: /etc/network/interfaces (Debian/Ubuntu),
/etc/sysconfig/network-scripts/ifcfg-eth0 (CentOS/RHEL)。
14. SSH 远程连接
* 理解: 安全地远程连接到 Linux 服务器。
* 常用命令: ssh user@hostname。
* SSH 密钥对: 使用 ssh-keygen 生成密钥,并通过 ssh-copy-id 部署公钥以实现无密码登录。
15. 定时任务 (Cron)
* 理解: 安排命令或脚本在指定时间自动运行。
* 常用命令: crontab -e (编辑当前用户的 cron 任务)。
* 语法: * * * * * command_to_execute (分钟 小时 日 月 周 命令)。
16. 磁盘和存储管理
* 理解: 查看磁盘空间使用情况、文件系统挂载点。
* 常用命令: df -h (磁盘空间), du -sh (目录大小), mount (挂载文件系统), umount (卸载文件系统), fdisk/parted (分区)。
17. 日志文件查看和分析
* 理解: 系统和应用程序日志是故障排查的关键。
* 常见日志文件: /var/log/syslog (Debian/Ubuntu), /var/log/messages (CentOS/RHEL), /var/log/auth.log (认证信息),
/var/log/apache2/access.log (Web 服务器访问日志)。
* 查看工具: tail -f (实时查看日志), grep, less。
18. Bash 脚本编程基础
* 理解: 编写简单的 Shell 脚本来自动化任务。
* 核心概念: Shebang (#!/bin/bash), 变量, 条件语句 (if), 循环 (for, while), 函数。
* 示例: 编写一个备份脚本或系统监控脚本。
19. 环境变量
* 理解: 环境变量是影响 Shell 和程序行为的变量。
* 常用环境变量: PATH, HOME, USER, LANG。
* 查看: printenv 或 echo $PATH。
* 设置: export MY_VAR="value"。
* 配置文件: ~/.bashrc, ~/.profile, /etc/profile。
20. 进程间通信 (IPC) 基础概念
* 理解: 进程之间如何共享数据和协调工作。
* 常见方式: 管道 (|), 信号 (如 SIGTERM, SIGKILL), 共享内存, 消息队列, 套接字。
掌握这20个知识点,你将拥有在 Linux 环境下高效工作、解决问题和进行系统管理的基本能力。当然,Linux 的世界非常广阔,这只是一个开始,但它们为你深入学习和探索打下了坚实的基础。