Weipeng Studio.

Linux Shell 学习

字数统计: 612阅读时长: 2 min
2020/11/21 Share

Linux Shell 学习记录

发现要得心应手的使用Linux的话,学习Shell还是很有必要的,在此开启一个Shell的学习记录。

1.解压一个文件夹下的多个文件

想要把一个文件夹下的数据集压缩文件统一解压,并且分别解压放到数据集同名的文件夹下。

首先,解压文件的命令是:

1
tar -xf name -C ./path

-x : 解包

-f :文件名

-v :可视化,终端显示解压进度(每一个文件)数据集太大就不显示了

-c :打包,与-x相对

-z :有压缩性质的,若和x搭配就是解压,和c搭配就是压缩打包,使用了gzip

好了,下一步就是Shell命令了

1
2
3
4
for i in *.tar;
do mkdir ./datasets/"${i%%.tar}";
tar -xf $i -C ./datasets/"${i%%.tar}";
done

*.tar :筛选文件夹下的带.tar的文件

$ :关于文件名的需要带上 $

路径名带双引号

%%:双百分号去掉名称尾部的.tar,这一操作带上大括号

循环最后done,同时循环过程只有一个do

成功达成了我的目的了hh~

解压了十几分钟,下次在循环中加上print信息,好知道进度。

有两个数据集压缩文件下载有问题,查看其md5和:

1
md5sum name

和官网提供的md5一比对发现确实有问题,重新下载。


2023.5.25更新

2.pytorch使用指定GPU

模型训练无事可做,不如更新一下文档,记录一些学到的东西。
需要指定可使用的GPU时,除了在代码内使用

1
2
3
import os
os.environ['CUDA_VISIBLE_DEVICES'] = "2"
import torch

这样的内容,记住这句话要在import torch前面。

还可以直接在终端加入环境变量:

1
export CUDA_VISIBLE_DEVICES='2'

还有在shell内使用:

1
2
3
CUDA_VISIBLE_DEVICES='1,3' \
python3 -m torch.distributed.launch --nproc_per_node=$GPUS --master_port=$PORT \
$(dirname "$0")/train.py $CONFIG --launcher pytorch ${@:3}

这一句要在python的前面加上,否则会没有用。同时要切记是CUDA_VISIBLE_DEVICES,而不是DEVICE,没有加这个S,就说为什么一直不起作用,一直使用了前两个GPU。


3.释放训练终端占用的显存

1
ps -elf | grep python

找到启动python的程序pid。

1
2
1 S xxx       388776       1 30  80   0 - 6907113 futex_ 21:39 pts/21 00:00:49 /home/xxx/anaconda3/envs/petr/bin/python -u tools/train.py projects/xxx
xxx.py --seed 0 --launcher pytorch --work-dir work_dirs/test
1
kill 388776
CATALOG
  1. 1. Linux Shell 学习记录
    1. 1.0.1. 1.解压一个文件夹下的多个文件
    2. 1.0.2. 2.pytorch使用指定GPU
    3. 1.0.3. 3.释放训练终端占用的显存