Ubuntu系统命令总结(持续更新)

这里汇总一下近一年来,在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的方法不太靠谱)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值