0%

Ubuntu使用手记

  1. 1. 终端操作部分
    1. 1.1. 查看操作系统信息
      1. 位数
      2. 操作系统版本号
      3. 其他信息
    2. 1.2. 查看硬件信息
      1. 查看显卡型号
    3. 1.3. 找到命令对应的路径
    4. 1.4. 软链接
      1. 创建软链接
      2. 删除软链接
    5. 1.5. wget 网络下载
    6. 1.6. tar 打包与解压
      1. 解压
      2. 查看压缩文件
      3. 打包创建压缩文件
    7. 1.7. 在终端打开文件资源管理器
    8. 1.8. 环境变量
    9. 1.9. 删除文件(夹)
    10. 1.10. grep 正则表达式
    11. 1.11. 将终端输出保存到临时变量
    12. 1.12. 输出重定向
    13. 1.13. lsmod 查看已加载的module
    14. 1.14. telinit与切换tty
    15. 1.15. chmod 修改文件权限
    16. 1.16. gedit 图形化文件编辑器
  2. 2. 软件安装部分
    1. 2.1. 安装Typora
    2. 2.2. 安装nodejs
    3. 2.3. 安装VS Code(不要用snap VS Code)
    4. 2.4. 安装NVIDIA驱动(手动)
      1. 挑选合适的驱动
      2. 正式安装
      3. 遇到的问题
    5. 2.5. 安装CUDA 10.2+cuDNN 7.6.5
      1. 准备
      2. 安装CUDA 10.2
      3. 安装cuDNN 7.6.5

1. 终端操作部分

1.1. 查看操作系统信息

https://blog.csdn.net/zhengxiangwen/article/details/60324802

位数

1
sudo name -m

32位会显示i386i686,64位会显示x86_64

操作系统版本号

1
cat /etc/issue

输出诸如:# Ubuntu 18.04.5 LTS \n \l

其他信息

1
2
3
4
5
6
7
8
(base) whuls@whuls:~$uname -s  # 内核名称
Linux
(base) whuls@whuls:~$uname -r # 内核版本
5.4.0-62-generic
(base) whuls@whuls:~$uname -n # 网络主机名
whuls
(base) whuls@whuls:~$uname -p # CPU
x86_64

1.2. 查看硬件信息

1
lspci

查看显卡型号

1
lspci | grep VGA

输出诸如:01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 5GB] (rev a1)

1.3. 找到命令对应的路径

1
which code

or

1
whereis code

which显示当前可执行脚本的路径,而whereis会在环境变量里面搜索所有匹配的命令或文件(或软链接)。

1.4. 软链接

创建软链接

1
ln -s ./node /usr/bin/

-s用来指定链接类型为软链接,后面紧跟的第一个参数指定文件,第二个参数是软链接保存的路径

上面的命令中意思是在/usr/bin/目录下创建一个关于node的软链接。

删除软链接

如果在创建软链接后,把链接的文件删除了,创建的软链接就成了无效的软链接。删除无效软链接使用symlinks自动完成。

1
2
sudo apt-get install symlinks
symlinks -d /usr/bin

命令的意思:删除/usr/bin/目录下所有无效软链接。

1.5. wget 网络下载

用来下载网络文件。通过一条命令来解释一些常用参数:

1
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -

-q: 安静模式,无命令行输出;

-O:大写字母O,将地址的内容输出到文件名中。在这条命令中,-是一个特殊的符号,表示将链接内容输出到变量-中;

-P:下载的文件的保存路径,文件是啥名就保存啥名字,不关心文件内容;如果已经声明了-O-P就不起作用;

1.6. tar 打包与解压

解压

1
2
mkdir nodejs
tar -xf node-v14.15.4-linux-x64.tar.xz -C ./nodejs

*.tar.xz解压到./nodejs文件夹中,前提是该文件夹存在。若不指定,则解压到当前文件夹。

-C:指定目标文件夹,默认为.

-x:从压缩包中取出文件

-f:指定压缩包的文件名

查看压缩文件

1
2
tar -tf node-v14.15.4-linux-x64.tar.xz
tar -tvf node-v14.15.4-linux-x64.tar.xz

-t:列出压缩包的内容

-v:列出压缩包的详细内容

打包创建压缩文件

默认的tar命令只能创建.tar.tar.gz

1
2
3
tar -c abc.doc -f pack.tar
tar -cf pack.tar abc.doc
tar -cvf pack.tar abc.doc
1
2
3
tar -zc abc.doc -f pack.tar
tar -zcf pack.tar abc.doc
tar -zcvf pack.tar abc.doc

-c创建新的压缩包,但没有压缩功能,仅打包。可以选择一个或多个文件或文件夹;

-z压缩或解压,算法为gzip

-v打包的时候显示文件信息;

1.7. 在终端打开文件资源管理器

1
nautilus .

后面那个.可以替换为任意相对或绝对路径

1.8. 环境变量

在命令行输入env,查看环境变量内容

设置环境变量在~/.bashrc中,导出一个环境变量用export命令,具体用法见下方:

1
2
export NODE_HOME=/usr/local/nodejs/node-v14.15.4-linux-x64
export PATH=$NODE_HOME/bin:$PATH

1.9. 删除文件(夹)

1
rm xxxx.xx

-f强制删除;

-r递归,用来删除文件夹,删除空文件夹还可以用:rmdir xxx

1.10. grep 正则表达式

每天一个linux命令(39):grep 命令

全称为Global Regular Expression Print,执行正则表达式匹配搜索。一般用来筛选终端的输出,用法如下:

1
2
(base) whuls@whuls:~$ ls
anaconda3 codes snap 公共的 模板 视频 图片 文档 下载 音乐 桌面

筛选只有英文和数字的文件夹名:

1
2
3
4
(base) whuls@whuls:~$ ls | grep "[a-z|0-9]"
anaconda3
codes
snap

1.11. 将终端输出保存到临时变量

应用场景:通过ls获取当前文件夹的文件时,需要在下一条命令中对这个文件进行操作

获取当前文件夹下的一个xxx.deb文件,保存到变量$m_out中,并且执行安装操作。

1
2
3
4
m_out=$(ls *.deb)  # 将ls *.deb的结果作为变量保存到m_out中
echo $m_out # 打印变量内容(不会作为命令执行)
$m_out # 将变量内容作为命令执行
sudo apt install ./$m_out # 安装.deb文件

1.12. 输出重定向

Shell 输入/输出重定向 | 菜鸟教程

命令 说明
command > file 将输出重定向到 file。
command < file 将输入重定向到 file。
command >> file 将输出以追加的方式重定向到 file。
n > file 将文件描述符为 n 的文件重定向到 file。
n >> file 将文件描述符为 n 的文件以追加的方式重定向到 file。
n >& m 将输出文件 m 和 n 合并。
n <& m 将输入文件 m 和 n 合并。
<< tag 将开始标记 tag 和结束标记 tag 之间的内容作为输入。

常见的一种用法就是2>&1,这里2代表标准输出错误stderr1代表标准输出stdout

1.13. lsmod 查看已加载的module

Linux lsmod命令 | 菜鸟教程

查看是否开启nouveau

1
lsmod | grep nouveau

1.14. telinit与切换tty

【Linux】一步一步学Linux——telinit命令(144)

telinit用来设置当前系统的运行等级,常用作关闭图形界面、关机、重启等操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(base) whuls@whuls:~$ telinit --help
telinit [OPTIONS...] {COMMAND}

Send control commands to the init daemon.

--help Show this help
--no-wall Don't send wall message before halt/power-off/reboot

Commands:
0 Power-off the machine
6 Reboot the machine
2, 3, 4, 5 Start runlevelX.target unit
1, s, S Enter rescue mode
q, Q Reload init daemon configuration
u, U Reexecute init daemon
  • 关机:telinit 0
  • 重启:telinit 6
  • 关闭图形化界面:telinit 3
  • (重新)启动图形化界面:telinit 5,若启动失败,通过sudo service gdm3 start启动(gdm3orlightdm

关闭图形化界面后,显示屏会黑掉,且会关闭当前运行的程序,接着自动进入一个命令行,需要登录;若没有自动进入,使用Ctrl + Alt +F1开启。

Ctrl + Alt + F1~6,最多开启6个。

1.15. chmod 修改文件权限

Linux chmod命令

一条命令:给xxx.run添加所有用户的可执行权限。

1
sudo chmod a+x xxx.run

a代表所有用户,+表示添加权限(-是删除权限),x表示执行,r/w表示读/写。

查看权限:ls -l 文件名;

1.16. gedit 图形化文件编辑器

通常用于编辑需要高级权限的文本文件

1
sudo gedit [filename]

2. 软件安装部分

2.1. 安装Typora

参考链接:https://typora.io/#linux

1
2
3
4
5
6
7
8
9
10
# or run:
# sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -

# add Typora's repository
sudo add-apt-repository 'deb https://typora.io/linux ./'
sudo apt-get update

# install typora
sudo apt-get install typora

2.2. 安装nodejs

第一步:下载安装包

第二步:解压

一般解压到系统目录下,如/usr/local/nodejs

1
2
3
wget https://npm.taobao.org/mirrors/node/v14.15.4/node-v14.15.4-linux-x64.tar.xz
sudo mkdir ~/nodejs
sudo tar -xf node-v14.15.4-linux-x64.tar.xz -C /usr/local/nodejs

第三步:添加环境变量

~/.bashrc末尾添加:

1
2
export NODE_HOME=/usr/local/nodejs/node-v14.15.4-linux-x64
export PATH=$NODE_HOME/bin:$PATH

2.3. 安装VS Code(不要用snap VS Code)

VS Code官网 | Linux

Ubuntu使用VSCode无法输入中文

在Snap中下载的VS Code是阉割版本的,无法支持中文。改为官方版本的流程如下:(若没有安装过code,直接从第二步开始)

  1. 从snap中卸载VS Code:sudo snap remove code

  2. 下载VS Code的.deb包:官网

  3. 安装deb包

    • 方法一:在下载目录下,执行vscode_deb_name=$(ls|grep "^code_") | echo $vscode_deb_name | sudo apt install $vscode_deb_name
    • 方法二:复制deb包的名称,直接sudo apt install 包名
  4. 查看安装是否成功

    1
    2
    3
    4
    5
    6
    (base) whuls@whuls:~/下载$ code -v
    1.52.1
    ea3859d4ba2f3e577a159bc91e3074c5d85c0523
    x64
    (base) whuls@whuls:~/下载$ whereis code
    code: /usr/bin/code /usr/share/code

2.4. 安装NVIDIA驱动(手动)

【成功】ubuntu安装显卡驱动的三种方法

【失败】使用官方的NVIDIA驱动手动安装 | Linux安装NVIDIA显卡驱动的正确姿势

NVIDIA下载中心

挑选合适的驱动

查看显卡型号:lspcilshw

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(base) whuls@whuls:~$ lspci | grep VGA
01:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 5GB] (rev a1)
(base) whuls@whuls:~$ lshw -numeric -C display
WARNING: you should run this program as super-user.
*-display
description: VGA compatible controller
product: GP106 [GeForce GTX 1060 5GB] [10DE:1C04]
vendor: NVIDIA Corporation [10DE]
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: vga_controller bus_master cap_list rom
configuration: driver=nouveau latency=0
resources: irq:137 memory:a2000000-a2ffffff memory:90000000-9fffffff memory:a0000000-a1ffffff ioport:4000(size=128) memory:c0000-dffff
WARNING: output may be incomplete or inaccurate, you should run this program as super-user.

前往NVIDIA官网寻找驱动程序并下载,一般能搜到多个版本,这是显卡能支持的所有驱动;或者前往下载列表找到你想要的驱动。要选择哪一个进行安装,主要看具体用途,比如我们需要用到CUDA,就可以到官网去看看CUDA版本和驱动对应的情况。

CUDA Toolkit Linux x86_64 Driver Version Windows x86_64 Driver Version
CUDA 11.2.0 GA >=460.27.04 >=460.89
CUDA 11.1.1 Update 1 >=455.32 >=456.81
CUDA 11.1 GA >=455.23 >=456.38
CUDA 11.0.3 Update 1 >= 450.51.06 >= 451.82
CUDA 11.0.2 GA >= 450.51.05 >= 451.48
CUDA 11.0.1 RC >= 450.36.06 >= 451.22
CUDA 10.2.89 >= 440.33 >= 441.22
CUDA 10.1 (10.1.105 general release, and updates) >= 418.39 >= 418.96
CUDA 10.0.130 >= 410.48 >= 411.31
CUDA 9.2 (9.2.148 Update 1) >= 396.37 >= 398.26
CUDA 9.2 (9.2.88) >= 396.26 >= 397.44
CUDA 9.1 (9.1.85) >= 390.46 >= 391.29
CUDA 9.0 (9.0.76) >= 384.81 >= 385.54
CUDA 8.0 (8.0.61 GA2) >= 375.26 >= 376.51
CUDA 8.0 (8.0.44) >= 367.48 >= 369.30
CUDA 7.5 (7.5.16) >= 352.31 >= 353.66
CUDA 7.0 (7.0.28) >= 346.46 >= 347.62

正式安装

  1. 这里我选择了440版本的驱动,下载下来的文件名为NVIDIA-Linux-x86_64-440.100.run;
  2. 卸载已经安装过的显卡驱动:sudo apt-get remove --purge nvidia*;
  3. 禁用nouveau
    • 创建/etc/modprobe.d/blacklist-nouveau.conf
    • 文末添加blacklist nouveauoptions nouveau modeset=0
    • 重新构建内核生效sudo update-initramfs -u
    • 重启reboot
  4. BIOS禁用secure boot,如果没有禁用,会导致驱动安装失败或不正常;
  5. 关闭图形服务:sudo service gdm3 stop;
  6. 关闭可视化界面:sudo telinit 3;
  7. 执行安装:sudo sh ./NVIDIA-Linux-x86_64-440.100.run;
  8. 重新打开图形化界面:sudo service gdm3 start;

验证是否安装成功:

1
2
nvidia-smi
nvidia-settings

遇到的问题

  1. checksum错误:一般是.run文件下载不全,检查完整性;(下载列表
1
Error in check sums xxxxxxxx xxxxxxxx
  1. 有些教程里面说指导的最后一步的安装命令应该加上--no-opengl-files参数,且还要把nouveau禁用,我这么试了发现重启的时候根本就无法正常分辨率显示,然后换了个教程跟了一下发现并没有这个参数,安装驱动就很轻松;
  2. 执行sudo ./xxx.run之后,会提示pre-install script failed...的错误,据说这只是一个程序员开的玩笑,直接不理点继续就行了,然后之后的步骤就按照默认一路Enter就行,除非你能明白自己在做什么,否则按照默认的来就行了;好像我只改了一个地方,成功了,之前不成功估计也是自作聪明瞎改选项。

2.5. 安装CUDA 10.2+cuDNN 7.6.5

CUDA Toolkit Archive

cuDNN Archive

Linux系统CUDA10.2+CUDNN安装教程

准备

前往CUDA 官网下载cuda_10.2.89_440.33.01_linux.run

注册一个NVIDIA账号,前往cuDNN下载页面下载cnDNN Library for Linux | cuDNN 7.6.5 for CUDA 10.2,文件名为cudnn-10.2-linux-x64-v7.6.5.32.tgz

安装CUDA 10.2

  1. 关闭图形化界面,进入终端模式:sudo telinit 3

  2. 运行runfile:sudo sh ./cuda_10.2.89_440.33.01_linux.run

  3. 如果计算机上已经安装过一个驱动,会提示Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.,意思就是强烈推荐你重新装一个驱动,你要不同意就不让你继续。不过我们还是有办法不用重新安装驱动就可以成功安装CUDA 10.2,在这里选择Continue

  4. 下一页是一个End User License Aggrement,在下面输入accept表示同意安装协议;

  5. 进入CUDA Installer,在这里直接把Driver/CUDA Samples 10.2/CUDA Demo Suite 10.2/CUDA Documentation 10.2全都去掉,只保留CUDA Toolkit 10.2,接着选择Install,回车;

  6. 安装完成后,重新打开图形化界面:sudo service gdm3 startgdm3lightdm

  7. 在目录/usr/local/下已自动创建cuda-10.2文件夹,将其添加到环境变量:

    1
    2
    3
    4
    # ~/.bashrc
    export CUDA_HOME=/usr/local/cuda-10.2
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
    export PATH=$PATH:$CUDA_HOME/bin
  8. 接着更新环境变量:source ~/.bashrc

  9. 输入nvcc -V查看是否安装成功:

    1
    2
    3
    4
    5
    (base) whuls@whuls:~$ nvcc -V
    nvcc: NVIDIA (R) Cuda compiler driver
    Copyright (c) 2005-2019 NVIDIA Corporation
    Built on Wed_Oct_23_19:24:38_PDT_2019
    Cuda compilation tools, release 10.2, V10.2.89

安装cuDNN 7.6.5

安装过程就是把cuDNN的内容拷贝到CUDA安装目录下并且使其可执行。

解压cuDNN

1
2
# -z解压,-x从压缩包中读取,-v读取详细信息,-f文件名
tar -zxvf cudnn-10.2-linux-x64-v7.6.5.32.tgz

拷贝到cuda目录下

1
2
sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64/

设置权限

1
2
3
# -r可读
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*