【linux】在linux/ubuntu下搞深度学习的一些工程笔记和理解!
分两个部分:一、我自己做工程常用部分 二、面试常问部分
【ubuntu系统公共信息】
ubuntu:16.04
查看NVIDIA 显卡信息。注意要先添加环境变量。(这里显示的CUDA版本是驱动api,不同于运行api,我们一般说的cuda版本是运行api,所以查cuda还是用下面那个)
nvidia-smi
显卡型号:RTX 2080Ti
显卡驱动型号:460
anaconda:4.9.2
【虚拟环境信息】(SECOND点云检测,每个虚拟环境不一样)
查看CUDA版本(运行api,一般指的都是这个):
nvcc -V
查看cudnn版本:
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
或
sudo dpkg -l | grep cudnn
python:3.6
CUDA:10.2(运行api,一般指的都是运行api)
cudnn:7.6.5
pytorch:1.7
一、工程常用部分
【问】各路径的简要表示?ubuntu路径结构?
绝对路径: 如/etc/init.d
当前目录和上层目录: ./ ../
主目录: ~/
切换目录: cd
【问】查看当前路径命令:pwd
【问】linux关于环境变量的操作:
(1)查看环境变量:
$ env
$ echo $PATH
(2)修改环境变量:
(1)直接用export命令(只对当前shell/BASH有效,临时的)
export PATH=$PATH:/home/xzx/anaconda3/bin
查看是否已经设好,可用命令export查看:
[root@localhost bin] export
(2)修改profile文件(所有用户,永久的)
sudo gedit /etc/profile
在里面加入:
export PATH=/home/xzx/anaconda3/bin:$PATH
(3) 修改.bashrc文件(当前用户,永久的)
sudo gedit ~/.bashrc
在里面加入:
export PATH=/home/xzx/anaconda3/bin:$PATH(注意:一个空格!!)
【注】
配置完成后需要以下指令生效:
source ~/.bashrc
最后可以通过echo命令测试一下:
echo $PATH
看看输出里面是不是已经有了新的环境变量。
【问】conda的虚拟环境:
(1)
集合库和包的一个东西,可以搞多个虚拟环境,在不同情境下使用不同虚拟环境,达到版本配合。
(2)
查看所有虚拟环境:
conda info --envs
新建虚拟环境:
conda create -n 环境名 python=X.X
复制虚拟环境:
conda create --name 新环境名 --clone 旧环境名
切换虚拟环境:
source activate my_env_name
删除虚拟环境:
conda remove --name env_name --all
退出虚拟环境:
conda deactivate
在虚拟环境加包(直接进虚拟环境安装即可)
【问】复制、移动、删除文件命令:
(1)文件复制命令cp
命令格式:cp [选项] 源文件或目录 目标文件或目录
(2)文件移动命令mv
命令格式:mv [-fiv] source destination
(3)文件删除命令rm
命令格式:rm [fir] 文件或目录
【问】在终端下:Linux下复制粘贴快捷键
复制命令:Ctrl + Shift + C 组合键.
粘贴命令:Ctrl + Shift + V 组合键.
【问】linux解压、压缩命令大全:
(1).tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
(2).gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
(3).tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
(4).bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
(5).tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
(6).bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
(7).zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
(8).rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
(9).rpm
解包:rpm2cpio FileName.rpm | cpio -div
(10).deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
【问】打开一个可执行文件,如果你的可执行文件文件名为eclipse,则命令为 ./eclipse
【问】改源:
(1)复制:sudo cp /etc/apt/sources.list /etc/apt/sourcesbak.list
(2)修改:sudo gedit /etc/apt/sources.list
(3)检测:sudo apt-get update # 刷新列表 sudo apt-get upgrade # 更新已安装的包
【问】如何运行.sh文件?
sh pycharm.sh
【问】再次打开VMWare,之前的虚拟机找不到怎么办?
按F9
二、面试常问部分(这一部分·转)
1.绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
绝对路径: 如/etc/init.d
当前目录和上层目录: ./ ../
主目录: ~/
切换目录: cd
2.怎么查看当前进程?怎么执行退出?怎么查看当前路径?
查看当前进程: ps
执行退出: exit
查看当前路径: pwd
3.怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
清屏: clear
退出当前命令: ctrl+c 彻底退出
执行睡眠 : ctrl+z 挂起当前进程 fg 恢复后台
查看当前用户 id: ”id“:查看显示目前登陆账户的 uid 和 gid 及所属分组及用户名
查看指定帮助: 如 man adduser 这个很全 而且有例子; adduser --help 这个告诉你一些常用参数; info adduesr;
4.Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
ls 执行的功能: 列出指定目录中的目录,以及文件
哪些参数以及区别: a 所有文件l 详细信息,包括大小字节数,可读可写可执行的权限等
5.建立软链接(快捷方式),以及硬链接的命令。
软链接: ln -s slink source
硬链接: ln link source
linux的软链接和硬链接删除都不会影响原始文件,但是修改的话都会影响原始文件。linux的软链接相当于windows里的快捷方式,快捷方式删了就删了,原来文件还是存在的。linux的硬链接的特点就是,链接文件和原始文件只要有一个存在,文件就会存在,不会消失。(你删除源文件,依然可以在连接文件里打开)。但是软链接可以跨系统,这点硬链接不行。
6.目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
创建目录: mkdir
创建文件:典型的如 touch,vi 也可以创建文件,其实只要向一个不存在的文件输出,都会创建文件
复制文件: cp
7、文件权限修改用什么命令?格式是怎么样的?
文件权限修改: chmod
格式如下:
8.查看文件内容有哪些命令可以使用?
vi 文件名 #编辑方式查看,可修改
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数
9.随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
写文件命令:vi
向屏幕输出带空格的字符串:echo hello world
10.终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
终端 /dev/tty
黑洞文件 /dev/null
11.移动文件用哪个命令?改名用哪个命令?
mv ./a ./b
mv ./a ./b #用移动的方式,路径不变,覆盖原来的,就是改名。
12、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
cp
cp -r
????
13、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
rm
rm -r
rmdir
14、 Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
“?”可替代单个字符。
“*”可替代任意多个字符。
方括号“[charset]”可替代 charset 集中的任何单个字符,如[a-z],[abABC]
15、用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。
16、Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep [stringSTRING] filename grep [^string] filename
17、Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
(1)不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的。不可中断, 指进程不响应异步信号。
(2)暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响应该信号 而进入 TASK_STOPPED 状态;当进程正在被跟踪时,它处于 TASK_TRACED 这个特殊的状态。
“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。
(3)就绪状态:在 run_queue 队列里的状态
(4)运行状态:在 run_queue 队列里的状态
(5)可中断睡眠状态:处于这个状态的进程因为等待某某事件的发生(比如等待 socket 连接、等待信号量),而被挂起
(6)zombie 状态(僵尸):父亲没有通过 wait 系列的系统调用会顺便将子进程的尸体(task_struct)也释放掉
(7)退出状态:
18、怎么使一个命令在后台运行?
一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)
19、利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
ps -ef (system v 输出)
ps -aux bsd 格式输出
ps -ef | grep pid
20、哪个命令专门用来查看后台任务?
job -l
21、把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
把后台任务调到前台执行 fg
把停下的后台任务在后台执行起来 bg
22、终止进程用什么命令? 带什么参数?
kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>]
kill-9 pid
23、怎么查看系统支持的所有信号?
kill -l
24、搜索文件用什么命令? 格式是怎么样的?
find <指定目录> <指定条件> <指定动作>
whereis 加参数与文件名
locate 只加文件名
find 直接搜索磁盘,较慢。
find / -name "string*"
25、查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
查找自己所在的终端信息:who am i
查看当前谁在使用该主机:who
26、使用什么命令查看用过的命令列表?
history
27、使用什么命令查看磁盘使用空间? 空闲空间呢?
df -hl
文件系统 容量 已用 可用 已用% 挂载点
Filesystem Size Used Avail Use% Mounted on /dev/hda2 45G 19G 24G 44% /
/dev/hda1 494M 19M 450M 4% /boot
28、使用什么命令查看网络是否连通?
netstat
29、使用什么命令查看 ip 地址及接口信息?
ifconfig
30、查看各类环境变量用什么命令?
查看所有 env
查看某个,如 home: env $HOME
31、通过什么命令指定命令提示符?
32、查找命令的可执行文件是去哪查找的? 怎么对其进行设置及添加?
whereis [-bfmsu][-B <目录>...][-M <目录>...][-S <目录>...][文件...]
补充说明:whereis 指令会在特定目录中查找符合条件的文件。这些文件的烈性应属于原始代码,二进制文件,或是帮助文件。
33、通过什么命令查找执行命令?
which 只能查可执行文件
whereis 只能查二进制文件、说明文档,源文件等
34、怎么对命令进行取别名?
alias la='ls -a'
35、du 和 df 的定义,以及区别?
du 显示目录或文件的大小
df 显示每个<文件>所在的文件系统的信息,默认是显示所有文件系统。
(文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如 i 节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为 Meta Data。) du 命令是用户级的程序,它不考虑 Meta Data,而 df 命令则查看文件系统的磁盘分配图并考虑 Meta Data。
df 命令获得真正的文件系统数据,而 du 命令只查看文件系统的部分情况。
36、awk 详解。
37、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?
可以使用bind命令,bind可以很方便地在shell中实现宏或按键的绑定。
在进行按键绑定的时候,我们需要先获取到绑定按键对应的字符序列。
比如获取F12的字符序列获取方法如下:先按下Ctrl+V,然后按下F12 .我们就可以得到F12的字符序列 ^[[24~。
接着使用bind进行绑定。
[root@localhost ~]# bind ‘”\e[24~":"date"'
注意:相同的按键在不同的终端或终端模拟器下可能会产生不同的字符序列。
【附】也可以使用showkey -a命令查看按键对应的字符序列。
38、如果一个linux新手想要知道当前系统支持的所有命令的列表,他需要怎么做?
使用命令compgen -c,可以打印出所有支持的命令列表。
39、如果你的助手想要打印出当前的目录栈,你会建议他怎么做?
40、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
使用linux命令 ’disown -r ’可以将所有正在运行的进程移除。
41、bash shell 中的hash 命令有什么作用?
linux命令’hash’管理着一个内置的哈希表,记录了已执行过的命令的完整路径, 用该命令可以打印出你所使用过的命令以及执行的次数。
42、哪一个bash内置命令能够进行数学运算。
bash shell 的内置命令let 可以进行整型数的数学运算。
43、怎样一页一页地查看一个大文件的内容呢?
通过管道将命令”cat file_name.txt” 和 ’more’ 连接在一起可以实现这个需要.
[root@localhost ~]# cat file_name.txt | more
44、数据字典属于哪一个用户的?
数据字典是属于’SYS’用户的,用户‘SYS’ 和 ’SYSEM’是由系统默认自动创建的
45、怎样查看一个linux命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?
使用命令whatis 可以先出显示出这个命令的用法简要,比如,你可以使用whatis zcat 去查看‘zcat’的介绍以及使用简要。
46、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?
使用命令repquota 能够显示出一个文件系统的配额信息。