This commit is contained in:
estomm
2019-11-15 18:41:12 +08:00
parent aba85ce50f
commit 275cb24b0f
7 changed files with 777 additions and 254 deletions

28
Linux/基础篇/模板.md Normal file
View File

@@ -0,0 +1,28 @@
# 标题
> 写的太详细了,反而会失去价值。应该尽可能简单的描述。
> 包括两部分:命令介绍。操作实现。
> 当前的内容就包括这些把,遇到什么问题,就去解决什么问题。
## 分类
### ls命令
简介
balabala
命令
```
ls [配置] [目录]
```
选项
* -a这是a
* -b这是b
实例
```
输出并显示行号
ls| cat -n
```

View File

@@ -55,18 +55,24 @@ s就是Super User的意思这里存放的是系统管理员使用的系统管
* /usr
这是一个非常重要的目录用户的很多应用程序和文件都放在这个目录下类似于windows下的program files目录。
* /usr/bin
系统用户使用的应用程序
* /usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。
* /usr/src
内核源代码默认的放置目录
* /usr/bin/ 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行
* /usr/sbin/ 存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用
* /usr/lib/ 应用程序调用的函数库保存位置
* /usr/XllR6/ 图形界面系统保存位置
* /usr/local/ 手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置
* /usr/share/ 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录
* /usr/src/ 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
* /usr/include C/C++ 等编程语言头文件的放置目录
* /var
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
* /var/lib/ 程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
* /var/log/ 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
* /var/run/ 一些服务和程序运行后,它们的 PID进程 ID保存位置
* /var/spool/ 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
* /var/www/ RPM 包安装的 Apache 的网页主目录
* /var/nis和/var/yp NIS 服务机制所使用的目录nis 主要记录所有网络中每一个 client 的连接信息yp 是 linux 的 nis 服务的日志文件存放的目录
* /var/tmp 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
* /run
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

View File

@@ -1,39 +1,289 @@
# 文件及目录管理
> * 文件管理,目录的创建、删除、查询、管理: mkdir rm mv
> * ls: 列出目录
> * cd切换目录
> * pwd显示目前的目录
> * mkdir创建一个新的目录
> * rmdir删除一个空的目录
> * cp: 复制文件或目录
> * rm: 移除文件或目录
> * mv: 移动文件与目录,或修改文件与目录的名称
> * 文件的查询和检索: find locate
> * 查看文件内容cat vi tail more
> * 管道和重定向: ; | && >
> * 写出命令以及主要的参数说明,具体内容查看参考手册。
## 1 创建、删除、移动、复制
- [文件及目录管理](#%e6%96%87%e4%bb%b6%e5%8f%8a%e7%9b%ae%e5%bd%95%e7%ae%a1%e7%90%86)
- [1 文件目录操作](#1-%e6%96%87%e4%bb%b6%e7%9b%ae%e5%bd%95%e6%93%8d%e4%bd%9c)
- [ls列出目录](#ls%e5%88%97%e5%87%ba%e7%9b%ae%e5%bd%95)
- [cd切换目录](#cd%e5%88%87%e6%8d%a2%e7%9b%ae%e5%bd%95)
- [pwd显示目前所在的目录](#pwd%e6%98%be%e7%a4%ba%e7%9b%ae%e5%89%8d%e6%89%80%e5%9c%a8%e7%9a%84%e7%9b%ae%e5%bd%95)
- [mkdir (创建新目录)](#mkdir-%e5%88%9b%e5%bb%ba%e6%96%b0%e7%9b%ae%e5%bd%95)
- [rmdir (删除空的目录)](#rmdir-%e5%88%a0%e9%99%a4%e7%a9%ba%e7%9a%84%e7%9b%ae%e5%bd%95)
- [cp (复制文件或目录)](#cp-%e5%a4%8d%e5%88%b6%e6%96%87%e4%bb%b6%e6%88%96%e7%9b%ae%e5%bd%95)
- [rm (移除文件或目录)](#rm-%e7%a7%bb%e9%99%a4%e6%96%87%e4%bb%b6%e6%88%96%e7%9b%ae%e5%bd%95)
- [mv (移动文件与目录,或修改名称)](#mv-%e7%a7%bb%e5%8a%a8%e6%96%87%e4%bb%b6%e4%b8%8e%e7%9b%ae%e5%bd%95%e6%88%96%e4%bf%ae%e6%94%b9%e5%90%8d%e7%a7%b0)
- [2 文件查找](#2-%e6%96%87%e4%bb%b6%e6%9f%a5%e6%89%be)
- [find](#find)
- [locate](#locate)
- [3 文件内容](#3-%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9)
- [cat](#cat)
- [tac](#tac)
- [nl](#nl)
- [more](#more)
- [less](#less)
- [head](#head)
- [tail](#tail)
- [$diff file1 file2](#diff-file1-file2)
- [使用egrep查询文件内容:](#%e4%bd%bf%e7%94%a8egrep%e6%9f%a5%e8%af%a2%e6%96%87%e4%bb%b6%e5%86%85%e5%ae%b9)
- [4 链接(快捷方式)](#4-%e9%93%be%e6%8e%a5%e5%bf%ab%e6%8d%b7%e6%96%b9%e5%bc%8f)
- [硬连接](#%e7%a1%ac%e8%bf%9e%e6%8e%a5)
- [软连接](#%e8%bd%af%e8%bf%9e%e6%8e%a5)
- [实验](#%e5%ae%9e%e9%aa%8c)
- [总结](#%e6%80%bb%e7%bb%93)
- [5 管道和重定向](#5-%e7%ae%a1%e9%81%93%e5%92%8c%e9%87%8d%e5%ae%9a%e5%90%91)
- [6 打包压缩](#6-%e6%89%93%e5%8c%85%e5%8e%8b%e7%bc%a9)
- [打包/ 压缩](#%e6%89%93%e5%8c%85-%e5%8e%8b%e7%bc%a9)
- [解包/解压缩](#%e8%a7%a3%e5%8c%85%e8%a7%a3%e5%8e%8b%e7%bc%a9)
- [7 属性修改](#7-%e5%b1%9e%e6%80%a7%e4%bf%ae%e6%94%b9)
- [chgrp更改文件属组](#chgrp%e6%9b%b4%e6%94%b9%e6%96%87%e4%bb%b6%e5%b1%9e%e7%bb%84)
- [chown更改文件属主也可以同时更改文件属组](#chown%e6%9b%b4%e6%94%b9%e6%96%87%e4%bb%b6%e5%b1%9e%e4%b8%bb%e4%b9%9f%e5%8f%af%e4%bb%a5%e5%90%8c%e6%97%b6%e6%9b%b4%e6%94%b9%e6%96%87%e4%bb%b6%e5%b1%9e%e7%bb%84)
- [chmod](#chmod)
## 1 文件目录操作
### ls列出目录
简介:
在Linux系统当中 ls 命令可能是最常被运行的。
语法:
```
创建mkdir
删除rm
删除非空目录rm -rf file目录
删除日志 rm *log (等价: $find ./ -name “*log” -exec rm {} ;)
移动mv
复制cp (复制目录cp -r )
复制目录:$cp -r source_dir dest_dir
```
## 2 目录切换
```
找到文件/目录位置cd
切换到上一个工作目录: cd -
切换到home目录 cd or cd ~
显示当前路径: pwd
更改当前工作路径为path: $cd path
[root@www ~]# ls [-aAdfFhilnrRSt] 目录名称
[root@www ~]# ls [--color={never,auto,always}] 目录名称
[root@www ~]# ls [--full-time] 目录名称
```
## 3 列出目录项
选项:
* -a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
* -d :仅列出目录本身,而不是列出目录内的文件数据(常用)
* -l :长数据串列出,包含文件的属性与权限等等数据;(常用)
实例:
```
显示当前目录下的文件 ls
按时间排序,以列表的方式显示目录项 ls -lrt
给每项文件前面增加一个id编号(看上去更加整洁):>ls | cat -n
# 将家目录下的所有文件列出来(含属性与隐藏档)
[root@www ~]# ls -al ~
```
## 4 查找目录及文件 find/locate
### cd切换目录
简介:
cd是Change Directory的缩写这是用来变换工作目录的命令。
语法:
```
cd [相对路径或绝对路径]
```
实例:
```
#使用 mkdir 命令创建 runoob 目录
[root@www ~]# mkdir runoob
#使用绝对路径切换到 runoob 目录
[root@www ~]# cd /root/runoob/
#使用相对路径切换到 runoob 目录
[root@www ~]# cd ./runoob/
# 表示回到自己的家目录,亦即是 /root 这个目录
[root@www runoob]# cd ~
# 表示去到目前的上一级目录,亦即是 /root 的上一级目录的意思;
[root@www ~]# cd ..
接下来大家多操作几次应该就可以很好的理解 cd 命令的。
```
### pwd显示目前所在的目录
简介:
pwd 是 Print Working Directory 的缩写,也就是显示目前所在目录的命令。
```
[root@www ~]# pwd [-P]
```
选项:
* -P :显示出确实的路径,而非使用连结 (link) 路径。
实例:
```
[root@www ~]# pwd
/root <== 显示出目录啦~
实例显示出实际的工作目录,而非连结档本身的目录名而已。
[root@www ~]# cd /var/mail <==注意,/var/mail是一个连结档
[root@www mail]# pwd
/var/mail <==列出目前的工作目录
[root@www mail]# pwd -P
/var/spool/mail <==怎么回事?有没有加 -P 差很多~
[root@www mail]# ls -ld /var/mail
lrwxrwxrwx 1 root root 10 Sep 4 17:54 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail
# 所以,加上 pwd -P 的选项后,会不以连结档的数据显示,而是显示正确的完整路径啊!
```
### mkdir (创建新目录)
简介:
如果想要创建新的目录的话那么就使用mkdir (make directory)吧。
语法:
```
mkdir [-mp] 目录名称
```
选项:
* -m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
* -p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!
```
# 请到/tmp底下尝试创建数个新目录看看
[root@www ~]# cd /tmp
[root@www tmp]# mkdir test <==创建一名为 test 的新目录
[root@www tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory <== 没办法直接创建此目录啊!
[root@www tmp]# mkdir -p test1/test2/test3/test4
加了这个 -p 的选项,可以自行帮你创建多层目录!
# 实例:创建权限为 rwx--x--x 的目录。
[root@www tmp]# mkdir -m 711 test2
[root@www tmp]# ls -l
drwxr-xr-x 3 root root 4096 Jul 18 12:50 test
drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
上面的权限部分,如果没有加上 -m 来强制配置属性,系统会使用默认属性。
如果我们使用 -m ,如上例我们给予 -m 711 来给予新的目录 drwx--x--x 的权限。
```
### rmdir (删除空的目录)
语法:
```
rmdir [-p] 目录名称
```
选项:
* -p :连同上一级『空的』目录也一起删除
实例:
```
删除 runoob 目录
[root@www tmp]# rmdir runoob/
将 mkdir 实例中创建的目录(/tmp 底下)删除掉!
[root@www tmp]# ls -l <==看看有多少目录存在?
drwxr-xr-x 3 root root 4096 Jul 18 12:50 test
drwxr-xr-x 3 root root 4096 Jul 18 12:53 test1
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
[root@www tmp]# rmdir test <==可直接删除掉,没问题
[root@www tmp]# rmdir test1 <==因为尚有内容,所以无法删除!
rmdir: `test1': Directory not empty
[root@www tmp]# rmdir -p test1/test2/test3/test4
[root@www tmp]# ls -l <==您看看底下的输出中test与test1不见了
drwx--x--x 2 root root 4096 Jul 18 12:54 test2
利用 -p 这个选项,立刻就可以将 test1/test2/test3/test4 一次删除。
不过要注意的是,这个 rmdir 仅能删除空的目录,你可以使用 rm 命令来删除非空目录。
```
### cp (复制文件或目录)
简介:
cp 即拷贝文件和目录。
语法:
```
[root@www ~]# cp [-adfilprsu] 来源档(source) 目标档(destination)
[root@www ~]# cp [options] source1 source2 source3 .... directory
```
选项:
* -a相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
* -d若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
* -f为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
* -i若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
* -l进行硬式连结(hard link)的连结档创建,而非复制文件本身;
* -p连同文件的属性一起复制过去而非使用默认属性(备份常用)
* -r递归持续复制用於目录的复制行为(常用)
* -s复制成为符号连结档 (symbolic link),亦即『捷径』文件;
* -u若 destination 比 source 旧才升级 destination
实例:
```
用 root 身份,将 root 目录下的 .bashrc 复制到 /tmp 下,并命名为 bashrc
[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n <==n不覆盖y为覆盖
```
### rm (移除文件或目录)
语法:
```
rm [-fir] 文件或目录
```
选项与参数:
* -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
* -i :互动模式,在删除前会询问使用者是否动作
* -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
实例:
```
将刚刚在 cp 的实例中创建的 bashrc 删除掉!
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y
如果加上 -i 的选项就会主动询问喔,避免你删除到错误的档名!
```
### mv (移动文件与目录,或修改名称)
语法:
```
[root@www ~]# mv [-fiu] source destination
[root@www ~]# mv [options] source1 source2 source3 .... directory
```
选项:
* -f force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
* -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
* -u :若目标文件已经存在,且 source 比较新,才会升级 (update)
实例:
```
复制一文件,创建一目录,将文件移动到目录中
[root@www ~]# cd /tmp
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest
将某个文件移动到某个目录去,就是这样做!
将刚刚的目录名称更名为 mvtest2
[root@www tmp]# mv mvtest mvtest2
```
## 2 文件查找
### find
简介:
搜寻文件或目录:
实例:
```
$find ./ -name "core*" | xargs file
```
@@ -49,68 +299,242 @@ $find ./ -name "*.o" -exec rm {} \;
```
$find ./ | wc -l
```
### locate
简介:
find是实时查找如果需要更快的查询可试试locatelocate会为文件系统建立索引数据库如果有文件更新需要定期执行更新命令来更新索引库:
语法:
```
$locate string
$updatedb
```
2.5. 查看文件内容
查看文件:
## 3 文件内容
### cat
简介:
由第一行开始显示文件内容
语法:
```
cat vi head tail more
cat [-AbEnTv]
```
显示时同时显示行号:
选项与参数:
* -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
* -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
* -E :将结尾的断行字节 $ 显示出来;
* -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
* -T :将 [tab] 按键以 ^I 显示出来;
* -v :列出一些看不出来的特殊字符
实例:
```
$cat -n
检看 /etc/issue 这个文件的内容:
[root@www ~]# cat /etc/issue
CentOS release 6.4 (Final)
Kernel \r on an \m
```
按页显示列表内容:
### tac
简介:
tac与cat命令刚好相反文件内容从最后一行开始显示可以看出 tac 是 cat 的倒着写!如:
语法:
```
$ls -al | more
[root@www ~]# tac /etc/issue
```
只看前10行:
### nl
简介:
显示行号
语法:
```
$head - 10 **
nl [-bnw] 文件
```
显示文件第一行:
选项与参数:
* -b :指定行号指定的方式,主要有两种:
* -b a :表示不论是否为空行,也同样列出行号(类似 cat -n)
* -b t :如果有空行,空的那一行不要列出行号(默认值)
* -n :列出行号表示的方法,主要有三种:
* -n ln :行号在荧幕的最左方显示;
* -n rn :行号在自己栏位的最右方显示,且不加 0
* -n rz :行号在自己栏位的最右方显示,且加 0
* -w :行号栏位的占用的位数。
实例:
```
$head -1 filename
实例一:用 nl 列出 /etc/issue 的内容
[root@www ~]# nl /etc/issue
1 CentOS release 6.4 (Final)
2 Kernel \r on an \m
```
显示文件倒数第五行:
### more
简介:
一页一页翻动
语法:
```
$tail -5 filename
[root@www ~]# more /etc/man_db.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%) <== 重点在这一行喔!你的光标也会在这里等待你的命令
```
查看两个文件间的差别:
选项:
* 空白键 (space):代表向下翻一页;
* Enter :代表向下翻『一行』;
* /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
* :f :立刻显示出档名以及目前显示的行数;
* q :代表立刻离开 more ,不再显示该文件内容。
* b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。
### less
简介:
一页一页翻动,以下实例输出/etc/man.config文件的内容
语法:
```
$diff file1 file2
[root@www ~]# less /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
: <== 这里可以等待你输入命令!
```
选项:
* 空白键 :向下翻动一页;
* [pagedown]:向下翻动一页;
* [pageup] :向上翻动一页;
* /字串 :向下搜寻『字串』的功能;
* ?字串 :向上搜寻『字串』的功能;
* n :重复前一个搜寻 (与 / 或 ? 有关!)
* N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
* q :离开 less 这个程序;
### head
简介:
取出文件前面几行
语法:
```
head [-n number] 文件
```
选项与参数:
* -n :后面接数字,代表显示几行的意思
实例:
```
[root@www ~]# head /etc/man.config
默认的情况中,显示前面 10 行!若要显示前 20 行,就得要这样:
[root@www ~]# head -n 20 /etc/man.config
```
### tail
简介:
取出文件后面几行
语法:
```
tail [-n number] 文件
```
选项与参数:
* -n :后面接数字,代表显示几行的意思
* -f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测
```
[root@www ~]# tail /etc/man.config
# 默认的情况中,显示最后的十行!若要显示最后的 20 行,就得要这样:
[root@www ~]# tail -n 20 /etc/man.config
```
### $diff file1 file2
```
动态显示文本最新信息:
```
$tail -f crawler.log
```
2.6. 查找文件内容
使用egrep查询文件内容:
### 使用egrep查询文件内容:
```
egrep '03.1\/CO\/AE' TSF_STAT_111130.log.012
egrep 'A_LMCA777:C' TSF_STAT_111130.log.035 > co.out2
```
## 7 文件与目录权限修改
```
改变文件的拥有者 chown
改变文件读、写、执行等属性 chmod
递归子目录修改: chown -R tuxapp source/
增加脚本可执行权限: chmod a+x myscript
```
## 8 快捷方式
创建符号链接/硬链接:
```
ln cc ccAgain :硬连接;删除一个,将仍能找到;
ln -s cc ccTo :符号链接(软链接)删除源另一个无法使用后面一个ccTo 为新建的文件)
```
## 4 链接(快捷方式)
## 9 管道和重定向
Linux 链接分两种一种被称为硬链接Hard Link另一种被称为符号链接Symbolic Link。默认情况下ln 命令产生硬链接。
### 硬连接
硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中多个文件名指向同一索引节点是存在的。比如A 是 B 的硬链接A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名两个文件名指向同一个文件A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
### 软连接
另外一种连接称之为符号连接Symbolic Link也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中文件实际上是一个文本文件其中包含的有另一文件的位置信息。比如A 是 B 的软链接A 和 B 都是文件名A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同A 和 B 指向的是两个不同的 inode继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项。A 和 B 之间是“主从”关系,如果 B 被删除了A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。
### 实验
```
[oracle@Linux]$ touch f1 #创建一个测试文件f1
[oracle@Linux]$ ln f1 f2 #创建f1的一个硬连接文件f2
[oracle@Linux]$ ln -s f1 f3 #创建f1的一个符号连接文件f3
[oracle@Linux]$ ls -li # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1
```
从上面的结果中可以看出,硬连接文件 f2 与原文件 f1 的 inode 节点相同,均为 9797648然而符号连接文件的 inode 节点不同。
```
[oracle@Linux]$ echo "I am f1 file" >>f1
[oracle@Linux]$ cat f1
I am f1 file
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
I am f1 file
[oracle@Linux]$ rm -f f1
[oracle@Linux]$ cat f2
I am f1 file
[oracle@Linux]$ cat f3
cat: f3: No such file or directory
```
通过上面的测试可以看出:当删除原始文件 f1 后,硬连接 f2 不受影响,但是符号连接 f1 文件无效
### 总结
依此您可以做一些相关的测试,可以得到以下全部结论:
* 删除符号连接f3,对f1,f2无影响
* 删除硬连接f2对f1,f3也无影响
* 删除原文件f1对硬连接f2没有影响导致符号连接f3失效
* 同时删除原文件f1,硬连接f2整个文件会真正的被删除。
## 5 管道和重定向
```
批处理命令连接执行,使用 |
串联: 使用分号 ;
@@ -142,15 +566,99 @@ echo aa >> a.txt
```
## 10 Bash快捷输入或删除
快捷键:
```
Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全行
Ctl-W 删除当前光标到前边的最近一个空格之间的字符
Ctl-H backspace,删除光标前边的字符
Ctl-R 匹配最相近的一个文件,然后输出
```
2.12. 综合应用
查找record.log中包含AAA但不包含BBB的记录的总数:
## 6 打包压缩
### 打包/ 压缩
在linux中打包和压缩和分两步来实现的
cat -v record.log | grep AAA | grep -v BBB | wc -l
1. 打包是将多个文件归并到一个文件:
```
tar -cvf etc.tar /etc <==仅打包,不压缩!
-c :打包选项
-v :显示打包进度
-f :使用档案文件
注:有的系统中指定参数时不需要在前面加上-直接使用tar xvf
```
用tar实现文件夹同步排除部分文件不同步:
```
tar --exclude '*.svn' -cvf - /path/to/source | ( cd /path/to/target; tar -xf -)
```
2. 压缩,生成 demo.txt.gz
```
$gzip demo.txt
```
### 解包/解压缩
解包
```
tar -xvf demo.tar
-x 解包选项
```
解压后缀为 .tar.gz的文件
1. 解压缩
```
$gunzip demo.tar.gz
```
2. 解包:
```
$tar -xvf demo.tar
```
bz2解压解包:
```
tar jxvf demo.tar.bz2
```
如果tar 不支持j则同样需要分两步来解包解压缩使用bzip2来解压再使用tar解包:
```
bzip2 -d demo.tar.bz2
tar -xvf demo.tar
-d decompose,解压缩
```
tar解压参数说明
```
-z 解压gz文件
-j 解压bz2文件
-J 解压xz文件
```
## 7 属性修改
### chgrp更改文件属组
语法:
```
chgrp [-R] 属组名 文件名
```
参数选项:
-R递归更改文件属组就是在更改某个目录文件的属组时如果加上-R的参数那么该目录下的所有文件的属组都会更改。
### chown更改文件属主也可以同时更改文件属组
语法:
```
chown [R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
```
### chmod
Linux文件属性有两种设置方法一种是数字一种是符号。
Linux文件的基本权限就有九个
* 三种身份owner/group/others
* 三种权限read/write/execute
各权限的分数对照表如下:
* r:4、w:2、x:1
```
chmod [-R] xyz 文件或目录
chmod u/g/o/a +(加入)/-(除去)/=(设定) r/w/x 文件或目录
```

View File

@@ -1,7 +1,7 @@
# 用户管理
> useradd passwd userdel usermod chmod chown .bashrc .bash_profile
## 1 添加删除
## 1 用户管理
添加用户,为用户创建相应的帐号和用户目录/home/username
```
@@ -26,7 +26,7 @@ $su userB
进入交互模型,输入密码授权进入;
## 2 用户
## 2 用户组管理
将用户加入到组
默认情况下,添加用户操作也会相应的增加一个同名的组,用户属于同名组; 查看当前用户所属的组:
```
@@ -49,60 +49,7 @@ $more /etc/passwd
$more /etc/group
```
## 3 用户权限
使用ls -l可查看文件的属性字段文件属性字段总共有10个字母组成第一个字母表示文件类型如果这个字母是一个减号”-”,则说明该文件是一个普通文件。字母”d”表示该文件是一个目录字母”d”,是dirtectory(目录)的缩写。 后面的9个字母为该文件的权限标识3个为一组分别表示文件所属用户、用户所在组、其它用户的读写和执行权限 例如:
```
[/home/weber#]ls -l /etc/group
-rwxrw-r-- colin king 725 2013-11-12 15:37 /home/colin/a
```
表示这个文件对文件拥有者colin这个用户可读写、可执行对colin所在的组king可读可写对其它用户只可读
更改读写权限
使用chmod命令更改文件的读写权限更改读写权限有两种方法一种是字母方式一种是数字方式
字母方式:
```
$chmod userMark(+|-)PermissionsMark
```
userMark取值
```
u用户
g
o其它用户
a所有用户
```
PermissionsMark取值
```
r:读
w
x执行
```
例如:
```
$chmod a+x main 对所有用户给文件main增加可执行权限
$chmod g+w blogs 对组用户给文件blogs增加可写权限
```
数字方式:
数字方式直接设置所有权限,相比字母方式,更加简洁方便;
使用三位八进制数字的形式来表示权限第一位指定属主的权限第二位指定组权限第三位指定其他用户的权限每位通过4(读)、2(写)、1(执行)三种数值的和来确定权限。如6(4+2)代表有读写权7(4+2+1)有读、写和执行的权限。
例如:
```
$chmod 740 main 将main的用户权限设置为rwxr-----
```
更改文件或目录的拥有者
```
$chown username dirOrFile
```
使用-R选项递归更改该目下所有文件的拥有者:
```
$chown -R weber server/
```
# 4 环境变量
# 3 环境变量
### bashrc & profile
bashrc与profile都用于保存用户的环境信息bashrc用于交互式non-loginshell而profile用于交互式login shell。

View File

@@ -1,8 +1,9 @@
# 磁盘管理
> * 查看磁盘空间 df -h
> * 查看目录大小 du -sh
> * df列出文件系统的整体磁盘使用量
> * du检查磁盘空间使用量
> * fdisk用于磁盘分区
> * 打包 tar -cvf
> * 解包 tar -xvf
> * 压缩 gzip bzip
@@ -10,82 +11,49 @@
解压缩 gunzip bzip
## 1 查看磁盘空间
查看磁盘空间利用大小:
```
df -h
```
-h: human缩写以易读的方式显示结果
查看当前目录所占空间大小:
```
du -sh
-h 人性化显示
-s 递归整个目录的大小
$du -sh
653M
```
查看当前目录下所有子文件夹排序后的大小:
```
for i in `ls`; do du -sh $i; done | sort
或者:
du -sh `ls` | sort
```
## 1 df磁盘使用量
df命令参数功能:
4.2. 打包/ 压缩
在linux中打包和压缩和分两步来实现的
检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
* 打包是将多个文件归并到一个文件:
语法:
```
tar -cvf etc.tar /etc <==仅打包,不压缩!
-c :打包选项
-v :显示打包进度
-f :使用档案文件
注:有的系统中指定参数时不需要在前面加上-直接使用tar xvf
df [-ahikHTm] [目录或文件名]
```
选项与参数:
* -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
* -k :以 KBytes 的容量显示各文件系统;
* -m :以 MBytes 的容量显示各文件系统;
* -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
* -H :以 M=1000K 取代 M=1024K 的进位方式;
* -T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
* -i :不用硬盘容量,而以 inode 的数量来显示
用tar实现文件夹同步排除部分文件不同步:
## 2 du使用空间
```
tar --exclude '*.svn' -cvf - /path/to/source | ( cd /path/to/target; tar -xf -)
```
Linux du命令也是查看使用空间的但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看还是和df命令有一些区别的这里介绍Linux du命令。
* 压缩,生成 demo.txt.gz
语法:
```
$gzip demo.txt
du [-ahskm] 文件或目录名称
```
选项与参数:
## 3 解包/解压缩
解包
```
tar -xvf demo.tar
-x 解包选项
```
* -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
* -h :以人们较易读的容量格式 (G/M) 显示;
* -s :列出总量而已,而不列出每个各别的目录占用容量;
* -S :不包括子目录下的总计,与 -s 有点差别。
* -k :以 KBytes 列出容量显示;
* -m :以 MBytes 列出容量显示;
解压后缀为 .tar.gz的文件
## 3 fdisk磁盘分区
fdisk 是 Linux 的磁盘分区表操作工具。
1. 解压缩
语法:
```
$gunzip demo.tar.gz
```
2. 解包:
```
$tar -xvf demo.tar
fdisk [-l] 装置名称
```
选项与参数:
bz2解压解包:
```
tar jxvf demo.tar.bz2
```
如果tar 不支持j则同样需要分两步来解包解压缩使用bzip2来解压再使用tar解包:
```
bzip2 -d demo.tar.bz2
tar -xvf demo.tar
-d decompose,解压缩
```
* -l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。
tar解压参数说明
```
-z 解压gz文件
-j 解压bz2文件
-J 解压xz文件
```

View File

@@ -87,70 +87,80 @@ nG |n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到
### 搜索替换
|操作|效果|
|-|-|
|/word 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
|?word 向光标之上寻找一个字符串名称为 word 的字符串。
|n 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
|N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
|使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
| :n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:
:100,200s/vbird/VBIRD/g』。(常用)
:1,$s/word1/word2/g 或 :%s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 (常用)
:1,$s/word1/word2/gc 或 :%s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
删除、复制与贴上
x, X 在一行字当中x 为向后删除一个字符 (相当于 [del] 按键) X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
dd 删除游标所在的那一整行(常用)
ndd n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
d1G 删除标所在到第一行的所有数据
dG 删除光标所在到最后一行的所有数据
d$ 删除标所在处,到该行的最后一个字符
d0 那个是数字的 0 删除标所在处,到该行的最前面一个字符
yy 复制游标所在的那一行(常用)
nyy n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
y1G 复制游标所在行到第一行的所有数据
yG 复制标所在行到最后一行的所有数据
y0 复制标所在的那个字符到该行行首的所有数据
y$ 复制标所在的那个字符到该行行尾的所有数据
p, P p 为将已复制的数据在光标下一行贴上P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
J 将光标所在行与下一行的数据结合成同一行
c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
u 复原前一个动作。(常用)
[Ctrl]+r 重做上一个动作。(常用)
这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
. 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)
|/word| 向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)|
|?word| 向光标之上寻找一个字符串名称为 word 的字符串。|
|n| 这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!|
|N |这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。|
||使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!|
| :n1,n2s/word1/word2/g |n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用)|
|:1,$s/word1/word2/g 或 :%s/word1/word2/g |从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 (常用)|
|:1,$s/word1/word2/gc 或 :%s/word1/word2/gc |从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)|
### 删除、复制与贴上
|操作|效果|
|-|-|
|x, X| 在一行字当中x 为向后删除一个字符 (相当于 [del] 按键) X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)|
|nx n |为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。|
|dd |删除标所在的那一整行(常用)|
|ndd| n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)|
|d1G| 删除标所在到第一行的所有数据|
|dG| 删除标所在到最后一行的所有数据|
|d$| 删除游标所在处,到该行的最后一个字符|
|d0| 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符|
|yy| 复制游标所在的那一行(常用)|
|nyy| n 为数字。复制标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)|
|y1G| 复制标所在行到第一行的所有数据|
|yG| 复制标所在行到最后一行的所有数据|
|y0| 复制光标所在的那个字符到该行行首的所有数据|
|y$| 复制光标所在的那个字符到该行行尾的所有数据|
|p, P| p 为将已复制的数据在光标下一行贴上P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)|
|J| 将光标所在行与下一行的数据结合成同一行|
|c| 重复删除多个数据,例如向下删除 10 行,[ 10cj ]|
|u| 复原前一个动作。(常用)|
|[Ctrl]+r| 重做上一个动作。(常用)|
|. |不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果你想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)|
u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,你的编辑,嘿嘿!很快乐的啦!
## 3 编辑模式
## 编辑模式
第二部分:一般模式切换到编辑模式的可用的按钮说明
进入输入或取代的编辑模式
i, I 进入输入模式(Insert mode)
i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)
a, A 进入输入模式(Insert mode)
a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
o, O 进入输入模式(Insert mode)
这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行!(常用)
r, R 进入取代模式(Replace mode)
r 只会取代光标所在的那一个字符一次R会一直取代光标所在的文字直到按下 ESC 为止;(常用)
上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!
[Esc] 退出编辑模式,回到一般模式中(常用)
## 底线模式
|操作|效果|
|-|-|
|i, I| 进入输入模式(Insert mode)|
|i |为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)|
|a, A| 进入输入模式(Insert mode)a为『从目前光标所在的下一个字符处开始输入』 A 为『从光标所在行的最后一个字符处开始输入』。(常用)|
|o, O| 进入输入模式(Insert mode):这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处输入新的一行』; O 为在目前光标所在处的上一行输入新的一行!(常用)|
|r, R| 进入取代模式(Replace mode)|
|r| 只会取代光标所在的那一个字符一次R会一直取代光标所在的文字直到按下 ESC 为止;(常用)|
||上面这些按键中,在 vi 画面的左下角处会出现『--INSERT--』或『--REPLACE--』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT 或 REPLACE 才能输入喔!|
|[Esc]| 退出编辑模式,回到一般模式中(常用)|
## 4 底线模式
第三部分:一般模式切换到指令行模式的可用的按钮说明
指令行的储存、离开等指令
:w 将编辑的数据写入硬盘档案中(常用)
:w! 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
:q 离开 vi (常用)
:q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
:wq 储存后离开,若为 :wq! 为强制储存后离开 (常用)
ZZ 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
:w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
:r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
:n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
:! command 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
vim 环境的变更
:set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
:set nonu 与 set nu 相反,为取消行号!
|操作|效果|
|-|-|
|:w| 将编辑的数据写入硬盘档案中(常用)|
|:w!| 若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!|
|:q| 离开 vi (常用)|
|:q!| 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
||注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~|
|:wq| 储存后离开,若为 :wq! 则为强制储存后离开 (常用)|
|ZZ| 这是大写的 Z 喔!若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!|
|:w [filename]|编辑的数据储存成另一个档案(类似另存新档)|
|:r [filename]| 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面|
|:n1,n2 w [filename]| 将 n1 到 n2 的内容储存成 filename 这个档案。|
|:! command| 暂时离开 vi 到指令行模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!|
### vim 环境的变更
|操作|效果|
|-|-|
|:set nu| 显示行号,设定之后,会在每一行的前缀显示该行的行号|
|:set nonu| 与 set nu 相反,为取消行号!|
特别注意,在 vi/vim 中,数字是很有意义的!数字通常代表重复做几次的意思! 也有可能是代表去到第几个什么什么的意思。
举例来说,要删除 50 行,则是用 『50dd』 对吧! 数字加在动作之前,如我要向下移动 20 行呢那就是『20j』或者是『20↓』即可。

View File

@@ -0,0 +1,56 @@
# 分区与挂载
> 文件系统是软件系统,为其他程序提供访问数据的接口。
> 磁盘管理是对硬件的管理,为文件管理提供上层接口。
> 文件系统建立在磁盘管理之上。
## 1 文件系统
## 2 分区方式
### MBR分区
最多支持 4 个主分区,只能用扩展分区衍生出更多的逻辑分区。
扩展分区要占一个主分区。
系统只能转在主分区。
MBR 最大支持的分区大小为 2 TB大数据时代显然是不够的
### GPT分区
支持无线多个主分区( OS 可能会做限制例如windows 下最多 128 个分区)。
最大支持 18EB 的大容量。1024TB=1PB1024PB=1EB
Windows 7 后只支持 GPT 方式。
### Win与Linux分区区别
区别在于挂载。
Windows 中都是分区都是按照磁盘号来分区的,分区就拥有一个磁盘号,每一个磁盘分区的根目录都可以说是平级的,没有太大的相关性。文件系统位于磁盘分区之上。
Linux中文件系统与磁盘管理相互独立通过“挂载”过程建立关联。文件系统并非确定位于某个磁盘分区上的系统。在 Linux 中就是把某个目录树中的目录与分区关联起来,即挂载。一个分区必须和目录树上的一个文件目录关联起来,这个目录里的所有文件都会存储与这个分区之中。
其与 Windows 最大的区别点就在于不管怎么分区Linux 中的目录结构不会改变,与磁盘分区相互独立,互补影响。而不像 Windows 中每个分区的根目录都是平级存在的,分区决定了目录的位置。
### 硬盘接口说明
IDE 、 STATA 、M2、NVMEIDE一般都是机械硬盘使用的STATA、M2、MVME都是固态硬盘使用的接口速度会比 IDE 快上许多随着时间的流逝IDE 肯定会像 MBR 分区格式一样被淘汰的。
自动分区的编号分别是
* IDEhda,hda1,hda2,hdb
* STATAsda,sda1,sda2,sdb
* NVMEnvme0n1,nvme0n1p1,nvme0n1p2,
* virtio虚拟机vda,vda1,vda2
## 分区配置
### 查看系统分区
查看系统分区
```
lsblk -f # 查看系统分区情况
```