Linux 实用指南:从入门到熟练的全面技术手册
Linux 作为一款开源、稳定且高度可定制的操作系统,已深度渗透到服务器、云计算、嵌入式设备、移动终端(如 Android 底层)等多个领域。无论是开发者、系统管理员,还是普通用户,掌握 Linux 技能都能显著提升工作效率和系统掌控力。
本指南旨在为 Linux 初学者到中级用户 提供一套系统化的实践教程,涵盖从安装配置到日常运维的核心知识点。我们将结合实际场景,通过具体命令示例、最佳实践和常见问题解析,帮助你快速上手并深入理解 Linux 系统。
目录#
- Linux 简介与发行版选择
- Linux 系统安装步骤
- Linux 基本命令与文件操作
- Linux 文件系统结构详解
- 用户与权限管理
- 包管理器:软件安装与维护
- 进程管理与系统监控
- 网络配置与故障排查
- Linux 系统安全最佳实践
- Shell 脚本入门与实用案例
- 效率提升:Linux 技巧与工具
- 总结与进阶方向
- 参考资料
1. Linux 简介与发行版选择#
1.1 Linux 核心优势#
- 开源免费:源代码公开,可自由修改和分发,降低企业成本。
- 稳定性与安全性:服务器领域平均无故障运行时间长,漏洞修复响应快。
- 多任务与多用户:支持同时运行多个进程和多用户并发操作。
- 高度可定制:从内核到应用,可根据需求裁剪系统。
1.2 常见发行版(Distro)及选择建议#
| 发行版 | 特点 | 适用场景 |
|---|---|---|
| Ubuntu | 易用性强,社区活跃,软件生态丰富 | 桌面用户、开发环境、小型服务器 |
| CentOS/RHEL | 稳定性极佳,企业级支持,长期维护 | 生产服务器、企业级应用 |
| Debian | 严谨稳定,开源洁癖,适合定制 | 服务器、嵌入式系统 |
| Arch Linux | 滚动更新,极简设计,适合技术爱好者 | 个人桌面、深度定制需求 |
| Fedora | 前沿技术,RedHat 测试版,更新频繁 | 开发测试、新技术尝鲜 |
选择建议:初学者优先推荐 Ubuntu(桌面/服务器版)或 CentOS Stream(免费企业级体验)。
2. Linux 系统安装步骤#
以 Ubuntu Server 22.04 LTS 为例,演示安装流程:
2.1 准备工作#
- 下载 ISO 镜像:Ubuntu 官网
- 制作启动盘:使用工具(如 Rufus、Etcher 或 Linux
dd命令)# Linux 下用 dd 制作启动盘(需替换 /dev/sdX 为 U 盘设备名) sudo dd if=ubuntu-22.04-live-server-amd64.iso of=/dev/sdX bs=4M status=progress - 硬件要求:至少 2GB 内存,20GB 存储(服务器建议 4GB+ 内存,40GB+ 存储)。
2.2 安装流程#
- 启动与选择语言:从 U 盘启动,选择安装语言(推荐英文,避免中文路径问题)。
- 网络配置:默认 DHCP 自动获取 IP,服务器建议手动设置静态 IP(通过
ip addr确认网卡名,如ens33)。 - 磁盘分区:
- 简单方案:单个
/分区 + swap 分区(内存 ≤8GB 时设为内存 1-2 倍,>8GB 可设 8GB)。 - 企业方案:
/boot(200MB)、/(根分区)、/home(用户数据)、/var(日志和缓存)、swap 单独分区。
- 简单方案:单个
- 用户设置:创建管理员用户(非 root),建议勾选 “Install OpenSSH Server” 以便远程管理。
- 等待安装完成:重启后移除启动盘,系统即可使用。
2.3 安装后必做事项#
# 更新系统包
sudo apt update && sudo apt upgrade -y
# 安装常用工具
sudo apt install -y vim wget curl htop net-tools3. Linux 基本命令与文件操作#
3.1 文件系统导航与查看#
| 命令 | 功能 | 示例 |
|---|---|---|
pwd | 显示当前工作目录 | pwd → /home/user |
cd | 切换目录 | cd /var/log(绝对路径)、cd ../(相对路径) |
ls | 列出目录内容 | ls -l(详细信息)、ls -la(显示隐藏文件) |
tree | 树形结构显示目录(需安装) | tree -L 2 /home(显示 2 层) |
3.2 文件/目录操作#
| 命令 | 功能 | 示例 |
|---|---|---|
mkdir | 创建目录 | mkdir -p /tmp/test/subdir(递归创建) |
touch | 创建空文件或更新时间戳 | touch newfile.txt |
cp | 复制文件/目录 | cp file1.txt /tmp/(文件)、cp -r dir1 /tmp/(目录) |
mv | 移动/重命名文件 | mv oldname.txt newname.txt(重命名)、mv file /tmp/(移动) |
rm | 删除文件/目录 | rm file.txt、rm -rf dir/(强制删除目录,谨慎使用!) |
cat | 查看文件内容(适合小文件) | cat /etc/passwd |
less/more | 分页查看大文件 | less /var/log/syslog(按 q 退出) |
head/tail | 查看文件开头/结尾内容 | head -n 10 file.txt(前 10 行)、tail -f /var/log/nginx/access.log(实时跟踪日志) |
3.3 文本搜索与处理#
grep:在文件中搜索字符串grep "error" /var/log/syslog # 搜索包含 "error" 的行 grep -r "password" /etc/ # 递归搜索 /etc 下含 "password" 的文件find:按条件查找文件find /home -name "*.txt" # 查找 /home 下所有 .txt 文件 find / -size +100M # 查找系统中大于 100MB 的文件
3.4 最佳实践#
- 谨慎使用
rm -rf:删除前先用ls确认目录内容,重要文件建议备份。 - 善用 Tab 补全:输入命令/路径时按
Tab键自动补全,减少输入错误。 - 使用绝对路径操作系统文件:如
/etc/fstab而非相对路径,避免误操作。
4. Linux 文件系统结构详解#
Linux 遵循 Filesystem Hierarchy Standard (FHS),所有文件以树形结构组织,根目录为 /。
4.1 核心目录功能#
| 目录 | 功能描述 |
|---|---|
/ | 根目录,所有文件的起点 |
/bin | 基础用户命令(二进制可执行文件),如 ls、cp |
/sbin | 系统管理命令,如 reboot、ifconfig |
/usr | 共享资源目录,包含 bin(用户命令)、lib(库文件)、local(第三方软件) |
/etc | 系统配置文件,如 passwd(用户信息)、nginx.conf(Nginx 配置) |
/home | 普通用户家目录,如 /home/user |
/var | 动态变化文件,如 log(日志)、cache(缓存)、spool(邮件/打印队列) |
/tmp | 临时文件,系统重启后清空 |
/proc | 虚拟文件系统,映射内核与进程信息(如 /proc/cpuinfo 显示 CPU 信息) |
/sys | 虚拟文件系统,硬件设备与驱动信息 |
4.2 示例:查看系统关键信息#
cat /proc/version # 查看内核版本
cat /etc/os-release # 查看发行版信息
df -h # 查看磁盘空间使用情况(-h 人类可读单位)
du -sh /home/* # 查看 /home 下各目录大小(-s 汇总,-h 单位)5. 用户与权限管理#
5.1 用户与组基本概念#
- 用户(User):每个用户有唯一 UID(0 为 root,1-999 系统用户,1000+ 普通用户)。
- 组(Group):用户的集合,便于批量权限管理,每个用户至少属于一个主组和多个附加组。
5.2 用户管理命令#
| 命令 | 功能 | 示例 |
|---|---|---|
useradd | 创建用户 | sudo useradd -m -s /bin/bash newuser(-m 创建家目录,-s 指定 shell) |
passwd | 设置用户密码 | sudo passwd newuser(输入密码) |
usermod | 修改用户属性 | sudo usermod -aG sudo newuser(添加到 sudo 组,获取管理员权限) |
userdel | 删除用户 | sudo userdel -r newuser(-r 同时删除家目录) |
id | 查看用户 UID/GID 信息 | id newuser → uid=1001(newuser) gid=1001(newuser) groups=1001(newuser),27(sudo) |
5.3 文件权限表示与修改#
Linux 文件权限通过 9 个字符 表示,分为 3 组(用户 owner、组 group、其他 others),每组包含 r(读,4)、w(写,2)、x(执行,1)。
示例:权限解析#
ls -l file.txt
# 输出:-rw-r--r-- 1 user user 0 Jun 1 12:00 file.txt
# 权限部分:- rw- r-- r--
# 第1位:文件类型(- 普通文件,d 目录,l 链接)
# 2-4位:owner 权限(rw- → 6)
# 5-7位:group 权限(r-- → 4)
# 8-10位:others 权限(r-- → 4)修改权限命令 chmod#
chmod u+x file.txt # 给 owner 添加执行权限
chmod g+w file.txt # 给 group 添加写权限
chmod o-r file.txt # 移除 others 的读权限
chmod 640 file.txt # 数字表示:owner=6(rw),group=4(r),others=0(无)修改所有者命令 chown#
sudo chown user:group file.txt # 将文件所有者改为 user,所属组改为 group
sudo chown -R user:group dir/ # 递归修改目录及内容的所有者5.4 最佳实践#
- 禁用 root 直接登录:通过普通用户 +
sudo提权操作,增强安全性。 - 最小权限原则:文件/目录权限仅授予必要的
rwx,避免777(任何用户可读写执行)。 - 定期清理无用用户:删除离职员工账户,避免权限泄露。
6. 包管理器:软件安装与维护#
Linux 软件通常通过 包管理器 安装,自动解决依赖关系。不同发行版使用不同工具:
6.1 Debian/Ubuntu(APT 包管理器)#
核心命令#
sudo apt update # 更新软件源索引(/etc/apt/sources.list)
sudo apt upgrade # 升级已安装软件
sudo apt install nginx # 安装 Nginx
sudo apt remove nginx # 卸载软件(保留配置文件)
sudo apt purge nginx # 彻底卸载(删除配置文件)
sudo apt autoremove # 自动删除无用依赖
sudo apt search "text editor" # 搜索软件
apt show vim # 查看软件详情配置国内源(加速下载)#
编辑 /etc/apt/sources.list,替换为阿里云/清华源(以 Ubuntu 22.04 为例):
# 阿里云源
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse6.2 CentOS/RHEL(DNF/YUM 包管理器)#
DNF 是 YUM 的升级版,兼容 YUM 命令。
sudo dnf check-update # 检查可更新软件
sudo dnf update # 升级所有软件
sudo dnf install httpd # 安装 Apache
sudo dnf remove httpd # 卸载软件
sudo dnf repolist # 列出已启用的软件源
sudo dnf clean all # 清理缓存6.3 最佳实践#
- 定期更新系统:
apt upgrade或dnf update,修复安全漏洞。 - 优先使用官方源:第三方源可能导致依赖冲突,仅添加可信源。
- 保留配置文件:卸载软件时用
remove而非purge(APT),避免误删配置。
7. 进程管理与系统监控#
7.1 进程基本概念#
- 进程:运行中的程序实例,拥有独立的内存空间和 PID(进程 ID)。
- 父进程与子进程:进程可创建子进程,父进程结束后子进程可能成为“孤儿进程”(由 init 进程收养)。
7.2 进程查看命令#
| 命令 | 功能 | 示例 |
|---|---|---|
ps | 查看当前终端进程 | ps aux(查看系统所有进程,a=所有用户,u=详细信息,x=无终端进程) |
top | 实时动态监控进程(交互式) | top -p 1234(监控 PID=1234 的进程) |
htop | 增强版 top,支持鼠标操作(需安装) | htop(按 F6 排序,F9 终止进程) |
pstree | 树形显示进程关系 | pstree -p(显示 PID) |
7.3 进程控制命令#
| 命令 | 功能 | 示例 |
|---|---|---|
kill | 发送信号终止进程 | kill 1234(默认发送 SIGTERM,允许进程优雅退出)、kill -9 1234(强制终止,SIGKILL) |
pkill | 按名称终止进程 | pkill nginx(终止所有 nginx 进程) |
bg/fg | 后台/前台运行进程 | sleep 100 &(后台运行)、bg %1(将任务 1 放入后台)、fg %1(调回前台) |
nohup | 忽略挂断信号,进程后台持久运行 | nohup ./script.sh &(日志输出到 nohup.out) |
7.4 系统资源监控#
free -h # 查看内存使用(-h 单位:G/M)
vmstat 2 # 每 2 秒输出一次系统状态(CPU、内存、IO)
iostat -x 2 # 查看磁盘 IO 性能(需安装 sysstat)
netstat -tuln # 查看监听端口(t=TCP,u=UDP,l=监听,n=数字端口)
ss -tuln # 替代 netstat 的新命令,更高效8. 网络配置与故障排查#
8.1 网络基础命令#
| 命令 | 功能 | 示例 |
|---|---|---|
ip addr | 查看/配置网络接口(替代 ifconfig) | ip addr show ens33(显示指定网卡信息) |
ping | 测试网络连通性 | ping -c 4 baidu.com(发送 4 个包) |
traceroute | 跟踪数据包路径 | traceroute baidu.com(显示路由跳数) |
curl/wget | 下载文件或测试 HTTP 连接 | curl -I https://baidu.com(查看响应头)、wget https://example.com/file.iso |
ss -tulnp | 查看端口占用及对应进程(需 root) | `ss -tulnp |
8.2 静态 IP 配置(Ubuntu 示例)#
方法 1:netplan(Ubuntu 18.04+)#
编辑配置文件 /etc/netplan/00-installer-config.yaml:
network:
version: 2
renderer: networkd
ethernets:
ens33: # 网卡名(通过 ip addr 查看)
dhcp4: no
addresses: [192.168.1.100/24] # IP 及子网掩码
gateway4: 192.168.1.1 # 网关
nameservers:
addresses: [8.8.8.8, 114.114.114.114] # DNS 服务器应用配置:sudo netplan apply
8.3 网络故障排查步骤#
- 检查物理连接:网线是否插好,无线是否连接。
- 查看 IP 配置:
ip addr确认是否获取到 IP。 - 测试网关连通性:
ping 192.168.1.1(网关 IP)。 - 测试 DNS 解析:
ping baidu.com(若 IP 通但域名不通,可能 DNS 故障)。 - 查看防火墙规则:
sudo ufw status(Ubuntu)或sudo firewall-cmd --list-all(CentOS),确认端口是否开放。
9. Linux 系统安全最佳实践#
9.1 防火墙配置#
Ubuntu(UFW,简单防火墙)#
sudo ufw enable # 启用防火墙(开机自启)
sudo ufw disable # 禁用防火墙
sudo ufw status # 查看状态
sudo ufw allow 22/tcp # 允许 SSH 端口(TCP)
sudo ufw allow 80,443/tcp # 允许 HTTP/HTTPS 端口
sudo ufw deny 3306/tcp # 禁止 MySQL 端口外部访问CentOS(Firewalld)#
sudo systemctl start firewalld # 启动服务
sudo systemctl enable firewalld # 开机自启
sudo firewall-cmd --add-service=ssh --permanent # 永久开放 SSH 服务
sudo firewall-cmd --add-port=80/tcp --permanent # 永久开放 80 端口
sudo firewall-cmd --reload # 重载配置生效9.2 SSH 安全加固#
SSH 是远程管理的主要方式,需重点防护:
- 禁用密码登录,使用密钥登录:
# 客户端生成密钥对 ssh-keygen -t ed25519 # 生成 ed25519 算法密钥(更安全) # 上传公钥到服务器 ssh-copy-id user@server_ip # 服务器端编辑 /etc/ssh/sshd_config PasswordAuthentication no # 禁用密码登录 PubkeyAuthentication yes # 启用密钥登录 sudo systemctl restart sshd # 重启 SSH 服务 - 修改默认 SSH 端口(如 22 → 2222):
编辑/etc/ssh/sshd_config,设置Port 2222,并更新防火墙规则。 - 限制登录用户:
在sshd_config中添加AllowUsers user1 [email protected]/24(仅允许 user1 和 192.168.1.x 网段的 user2 登录)。
9.3 其他安全措施#
- 定期更新系统:
sudo apt upgrade或sudo dnf update,修复安全漏洞。 - 安装 Fail2ban:防御 SSH 暴力破解
sudo apt install fail2ban # 安装 sudo systemctl enable --now fail2ban # 启动并自启 - 文件权限控制:敏感文件(如私钥、配置文件)设置为
600(仅所有者读写)。
10. Shell 脚本入门与实用案例#
Shell 脚本是自动化任务的利器,支持变量、循环、条件判断等逻辑。
10.1 基础语法#
- Shebang:指定解释器,开头添加
#!/bin/bash。 - 变量:
name="Linux",引用时用$name或${name}。 - 条件判断:
if [ condition ]; then ... fi(注意[ ]前后空格)。 - 循环:
for循环、while循环。
10.2 实用脚本案例:日志备份工具#
#!/bin/bash
# 功能:备份 /var/log 目录到 /backup,保留最近 7 天的备份
# 变量定义
LOG_DIR="/var/log"
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)
BACKUP_FILE="${BACKUP_DIR}/log_backup_${DATE}.tar.gz"
# 创建备份目录
mkdir -p ${BACKUP_DIR}
# 备份并压缩
echo "Starting backup: ${BACKUP_FILE}"
tar -czf ${BACKUP_FILE} ${LOG_DIR}
# 检查备份是否成功
if [ $? -eq 0 ]; then
echo "Backup succeeded."
else
echo "Backup failed!"
exit 1
fi
# 删除 7 天前的备份
find ${BACKUP_DIR} -name "log_backup_*.tar.gz" -mtime +7 -delete
echo "Old backups deleted."使用方法:
chmod +x backup_logs.sh # 添加执行权限
sudo ./backup_logs.sh # 运行脚本(需 root 权限访问 /var/log)11. 效率提升:Linux 技巧与工具#
11.1 命令行快捷键#
Ctrl + A:移动光标到行首Ctrl + E:移动光标到行尾Ctrl + U:删除光标前所有字符Ctrl + K:删除光标后所有字符Ctrl + R:搜索历史命令(输入关键词后按Ctrl + R循环查找)
11.2 实用工具推荐#
htop:进程监控,替代top。tmux:终端复用工具,支持多窗口、会话保存(断网重连后恢复工作状态)。tmux new -s session1 # 创建会话 tmux attach -t session1 # 连接会话 tmux ls # 列出所有会话fzf:命令行模糊搜索工具,快速查找文件/历史命令。axel:多线程下载工具,替代wget(如axel -n 10 http://example.com/file.iso)。
12. 总结与进阶方向#
12.1 核心知识点回顾#
- Linux 发行版选择与安装流程。
- 基本命令:文件操作、用户权限、进程管理、网络配置。
- 系统管理:包管理、服务控制、安全加固。
- 自动化:Shell 脚本基础应用。
12.2 进阶学习方向#
- Linux 内核:内核编译、模块开发、性能调优。
- 容器技术:Docker、Kubernetes 部署与管理。
- Shell 高级编程:函数、数组、正则表达式、awk/sed 文本处理。
- 监控与运维:Prometheus、Grafana、ELK 日志分析。
13. 参考资料#
- 官方文档:
Ubuntu 文档:https://help.ubuntu.com
CentOS 文档:https://docs.centos.org
Linux 内核文档:https://www.kernel.org/doc/html/latest/ - 书籍:
《Linux 命令行与 shell 脚本编程大全》(第三版)
《鸟哥的 Linux 私房菜》(基础篇+服务器篇)
《深入理解 Linux 内核》(第 3 版) - 在线教程:
Linux 中国:https://linux.cn
菜鸟教程:https://www.runoob.com/linux/linux-tutorial.html
希望本指南能帮助你快速掌握 Linux 实用技能!实践是学习 Linux 的最佳方式,多动手操作、解决实际问题,才能真正提升熟练度。如有疑问,欢迎留言交流~