本文旨在总结常用的shell命令以满足日常科研需求。
linux相关
1. 查看linux版本
cat /proc/version
$ cat /proc/version
Linux version 4.15.0-101-generic (buildd@lgw01-amd64-003) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #102-Ubuntu SMP Mon May 11 10:07:26 UTC 2020
2. 查看CUDA版本以及cudnn版本号
(1) cuda
cat /usr/local/cuda/version.txt
(2) cudnn
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
$ cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
#define CUDNN_MAJOR 7
#define CUDNN_MINOR 6
#define CUDNN_PATCHLEVEL 5
--
#define CUDNN_VERSION (CUDNN_MAJOR * 1000 + CUDNN_MINOR * 100 + CUDNN_PATCHLEVEL)
#include "driver_types.h"
3. 服务器重启
(1) 重启
sudo reboot
(2) 挂载mnt
cd home/ubuntu/common_scripts
# cat attach_dish.sh 查看.sh文件内容
./attach_dish.sh
ubuntu用户相关
1. 根据PID查看用户信息
ps -u -p PID
2. 查看所有用户的登录日志
lastlog
3. 查看某一用户的登录日志
lastlog -u username
4. 查看所有用户的信息
top
5. 查看某一用户的PID信息
top -u username
6. 停止某一用户的所有进程
pkill -u username
文件/文件夹操作
1. 进入文件夹
cd path
2. 删除文件夹
rm -rf /home/files
3. 复制文件夹及其子文件(夹)
cp -r /home/dir1 /home/dir2 # 将dir1复制到dir2中
cp -r dir1/file{1..n} dir2 # 将dir1文件夹下名称为file1,file2,... ... ,filen的文件或文件夹复制到dir2
sudo scp -r dir1 root@ip:dir2 # 将文件从一台服务器复制到另一台服务器
4. 移动文件/文件夹
mv dir1 dir2 # 将dir1移动到dir2下
mv dir1/*.npy dir2 # 将dir1文件夹下所有npy文件移动到dir2文件夹下
5. 压缩文件/文件夹
tar -czvf dir2/newfile.tar.gz dir1 # 将dir1文件夹压缩到dir2文件夹下并命名为newfile.tar.gz
tar czvf - dir1 | split -d -b 10G - dir2/newfile # 将dir1以10G每个压缩包的形式分段压缩到dir2路径下并命名为newfile
6. 解压文件
tar -zxvf filename.tar.gz # tar.gz文件解压
tar -xvf filename.tar # tar文件解压
tar -xjvf file.tar.bz2 # tar.bz2文件解压
tar –xZvf file.tar.Z # tar.Z文件解压
z: gzip 压缩格式
x: extract 解压
v: verbose 详细信息
f: file(file=archieve) 文件
7. 创建软链
ln -s ./true_dir current_dir
8. 统计某一路径下所有文件夹(不包含子文件夹)的个数
ls -l|grep "^d"| wc -l
9. 统计某一路径下所有文件的个数
ls -l|grep "^-"| wc -l
查看内存
1. 查看某一文件夹大小
du -h --max-depth=1 folder_dir
2. 查看每个根路径的分区大小/查看磁盘剩余空间
df -h
3. 统计当前目录大小并从小到大排序
du -sm * | sort -n
不间断运行程序——nohup
由于网络问题,远程调试程序会出现断连的情况,而nohup可以完美解决这个问题。
- 不间断运行只需在需要输入的命令前添加nohup
nohup + command
- 这样运行的话,服务器端不显示任何输出,而是将输出保存在跟运行文件所在路径同一级的文件夹下的
nohup.out
中。查看nohup.out
的方法为:
cat nohup.out
# 查看nohup.out前n行
head -n nohup.out
# 查看nohup.out后n行
tail -n nohup.out
tensorboard
1. 使用tensorboard的步骤
(1) 激活装有tensorflow和tensorboard的conda环境
source activate tensorflow
(2) 修改xshell-当前会话属性-隧道
(3) 找到程序logdir的输出地址并在shell里执行运行语句
tensorboard --logdir="./OGCN/runs/Dec24_20-27-24_Lab164"
2. 查看多个模型的loss曲线、修改端口号和host地址
tensorboard --logdir=run1:"/home/.../summary",run2:"/home/.../summary" --port=6006 --host=127.0.0.1
3. 查看tensorboard端口占用
lsof -i:6006 # 以6066端口为例
4. 关闭某一端口
kill -9 PID # PID由lsof得到
linux连接校园网
curl 'http://10.3.8.211/login' --data 'user=XXX&pass=XXX&line='''
conda相关操作
1. 虚拟环境
(1) 创建环境
conda create --name yourenvname python=version
(2) 删除虚拟环境
conda remove -n yourenvname --all
(3) 查看所有已创建的虚拟环境
conda info --env
(4) 重命名虚拟环境
conda 没有重命名指令,实际重命名是通过 clone 旧环境并删除旧环境完成的,分两步:
- 命名新环境并clone旧环境
conda create -n new_env_name --clone old_env_name
- 删除旧环境
conda remove -n old_env_name --all
(5) 激活和退出虚拟环境
source/conda activate yourenvname
conda deactivate
2. pytorch及torchvision
- 第一种方案
# cuda10.0&官方源
conda install pytorch==1.0.0 torchvision= =0.2.1 cuda100 -c pytorch
# cuda10,0&第三方镜像源
conda install pytorch= =1.0.0 torchvision= =0.2.1 cuda100 -c channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 无cuda版本(对我有效)
conda install pytorch= =1.0.0 torchvision= =0.2.1
-
第二种方案
安装cuda10、python3.6、pytorch=1.0三个指定条件的pytorch及torchvision有如下几种方法: -
[ ] 查询pytorch官网:
但是这个命令在服务器不能用,原因可能是网络问题。 -
[x]
conda install pytorch=1.0 torchvision cudatoolkit=10.0
,去掉官网channel采用已有channels的方法可行。 -
[ ] 离线安装
在清华镜像下载对应版本的pytorch和torchvision:pytorch-1.0.0-py3.6_cuda10.0.130_cudnn7.4.1_1.tar和torchvision-0.4.0-py36_cu100.tar,并在linux对应py36环境中安装conda install pytorch-1.0.0-py3.6_cuda10.0.130_cudnn7.4.1_1.tar
和conda install torchvision-0.4.0-py36_cu100.tar
。但这种方法由于不能安装pytorch和torchvision的依赖包,故也不行。 -
[ ]
conda install pytorch=1.0 torchvision cuda100
这种方法不行,找到的包版本对不上。 -
[ ]
conda install pytorch=1.0 torchvision cuda100 -c pytorch/soumith
还是去掉指定channel的好😄 -
[x]
conda install pytorch=1.0.0 torchvision cuda100 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
-
检查pytorch是否正确安装
3. opencv-python
- 安装
- [x]
conda install -c menpo opencv
- [ ]
conda install --channel https://conda.anaconda.org/menpo opencv3
- 检查是否正确安装
$ python
Python 3.6.10 |Anaconda, Inc.| (default, Jan 7 2020, 21:14:29)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
不报错说明已正确安装。
To Be Continued... ...