1. 终端操作部分
1.1. 查看操作系统信息
https://blog.csdn.net/zhengxiangwen/article/details/60324802
位数
1 | sudo name -m |
32位会显示i386
到i686
,64位会显示x86_64
操作系统版本号
1 | cat /etc/issue |
输出诸如:# Ubuntu 18.04.5 LTS \n \l
其他信息
1 | (base) whuls@whuls:~$uname -s # 内核名称 |
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 | sudo apt-get install symlinks |
命令的意思:删除/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 | mkdir nodejs |
将*.tar.xz
解压到./nodejs
文件夹中,前提是该文件夹存在。若不指定,则解压到当前文件夹。
-C
:指定目标文件夹,默认为.
-x
:从压缩包中取出文件
-f
:指定压缩包的文件名
查看压缩文件
1 | tar -tf node-v14.15.4-linux-x64.tar.xz |
-t
:列出压缩包的内容
-v
:列出压缩包的详细内容
打包创建压缩文件
默认的tar
命令只能创建.tar
或.tar.gz
。
1 | tar -c abc.doc -f pack.tar |
1 | tar -zc abc.doc -f pack.tar |
-c
创建新的压缩包,但没有压缩功能,仅打包。可以选择一个或多个文件或文件夹;
-z
压缩或解压,算法为gzip
;
-v
打包的时候显示文件信息;
1.7. 在终端打开文件资源管理器
1 | nautilus . |
后面那个.
可以替换为任意相对或绝对路径
1.8. 环境变量
在命令行输入env
,查看环境变量内容
设置环境变量在~/.bashrc
中,导出一个环境变量用export
命令,具体用法见下方:
1 | export NODE_HOME=/usr/local/nodejs/node-v14.15.4-linux-x64 |
1.9. 删除文件(夹)
1 | rm xxxx.xx |
-f
强制删除;
-r
递归,用来删除文件夹,删除空文件夹还可以用:rmdir xxx
;
1.10. grep 正则表达式
全称为Global Regular Expression Print,执行正则表达式匹配搜索。一般用来筛选终端的输出,用法如下:
1 | (base) whuls@whuls:~$ ls |
筛选只有英文和数字的文件夹名:
1 | (base) whuls@whuls:~$ ls | grep "[a-z|0-9]" |
1.11. 将终端输出保存到临时变量
应用场景:通过
ls
获取当前文件夹的文件时,需要在下一条命令中对这个文件进行操作
获取当前文件夹下的一个xxx.deb
文件,保存到变量$m_out
中,并且执行安装操作。
1 | m_out=$(ls *.deb) # 将ls *.deb的结果作为变量保存到m_out中 |
1.12. 输出重定向
命令 | 说明 |
---|---|
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
代表标准输出错误stderr
,1
代表标准输出stdout
。
1.13. lsmod 查看已加载的module
查看是否开启nouveau
1 | lsmod | grep nouveau |
1.14. telinit与切换tty
telinit
用来设置当前系统的运行等级,常用作关闭图形界面、关机、重启等操作。
1 | (base) whuls@whuls:~$ telinit --help |
- 关机:
telinit 0
- 重启:
telinit 6
- 关闭图形化界面:
telinit 3
- (重新)启动图形化界面:
telinit 5
,若启动失败,通过sudo service gdm3 start
启动(gdm3
orlightdm
)
关闭图形化界面后,显示屏会黑掉,且会关闭当前运行的程序,接着自动进入一个命令行,需要登录;若没有自动进入,使用Ctrl + Alt +F1
开启。
Ctrl
+ Alt
+ F1~6
,最多开启6个。
1.15. 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
1 | or run: |
2.2. 安装nodejs
第一步:下载安装包
- 中文网:http://nodejs.cn/download/
- 官网:https://nodejs.org/en/download/
- 下载Linux Binaries (x64)
第二步:解压
一般解压到系统目录下,如/usr/local/nodejs
1 | wget https://npm.taobao.org/mirrors/node/v14.15.4/node-v14.15.4-linux-x64.tar.xz |
第三步:添加环境变量
在~/.bashrc
末尾添加:
1 | export NODE_HOME=/usr/local/nodejs/node-v14.15.4-linux-x64 |
2.3. 安装VS Code(不要用snap VS Code)
在Snap中下载的VS Code是阉割版本的,无法支持中文。改为官方版本的流程如下:(若没有安装过code,直接从第二步开始)
从snap中卸载VS Code:
sudo snap remove code
下载VS Code的.deb包:官网
安装deb包
- 方法一:在下载目录下,执行
vscode_deb_name=$(ls|grep "^code_") | echo $vscode_deb_name | sudo apt install $vscode_deb_name
- 方法二:复制deb包的名称,直接
sudo apt install 包名
- 方法一:在下载目录下,执行
查看安装是否成功
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驱动(手动)
挑选合适的驱动
查看显卡型号:lspci
或lshw
1 | (base) whuls@whuls:~$ lspci | grep VGA |
前往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 |
正式安装
- 这里我选择了440版本的驱动,下载下来的文件名为
NVIDIA-Linux-x86_64-440.100.run
; - 卸载已经安装过的显卡驱动:
sudo apt-get remove --purge nvidia*
; - 禁用nouveau
- 创建
/etc/modprobe.d/blacklist-nouveau.conf
- 文末添加
blacklist nouveau
和options nouveau modeset=0
- 重新构建内核生效
sudo update-initramfs -u
- 重启
reboot
- 创建
- BIOS禁用secure boot,如果没有禁用,会导致驱动安装失败或不正常;
- 关闭图形服务:
sudo service gdm3 stop
; - 关闭可视化界面:
sudo telinit 3
; - 执行安装:
sudo sh ./NVIDIA-Linux-x86_64-440.100.run
; - 重新打开图形化界面:
sudo service gdm3 start
;
验证是否安装成功:
1 | nvidia-smi |
遇到的问题
- checksum错误:一般是.run文件下载不全,检查完整性;(下载列表)
1 | Error in check sums xxxxxxxx xxxxxxxx |
- 在有些教程里面说指导的最后一步的安装命令应该加上
--no-opengl-files
参数,且还要把nouveau
禁用,我这么试了发现重启的时候根本就无法正常分辨率显示,然后换了个教程跟了一下发现并没有这个参数,安装驱动就很轻松; - 执行
sudo ./xxx.run
之后,会提示pre-install script failed...
的错误,据说这只是一个程序员开的玩笑,直接不理点继续就行了,然后之后的步骤就按照默认一路Enter就行,除非你能明白自己在做什么,否则按照默认的来就行了;好像我只改了一个地方,成功了,之前不成功估计也是自作聪明瞎改选项。
2.5. 安装CUDA 10.2+cuDNN 7.6.5
准备
前往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
关闭图形化界面,进入终端模式:
sudo telinit 3
;运行runfile:
sudo sh ./cuda_10.2.89_440.33.01_linux.run
;如果计算机上已经安装过一个驱动,会提示
Existing package manager installation of the driver found. It is strongly recommended that you remove this before continuing.
,意思就是强烈推荐你重新装一个驱动,你要不同意就不让你继续。不过我们还是有办法不用重新安装驱动就可以成功安装CUDA 10.2,在这里选择Continue
;下一页是一个
End User License Aggrement
,在下面输入accept
表示同意安装协议;进入
CUDA Installer
,在这里直接把Driver
/CUDA Samples 10.2
/CUDA Demo Suite 10.2
/CUDA Documentation 10.2
全都去掉,只保留CUDA Toolkit 10.2
,接着选择Install
,回车;安装完成后,重新打开图形化界面:
sudo service gdm3 start
(gdm3
或lightdm
)在目录
/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接着更新环境变量:
source ~/.bashrc
;输入
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 | -z解压,-x从压缩包中读取,-v读取详细信息,-f文件名 |
拷贝到cuda目录下
1 | sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include/ |
设置权限
1 | -r可读 |