ubuntu下的常用的shell命令

本文旨在总结常用的shell命令以满足日常科研需求。

linux相关

1. 查看linux版本

cat /proc/version
$ cat /proc/version
1. 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. (现有版本)Linux version 5.4.0-159-generic (buildd@lcy02-amd64-117) (gcc version 9.4.0 (Ubuntu 9.4.0-1ubuntu1~20.04.1)) #176-Ubuntu SMP Mon Aug 14 12:04:20 UTC 2023

2. 查看CUDA版本以及cudnn版本号

(1) cuda(现有版本为10.1.243)

cat  /usr/local/cuda/version.txt

在这里插入图片描述

(2) cudnn(现有版本为7.65)

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

4. 命令行快捷键

功能 快捷键
光标跳到行首 Ctrl+a
光标跳到页尾 Ctrl+e
删除当前光标前面的文字 Ctrl+u
删除当前光标后面的文字 Ctrl+k
撤销当前操作 Ctrl+y
清屏 Ctrl+l
关闭当前进程 Ctrl+c
退出当前shell Ctrl+d
撤销当前操作 Ctrl+y

5. mac终端连接服务器命令

ssh -p 端口号 用户名@ip地址

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 # 将文件从一台服务器复制到另一台服务器
ls |head -n 100 |xargs -i cp {} dst   # 将当前路径的前100个文件复制到dst路径
ls |head -n 100 |xargs -i cp -r {} dst   # 将当前路径的前100个文件夹复制到dst路径

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

visdom

1. 在xhsell打开对应conda环境,并输入

python -m visdom.server

若成功,会提示

$ python -m visdom.server
Downloading scripts. It might take a while.
It's Alive!
INFO:root:Application Started
You can navigate to http://localhost:8097

2. 配置xshell隧道

配置xshell隧道

3. 在本地windows cmd连接ssh服务器

ssh -L 8097:127.0.0.1:8097 username@xx.xx.xx.xx

4. 在本地浏览器输入http://localhost:8097/访问visdom服务器(需要关掉代理)

visdom可视化结果

5. 更改visdom端口号

5.1 更改程序中的端口号

port,env = 2022,params.model_version (main.py 470)

5.2 在本地windows cmd连接ssh服务器

ssh -L 2022:127.0.0.1:2022 username@xx.xx.xx.xx

5.3 在xhsell打开对应conda环境,并输入

python -m visdom.server -p 2019

若成功则提示:

Downloading scripts. It might take a while.
It's Alive!

6. 终止服务器和本地的连接

tmux kill-session -t session-name

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是否正确安装
    在这里插入图片描述

3. opencv-python

  • 安装
  • 检查是否正确安装
$ 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... ...

posted @ 2020-09-03 16:11  我的梦想似彩虹  阅读(1674)  评论(0编辑  收藏  举报