Linux 系统运维常用命令与技巧
显卡信息查询
查看 NVIDIA 显卡状态:
$ nvidia-smi
$ watch -n 0.1 nvidia-smi
$ lshw -c video
GPU 计算能力参考:NVIDIA 官方计算能力列表
环境变量管理
查看当前环境变量:
$ env
# 或
$ echo $PATH
临时添加路径至环境变量并生效:
$ export PATH=~/anaconda3/bin:$PATH
$ source ~/.bashrc
命令历史记录
查看执行过的命令历史:
$ history
系统资源监控
实时查看系统进程与资源占用:
$ top
删除目录及文件
递归删除指定目录:
$ rm -r data/
# 或
$ rm -r data
CUDA 与 cuDNN 版本确认
检查 CUDA 版本:
$ cat /usr/local/cuda/version.txt
$ nvcc -V
获取 cuDNN 主版本号:
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
后台运行程序(nohup)
让程序在退出终端后继续运行:
$ nohup python train.py &
$ nohup java -jar app.jar > log.out 2>&1 &
参考文档:
nohup 手册
nohup 使用实践
进程管理
列出所有用户进程:
$ ps -ux
强制终止指定进程(使用进程 ID):
$ kill -9 <PID>
Conda 版本检查
$ conda --version
远程文件传输(scp)
从远程服务器复制文件或目录到本地:
$ scp -r user@192.168.1.10:/home/user/project /home/user/local/
参考:
scp 命令说明
Ubuntu 系统版本信息
查看内核与发行版详情:
$ uname -a
$ lsb_release -a
$ cat /proc/version
# 示例输出:Linux version 4.15.0-72-generic (buildd@lcy01-amd64-023) (gcc version 5.4.0 ...) #81~16.04.1-Ubuntu SMP Tue Nov 26 16:34:21 UTC 2019
软件版本兼容性参考
常见深度学习框架与系统版本对应关系:
自定义软件源安装
使用镜像源加速 pip 安装:
$ pip install -i http://pypi.douban.com/simple box2d-py --trusted-host pypi.douban.com
文件内容查看(尾部)
查看文件最后 10 行内容:
$ tail -n 10 filename.log
CSV 文件读写操作(Python)
写入 CSV 格式数据:
import csv
data = [
{'emp_name': 'John Smith', 'dept': 'Accounting', 'birth_month': 'November'},
{'emp_name': 'Erica Meyers', 'dept': 'IT', 'birth_month': 'March'}
]
with open('output.csv', mode='w', newline='') as file:
fieldnames = ['emp_name', 'dept', 'birth_month']
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
读取 CSV 并逐行输出:
with open('output.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['emp_name'], row['birth_month'])
SSH 远程端口转发
将远程服务端口映射到本地:
$ ssh -L 16006:127.0.0.1:6006 user@server.ip
$ ssh -L 16006:127.0.0.1:6006 172.29.1.79@user-xc
访问本地服务地址:
http://127.0.0.1:16006/
硬件信息查询
查看 CPU 型号:
$ cat /proc/cpuinfo | grep 'model name' | uniq
# 输出示例:Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
查看总内存大小:
$ cat /proc/meminfo | grep MemTotal
# 输出示例:MemTotal: 131893644 kB (约 131GB)
查看逻辑核心数:
$ cat /proc/cpuinfo | grep "cpu cores" | uniq
# 输出示例:cpu cores : 10
进程资源使用排名
按 CPU 占用率排序前 10 个进程:
$ ps auxw | head -1; ps auxw | sort -rn -k3 | head -10
按内存占用排序前 10 个进程:
$ ps auxw | head -1; ps auxw | sort -rn -k4 | head -10
按虚拟内存使用量排序前 10 个进程:
$ ps auxw | head -1; ps auxw | sort -rn -k5 | head -10