【技术文档】Ubuntu系统使用

一、Ubuntu终端各种快捷命令

1.1 终端美化

1.2 信息传输

1.2.1 与Windows互传信息

1.3 Ubuntu系统小插件

  1. 实时查看磁盘使用情况:glances
  2. 自带:df -h //查看当前系统磁盘使用空间;
    du -sh * //查看当前目录文件占用空间大小

1.4 Ubuntu系统运维管理

ps -f -p PID_Number 查看对应pid的进程
sudo fuser -v /dev/nvidia* 查看所有用户的线程状况,检查是否有显存泄露的情况
sudo fuser -v /dev/nvidia* |awk ‘{for(i=1;i<=NF;i++)print "kill -9 " $i;}’ | sudo sh 管理员可以直接运行该命令,杀掉所有的显存泄露进程

二、Pytorch使用

2.1 Pytorch安装

2.1.1 安装途径

【清华源】速度安装
(1)conda添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
(2)添加Pytorch镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/win-64/
(3)去官网 pytorch 选择包安装命令如下:
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
由于-c pytorch表示默认从pytorch官网下载安装包,因此安装的时候将-c pytorch去掉,再修改为清华源,可提高安装速度,因此改为如下:
conda install pytorch torchvision torchaudio cudatoolkit=10.2
(4)如果想要安装指定版本的torch,则执行如下命令
【CUDA 11.0】推荐如下安装,前面几个版本不指定可能会发生安装cpu版本的torch
conda install pytorch=1.7.1 torchvision=0.8.2 torchaudio=0.7.2 cudatoolkit=11.0
【CUDA 11.4】也可以如上,向下兼容的!

2.1.2 安装BUG

【No module named ‘torch’】
(1)方法1:source ~/.bashrc
(2)方法2:卸掉Anaconda,采用Miniconda
(3)方法3:因为环境部匹配的问题,采用torch自动推荐的依赖,不要去指定torch版本,也有可能是python版本太低了
【Requirement already satisfied: opencv-python in ./.local/lib/python3.8/site-packages (4.1.2.30)】
检测到默认路径下有包,直接指定安装路径即可!

pip3 install –target=/home/jack/anaconda3/envs/JackTorch/lib/python3.6/site-packages opencv-python
Collecting opencv-python
本地的python包在:/usr/local/lib/python3.8/dist-packages

2.1.3 安装环境查看技巧

python --version 查看python版本
conda info 查看conda环境
conda search … 查看…(如pytorch)的所有依赖选择
nvidia-smi 查看cuda表格信息,注意:这个不如nvcc -version准 or 直接查看/usr/local/cuda-11.5
conda updata python 更新指定的包

2.2 Conda内嵌Pip安装

pip清华源下载
-i https://pypi.tuna.tsinghua.edu.cn/simple

2.3 Pytorch技巧

2.3.1 技巧函数

【 torch.set_num_threads】
pytorch中可以通过设置 torch.set_num_threads(args.thread) 来限制CPU上进行深度学习训练的线程数
【torch.manual_seed】
在需要生成随机数的实验中,确保每次运行.py文件时,生成的随机数都是固定的,这样每次实验结果显示也就一致了。则可以采用如下函数:
torch.manual_seed(1)
torch.rand(1,2)

2.3.2 功能函数

【torch.multiprocessing 】
torch.multiprocessing 是 Python 的 multiprocessing 多进程模块的替代品。它支持完全相同的操作,但对其进行了扩展,以便所有通过多进程队列 multiprocessing.Queue 发送的张量都能将其数据移入共享内存,而且仅将其句柄发送到另一个进程。
[DataLoader]

2.4 Cuda和Cudnn安装(Ubuntu20.04下)

(1)Ubuntu一般会先安装好显卡驱动,因此Cuda安装时忽略driver
Cuda安装时忽略driver
(2)安装完毕状态
安装完毕
(3)cuda 11.0配置完成

cuda11.0配置完成,ncvv -V前后对比
(4)cudnn的deb文件安装完成

cudnn的deb文件安装完成:setting完毕,deb以文件夹存储入usr/local
(5)备注:cudnn官网的几个版本
cudnn安装未“成功”:torch还是显示之前的版本
(6)引申思考

①deb版本文件采用sudo dpkg -i 安装后不会产生cudnn.h文件
②annaconda的pkgs中会包含cudnn和cuda文件,说明conda再安装torch的时候会把cuda的工具也调用到pkgs而不是直接从usr/local/cuda11.3/中复制
pkgs是annaconda依赖包的核心区域
③cudnn采用deb安装无需复制cudnn.h
官网更新了!以前是需要手动cp过去
④综上,如果deb用起来不舒服,更推荐采用tar格式的下载
在这里插入图片描述

三、其他各类包的安装使用

1. 快速构建环境

(1)yaml文件生成
conda env export > requirements.yaml
(2)yaml文件构建:
conda env create -f environment.yaml
pip install -r requirements.txt

1.1 快速构建出现pip问题

Collecting rdkit-pypi==2021.9.3
Downloading rdkit_pypi-2021.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (20.8 MB)

Pip subprocess error:
ERROR: Exception:
Traceback (most recent call last):
File “/home/huangjh/miniconda3/envs/JackOmicron/lib/python3.8/site-packages/pip/_vendor/urllib3/response.py”, line 438, in _error_catcher
yield
[Solve] 找到yaml文件中的 rdkit-pypi,删除它,重新进行安装,之后手动pip清华源安装 rdkit-pypi
类似的还有:- urllib3==1.26.7

1.2 torch构建出现问题

Collecting threadpoolctl==3.0.0
Downloading threadpoolctl-3.0.0-py3-none-any.whl (14 kB)

Pip subprocess error:
ERROR: Could not find a version that satisfies the requirement torch1.9.0+cu111 (from versions: 1.4.0, 1.5.0, 1.5.1, 1.6.0, 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1, 1.10.2, 1.11.0, 1.12.0, 1.12.1)
ERROR: No matching distribution found for torch
1.9.0+cu111

首先 查看当前服务器的cuda为11.0
其次 conda search torch=1.9.0 -c conda-forge 发现1.9.0的torch可以和110的cuda搭配
于是 将所有的cu111替换为110
绝招 删除torch的所有
- torch1.9.0
- torch-cluster
1.5.9
- torch-geometric1.7.2
- torch-scatter
2.0.9
- torch-sparse0.6.12
- torch-spline-conv
1.2.1
- torchaudio0.9.0
- torchvision
0.10.0

2. 环境重置

(1)通道删除重置
vim ~/.condarc
(2)清理conda缓存
conda clean -p //删除没有用的包
conda clean -t //tar打包
conda clean -y -all //删除所有的安装包及cache
sudo rm -r ~/.cache/pip //删除所有的pip缓存
(3)vim进入~/.condarc,重写conda通道源

2.1 环境通道备份 – 10.5

channels:

  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro/
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
  • https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  • http://mirror.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  • http://mirror.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  • http://mirror.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  • defaults
  • http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
    show_channel_urls: true
    ssl_verify: false //这个参数是进行数据的双向验证,一般false
    auto_activate_base: false //这个参数 auto_activate_base false 用来是的打开终端不自动激活base环境

3. 各类包安装

(1)torch
conda install pytorch torchvision torchaudio cudatoolkit=11.4 -c pytorch

[经验1]【CUDA 11.0】推荐如下安装,前面几个版本不指定可能会发生安装cpu版本的torch python3.6
conda install pytorch=1.7.1 torchvision=0.8.2 torchaudio=0.7.2 cudatoolkit=11.0
【CUDA 11.4】也可以如上,向下兼容的!
conda install pytorch=1.12.1 torchvision=0.13.1 torchaudio=0.12.1 cudatoolkit=11.3 -c pytorch
【CUDA 11.6】也可以如上,向下兼容的!
conda install pytorch=1.13.0 torchvision=0.14.0 torchaudio=0.13.0 cudatoolkit=11.6 -c pytorch

[经验2]一般而言,-c conda-forge 可以找到所有的torch包,如果找不到搭配的torchaudio和cudatoolkit,那就在通道源中加入 - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

3.1 查找环境通道配置

conda search torch -c conda-forge

4. 显存泄漏

https://www.iotword.com/3172.html
https://blog.csdn.net/phoebeXD/article/details/127531942

4.1. 查看僵尸显存

fuser -v /dev/nvidia*

4.2. 批量清理显卡中残留进程

  • fuser -v /dev/nvidia* |awk ‘{for(i=1;i<=NF;i++)print "kill -9 " $i;}’
  • sudo fuser -v /dev/nvidia* |awk ‘{for(i=1;i<=NF;i++)print "kill -9 " $i;}’ | sudo sh
  • kill -9 pid

4.3 查看存储占用前10

du -sh * | sort -nr | head

5. 文件管理

5.1 查看大小

du -sh
查看指定文件大小

5.2 限制cpu

/home/huangjh//Downloads/aliyunpan-v0.2.1-linux-386/data/train/seat2

(2)tar
cpulimit -i tar -czf /data2/seat2.tar.gz /home/huangjh/Downloads/aliyunpan-v0.2.1-linux-386/data/train/seat2 -l 60

cpulimit -l 1 tar -czf /data2/seat2.tar.gz /home/huangjh/Downloads/aliyunpan-v0.2.1-linux-386/data/train/seat2

cpulimit -v -l 200 tar -czf /data2/backup_home_tar/home.tar.gz /home

(2)cp
cpulimit -i -l 60 cp -a /data2/ /home/huangjh/Downloads/aliyunpan-v0.2.1-linux-386/data/train/seat2

cpulimit -l 60 cp -a /data2/ /home/huangjh/Downloads/aliyunpan-v0.2.1-linux-386/data/train/seat2

(3)bash
cpulimit -v -l 260 bash /home/huangjiehui/Project/Texture/psgan-master/tools/AllRun.sh
cpulimit -l 60 bash /home/huangjiehui/Project/Texture/famos-pytorch/Tools/AllRun.sh
(4)pid
sudo cpulimit --pid 754564 -v --limit 100
sudo cpulimit --pid 754566 -v --limit 200

sudo cpulimit --pid 758800 -v --limit 200

sudo cpulimit --pid 1139487 -v --limit 1000

6. 解压

(1) 7z
7za x train_smiles_pos.7z -r -o./

四、路径问题汇总

1.1 Python调试路径

【Step1】
import os
path1=os.path.abspath(‘.’) # 表示当前所处的文件夹的绝对路径
print(path1)
path2=os.path.abspath(‘…’) # 表示当前所处的文件夹上一级文件夹的绝对路径
print(path2)
【Step2】
. 当前文件夹绝对路径
… 上一级文件夹相对路径
【Step3】
os.getcwd() #获取当前路径
os.path.abspath(file) #获取当前文件路径:(__file__是当前执行文件)
os.path.abspath(sys.argv[0]) #获取主程序路径
os.path.abspath(sys.path[0]) #获取主程序目录
os.chdir(path1) #切换路径到path1(保证path1为字符串数据)

五、远程SSH专栏

5.1 VSCode远程调试无法debug(可以run)

罪魁祸首!一直加载扩展
解决方案!
3个step,让自动扩展远离我!1/2就是卸载更新 如果不行就切换到一个月前的发布版本 最后把自动更新弄掉
还有一种办法
扩展恶心 还有一个办法就是workspace到对应的解释器2022.7.22,还未解决这个思路~
https://blog.csdn.net/weixin_43933424/article/details/125695799?ops_request_misc=&request_id=&biz_id=102&utm_term=VSCode%E9%9D%9Eworkspace%E6%97%A0%E6%B3%95debug&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-125695799.142v33pc_rank_34,185v2control&spm=1018.2226.3001.4187

如果SSH通道断开,有2个原因,一个是用的穿透服务流量没有了,一个是路由器的ip更换了。后者需要登陆UI界面,打开终端,进行一次ifconfig,或者用路由器绑定内网ip防止端口被占用,一劳永逸

5.2 远程SSH传输数据神器-Aliyunpan

(1) 使用命令 ,即可不用每次输入aliyunpan去执行操作
chomd 777 aliyunpan
./aliyunpan

5.3 远程SSH各类权限问题

(1) sudo chown -R jack psgan-master
用sudo chmod777 psgan-master 无法解决!

5.4 SSH 采用私钥配对的各种问题

【背景】Win首次用私钥配对,然后MAC接着配对时,发现如下报错,无法连接
Load key “/Users/jack/.ssh/jack_rsa.rsa”: bad permissions
经过网上的资料查找发现 [https://blog.csdn.net/weixin_45027467/article/details/122307783]:
密钥会对其他人可见,不安全!
但是这个操作不是对服务器的rsa操作,而是对于你本地要连接的客户端执行,即MAC
MAC执行本地的ras权限降低,通过!

5.5 vsc_prompt_cmd_original

https://stackoverflow.com/questions/73421978/vscode-remote-ssh-extension-tmux-bash-vsc-prompt-cmd-original-command-n

精辟
在这里插入图片描述

六. 服务器运维管理

Host JackLab0深圳
HostName -----
Port -----
User jack
ssh jack@----- -p -----

1. 虚拟桌面配置

1.1 删除如下文件即可使用虚拟机

/usr/share/X11/xorg.conf.d/xorg.conf

2. 磁盘管理

2.1. 卸载已有磁盘

lsblk /
nvme1n1 259:0 0 931.5G 0 disk
└─nvmeplus-vg_data 253:0 0 1.8T 0 lvm /home/jack/Data
nvme0n1 259:1 0 931.5G 0 disk
└─nvmeplus-vg_data 253:0 0 1.8T 0 lvm /home/jack/Data

查看已经挂载的磁盘情况:
df -lh

查看未挂载的磁盘:/dev/mapper/nvmeplus-vg_data
fdisk -l

临时挂载
mount /dev/mapper/nvmeplus-vg_data /data

永久挂载
vi /etc/fstab

2.2. 2块固态合并为1块

https://blog.csdn.net/weixin_41674971/article/details/128109981

测速
(JackProtein) jack@JackZ590:~$ sudo -s
root@JackZ590:/home/jack# hdparm -tT /dev/mapper/nvmeplus-vg_data

for i in 1 2 3 4 5; do hdparm -tT /dev/mapper/nvmeplus-vg_data; done

/dev/mapper/nvmeplus-vg_data:
Timing cached reads: 44084 MB in 2.00 seconds = 22078.88 MB/sec
Timing buffered disk reads: 13060 MB in 3.00 seconds = 4353.18 MB/sec

2.3. 测试磁盘读写速度

time dd if=/dev/sda1 of=test.dbf bs=8k
/dev/mapper/nvmeplus-vg_data
time dd if=/dev/sda1 of=/tmp/test bs=8k
/dev/mapper/nvmeplus-vg_data

3. 多用户管理

https://blog.csdn.net/m0_48643365/article/details/124092478
ls -ll

user: wengwx
密码: wengwx123456

user: wangqy
密码: wangqy123456

user: zhoudf
密码: zhoudf123456

chown -R wengwx wengwx
创建用户/迁移用户之后,将所有权转交回指定用户

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值