lblbk.github.io

Linux命令收集

记录日常使用 ubuntu 遇到的问题和解决方法

Ubuntu

包管理

列出最近安装软件包

Linux 系统保存了所有发生事件的日志。你可以参考最近安装软件包的日志。有两个方法可以来做。用 dpkg 命令的日志或者 apt 命令的日志。

你仅仅需要用 grep 命令过滤已经安装的软件包日志

权限管理

安装 node

下载好之后,在文件中切换到刚才的下载目录(我的浏览器将node包下载到了 /download 文件夹)

$ tar -xvJf node-v14.15.1-linux-x64.tar.xz

// 移动解压的包到usr/local/share
$ sudo mv ./node-v14.15.1-linux-x64 /usr/local/share

下载的tar.xz包是已经编译好的,可以直接使用

但是为了方便我们需要给 ./bin 目录内的node,npm,npx 分别创建一个软连接 (ln),linux下的软连接就有点像window系统下的快捷方式

$ sudo ln -s /usr/local/share/node-v14.15.1-linux-x64/bin/node /usr/local/bin/node

$ sudo ln -s /usr/local/share/node-v14.15.1-linux-x64/bin/npm /usr/local/bin/npm

$ sudo ln -s /usr/local/share/node-v14.15.1-linux-x64/bin/npx /usr/local/bin/npx

『Ctrl + Alt + T』快捷键打开终端

$ node -v
$ npm -v
$ npx -v

若以上三个命令都成功,则node 和npm已经安装成功

3.安装cnpm 因为某些原因,国外的npm始终不太好用(速度太慢),所以国内就有了npm 淘宝镜像 cnpm

$ sudo npm install cnpm -g --registry=https://registry.npm.taobao.org

// 创建软连接

$ sudo ln -s usr/local/share/node-v14.15.1-linux-x64/lib/node_modules/cnpm/bin /usr/local/bin/cnpm

运行cnpm

$cnpm

nohup

nohup python main.py >>nohup.out 2>&1 &

### QA

##### GPU

- 训练时脚本停止了,gpu显存仍然被占用

  `ps aux|grep user_name|grep python` 查看当前用户所有程序,并过滤python

  `kill -s 9 pid` 杀掉指定进程

  命令解释一下:[kill 与 kill -9 的区别 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/143635282)

  > 其实用 nvidia-smi 查看后就能看到python脚本的pid, 直接杀掉就可以

##### nvidia-smi 命令报错
- nvidia-smi 出错

`Failed to initialize NVML: Driver/library version mismatch`

- 解决方式
  
  查看本机内核版本
  
  ```bash
  ubuntu18:~$ cat /proc/driver/nvidia/version
  NVRM version: NVIDIA UNIX x86_64 Kernel Module  460.27.04  Fri Dec 11 23:35:05 UTC 2020
  GCC version:  gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 

查看安装日志

  ubuntu18:~$ cat /var/log/dpkg.log | grep nvidia
  2021-07-14 14:33:49 install libnvidia-compute-465:amd64 <无> 465.31-0ubuntu0.18.04.1
  2021-07-14 14:33:49 status half-installed libnvidia-compute-465:amd64 465.31-0ubuntu0.18.04.1
  2021-07-14 14:33:50 status unpacked libnvidia-compute-465:amd64 465.31-0ubuntu0.18.04.1
  2021-07-14 14:33:50 status unpacked libnvidia-compute-465:amd64 465.31-0ubuntu0.18.04.1
  2021-07-14 14:33:54 configure libnvidia-compute-465:amd64 465.31-0ubuntu0.18.04.1 <无>
  2021-07-14 14:33:54 status unpacked libnvidia-compute-465:amd64 465.31-0ubuntu0.18.04.1

查看驱动程序

  ubuntu18:~$ sudo dpkg --list | grep nvidia-*
  
  ii  libnvidia-compute-465:amd64                465.31-0ubuntu0.18.04.1                          amd64        NVIDIA libcompute package

可以看到驱动程序和本机内核版本是不一样的,应该是被自动更新过,这里只需要重新安装下nvidia驱动就可以,cuda免于重装

卸载原有驱动

  sudo apt-get purge nvidia*

查找驱动

```bash
ubuntu18:~$ ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00002204sv00001458sd00004043bc03sc00i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-465 - third-party free recommended
driver   : nvidia-driver-460-server - distro non-free
driver   : nvidia-driver-460 - third-party free
driver   : xserver-xorg-video-nouveau - distro free builtin
```

安装与内核相同版本

  sudo apt-get install nvidia-driver-460 nvidia-settings nvidia-prime

重启后,OK