这里汇总一下近一年来,在Ubuntu系统中常被我用到的命令。
本文持续更新。
1 GPU与Docker相关
1.1 设置nvidia工作模式
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=1 # 高性能
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=0 # Adaptive
nvidia-settings -a [gpu:0]/GPUPowerMizerMode=2 # Auto
1.2 将nvidia-docker设置为默认方式
由于pycharm里面默认使用的docker不是nvidia-docker,所以需要将其设置为默认
修改/etc/docker/daemon.json文件
{
"default-runtime": "nvidia", <------ 添加的行,注意末尾的逗号不能少!
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
然后重启
sudo systemctl restart docker
1.3 将Docker下所有镜像打包
nvidia-docker save $(docker images | grep -v REPOSITORY | awk 'BEGIN{OFS=":";ORS=" "}{print $1,$2}') -o all_images.tar
2 系统相关
几个常访问的系统文件:
### ubuntu 系列
/etc/group # 用户组文件
/etc/passwd # 用户信息文件
/etc/fstab # 开机挂载相关
/lib/systemd/system/xxx.service # 系统service文件存放的位置
2.1 NFS文件系统配置
假设场景:
nfs-server: 192.168.31.100 共享 /data目录
nfs-client: 192.168.31.2 挂载nfs-server上的/data目录至/remote_data
在提供NFS服务的机器上:
# 更新并安装nfs服务
apt update
apt install nfs-kernel-server -y
# 配置nfs服务,将某文件目录添加针对某IP或某类IP的nfs访问权限
echo "/data 192.168.31.2(rw,sync,no_root_squash)" >> /etc/exports
# 对目标IP允许防火墙通过
ufw allow from 192.168.31.2 to any port nfs
ufw status
# 重启nfs服务,使配置生效
/etc/init.d/nfs-kernel-server restart
在使用nfs服务(客户端)机器上:
# 创建挂载目录
mkdir -p /remote_data
# 临时挂载(重启后失效)
mount 192.168.31.100:/data /remote_data
# 永久挂载(开机后自动挂载,第一次挂载需要重启后生效)
# 编辑 /etc/fstab 并将如下信息写入:
192.168.31.100:/data /remote_data nfs defaults 0 0
2.2 18.04系统网络配置文献修改
在ubuntu 18.04 server系统中, 修改网络配置通常通过修改
/etc/netplan/50-cloud-init.yaml文件
修改完成后执行使配置生效:
sudo netplan apply
2.3 两台机器配置ssh免密钥登陆(单向)
假设场景:
Host A: 192.168.31.100 (让B不需要输入密码就可以登陆aaa用户)
Host B: 192.168.31.2 (B通过bbb用户,可以不需要密码而登陆A的aaa用户)
免密钥基本原理:
让B生成一个公共令牌,令牌发给谁,B就可以随意访问谁
Host A的aaa账户配置:
# 如果home下面没有.ssh文件夹的话,先创建一个文件夹
mkdir -p /home/aaa/.ssh
Host B的bbb账户配置:
# 进入aaa用户的.ssh目录
cd /home/aaa/.ssh
# 在18.04环境下,通过网卡配置信息,生成公钥(令牌)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa/etc/netplan/50-cloud-init.yaml
# 把公共令牌发给Host B的bbb用户(注意这种操作会直接覆盖原有的authorized_keys)
scp id_rsa.pub bbb@192.168.31.100:~/.ssh/authorized_keys
2.4 允许root用户通过ssh登陆
# 编辑ssh服务配置文件
# 修改其中的 #PermitRootLogin prohibit-password --> PermitRootLogin yes
# 注意要去掉前面的井号
vim /etc/ssh/sshd_config
# 为root创建密码
passwd root
# 重启ssh服务,使配置生效
service ssh restart
2.5 设置ubuntu系统时区
# 设置时区,按照提示一步一步选择即可
tzselect
# 将生成的时区文件设置为系统时区
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
2.6 ubuntu18.04 desktop版–设置开机启动模式(图形/纯文本)
在安装Nvidia显卡驱动的时候,会需要关闭图形界面的X服务,用这种方式进入纯文本模式重启即可,是目前个人觉得最稳妥、出错率最小的一种方式
# 以纯文本方式启动(重启生效)
sudo systemctl set-default multi-user.target
# 以图形界面方式启动(重启生效)
sudo systemctl set-default graphical.target
2.7 命令行解压文件
# tar文件解压
tar -zxvf archive_name.tar.gz
# zip文件解压
unzip archive_name.zip
2.8 pppoe拨号方式开关
pon dsl-provider # 开
poff dsl-provider # 关
3 深度学习相关
3.1 各种第三方源
pip清华源:https://pypi.tuna.tsinghua.edu.cn/simple
pip阿里源:https://mirrors.aliyun.com/pypi/simple
conda阿里源,其中前两个是必须的,后面的根据需要添加,不必一次把所有添加进去
-> 来源于:博客
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/msys2
conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/r
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/Paddle
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/auto
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/biobakery
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/c4aarch64
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/caffe2
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/deepmodeling
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/dglteam
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/fastai
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/fermi
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/idaholab
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/intel
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/matsci
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/menpo
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/mordred-descriptor
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/msys2
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/numba
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/ohmeta
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/omnia
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/plotly
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/psi4
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/pytorch
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/pytorch-test
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/pytorch3d
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/pyviz
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/qiime2
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/rapidsai
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/rdkit
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/simpleitk
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/stackless
conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/ursky
注意:当默认default源出现问题而无法连接时,如果添加了新的conda源以后,仍然会因为默认源挂掉而无法使用,这时候,打开~/.condarc
删掉其中的default项保存即可
3.2 conda相关命令
conda config --set show_channel_urls yes # 设置是否显示源
conda info -e # 查看创建的虚拟环境
conda list # 列出当前环境下所有安装的conda包
conda search # 搜索conda包 具体在 https://docs.anaconda.com/anaconda/packages/pkg-docs 中查看
conda install # 安装指定的包,可以用=或==来指定版本
conda update/upgrade # 更新指定的包
conda remove # 卸载指定的包
conda create --name <环境名> python=3.6.2 # 创建环境的时候,后面可以跟上要安装的包名称,可以在创建环境时同时安装
source activate # 激活环境
source deactivate # 退出环境
conda remove -n <环境名称> --all # 删除环境 方法1
conda env remove -n <环境名称> # 删除环境 方法2
conda create --clone <从哪个环境拷贝> --name <新环境名称> # 从现有环境中拷贝一个完全一样新环境
conda install/remove --name <环境名称> <包名称> # 用conda,在环境之外对某环境中包环境进行管理(安装或删除)
# 安装cuda和cudnn的指定版本
cudatoolkit=9.0 cudnn=7.1.3
Pytorch相关
查看cuda版本:torch.version.cuda
查看cudnn版本:torch.backends.cudnn.version()
其他使用技巧方面
github网站无法加载图片:手动添加dns 8.8.8.8 和 8.8.4.4 (网上说的其他改hosts的方法不太靠谱)