命令行与 Linux 基础
学命令行的真实收益,不是“看起来很专业”,而是两件很实际的事:
- 你能读懂别人给的教程。 装环境、跑代码、配服务器的说明,几乎全是以终端命令写的。看不懂,你就只能到处找人帮忙。
- 你能在没有图形界面的机器上干活。 实验室的服务器、租的算力机器、实习时的线上环境,都没有桌面可以点。
为什么现在就该学
本节:为什么现在就该学| 场景 | 具体会发生什么 |
|---|---|
| 程序设计与实验课 | 编译、运行、传数据、跑脚本,很多步骤只有命令行版本。 |
| 科研 | 连实验室服务器跑实验、传数据集、看日志、挂长任务,全在终端里。 |
| 实习 | 看服务日志、部署、排查环境问题,是研发岗的日常。 |
| 日常生活 | 批量改文件名、批量转换格式、从一堆文件里搜关键词——这些用命令行是几秒钟的事。 |
马上能做的
本节:马上能做的- 打开终端(macOS 用「终端」,Windows 可以用系统自带的终端或 WSL),敲一遍
pwd、ls、cd,确认自己在哪、有什么、能去哪。 - 在你的家目录下建一个
practice文件夹,在里面练习新建、复制、重命名、删除各一次。 - 练会 Tab 补全:打路径时只敲前几个字母就按 Tab,让它自己补完。这一条能省下你大量时间。
- 用
man或--help查一个你刚用过的命令,看看它还有什么参数。 - 如果你有实验室或课程服务器,只做一件事:登录上去,
pwd看看自己在哪,然后退出,不要改任何东西。
二十条够用的命令
本节:二十条够用的命令先看「看和走」,再看「改」,最后看「连远端」。不要背,用的时候回来查。
看和走
本节:看和走| 命令 | 作用 | 备注 |
|---|---|---|
pwd |
我现在在哪个目录 | 迷路时第一件事 |
ls |
这个目录里有什么 | ls -l 看详细信息,ls -a 连隐藏文件一起看 |
cd <目录> |
切换目录 | cd ~ 回家目录,cd .. 上一层 |
cat <文件> |
把文件内容打到屏幕上 | 只适合小文件 |
less <文件> |
分页看大文件 | 空格翻页,q 退出。看日志用它,不要用 cat |
head / tail |
看文件开头 / 结尾 | tail -f 可以持续跟一个正在写的日志 |
grep <关键词> <文件> |
在文件里搜内容 | 加 -r 搜整个目录,是查报错最常用的手段 |
find <目录> -name "*.csv" |
按名字找文件 | 忘记文件放哪时用 |
man <命令> |
查这个命令的说明书 | 不用联网,比搜索引擎靠谱 |
改和建
本节:改和建| 命令 | 作用 | 备注 |
|---|---|---|
mkdir <目录名> |
新建目录 | 建多层加 -p |
cp <源> <目标> |
复制 | 复制目录加 -r |
mv <源> <目标> |
移动,也可以用来重命名 | 同一个目录下移动就是改名 |
rm <文件> |
删除 | 删目录要加 -r,没有回收站 |
chmod <权限> <文件> |
改权限 | 常见如 755、644,含义见下文 |
echo <文字> |
输出一段文字 | 常用来测试和写进文件 |
tar |
打包 / 解包 | 解压 .tar.gz 用 -xzf,打包用 -czf |
ps |
看正在运行的进程 | 想知道自己刚才跑的任务还在不在 |
kill <编号> |
结束一个进程 | 从 ps 的输出里拿到编号 |
连远端
本节:连远端| 命令 | 作用 | 备注 |
|---|---|---|
ssh <用户>@<地址> |
登录远程机器 | 第一次连接会问是否信任该主机 |
scp <文件> <用户>@<地址>:<路径> |
在两台机器之间传文件 | 传大文件先压缩 |
两个比命令更重要的符号
本节:两个比命令更重要的符号- 管道
|:把左边命令的输出,当成右边命令的输入。例如“看日志的最后一部分,并在里面搜错误”,一条命令就能完成。 - 重定向
>和>>:把输出写进文件。>会覆盖原内容,>>是追加。用>之前先确认文件名。
路径与权限
本节:路径与权限这两件事搞懂了,命令行的报错你能自己解决一大半。
路径:
- 以
/开头的是绝对路径,从根目录算起;否则是相对路径,从你当前所在位置算起。 ~是你的家目录,.是当前目录,..是上一层。- 路径里有空格要加引号(
"我的 文件.txt"),否则会被当成两个参数——这是初学者最常见的一类怪错误。 - 以
.开头的文件是隐藏文件,ls默认看不到,要用ls -a。
权限:用 ls -l 看到的那串 rwxr-xr-x,是三组权限:
| 位置 | 管谁 | 常见含义 |
|---|---|---|
第一组 rwx |
文件属主 | 可读、可写、可执行 |
第二组 r-x |
同组用户 | 可读、可执行,不能改 |
第三组 r-x |
其他人 | 同上 |
chmod 后面的数字就是这三组的简写:7 是 rwx,5 是 r-x,4 是 r--。
755:属主全权限,其他人可读可执行——常用于目录和脚本。644:属主可读写,其他人只读——常用于普通文件。
连实验室 / 课程服务器
本节:连实验室 / 课程服务器第一次连服务器之前,先问清三件事:
- 地址和端口是什么(以及用不用跳板机)。
- 账号怎么拿(找谁开通、用不用密钥)。
- 要不要在校园网或学校 VPN 里才能连(校外访问的通用做法见校内常用链接)。
第一次登录之后,只做三件无害的事:pwd 看自己落在哪个目录、ls -a 看家目录里有没有别人留的说明文件、确认有没有现成的环境或使用文档。不要急着装东西、改配置。
几个保命的习惯:
- 改任何配置前先备份:
cp 配置文件 配置文件.bak。改坏了能一条命令还原。 - 长任务要用会话保持工具(例如 tmux 或 screen)。否则你的网络一断,跑了两小时的任务就没了。
- 先看别人怎么跑,再决定自己怎么跑。共享机器上把 CPU 和内存占满,会影响整个课题组。
- 代码和数据分开放,日志写进固定目录,别把家目录塞满。
- 不要用别人的账号,也不要把自己的密钥和密码给别人。
常见报错怎么读
本节:常见报错怎么读报错的英文其实很直白,把它翻译成人话就好办了:
| 报错 | 大概率原因 | 下一步 |
|---|---|---|
Permission denied |
权限不够,或文件不属于你 | 先看 ls -l 的权限位和属主;不要先想 sudo |
command not found |
没装、拼错,或不在环境变量里 | 确认拼写,查一下有没有安装,看是不是需要先激活环境 |
No such file or directory |
路径写错、大小写不对、名字里有空格 | 用 Tab 补全代替手打路径 |
Connection refused / timed out |
地址或端口不对、服务没开、网络环境不对 | 先确认是不是必须在校园网 / VPN 内 |
Killed |
内存超限,被系统强制结束 | 减小数据规模、分批处理,或申请更多资源 |
No space left on device |
磁盘满了 | 看是哪个目录占了空间,清理自己的临时文件 |
| 中文显示成乱码 | 编码不一致 | 统一用 UTF-8;注意在 Windows 上编辑过的文件 |
bad interpreter / 奇怪的语法错误 |
脚本在 Windows 上编辑过,换行符不一样 | 用专门的转换方式处理换行符,或在服务器上重新编辑 |
常见坑
本节:常见坑延伸阅读
本节:延伸阅读- Missing Semester 中文版 —— 终端那一讲把管道、权限、脚本讲得比大多数教程清楚。只读终端和数据整理两讲,就够覆盖本文的全部内容还有余。
- 计算机系学生科协技能引导文档 —— 里面有更完整的 Linux 入门,包括 shell、文件系统、SSH 的细节,适合当参考手册。
- 清华镜像站 —— 装环境、下软件、拉依赖时用得上。每个仓库页面上都写了自己的使用方式,照着改配置能明显加快下载速度。
- 校内 VPN 入口 —— 不在校园网时访问校内资源用。具体使用方式和适用范围以官方说明为准。
免责声明:本站是学生自发整理的经验分享,不代表清华大学官方立场。涉及培养方案、选课规则、绩点计算、保研政策等一切制度性内容, 请以教务、院系和学校官方通知为准。
发现内容有误、过期,或想补充一篇经验帖?欢迎到GitHub Issues提出,或直接编辑对应页面提交 PR。
维护者入口:站内后台—— GitHub 登录后可改文字 / 传图 / 嵌视频,保存会自动开 PR,合并后上线。
© 2026 清华生存指南 · 内容采用 CC BY-NC-SA 4.0 许可 · 由一群学长学姐共同维护