linux基础命令

文章目录

设置环境变量

命令: export

shell 复制代码
以常见的两个环境变量:PATH和LD_LIBRARY_PATH为例
1. PATH
如果你有自己安装的命令,希望暴露出来直接使用。比如miniconda中的python,如果不加环境变量一般需要写完整的路径:/x/x/x/miniconda3/bin/python,如果希望直接写python就能用到调用conda中的python指令,那么可以:
export PATH=/x/x/x/miniconda3/bin:$PATH
先解释上述命令的格式,右侧的路径可以写多个,以:分隔,$PATH表示求PATH变量的值,因为PATH环境变量以前可能已经有值,需要保留那些值不影响其他命令的使用,其次当输入了python命令时,会从PATH变量的路径下去找python可执行文件,先找到哪个就用哪个,因此:前后路径的先后顺序也很重要。
2. LD_LIBRARY_PATH
和PATH路径一样,只不过LD_LIBRARY_PATH是设置动态链接库的搜索路径。比如安装了CUDA以后,一般需要设置:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

如果要查看是否设置成功可以使用命令:env | grep PATH 进行确认

最后以上设置的环境变量只在当前terminal的上下文中有效,如果希望全局有效,那么将export命令写入文件: ~/.bashrc,然后执行:source ~/.bashrc 生效或新打开终端

查看GPU信息

命令:nvidia-smi

shell 复制代码
user@host:/tmp/test_directory# nvidia-smi
Mon Nov  8 11:55:26 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.82       Driver Version: 440.82       CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  TITAN X (Pascal)    Off  | 00000000:01:00.0  On |                  N/A |
| 31%   57C    P0    66W / 250W |    408MiB / 12194MiB |      2%      Default |
+-------------------------------+----------------------+----------------------+
|   1  TITAN X (Pascal)    Off  | 00000000:04:00.0 Off |                  N/A |
| 93%   27C    P8    11W / 250W |      2MiB / 12196MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      1450      G   /usr/lib/xorg/Xorg                            32MiB |
|    0      2804      G   /usr/lib/xorg/Xorg                           351MiB |
+-----------------------------------------------------------------------------+
shell 复制代码
Memory-Usage          # 内存的使用情况
408MiB / 12194MiB     # 前者408MiB代表已使用的显存,后者12194MiB代表总现存
shell 复制代码
GPU-Util              # GPU的使用率
2%                    # 使用率百分比

如果需要不停的输出GPU占用信息,那么使用nvidia-smi -l 1每隔1秒输出一次,或使用watch -n 1 nvidia-smi也是同样的效果

查看/杀死进程

查看进程命令: ps

杀死进程命令:kill

shell 复制代码
root@container-5e3e11aeb4-948a17b1:~# ps -ef 
UID          PID    PPID  C STIME TTY          TIME CMD
root           1       0  0 14:04 ?        00:00:00 bash /init/boot/boot.sh
root          58      48  8 14:04 ?        00:00:03 /root/miniconda3/bin/python /root/miniconda3/bin/jupyter-lab --allow-root
root          60      48  0 14:04 ?        00:00:00 /usr/sbin/sshd -D
root          61      48 10 14:04 ?        00:00:04 /root/miniconda3/bin/python /root/miniconda3/bin/tensorboard --host 0.0.0.0 --port 6006 --logdir /root/tf-logs
root         146      61  0 14:04 ?        00:00:00 /root/miniconda3/lib/python3.8/site-packages/tensorboard_data_server/bin/server --logdir=/root/tf-logs
root         402     338 99 14:05 pts/0    00:00:06 python tensorflow2.x-test.py

从ps的输出结果中根据执行的命令名称找到要杀死的进程,比如最后python tensorflow2.x-test.py命令执行的进程ID是402,因此可以:

shell 复制代码
root@container-5e3e11aeb4-948a17b1:~# kill -9 402
root@container-5e3e11aeb4-948a17b1:~#

kill后可以再次使用ps -ef确认进程是否已经结束。

查看进程的CPU和内存占用

命令:top

shell 复制代码
Tasks:  11 total,   2 running,   9 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.3 us,  1.3 sy,  0.0 ni, 96.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 52801571+total, 45453059+free,  7807904 used, 65677196 buff/cache
KiB Swap:  2074620 total,  2074620 free,        0 used. 51678192+avail Mem 
    PID user@host      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND             
   2316 root      20   0 21.846g 1.796g 244664 R 101.4  0.4   0:05.56 python               
     58 root      20   0  372352  84804  15540 S   1.4  0.0   0:05.40 jupyter-lab         
     59 root      20   0  713796  11288   7668 S   1.4  0.0   0:01.31 proxy               
   2395 root      20   0   45920   3940   3444 R   1.4  0.0   0:00.01 top                 
      1 root      20   0   25368   3724   3404 S   0.0  0.0   0:00.07 bash                 
     48 root      20   0   55060  24328   9728 S   0.0  0.0   0:00.33 supervisord         
     60 root      20   0   72304   5872   5140 S   0.0  0.0   0:00.01 sshd                 
     61 root      20   0 9756148 315032 156124 S   0.0  0.1   0:04.16 tensorboard         
    146 root      20   0 1582996   6964   5296 S   0.0  0.0   0:00.04 server               
    338 root      20   0   25824   4312   3800 S   0.0  0.0   0:00.18 bash                 
    481 root      20   0   25824   4544   4040 S   0.0  0.0   0:00.18 bash

如果有高负载(CPU使用率高)的情况,那么一般进程都会排在最上边,根据进程名称可以进行确认。那么这个进程占用的CPU可以通过%CPU字段读取出来,内存更复杂一些,但是一般看RES字段就够了。比如上边第一个Python进程CPU的占用率是101.4%,内存使用大小是1.796g(Tips:如果内存显示的单位和上述不同,按e键切换)

重定向日志

命令: >

shell 复制代码
user@host:/tmp# python train.py    # 一般情况下日志会输出到stdout/stderr中
Epoch.1 Iter 20
Epoch.1 Iter 40
Epoch.1 Iter 50
...

user@host:/tmp# python train.py > ./train.log 2>&1  # 把stdout/stderr中的日志重定向到train.log文件中,最后的2>&1中,2代表stderr, 1代表stdout,&1可以理解成像c语言中的求地址

user@host:/tmp# cat ./train.log    # 将train.log文件中的内容打印在stdout。cat(Concatenate FILE(s) to standard output.)
Epoch.1 Iter 20
Epoch.1 Iter 40
Epoch.1 Iter 50
...

user@host:/tmp$ python train.py > ./train.log 2>&1 &   # 如果最后再加一个&的效果是后台运行,还可以参考nohup的配合使用 
相关推荐
运维老司机17 分钟前
Jenkins修改LOGO
运维·自动化·jenkins
D-海漠33 分钟前
基础自动化系统的特点
运维·自动化
我言秋日胜春朝★41 分钟前
【Linux】进程地址空间
linux·运维·服务器
繁依Fanyi1 小时前
简易安卓句分器实现
java·服务器·开发语言·算法·eclipse
C-cat.1 小时前
Linux|环境变量
linux·运维·服务器
yunfanleo1 小时前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
m51271 小时前
LinuxC语言
java·服务器·前端
运维-大白同学2 小时前
将django+vue项目发布部署到服务器
服务器·vue.js·django
糖豆豆今天也要努力鸭2 小时前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎2 小时前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器