Linux基本命令

摘要:Linux基础

一、基本命令

1.1 相对路径:

1
2
3
4
5
~     # home文件夹
cd .. # 返回上级目录
cd ../../ # 往上返回两次
cd - # 返回上级目录
cd ~ # 返回home文件夹

1.2 绝对路径:

1
cd /home/ubuntu/Documents

1.3 浏览文件夹下内容:

1
2
3
4
5
6
7
8
9
10
# 查看文件夹下的文件及文件夹(ls: list)
ls
# 显示文件夹下的文件及文件夹详细信息(-l: long)
ls -l
# 显示文件夹下的文件及文件夹详细信息,显示文件大小单位(-lh: long human)
ls -lh
# 显示全部(包含隐藏)文件夹下的文件及文件夹详细信息(-a: all)
ls -a
# 显示ls其他功能
ls --help

1.4 创建文件:

1
2
3
4
5
6
# 进入文件夹,在该文件夹内创建
touch file1
# 创建多个文件
touch file2 file3 file4
# 创建文件夹
mkdir folder

1.5 复制文件:

1
2
3
4
5
6
7
8
9
10
11
# 复制file1到filecopy,但是不可检测filecopy是否已经存在
cp file1 file1copy
# 复制file1到filecopy,检测filecopy是否已经存在(-i: interactive)
cp -i file1 filecopy
# 复制文件到另一个文件夹中
cp file1 folder/
cp file1 file2 folder/
# 复制一个文件中的所有文件到另一个文件夹中(-R 递归)
cp -R folder1/ folder2/
# 复制所有以file开头的文件到另一个文件夹中
cp file* folder2/

1.6 移动文件:

1
2
3
4
# 移动文件到文件夹
mv file1 folder1/
# 重命名
mv file2 file2rename

1.7 删除文件:

1
2
3
4
5
6
7
8
# 只能删除空文件夹
rmdir folder3
# 删除文件夹及里面内容(-r 递归)
rm -r folder3
# 删除文件(每一个都询问确认)
rm -i file1 file2 file3
# 删除文件(超过3个才会询问确认)
rm -I file1 file2

1.8 修改文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 创建(修改)文件
nano t.py
# crtl + x 保存退出![文件权限](F:\blog\hexo\source\_posts\Linux基本命令\文件权限.png)![文件权限](F:\blog\hexo\source\_posts\Linux基本命令\文件权限.png)
# 运行Python脚本
python3 t.py
# 显示在屏幕上
cat t.py
# 复制到另一个文件
cat t.py > t1.py
# 把多个文件合并到新的文件中
cat t.py t1.py > t2.py
# 把文件追加到已有文件之后
cat t3.py >> t2.py

1.9 显示当前路径

1
pwd

二、文件权限

文件权限

  • Type: 很多种 (最常见的是 - 为文件, d 为文件夹, 其他的还有l, n … 这种东西, 真正自己遇到了, 网上再搜就好, 一次性说太多记不住的).
  • User: 后面跟着的三个空是使用 User 的身份能对这个做什么处理 (r 能读; w 能写; x能执行; - 不能完成某个操作).
  • Group: 一个 Group 里可能有一个或多个 user, 这些权限的样式和 User 一样.
  • Others: 除了 User 和 Group 以外人的权限.

修改权限:

1
2
3
4
5
6
7
8
9
10
11
# 形式如下:
chmod [谁][怎么修改] [哪个文件]
# 修改t1.py的user加上r(可读)
chmod u+r t1.py
ls -l t1.py # 显示 t1.py 的权限
# t1.py的u,g,o 都加上w(可写)
chmod a+w t1.py
ls -l t1.py # 显示 t1.py 的权限
# t1.py的u,g 都加上r,w(可读、写)
chmod ug+rw t1.py
ls -l t1.py # 显示 t1.py 的权限

[谁]

  • u: 对于 User 修改
  • g: 对于 Group 修改
  • o: 对于 Others 修改
  • a: (all) 对于所有人修改

[怎么修改]

  • +, -, =: 作用的形式, 加上, 减掉, 等于某些权限
  • r, w, x 或者多个权限一起, 比如 rx

[哪个文件]

  • 施加操作的文件, 可以为多个

把 .py 文件可执行

1
chmod u+w t1.py

t1.py 文件内加上一句话:

1
2
# 指定用什么打开
#!/home/xing/anaconda3/bin/python3

三、VMware安装Ubuntu

3.1 安装拼音输入法

3.2 安装VMware Tools,实现窗口的适应大小,Windows和虚拟机实现复制粘贴。

3.3 Ubuntu系统安装之后,一般没有pip2和pip3,需要手动安装;之后会同时出现pip(不知道什么意思), pip2, pip3。

1
2
3
4
# 安装pip2
sudo apt-get install python-pip
# 安装pip3
sudo apt-get install python-pip

四、Anaconda环境管理

参考教程:https://blog.csdn.net/yimingsilence/article/details/79388205

1. 管理conda

1
2
3
4
# 查看版本:
conda --version
# 升级版本:
conda update conda

2. 创建并激活一个环境

1
2
3
4
5
6
7
# 创建环境:
# 环境名字为:xsc 同时安装python3.6 numpy pandas 包
conda create --name xsc python=3.6 numpy pandas
# 激活环境
Linux,OS X: source activate snowflakes
Windows:activate snowflake`
# 如果我们没有指定安装python的版本,conda会安装我们最初安装conda时所装的那个版本的python。

3. 列出所有的环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 列出所有的环境
conda info --envs
或者:
conda env list
# 确认当前环境
conda info -envis
# 复制一个环境
conda create -n flowers --clone xsc
# 删除一个环境
conda remove -n flowers --all

conda env remove -n py3
# 注销环境
·Linux,OS X:source deactivate
·Windows:deactivate

4. 管理Python

1
2
# 检查哪个版本的python可以被安装
conda search --full --name python

5. 管理包

1
2
3
4
5
6
# 查看该环境中包和其版本的列表
conda list
# 查找一个包
conda search beautifulsoup4
# 必须告诉conda你要安装环境的名字(-n xsc)否则它将会被安装到当前环境中
conda install --name xsc beautifulsoup4

6. Anaconda.org安装一个包

如果一个包不能使用conda安装,我们接下来将在Anaconda.org网站查找。Anaconda.org向公开和私有包仓库提供包管理服务。Anaconda.org是一个连续分析产品。
提示:你在Anaconda.org下载东西的时候不强制要求注册。
为了从Anaconda.org下载到当前的环境中,我们需要通过指定Anaconda.org为一个特定通道,通过输入这个包的完整路径来实现。
在浏览器中,去 http://anaconda.org 网站。我们查找一个叫“bottleneck”的包,所以在左上角的叫“Search Anaconda Cloud”搜索框中输入“bottleneck”并点击search按钮。
Anaconda.org上会有超过一打的bottleneck包的版本可用,但是我们想要那个被下载最频繁的版本。所以你可以通过下载量来排序,通过点击Download栏。

1
conda install --channel https://conda .anaconda.ort/pandas bottleneck

7. pip命令来安装包

对于那些无法通过conda安装或者从Anaconda.org获得的包,我们通常可以用pip(“pip install packages”的简称)来安装包。
提示: pip只是一个包管理器,所以它不能为你管理环境。pip甚至不能升级python,因为它不像conda一样把python当做包来处理。但是它可以安装一些conda安装不了的包,和vice versa(此处不会翻译)。pip和conda都集成在Anaconda或miniconda里边。

1
2
3
4
·Linux,OS X: source activate bunnies
·Windows:activate bunnies
# 所有平台:
pip install see

8. 移除包、环境、或者conda

1
2
3
4
5
6
7
8
9
10
# 在 xsc 环境中移除 iopro
conda remove -n xsc iopro
# 移除环境
# 不再需要 xsc 环境了,所以输入以下命令:
conda remove -n xsc --all
# 删除conda
# Linux,OS X:移除Anaconda 或 Miniconda 安装文件夹
rm -rf ~/miniconda OR rm -rf ~/anaconda
# Windows:
去控制面板,点击“添加或删除程序”,选择“Python2.7(Anaconda)”或“Python2.7(Miniconda)”并点击删除程序。

9. 查看 CUDA 版本

1
2
3
4
# 查看 CUDA 版本
cat /usr/local/cuda/version.txt
# 查看 CUDNN 版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

10. 查看GPU信息

Linux查看显卡信息:

1
lspci | grep -i vga

使用nvidia GPU可以:

1
lspci | grep -i nvidia

gpu

前边的序号 “0b:00.0”是显卡的代号(这里是用的虚拟机);

查看指定显卡的详细信息用以下指令:

1
lspci -v -s 0b:00.0

查看Nvidia显卡信息及使用情况:

1
nvidia-smi

显卡

这是服务器上 GeForce GTX 1080 Ti 的信息。
上面的表格中:
第一栏的Fan:N/A是风扇转速,从0到100%之间变动,这个速度是计算机期望的风扇转速,实际情况下如果风扇堵转,可能打不到显示的转速。有的设备不会返回转速,因为它不依赖风扇冷却而是通过其他外设保持低温(比如我们实验室的服务器是常年放在空调房间里的)。
第二栏的Temp:是温度,单位摄氏度。
第三栏的Perf:是性能状态,从P0到P12,P0表示最大性能,P12表示状态最小性能。
第四栏下方的Pwr:是能耗,上方的Persistence-M:是持续模式的状态,持续模式虽然耗能大,但是在新的GPU应用启动时,花费的时间更少,这里显示的是off的状态。
第五栏的Bus-Id是涉及GPU总线的东西,domain:bus:device.function
第六栏的Disp.A是Display Active,表示GPU的显示是否初始化。
第五第六栏下方的Memory Usage是显存使用率。
第七栏是浮动的GPU利用率。
第八栏上方是关于ECC的东西。
第八栏下方Compute M是计算模式。
下面一张表示每个进程占用的显存使用率。

显存占用和GPU占用是两个不一样的东西,显卡是由GPU和显存等组成的,显存和GPU的关系有点类似于内存和CPU的关系。我跑caffe代码的时候显存占得少,GPU占得多,师弟跑TensorFlow代码的时候,显存占得多,GPU占得少。