总结在服务器中跑深度学习的时候,常常需要使用的Linux 命令。
可搭配前面提到 {% post_link docker搭建深度学习环境 %}和{% post_link tmux使用总结%}相关文章食用。
进程操作
shell
# 查看当前运行的所有进程
ps -aux
# 结束一个进程, PID 可通过进程查找指令查看
kill -s 9 PID
# 结束所有python 进程(慎重使用)
killall python
资源占用与文件查找
shell
# 实时交互式显示 当前系统资源占用情况
htop
top
# 实时监控 GPU 占用
watch -n 1 -d nvidia-smi
# 查看磁盘剩余空间
df -hl
# 查看当前目录下各个文件/文件夹的大小
du -h –max-depth=1 *
# 查看当前目录下所有文件大小的总和
du -sh
# 查看当前文件个数, 使用 ^d 是统计文件夹的个数
ls -l | grep "^-" | wc -l
# 查找文件,后面跟的是正则表达式
find . -name "*.tar"
文件的上传以及下载
传输数据集的时候可以使用以下命令
shell
# 可以递归地创建文件夹
mkdir -p /path/to/...
# 复制文件夹
cp -r sour_dir dest_dir
# 从远程服务器下载文件 SCP
scp username@servername:/path/filename /tmp/local_destination
# 需要下载文件夹 则加上 -r 参数
scp -r username@servername:/path/filename /tmp/local_destination
# 上传文件则把两边的位置调换过来
scp -r /tmp/local_dir username@servername:remote_dir
文件压缩与解压
shell
# 打包一个文件夹为一个zip压缩文件
# -r 参数为递归地在文件夹中寻找文件压缩
zip -r file_name.zip /path/to/dir
# 解压一个zip压缩文件
# -d 参数可以指定解压后文件的保存目录
unzip file.zip -d /path/to/extract/
硬盘操作
添加新硬盘,格式化硬盘
shell
# 查看新硬盘是否已经被成功安装, 同时该命令还可以查看新的硬盘所挂载到的设备号,例如 sda,sdb,以及硬盘中已经存在的分区,分区的挂载信息等
lsblk
# 加上 -f参数可以查看分区的UUID,UUID在自动挂载时会使用
lsblk -f
# 创建分区, 该工具提供了基于命令行的简易分区工具,很好用
cfdisk /dev/sda
# 如果有分区的大小大于2T,则需要先将硬盘格式转换为GPT格式
parted /dev/sda
# 执行下面的命令, 根据提示完成转换即可
mklabel gpt
# 退出parted,使用 cfdisk进行分区
q
# 使用 cfdisk 分区完成后还需要将分区格式化为 ext4 格式
mkfs -t ext4 /dev/sda1
下一步就是需要将已经分好区的硬盘挂载到相应的目录,这里假设需要挂载的硬盘号为 /dev/sda1
,需要挂载到目录是 /home/user/exdisk1
shell
# 创建目录,这步可以跳过
mkdir -p /home/user/exdisk1
# 临时挂载
mount /dev/sda1 /home/user/exdisk1
如果只是临时使用该分区(例如挂载一个U盘),使用上面的命令也就足够了,如果需要挂载的是一个需要长期使用的U盘,则需要修改/etc/fstab
文件。
第一步是使用 lsblk -f
命令查看分区的UUID
,每个磁盘分区的UUID
在系统中都是唯一的,即使重启后也不会改变,如下图 框出来的就是此次需要挂载分区的UUID
注意:如果没有挂载,后面的挂载点的内容是空的
第二步是修改/etc/fstab
文件,添加上一行,内容可以看文件上面的注释
shell
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=af931fd6-b0f5-455b-8e3a-6260b18fde24 /home/dilib5/ex_disk1 ext4 defaults 0 2
将/etc/fstab
修改完成后,执行全部挂载命令验证所添加的内容是否正确,如果不正确可能会导致系统无法启动!
shell
sudo mount -a
最后重启系统就可以看到硬盘已经成功挂载了,(用的是同一张图, 哈哈哈哈,逃)