老钳专门为“深度学习 / 大模型训练”整了一份 Linux 命令速查表:按场景分组、每条都有示例和关键参数注释,可以直接收藏起来用的那种,请务必一键三连~
🚀 深度学习 / 大模型训练 Linux 命令速查表
适用场景:服务器环境配置、训练监控、日志调试、资源管理、数据同步。
1. 📂 文件和目录操作
1.1 基本查看 (ls)
# 长格式 + 人类可读单位 (KB/MB/GB)ls -lh常用】只看模型权重文件 (.pt / .bin / .safetensors)ls -lh | grep -E "\.(pt|bin|safetensors)$"-l: 长格式(权限、所有者、大小、时间)。-h: Human-readable,自动转换单位。
1.2 空间统计 (du, df)
# 统计当前目录下各子文件夹的大小 (找出占用最大的数据集/日志/ckpt)du -sh *# 查看磁盘挂载点总空间和剩余空间 (训练前必查)df -hdu -s: Summary,只统计总和。du -h: 人类可读单位。df -h: Disk Free,显示文件系统使用情况。
1.3 创建 / 删除 / 移动
# 递归创建目录 (如果中间目录不存在会自动创建)mkdir -p logs/checkpoints# ⚠️ 危险操作:递归强制删除目录下所有内容 (务必确认路径!)rm -rf ./outputs/*# 重命名文件mv old.log old.log.bak# 递归复制目录cp -r src/ src_backup/rm -rf: -r 递归,-f 强制不询问。慎用!cp -r: 复制文件夹必须加 -r
1.4 软链接 (ln)
# 创建软链接 (节省空间,公共数据集只存一份)ln -s /data/llm_dataset ./data-s: Symbolic link (符号链接)。用途:项目内通过 ./data 访问 /data/llm_dataset,不占用额外空间。
2. 🔍 查找和内容搜索
2.1 查找文件 (find)
# 查找当前目录下所有 .py 文件find . -name "*.py"# 查找大于 10MB 的文件 (清理大垃圾)find /data -type f -size +10M# 查找 7 天内修改过的日志文件find . -mtime -7 -name "*.log"# 批量修改权限 (将所有 .py 文件设为 644)find . -type f -name "*.py" -exec chmod 644 {} \;-type f: 仅匹配普通文件。-mtime -7: 7 天内 (minus 7 days)。-exec ... {} \;: 对每个结果执行命令。
2.2 文本搜索 (grep)
# 显示行号查找 "ERROR"grep -n "ERROR" train.log# 递归查找 (忽略大小写) "cuda error"grep -ri "cuda error" # 显示匹配行及其上下各 5 行 (排查报错上下文)grep -C 5 "Traceback" train.log# 【高频组合】实时监听日志中的 "loss"tail -f train.log | grep "loss"# 【高频组合】在所有代码中查找特定 APIfind . -name "*.py" -exec grep -n "CrossEntropyLoss" {} \;-n: 显示行号。-r: 递归子目录。-i: 忽略大小写。-C 5: Context,前后各 5 行
2.3 快速定位 (which, locate)
# 确认当前使用的 python 路径 (检查虚拟环境)which python# 极速查找文件位置 (需系统建立过索引)locate libtorch.so
3. 📜 日志与文本查看
3.1 单次查看
# 查看小文件全部内容cat config.yaml# 查看日志开头 50 行 (检查配置加载)head -n 50 train.log# 查看日志末尾 100 行 (检查最新状态)tail -n 100 train.log
3.2 实时跟踪 (tail -f)
# 实时滚动查看日志 (训练监控必备)tail -f train.log# 实时筛选包含 "nan" 的行 (抓数值爆炸)tail -f train.log | grep -i "nan"
3.3 分页查看 (less)
# 查看超大日志文件 (不一次性加载)less big.log操作键: Space (下一页), b (上一页), /keyword (搜索), q (退出)。
4. 💻 磁盘 / 系统资源 / GPU
4.1 磁盘深度分析
# 找出系统中占用空间最大的前 20 个目录du -h / | sort -rh | head -20sort -rh: 按人类可读格式逆序排序。
4.2 进程管理 (top, ps, kill)
# 实时资源监控 (CPU/内存)top# 查找所有 python 进程 (找训练脚本 PID)ps aux | grep python# 正常终止进程kill <PID># ⚠️ 强制杀死进程 (SIGKILL)kill -9 <PID>
4.3 GPU 监控 (nvidia-smi)
# 基础查看 (显存/利用率/进程)nvidia-smi# 每 1 秒自动刷新watch -n 1 nvidia-smi# 【进阶】记录 GPU 状态到 CSV (用于绘图分析)nvidia-smi \ --query-gpu=timestamp,memory.total,memory.used,utilization.gpu,power.draw \ --format=csv \ -l 5 \ -f gpu_log.csv-l 5: 每 5 秒采样一次。-f: 输出到文件。
5. 📦 环境管理 (Conda / Pip)
5.1 Conda
# 创建新环境conda create -n llm python=3.10# 激活环境conda activate llm# 导出环境配置 (复现环境必备)conda env export > environment.yml# 查看已有环境列表conda env list
5.2 Pip
# 安装依赖pip install -r requirements.txt# 冻结当前环境版本pip freeze > requirements.txt
6. ⏳ 后台运行与作业控制
6.1 后台启动 (nohup, &)
# 标准后台运行 (关闭终端后停止)python -u train.py > logs/train.log 2>&1 &# ✅ 推荐:忽略挂起信号 (关闭终端后继续运行)nohup python -u train.py > logs/train.log 2>&1 &-u: Unbuffered,确保日志实时写入 (否则可能缓存很久才输出)。2>&1: 将错误输出 (stderr) 合并到标准输出 (stdout)。&: 放入后台。
6.2 作业控制
# 查看当前后台任务jobs# 将后台任务 (编号 1) 调回前台fg %1# 将前台任务暂停并放入后台# (先按 Ctrl+Z 暂停,再执行此命令)bg %1
7. 🌐 远程与同步 (SSH / SCP / Rsync)
# 登录远程服务器ssh user@server_ip# 拷贝文件 (本地 -> 远程)scp model.pt user@server_ip:/home/user/models/# ✅ 推荐:同步目录 (支持断点续传、增量同步)rsync -avz /local/data/ user@server_ip:/remote/data/rsync -a: 归档模式 (保留权限、时间戳、软链接)。rsync -v: 显示详细过程。rsync -z: 传输压缩。注意: 路径末尾的 / 很重要,代表同步目录内容而非目录本身。
8. 🛠️ 系统日志 (进阶)
# 查看 SSH 服务最近 100 行日志journalctl -u sshd -n 100# 实时跟踪系统日志journalctl -f
9. ⌨️ 命令行交互快捷键 (效率倍增)
| |
|---|
Ctrl + A | |
Ctrl + E | |
Ctrl + U | 删除 |
Ctrl + K | 删除 |
Ctrl + R | 搜索 |
Ctrl + L | 清屏 |
Ctrl + C | 终止 |
Ctrl + Z | 暂停 |
Tab | 自动补全 |
🦞 老钳今天又免费输出一波,觉得有用就点个关注吧,下期见~