Note-use-ubuntu

基本信息

  记录一些日常使用的终端命令,便查。

Linux通用

设置grub开机等待时间

参见

1
2
sudo vim /etc/default/grub
# grub配置文件

vim做如下修改,保存退出:
1
2
# GRUB_HIDDEN_TIMEOUT=0 # 需注释掉
GRUB_TIMEOUT=3 # 等待时间为3s

更新grub,使之生效。
1
sudo update-grub

vi/vim 编辑器常用命令

参见 CSDN

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
##命令模式
# 复制
yy # 复制单行
2yy # 复制2行 n就n行
# 粘贴
p # 小写,光标位置_下_一行粘贴
P # 大写,光标位置^上^一行粘贴
# 删除
dd # 删一行
3dd # 删3行 n就n行
dw # 删光标处的本单词
3dw # 删光标处连续的3个单词
# 查找
/word # 找 “word”的字符串 (向下)
# 撤销
u # 撤销上一步
. # 小点 重复上一操作
Ctrl+ r #多次撤销
# 保存与退出
【:w】 保存文件
【:w!】 若文件为只读,强制保存文件
【:q】 离开vi
【:q!】 不保存强制离开vi
【:wq】 保存后离开
【:wq!】 强制保存后离开
##

在可视模式下选择要移动的列,操作为,esc从编辑模式退到命令模式,将光标移到需要缩进的行的行首,然后按shift+v,可以看到该行已被选中,且左下角提示为“可视”;
此时,按键盘上的上下左右方向键,如这里按向下的箭头,选中所有需要批量缩进的行;
选择好了之后,按shift+>,是向前缩进一个tab值,按shift+<,则是缩回一个tab值。

文件与目录管理

跳转CSDN

比较两个目录差异

diff
给定两个目录,如何找出哪些文件因内容不同

1
2
diff --brief --recursive dir1/ dir2/
# --brief仅显示有无差异

或者使用

1
2
3
diff -qr dir1/ dir2/
# -q 仅显示有无差异,不显示详细的信息
# -r 比较子目录中的文件

文件压缩和解压

打包成tar.gz格式压缩包

1
tar -zcvf renwolesshel.tar.gz /renwolesshel

解压tar.gz格式压缩包

1
tar zxvf renwolesshel.tar.gz

打包成tar.bz2格式压缩包

1
tar -jcvf renwolesshel.tar.bz2 /renwolesshel

解压tar.bz2格式的压缩包

1
tar jxvf renwolesshel.tar.bz2

压缩成zip格式

1
zip -q -r renwolesshel.zip renwolesshel/

解压zip格式的压缩包

1
unzip renwolesshel.zip

Ubuntu查找文件或文件夹

参见 https://blog.csdn.net/sunmingyang1987/article/details/107668149

找文件

1
2
locate 目录名/sh 		#查找目录名下的sh开头文件
locate -i 目录名/sh #-i: 忽略大小写sh

找文件夹

1
find [directory] -name filename 		#查找目录名下的filename文件夹

加入额外的搜索条件,根据文件大小和文件名来搜索:让我们查找所有文件名匹配通配符模式“*.JPG”和文件大小大于 1M 的文件

1
2
3
sudo find /home/hi -name ADE*    # 命名为ADE开头的文件夹或文件
find / -type f -name "*.JPG" -size +1M
find / /home -xdev -name ngirc # 避免/run/user/1000/gvfs': Permission denied错误 加-xdev参数 [避免gvfs错误](https://unix.stackexchange.com/questions/77453/why-cannot-find-read-run-user-1000-gvfs-even-though-it-is-running-as-root)

查看文件夹大小 more

1
du -sh

查看磁盘容量

1
df -h

GCC版本切换

1
sudo update-alternatives --config gcc

查找大文件(夹)

找大文件夹

  1. 方法一
    (所有目录)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # du -am | sort -nr | head -n 15  # 运行时间较长
    1215060 .
    369830 ./data
    124092 ./myfolder
    119186 ./data/volleyball
    107788 ./LJ
    77811 ./rx
    73689 ./anaconda
    69774 ./.PyCharm2018.2
    69770 ./.PyCharm2018.2/system
    69069 ./.PyCharm2018.2/system/caches
    68741 ./.PyCharm2018.2/system/caches/content.dat.storageData
    66731 ./JRY
    59862 ./data/volleyball/videos
    59151 ./data/volleyball/volleyball.zip
    58626 ./anaconda/pkgs
  2. 方法二
    (当前目录)

    1
    # du -s * | sort -nr | head -n 15  # 运行时间较短
  3. 方法三
    (优选 当前目录,显示单位为Gb/Mb)

    1
    2
    # du -hsx * | sort -rh | head -n 15  # 运行时间较短
    # du -h --max-depth=0 * #当前目录下各文件占用情况

找大文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# find . -type f -printf "%k %p\n" | sort -rn | head -n 15
70390696 ./.PyCharm2018.2/system/caches/content.dat.storageData
60569632 ./data/volleyball/volleyball.zip
**22718764 ./data/data/ucf101_tvl1_flow.zip**
15956596 ./Conrad/1/SSTran-DSGG/ActionGenome-master/tools/dataset/ag/videos/Charades_v1_480.zip
**9437188 ./tan/ucf101_tvl1_flow.zip.001**
**9437188 ./data/data/ucf101_tvl1_flow.zip.002**
7282032 ./rx/data/tiered_imagenet/compacted_datasets/train_images_png.pkl
6954056 ./caffe/examples/UTD_CRC.zip
**6770488 ./tan/five-video-classification-methods-master/data/UCF101.rar**
5720616 ./space/Super-Resolution-Datasets/DIV2K2017.zip
4193284 ./data/g
3956776 ./data/BOBO/RefNet/data/ADE20K_2016_07_26.zip
3956776 ./data/BOBO/AttentionSegModel/data/ADE20K_2016_07_26.zip
3869568 ./caffe/models/model-zoo.zip
**3844396 ./data/data/ucf101_tvl1_flow.zip.003**

显卡驱动cuda及软连接

参见 https://blog.csdn.net/qq_37424778/article/details/115293430

查看.bashrc中环境配置

1
~/.bashrc

查看编译使用的cuda环境

1
nvcc --version

启动/关闭vncserver

1
2
vncserver :1
vncserver -kill :1

CONDA使用

conda 常用指令总结

国内镜像源

添加通道 more info

1
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

查看channels

1
cat ~/.condarc

创建

1
conda create -n torch160 python=3.7 -y

-y :表静默yes

安装torch 1.6.0

for cuda10.1 more info

1
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.1

apex包 & inplace-abn

以前需要编译安装,现conda已加入此包。

1
conda install -c conda-forge nvidia-apex

inplace-abn:
1
2
# PyTorch >=1.1  & CUDA >= 10.0
pip install inplace-abn

MMCV等包

MMCVgithub

1
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.6.0/index.html

运行

nohup命令

参见https://www.runoob.com/linux/linux-comm-nohup.html

应对网络异常中断,使程序执行不受干扰。

1
2
3
nohup python -u train.py > run_lr_02.log 2>&1 &
nohup python -u train.py > run_r3.log &
#CUDA_VISIBLE_DEVICES=1, python train.py

问题速查

连显示器无显示

因:nvidia-smi,可看到是输出关闭了
解:关闭显示服务,重启。

1
sudo service lightdm stop

1
sudo service lightdm restart

程序中断后未释放内存

参见 https://blog.csdn.net/yjl9122/article/details/78920986

1
2
3
4
5
6
7
1.先关闭ssh(或者shell)窗口,退出重新登录

2.查看运行在gpu上的所有程序:

fuser -v /dev/nvidia*

3.kill掉所有(连号的)僵尸进程


工具

可视化 for 图像分割

法1: 已尝试,可行
参见CSDN_Pytorch可视化语义分割特征图
法2: 未试
参见CSDN_Grad-CAM在语义分割中的pytorch实现
法3:MMengine,原理同法1,附带其他的工具箱
参见mmengine的特征可视化中文教程

python中图像处理常用三包

CV2、 PIL、 matplotlib
参见CSDN_python中常用的图片处理的函数