Linux系统与Shell
Linux System and Shell
📖这门课到底讲什么
Linux 系统与 Shell 是最贴近工程日常的一门课:Linux 文件系统与权限模型、常用命令(文件、文本处理、进程、网络、压缩)、Shell 脚本编程(变量、条件、循环、函数、管道与重定向)、软件包管理、用户与权限、环境变量与启动流程、以及远程登录与基本服务管理。它是所有后端、运维、算法、嵌入式工作的基础环境,服务器上 90% 以上的工作都在命令行完成。学完你应能在纯命令行环境下完成开发、调试与部署的绝大多数操作,写出实用的 Shell 脚本做批量处理与自动化,遇到权限、端口、进程问题能自己排查而不依赖图形界面。
🎯为什么必须学好
几乎所有面试都会问你熟悉哪些 Linux 命令、如何排查 CPU 与内存占用高、如何查找大文件与日志关键字;实习与工作中服务器无图形界面,不会命令行的同学前两周基本无法产出。掌握 Shell 与常用工具能让你在数据清洗、日志分析、批量部署上效率数倍于他人。这是投入产出比最高的一门实用技能课,建议早学早用,贯穿整个大学生涯。
📌核心知识清单
- 文件系统与目录结构:/etc、/var、/home、/usr 的职责,inode 与硬链接软链接的区别,挂载与磁盘使用查看
- 文件操作命令:ls/cd/cp/mv/rm/find/locate、通配符与正则配合 find、tar 与 zip 打包压缩、scp 与 rsync 传输
- 文本处理三剑客:grep 检索、sed 流编辑、awk 按列处理,配合 sort/uniq/wc/cut 完成日志分析
- 权限与用户管理:rwx 权限与 chmod/chown、umask、sudo 与 su、用户组管理、特殊权限位 setuid 与粘滞位
- 进程与作业控制:ps/top/htop/kill/pkill、前后台作业与 jobs/fg/bg、nohup 与守护进程、定时任务 crontab
- 重定向与管道:标准输入输出与错误、> 与 >> 与 2>、tee、管道组合多个命令、命令替换与进程替换
- Shell 脚本编程:变量与引号规则、位置参数、if/case、for/while、函数、数组、错误码与 set -e,编写带参数解析的脚本
- 网络与远程管理:ifconfig/ip、netstat 与 ss、curl 与 wget、ssh 与免密登录、scp 传输、scp 与 sftp、简单服务启停与日志查看
✍️怎么学(可执行步骤)
- 以《鸟哥的Linux私房菜 基础学习篇》为主线,重点第5至12章,同时在虚拟机或 WSL 里实操,每学一个命令当场敲三遍并做笔记
- 用 MIT《The Missing Semester》前几讲系统学习 Shell 与命令行工具,跟着课程作业写脚本,比零散记命令更成体系
- 给自己布置真实任务:写日志分析脚本(统计访问量 Top10 IP、提取错误行)、批量重命名与文件整理脚本、自动备份脚本加 crontab 定时执行
- 把日常开发全部搬到命令行:用 vim 或 nano 编辑、用 ssh 连接远程主机、用 tmux 保持会话,坚持一个月后命令行速度会明显超过图形界面
📚推荐教材与书籍
中文 Linux 入门与手册的标杆,重点第5至12章文件权限、磁盘、压缩、vim、bash 与正则
The Linux Command Line 中文版,讲清每个命令的用法与设计思想,Shell 脚本章节尤其好
从系统调用角度理解命令背后的机制,适合想深入理解进程与文件描述符的同学
🎬视频课程 / 公开课
讲 Shell、脚本、数据整理、版本控制、调试与性能分析,是这门课最好的系统教程
选择播放量高的系统课程跟做实验,边看边在虚拟机里敲命令
🌐网站与文档
中文命令速查,含例子与参数说明,忘了语法时一秒查到
把一长串命令粘贴进去,逐段解释每个参数含义,学习复杂命令极有用
系统调用与命令的权威手册,深入理解行为时查阅
🐙GitHub 开源资料
五百多个 Linux 命令的中文详解,可离线部署,日常查阅首选
编程语言与工具的速查表合集,含 Linux、bash、vim、tmux
命令行艺术的精选技巧合集,读一遍能发现大量提升效率的用法
🧪动手实践任务
实践 1
写一个日志分析脚本:从 nginx 访问日志中统计 Top10 访问 IP、状态码分布与每小时请求量,输出格式化的结果到文件
实践 2
写一个自动备份脚本:用 tar 打包指定目录加时间戳,保留最近七天备份并删除旧文件,用 crontab 每天凌晨自动执行
实践 3
在虚拟机中完成一整套服务部署演练:创建用户与目录权限、安装软件包、用 systemd 或 nohup 启动服务、配置 ssh 免密、用 tmux 保持会话
实践 4
整理一份个人命令速查表:把 find、grep、awk、sed、ss、crontab 的常用组合写成一页,配使用场景说明
🧾考试与面试
💼 面试会怎么考
高频:查看 CPU 与内存占用最高的进程、如何排查内存泄漏或负载高(top/ps/sar 加日志);如何查找并删除大文件、如何在日志中搜索关键字并统计出现次数(grep 加 awk 加 sort 加 uniq);软链接与硬链接的区别;进程与线程在 Linux 中的展示(ps -efL);如何查看端口占用与网络连接(netstat/ss/lsof);文件权限 755 与 644 的含义;如何让程序在退出终端后继续运行(nohup 加 &、systemd)。
📝 期末与考研怎么过
考核多为上机实验与命令操作题:按要求完成文件与权限操作、写出指定功能的 Shell 脚本、用管道组合命令完成文本统计。备考关键是多动手,把常见场景写成脚本模板(统计、批量重命名、条件判断),考试时直接改写。目标八十五分以上,这门课的分数通常不难拿,真正价值在于把技能变成日常习惯。
⚠️ 常见坑
- 在图形界面里操作文件而从不用命令行,考场上连 cd 与相对路径都写不利索
- rm -rf 不加确认与参数检查,一条命令误删重要文件;写脚本时应加变量校验与 dry-run 模式
- Shell 脚本里变量不加引号,路径含空格时脚本崩溃;应养成变量加双引号的习惯
- 忽略权限与属主问题,遇到 Permission denied 就整目录 chmod 777,这是安全隐患而非解决方案
- 脚本只在本机能跑,忽视可移植性(shebang、依赖命令是否存在、绝对路径),部署到服务器就失败