深度学习中的 Linux 常用指令大全
本博客将介绍深度学习工作中最常用的 Linux 指令,包括 环境管理、文件操作、数据处理、GPU 监控 等方面,并附带示例。
本博客将介绍深度学习工作中最常用的 Linux 指令,包括 环境管理、文件操作、数据处理、GPU 监控 等方面,并附带示例。
常用的相关指令,故记录下来,有不全的欢迎提出补充~
1. 服务器环境管理
1.1 远程连接服务器
当我们使用云服务器(如 AWS、Google Cloud)或实验室的 Linux 服务器时,通常需要 SSH 远程连接:
ssh 用户名@服务器IP
示例:
用户名为alice,服务器IP为100.100.1.100
ssh alice@100.100.1.100
如果服务器使用了 非默认端口(如 2222),需要指定端口:
ssh -p 2222 alice@192.168.1.100
1.2 在后台运行 Python 代码
如果关闭 SSH 连接,程序会终止。以下命令可以让代码在 后台持续运行:
nohup python train.py > output.log 2>&1 &
nohup:即使退出 SSH,也能继续运行程序。> output.log 2>&1:将 标准输出和错误日志 保存到output.log。&:将进程放入后台
查看后台运行的任务:
ps aux | grep python
如果想终止进程,可以使用:
kill -9 进程ID
2. 文件和数据管理
2.1 下载数据
(1) 使用 wget 下载文件
wget https://example.com/dataset.zip
如果需要 断点续传
wget -c https://example.com/dataset.zip
(2) 使用 scp 传输数据
从本地传输数据到服务器:
scp 本地文件 用户名@服务器IP:目标路径
scp dataset.zip alice@192.168.1.100:/home/alice/
从服务器下载数据到本地:
scp 用户名@服务器IP:远程文件 本地路径
scp alice@192.168.1.100:/home/alice/dataset.zip .
如果数据很大,推荐使用 rsync:
rsync -avP dataset/ alice@192.168.1.100:/home/alice/
-a:保留文件属性(权限、时间等)。-v:显示详细信息。-P:显示进度条,并支持断点续传。
2.2 解压/压缩数据
如无特殊需要,推荐使用
.tar格式的包,因为该格式仅打包不会压缩,而多数情况图片和视频等都无法进一步压缩,因此仅打包不压缩是速度最快、消耗资源最少的打包和解压方式。
由于安装的zip、rar包等都只能解压或压缩某一种压缩包,这里提供一个小工具,支持解压格式:.tar, .zip, .rar, .7z,支持压缩/打包格式:.zip,.tar
# 下载安装工具
curl -L -o /usr/bin/arc http://autodl-public.ks3-cn-beijing.ksyun.com/tool/arc && chmod +x /usr/bin/arc
# 压缩/打包
arc compress xxx.zip path/to/directory
# 解压
arc decompress xxx.zip
或者解压到指定目录
arc decompress xxx.zip path/to/directory
(1) 压缩zip和解压zip
# 压缩。如果没有zip命令,安装命令:apt-get update && apt-get install -y zip
zip -r <自定义压缩包名称>.zip <待压缩目录的路径>
# 解压。如果没有zip命令,安装命令:apt-get update && apt-get install -y unzip
unzip <待解压压缩包名称>.zip -d <解压到哪个路径>
(2) 压缩tar和解压tar
# 压缩(具体是指打包,未压缩,非常推荐这种方式,因为压缩/解压都耗时,但是图片等都无法再压缩)
tar -cf <自定义压缩包名称>.tar <待压缩目录的路径>
# 解压
tar -xf <待解压压缩包名称>.tar -C <解压到哪个路径>
(3) 压缩tar.gz和解压tar.gz
# 压缩
tar -czf <自定义压缩包名称>.tar <待压缩目录的路径>
# 解压
tar -xzf <待解压压缩包名称>.tar -C <解压到哪个路径>
(4)解压rar
# 不推荐使用rar的包,linux下非常不常用
# 解压。如果没有zip命令,安装命令:apt-get update && apt-get install -y unrar
unrar e <待解压压缩包名称>.rar
3. GPU 资源管理
3.1 查看 GPU 资源
当深度学习任务需要 CUDA GPU 运行时,我们可以使用 nvidia-smi 监控显卡状态:
nvidia-smi
- Memory-Usage:显存使用情况
- Utilization:GPU 计算负载
- Processes:运行的进程
如果要实时监控:
watch -n 1 nvidia-smi
-n 1 表示 每秒更新一次
3.2 限制 GPU 使用
有时候,我们不希望占用所有的 GPU,而是指定某些 GPU 运行任务:
CUDA_VISIBLE_DEVICES=0 python train.py
如果有多个 GPU(如 0 和 2),可以这样:
CUDA_VISIBLE_DEVICES=0,2 python train.py
3.3 终止占用 GPU 资源的进程
如果某个 Python 进程占用了 GPU 但需要终止:
nvidia-smi
找到进程 PID,然后:
kill -9 进程ID
4. Python 虚拟环境管理
常使用的是conda
4.1 使用 Conda
创建一个新的 Conda 虚拟环境:
命名为myenv(根据实际情况自己取)
python版本也需根据需求更改
conda create -n myenv python=3.8
激活环境:
conda activate myenv
安装 PyTorch(此处需要在以下网站找到适合自己GPU的版本!):
Previous PyTorch Versions | PyTorch
conda install pytorch torchvision torchaudio -c pytorch
退出环境:
conda deactivate
删除环境:
conda remove -n myenv --all
查看已有环境
conda info --env
查看安装的库
conda list
5. 调试
5.1 查看 CPU 进程
如果 CPU 负载过高:
top
5.2 查看磁盘空间
df -h
示例输出:
5.3 查看文件夹大小
du -sh 文件夹名
6. 如何使用HF-Mirror
深度学习常需要用到huggingface的模型和数据集
6.1 方法一:网页下载
在本站搜索,并在模型主页的Files and Version中下载文件。
6.2 方法二:huggingface-cli
huggingface-cli 是 Hugging Face 官方提供的命令行工具,自带完善的下载功能。
1. 安装依赖
pip install -U huggingface_hub
2. 设置环境变量
export HF_ENDPOINT=https://hf-mirror.com
建议将上面这一行写入 ~/.bashrc。
3.1 下载模型
huggingface-cli download --resume-download gpt2 --local-dir gpt2
3.2 下载数据集
huggingface-cli download --repo-type dataset --resume-download wikitext --local-dir wikitext
6.3 方法三:使用 hfd
hfd 是 huggingface 专用下载工具,基于成熟工具 aria2,可以做到稳定高速下载不断线
1. 下载hfd
wget https://hf-mirror.com/hfd/hfd.shchmod a+x hfd.sh
2. 设置环境变量
export HF_ENDPOINT=https://hf-mirror.com
3.1 下载模型
./hfd.sh gpt2
3.2 下载数据集
./hfd.sh wikitext --dataset
7.AutoDL内置 学术资源加速
7.1 学术加速
以下为可以加速访问的学术资源地址:
- github.com
- githubusercontent.com
- githubassets.com
- huggingface.co
如果在终端中使用:
source /etc/network_turbo
如果是在Notebook中使用:
import subprocess
import os
result = subprocess.run('bash -c "source /etc/network_turbo && env | grep proxy"', shell=True, capture_output=True, text=True)
output = result.stdout
for line in output.splitlines():
if '=' in line:
var, value = line.split('=', 1)
os.environ[var] = value
7.2 取消学术加速
如果不再需要建议关闭学术加速,因为该加速可能对正常网络造成一定影响。
unset http_proxy && unset https_proxy
如果你有其他的 Linux 常用指令,欢迎分享!
8.参考
更多推荐



所有评论(0)