跳转到内容

Linux 基础

这份内容面向刚开始接触 Linux 终端的大学生。目标不是让你背完所有命令,而是建立一套能快速上手的操作直觉,减少在课程实验、开发环境和服务器操作中的无效卡壳。

  • 建立终端、路径和权限的基本认知
  • 掌握高频排查习惯
  • 能在常见学生项目场景里独立完成基础操作

Linux 里的大部分问题,都可以从“当前目录在哪里”和“我有没有权限”两个角度拆解。先记住几个最常用命令:

Terminal window
pwd
ls -l
cd /home/moran/project/mCourse

其中 ls -l 不只是看文件名,还能看到文件类型、所有者、组权限,以及最近修改时间。做课程实验时,如果提示 Permission denied,先看当前目录和文件的权限组合。

  • 先确认当前位置,再执行命令
  • 看到报错先看路径和文件名,不要重复重试
  • 不确定参数时,先用 --help 查看说明

不同发行版的包管理命令不一样,你只要先记住自己常用的那一套即可。比如 Homebrew 在 macOS 上可以管理很多开源工具,而在 Linux 上你更可能遇到 aptbrew 的变体。

Terminal window
brew install <package>
brew update
brew upgrade

配置环境变量时,优先修改 ~/.bashrc~/.zshrc~/.config/fish/config.fish,不要随手改全局配置。这样做的好处是,重装系统或换机器时,你只需要恢复配置文件,而不是重新安装每一个工具。

遇到终端报错时,按这个顺序排查通常最快:

  1. 看命令输出中的当前路径和文件名
  2. 确认是否敲错了选项或大小写
  3. 检查配置文件是否有多余空格或语法错误
  4. --helpman <command> 重新确认参数

养成这种顺序,能减少很多“明明看着没错,但就是跑不起来”的无效尝试。

如果你现在只能记住三件事,记住这三个:

  • 在项目目录里先执行 pwd 再继续操作
  • 频繁使用 ls -l 查看文件状态
  • 所有项目级配置都放在用户目录下,而不是系统目录

掌握这些,足够应付大多数课程项目、开源项目克隆和基础部署准备工作。

课程项目里最常见的问题往往不是“Linux 太难”,而是“环境没对齐”。建议你用下面这套最小检查清单:

  1. 确认终端当前目录是否正确
  2. 确认命令是否在 PATH 里
  3. 确认用户是否有目录读写权限
  4. 确认命令选项和参数格式是否匹配当前版本

很多问题在第四步之前就能被发现,剩下的大部分问题也会因此变得更可解释。

在 Linux 环境里,路径不是只有“绝对路径”和“相对路径”这么简单。理解软链接能帮你减少很多重复配置:

Terminal window
ln -s /usr/local/bin/node /home/moran/.local/bin/node

软链接适合把全局工具映射到用户目录,也适合把共用配置接入某个项目目录。使用时的原则是:只链接你明确知道的目录或文件,不要盲链模糊路径。

进阶补充:后台任务与会话管理

Section titled “进阶补充:后台任务与会话管理”

学生最容易遇到的情况之一是:SSH 断开后,正在跑的任务突然停止。最小可用的应对方式不是安装复杂工具,而是先理解基础机制:

  • 普通命令会占用当前终端
  • Ctrl + Z 会把前台任务挂起
  • bg 可以让挂起任务继续在后台运行
  • disownnohup 能减少会话中断影响

如果你只是临时跑一个脚本或下载文件,优先先判断它是否需要长期存活,再决定是否使用更稳妥的方式托管。

进阶补充:文本查看与快速检索

Section titled “进阶补充:文本查看与快速检索”

课程项目里,文件查看和检索比“背命令”更实用。先建立这套最小工具组合:

  • 看全文:less
  • 搜索关键词:grep
  • 搜索文件名:find
  • 按大小排序查看:ls -lS

遇到“这个目录下有没有配置文件”时,优先先缩小范围,而不是直接打开目录里所有文件。养成“先筛,再看”的习惯,效率会明显更高。

进阶补充:权限理解的最小边界

Section titled “进阶补充:权限理解的最小边界”

很多学生看到 chmod 会直接搜“777 怎么打”,但其实更实用的是先看懂三组权限:

  • 所有者
  • 所属组
  • 其他用户

默认情况下,优先检查用户身份、当前目录归属和目录可执行权限。大多数“Permission denied”都不是系统故意限制,而是当前身份与目录层级不匹配。

在课程实验或前后端联调时,最常见的后端问题不是“代码写错”,而是端口已经被占用。最小排查顺序是:

  1. 查看当前用户相关进程:ps aux | grep <name>
  2. 查看端口占用:lsof -i :<port>ss -ltnp
  3. 确认占用者是否为你当前用户启动的进程
  4. 确认是否可以通过关闭旧进程解决问题

如果你只记住一条经验,那就是:先查端口,再怀疑代码。

课程作业提交、文件迁移、项目备份都会遇到压缩包。最实用的最小命令组合是:

Terminal window
tar -czf package.tar.gz /path/to/directory
tar -xzf package.tar.gz -C /target/directory

这里的关键不是背参数,而是记住两件事:压缩优先用 tar,解压前先确认目标目录是否存在且可写。

很多学生项目不需要一开始就用复杂调度系统。Linux 自带的 cron 已经能覆盖课程阶段大多数需求:

  • 编辑定时任务:crontab -e
  • 查看当前用户定时任务:crontab -l

适用场景包括:定时备份实验数据、定时拉取远端仓库、定时清理临时目录。如果你能熟练用 cron 完成一件小事,就已经比很多只会手动重复操作的同学更接近工程化思维。

<InteractiveQuiz title=“Linux 小测” questions={[ { question: ‘Linux 下查看当前目录权限的常用命令是?’, options: [‘ls -l’, ‘cd /home’, ‘mkdir temp’, ‘rm -rf’], correctValue: ‘ls -l’, explanation: ‘ls -l 会列出当前目录下文件和目录的详细权限信息。’, }, { question: ‘遇到“Permission denied”时,最优先检查的是?’, options: [‘当前目录与文件权限’, ‘更换 Shell’, ‘重装系统’, ‘删除命令历史’], correctValue: ‘当前目录与文件权限’, explanation: ‘多数权限问题都和当前用户、目录归属、可执行位有关。’, }, { question: ‘临时需要让后台任务持续运行,最小可用方式是?’, options: [‘nohup 或 disown’, ‘rm -rf /tmp’, ‘直接关机’, ‘只运行 pwd’], correctValue: ‘nohup 或 disown’, explanation: ‘nohup 或 disown 能降低 SSH 断开导致任务中断的影响。’, }, ]} />