在深度学习训练过程中,我们经常需要在 Linux 服务器上进行各种操作。本文将详细介绍最常用的 Linux 命令,特别是那些在跑模型时经常用到的命令,并解释每个命令的缩写含义。

一、文件和目录操作

1. ls - 列出目录内容

缩写含义: List(列出)

# 基本用法
ls

# 显示详细信息(常用)
ls -l
# -l: long format(长格式)

# 显示所有文件(包括隐藏文件)
ls -a
# -a: all(全部)

# 人类可读的文件大小
ls -lh
# -h: human-readable(人类可读)

# 按修改时间排序
ls -lt
# -t: time(时间)

# 组合使用(最常用)
ls -lhta

深度学习场景示例

# 查看模型文件大小
ls -lh *.pth
ls -lh checkpoints/

# 查看最近修改的日志文件
ls -lt logs/*.log

2. cd - 切换目录

缩写含义: Change Directory(改变目录)

# 进入指定目录
cd /path/to/directory

# 返回上一级目录
cd ..

# 返回上两级目录
cd ../..

# 返回家目录
cd ~
cd

# 返回上一次所在目录
cd -

3. pwd - 显示当前路径

缩写含义: Print Working Directory(打印工作目录)

pwd
# 输出类似: /home/user/projects/deep-learning

4. mkdir - 创建目录

缩写含义: Make Directory(创建目录)

# 创建单个目录
mkdir new_folder

# 创建多级目录
mkdir -p data/train/images
# -p: parents(父目录)- 自动创建中间目录

# 创建多个目录
mkdir logs checkpoints outputs

深度学习场景示例

# 创建项目结构
mkdir -p project/{data/{train,val,test},models,logs,checkpoints}

二、文件删除命令(重点)

1. rm - 删除文件

缩写含义: Remove(移除)

# 删除单个文件
rm file.txt

# 删除多个文件
rm file1.txt file2.txt file3.txt

# 删除目录及其内容(危险!)
rm -r directory/
# -r: recursive(递归)

# 强制删除(不询问确认)
rm -f file.txt
# -f: force(强制)

# 组合使用:强制递归删除
rm -rf directory/
# 这是最危险但最常用的组合!

# 删除前确认
rm -i file.txt
# -i: interactive(交互式)

# 详细显示删除过程
rm -v file.txt
# -v: verbose(详细)

深度学习场景示例

# 删除旧的模型检查点
rm checkpoints/epoch_*.pth

# 删除训练失败的输出
rm -rf outputs/failed_experiment/

# 删除所有临时文件
rm -f *.tmp
rm -f temp_*

# 删除大型缓存文件
rm -rf __pycache__/
rm -rf .ipynb_checkpoints/

# 谨慎!删除所有 .pth 文件前先列出查看
ls *.pth
rm *.pth

⚠️ 删除命令注意事项

  • rm -rf / 会删除整个系统!永远不要执行!
  • 删除前用 ls 先查看要删除的文件
  • 重要文件删除前先备份
  • 使用 -i 参数可以在删除前确认
  • Linux 没有回收站,删除即永久删除

2. rmdir - 删除空目录

缩写含义: Remove Directory(移除目录)

# 只能删除空目录
rmdir empty_folder/

# 删除多级空目录
rmdir -p a/b/c/
# -p: parents(父目录)

三、文件复制和移动

1. cp - 复制文件

缩写含义: Copy(复制)

# 复制文件
cp source.txt destination.txt

# 复制目录
cp -r source_dir/ dest_dir/
# -r: recursive(递归)

# 保留文件属性
cp -p file.txt backup.txt
# -p: preserve(保留)

# 复制时显示进度
cp -v file.txt dest/
# -v: verbose(详细)

# 强制覆盖
cp -f source.txt dest.txt
# -f: force(强制)

深度学习场景示例

# 备份模型
cp best_model.pth best_model_backup.pth

# 复制整个实验结果
cp -r experiments/exp001/ experiments/exp001_backup/

# 复制数据集到本地
cp -r /shared/datasets/imagenet/ ./data/

2. mv - 移动/重命名文件

缩写含义: Move(移动)

# 移动文件
mv source.txt destination/

# 重命名文件
mv old_name.txt new_name.txt

# 移动多个文件
mv file1.txt file2.txt file3.txt destination/

# 强制覆盖
mv -f source.txt dest.txt
# -f: force(强制)

# 不覆盖已存在文件
mv -n source.txt dest.txt
# -n: no-clobber(不覆盖)

深度学习场景示例

# 重命名模型文件
mv model.pth model_epoch_100.pth

# 整理实验结果
mv experiment_* ./archive/

# 移动日志文件
mv *.log logs/

四、文件查看命令

1. cat - 查看文件内容

缩写含义: Catenate(连接)

# 查看文件
cat file.txt

# 查看多个文件
cat file1.txt file2.txt

# 显示行号
cat -n file.txt
# -n: number(编号)

深度学习场景示例

# 查看训练日志
cat training.log

# 查看配置文件
cat config.yaml

2. less - 分页查看文件

含义: 比 more 更好的查看工具

# 分页查看(可上下滚动)
less large_file.log

# 常用快捷键:
# 空格键: 下一页
# b: 上一页
# /pattern: 搜索
# q: 退出

3. head / tail - 查看文件开头/结尾

含义: Head(头部)/ Tail(尾部)

# 查看前 10 行
head file.txt

# 查看前 20 行
head -n 20 file.txt
# -n: number(行数)

# 查看后 10 行
tail file.txt

# 查看后 50 行
tail -n 50 file.txt

# 实时查看文件更新(最常用!)
tail -f training.log
# -f: follow(跟随)

深度学习场景示例

# 实时监控训练日志
tail -f logs/train.log

# 查看最近的训练记录
tail -n 100 training.log

# 查看错误日志开头
head -n 50 error.log

4. grep - 搜索文本

缩写含义: Global Regular Expression Print(全局正则表达式打印)

# 搜索包含关键词的行
grep "keyword" file.txt

# 忽略大小写
grep -i "keyword" file.txt
# -i: ignore case(忽略大小写)

# 显示行号
grep -n "keyword" file.txt
# -n: number(行号)

# 递归搜索目录
grep -r "keyword" directory/
# -r: recursive(递归)

# 反向匹配(不包含关键词的行)
grep -v "keyword" file.txt
# -v: invert(反转)

# 统计匹配行数
grep -c "keyword" file.txt
# -c: count(计数)

深度学习场景示例

# 搜索训练日志中的错误
grep -i "error" training.log

# 查找所有损失值
grep "loss" training.log

# 搜索最佳准确率
grep "best accuracy" logs/*.log

# 统计 epoch 数量
grep -c "Epoch" training.log

# 查找包含 CUDA 错误的行
grep -n "CUDA" error.log

五、进程管理命令

1. ps - 查看进程

缩写含义: Process Status(进程状态)

# 查看当前用户进程
ps

# 查看所有进程
ps aux
# a: all(所有)
# u: user-oriented(面向用户)
# x: 包括没有控制终端的进程

# 查看特定进程
ps aux | grep python

深度学习场景示例

# 查找 Python 训练进程
ps aux | grep python

# 查找 TensorFlow 进程
ps aux | grep tensorflow

# 查看 GPU 进程
ps aux | grep cuda

2. top / htop - 实时监控系统

含义: Top(顶部)显示最耗资源的进程

# 实时查看系统状态
top

# 更友好的界面(需要安装)
htop

# 常用快捷键(top):
# P: 按 CPU 使用率排序
# M: 按内存使用率排序
# k: 终止进程
# q: 退出

3. kill - 终止进程

含义: Kill(杀死)

# 终止进程(需要进程 ID)
kill 12345

# 强制终止
kill -9 12345
# -9: SIGKILL(最强终止信号)

# 按名称终止进程
pkill python
# pkill: process kill(进程终止)

# 终止所有匹配的进程
killall python

深度学习场景示例

# 找到训练进程 PID
ps aux | grep train.py

# 终止训练进程
kill 12345

# 强制终止卡住的训练
kill -9 12345

# 终止所有 Python 进程(危险!)
pkill -9 python

4. nohup - 后台运行命令

缩写含义: No Hangup(不挂起)

# 后台运行,输出到 nohup.out
nohup python train.py &

# 指定输出文件
nohup python train.py > output.log 2>&1 &
# 2>&1: 将错误输出重定向到标准输出

# 查看后台任务
jobs

# 将后台任务调到前台
fg

深度学习场景示例

# 后台训练模型
nohup python train.py --epochs 100 > train.log 2>&1 &

# 查看训练日志
tail -f train.log

# 后台运行多个实验
nohup python exp1.py > exp1.log 2>&1 &
nohup python exp2.py > exp2.log 2>&1 &

六、磁盘和空间管理

1. df - 查看磁盘空间

缩写含义: Disk Free(磁盘空闲)

# 查看所有磁盘
df

# 人类可读格式
df -h
# -h: human-readable(人类可读)

# 查看特定目录所在磁盘
df -h /home

2. du - 查看目录大小

缩写含义: Disk Usage(磁盘使用)

# 查看当前目录大小
du -sh .
# -s: summary(摘要)
# -h: human-readable(人类可读)

# 查看子目录大小
du -h --max-depth=1

# 查看最大的文件/目录
du -h | sort -rh | head -n 10

深度学习场景示例

# 检查数据集大小
du -sh datasets/

# 查看各个实验占用空间
du -h --max-depth=1 experiments/

# 找出最大的模型文件
du -h checkpoints/ | sort -rh | head -n 10

# 检查日志文件占用
du -sh logs/

3. find - 查找文件

含义: Find(查找)

# 按名称查找
find . -name "*.pth"

# 按大小查找(大于 1GB 的文件)
find . -size +1G

# 按修改时间查找(7 天前)
find . -mtime +7

# 查找并删除
find . -name "*.tmp" -delete

深度学习场景示例

# 查找所有模型文件
find . -name "*.pth"

# 查找大型数据文件
find ./data -size +1G

# 查找旧的日志文件并删除
find ./logs -name "*.log" -mtime +30 -delete

# 查找所有配置文件
find . -name "config.yaml"

七、GPU 监控命令(深度学习专用)

nvidia-smi - GPU 状态监控

缩写含义: NVIDIA System Management Interface

# 查看 GPU 状态
nvidia-smi

# 持续监控(每 1 秒刷新)
watch -n 1 nvidia-smi
# watch: 定期执行命令
# -n: 间隔秒数

# 只显示 GPU 使用率
nvidia-smi --query-gpu=utilization.gpu --format=csv

# 查看特定 GPU
nvidia-smi -i 0

常用技巧

# 查看哪个进程占用 GPU
nvidia-smi

# 监控训练时 GPU 使用
watch -n 0.5 nvidia-smi

# 设置使用特定 GPU
CUDA_VISIBLE_DEVICES=0,1 python train.py

八、文件压缩和解压

tar - 打包文件

缩写含义: Tape Archive(磁带归档)

# 打包并压缩(最常用)
tar -czvf archive.tar.gz directory/
# -c: create(创建)
# -z: gzip(压缩)
# -v: verbose(详细)
# -f: file(文件)

# 解压
tar -xzvf archive.tar.gz
# -x: extract(解压)

# 查看压缩包内容
tar -tzvf archive.tar.gz
# -t: list(列出)

深度学习场景示例

# 打包数据集
tar -czvf imagenet_train.tar.gz data/train/

# 打包实验结果
tar -czvf experiment_results.tar.gz outputs/ logs/ checkpoints/

# 解压预训练模型
tar -xzvf pretrained_models.tar.gz

# 打包代码和模型
tar -czvf submission.tar.gz *.py models/ requirements.txt

zip / unzip - ZIP 压缩

# 压缩文件
zip archive.zip file1 file2

# 压缩目录
zip -r archive.zip directory/
# -r: recursive(递归)

# 解压
unzip archive.zip

# 解压到指定目录
unzip archive.zip -d destination/

九、系统信息查看

1. free - 查看内存

含义: Free(空闲内存)

# 查看内存使用
free -h
# -h: human-readable(人类可读)

2. uname - 系统信息

缩写含义: Unix Name(Unix 名称)

# 查看系统信息
uname -a
# -a: all(全部信息)

十、实用技巧和组合命令

管道符 | 的使用

# 查找并计数
ls | wc -l
# wc: word count(词数统计)
# -l: lines(行数)

# 搜索并排序
grep "loss" train.log | sort

# 查看最大的文件
du -h | sort -rh | head -n 10

深度学习常用组合

# 1. 监控训练进度
tail -f train.log | grep "Epoch"

# 2. 统计数据集文件数
ls data/train/ | wc -l

# 3. 批量重命名文件
for i in *.jpg; do mv "$i" "img_$i"; done

# 4. 清理临时文件
find . -name "*.pyc" -delete
find . -name "__pycache__" -type d -exec rm -rf {} +

# 5. 监控 GPU 和训练
watch -n 1 'nvidia-smi && tail -n 20 train.log'

# 6. 查找占用 GPU 的进程
ps aux | grep python | grep -v grep

# 7. 批量杀死训练进程
ps aux | grep train.py | awk '{print $2}' | xargs kill

# 8. 备份重要文件
cp -r checkpoints/ checkpoints_backup_$(date +%Y%m%d)/

# 9. 快速创建实验目录
mkdir -p exp_$(date +%Y%m%d_%H%M%S)/{logs,checkpoints,outputs}

# 10. 查看最新的模型文件
ls -lt checkpoints/*.pth | head -n 5

总结

最常用的命令速查表

命令 全称 主要用途
ls -lh List 查看文件列表
cd Change Directory 切换目录
pwd Print Working Directory 显示当前路径
mkdir -p Make Directory 创建目录
rm -rf Remove 删除文件/目录
cp -r Copy 复制
mv Move 移动/重命名
cat Concatenate 查看文件
tail -f Tail 实时查看日志
grep Global Regular Expression Print 搜索文本
ps aux Process Status 查看进程
kill Kill 终止进程
df -h Disk Free 查看磁盘空间
du -sh Disk Usage 查看目录大小
nvidia-smi NVIDIA System Management Interface GPU 监控

深度学习训练必备命令

# 开始训练
nohup python train.py > train.log 2>&1 &

# 监控训练
tail -f train.log

# 监控 GPU
watch -n 1 nvidia-smi

# 查找进程
ps aux | grep python

# 终止训练
kill -9 [PID]

# 检查磁盘空间
df -h
du -sh checkpoints/

# 清理缓存
rm -rf __pycache__/ .ipynb_checkpoints/

# 备份模型
cp best_model.pth best_model_$(date +%Y%m%d).pth

记住这些命令,你就能在 Linux 服务器上高效地进行深度学习训练了!建议将常用命令整理成自己的脚本,提高工作效率。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐