ubuntu下的常用的shell命令


本文旨在總結常用的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.tartorchvision-0.4.0-py36_cu100.tar,並在linux對應py36環境中安裝conda install pytorch-1.0.0-py3.6_cuda10.0.130_cudnn7.4.1_1.tarconda 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... ...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM