auto commit
This commit is contained in:
parent
d7b23c989a
commit
9ba333e2fd
@ -65,8 +65,8 @@
|
|||||||
* [2. bzip2](#2-bzip2)
|
* [2. bzip2](#2-bzip2)
|
||||||
* [3. xz](#3-xz)
|
* [3. xz](#3-xz)
|
||||||
* [打包](#打包)
|
* [打包](#打包)
|
||||||
* [BASH](#bash)
|
* [Bash](#bash)
|
||||||
* [Bash特性](#bash特性)
|
* [Bash 特性](#bash-特性)
|
||||||
* [变量操作](#变量操作)
|
* [变量操作](#变量操作)
|
||||||
* [指令搜索顺序](#指令搜索顺序)
|
* [指令搜索顺序](#指令搜索顺序)
|
||||||
* [数据流重定向](#数据流重定向)
|
* [数据流重定向](#数据流重定向)
|
||||||
@ -534,8 +534,8 @@ find
|
|||||||
文件系统有以下三个结构:
|
文件系统有以下三个结构:
|
||||||
|
|
||||||
1. superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
|
1. superblock:记录文件系统的整体信息,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统的格式与相关信息等;
|
||||||
2. inode:一个文件占用一个 inode,记录文件的属性,同时记录此文件的数据所在的 block 号码;
|
2. inode:一个文件占用一个 inode,记录文件的属性,同时记录此文件的内容所在的 block 号码;
|
||||||
3. block:记录文件的内容,若文件太大时,会占用多个 block。
|
3. block:记录文件的内容,文件太大时,会占用多个 block。
|
||||||
|
|
||||||
当要读取一个文件的内容时,先在 inode 中去查找文件内容所在的所有 block,然后把所有 block 的内容读出来。
|
当要读取一个文件的内容时,先在 inode 中去查找文件内容所在的所有 block,然后把所有 block 的内容读出来。
|
||||||
|
|
||||||
@ -549,7 +549,7 @@ Ext2
|
|||||||
|
|
||||||
Ext2 文件系统支持的 block 大小有 1k、2k 和 4k 三种,不同的 block 大小限制了单一文件的大小。而每个 inode 大小是固定为 128 bytes。
|
Ext2 文件系统支持的 block 大小有 1k、2k 和 4k 三种,不同的 block 大小限制了单一文件的大小。而每个 inode 大小是固定为 128 bytes。
|
||||||
|
|
||||||
inode 中记录了文件内容所在的 block,但是每个 block 非常小,一个大文件随便都需要几十万的 block,而一个 inode 大小有限,无法直接引用这么多 block。因此引入了间接、双间接、三间接引用,使用用 block 来扩充大小,也就是让 block 来记录文件包含的 block。
|
inode 中记录了文件内容所在的 block,但是每个 block 非常小,一个大文件随便都需要几十万的 block,而一个 inode 大小有限,无法直接引用这么多 block。因此引入了间接、双间接、三间接引用。间接引用是指,让 inode 记录的引用 block 块当成 inode 用来记录引用信息。
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@ -566,21 +566,21 @@ inode
|
|||||||
|
|
||||||
## 目录的 inode 与 block
|
## 目录的 inode 与 block
|
||||||
|
|
||||||
建立一个目录时,会分配一个 inode 与至少一个 block。block 记录的内容是目录下所有文件的 inode 编号以及文件名,可以看出文件的 inode 本身不记录文件名,文件名记录在目录中,因此新增文件、删除文件、更改文件名这些操作与目录的 w 权限有关。
|
建立一个目录时,会分配一个 inode 与至少一个 block。block 记录的内容是目录下所有文件的 inode 编号以及文件名。可以看出文件的 inode 本身不记录文件名,文件名记录在目录中,因此新增文件、删除文件、更改文件名这些操作与目录的 w 权限有关。
|
||||||
|
|
||||||
## 实体链接与符号链接
|
## 实体链接与符号链接
|
||||||
|
|
||||||
```html
|
```html
|
||||||
# ln [-sf] source_filename dist_filename
|
# ln [-sf] source_filename dist_filename
|
||||||
-s :默认是 hard link,加 -s 为 symbolic link
|
-s :默认是 hard link,加 -s 为 symbolic link
|
||||||
-f :如果目标5文件存在时,先删除目标文件
|
-f :如果目标文件存在时,先删除目标文件
|
||||||
```
|
```
|
||||||
|
|
||||||
### 1. 实体链接
|
### 1. 实体链接
|
||||||
|
|
||||||
hard link 只是在某个目录下新增一个条目,使得新增的条目链接到文件的 inode 上。删除任意一个条目,文件还是存在,只要引用数量不为 0。
|
hard link 只是在某个目录下新增一个条目,使得新增的条目链接到文件的 inode 上。删除任意一个条目,文件还是存在,只要引用数量不为 0。
|
||||||
|
|
||||||
有以下限制:不能跨越 Filesystem;不能对目录进行链接。
|
有以下限制:不能跨越 File System;不能对目录进行链接。
|
||||||
|
|
||||||
```html
|
```html
|
||||||
# ln /etc/crontab .
|
# ln /etc/crontab .
|
||||||
@ -653,7 +653,7 @@ $ bzip2 [-cdkzv#] filename
|
|||||||
|
|
||||||
提供比 bzip2 更佳的压缩比。
|
提供比 bzip2 更佳的压缩比。
|
||||||
|
|
||||||
可以看到,gzip、bzip2、xz 的压缩比不断优化,不过要注意,压缩比越高,压缩的时间也越长。
|
可以看到,gzip、bzip2、xz 的压缩比不断优化。不过要注意,压缩比越高,压缩的时间也越长。
|
||||||
|
|
||||||
查看命令:xzcat、xzmore、xzless、xzgrep。
|
查看命令:xzcat、xzmore、xzless、xzgrep。
|
||||||
|
|
||||||
@ -680,15 +680,16 @@ $ tar [-z|-j|-J] [xv] [-f
|
|||||||
-C 目录 : 在特定目录解压缩。
|
-C 目录 : 在特定目录解压缩。
|
||||||
```
|
```
|
||||||
|
|
||||||
最常用的方式如下:
|
| 使用方式 | 命令 |
|
||||||
|
| --- | --- |
|
||||||
|
| 打包压缩 | tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称 |
|
||||||
|
| 查 看 | tar -jtv -f filename.tar.bz2 |
|
||||||
|
| 解压缩 | tar -jxv -f filename.tar.bz2 -C 要解压缩的目录 |
|
||||||
|
|
||||||
打包压缩 : tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
|
|
||||||
查 看 : tar -jtv -f filename.tar.bz2
|
|
||||||
解压缩 :tar -jxv -f filename.tar.bz2 -C 要解压缩的目录
|
|
||||||
|
|
||||||
# BASH
|
# Bash
|
||||||
|
|
||||||
可以通过 shell 请求内核提供服务,Bash 正是 shell 的一种。
|
可以通过 Shell 请求内核提供服务,Bash 正是 Shell 的一种。
|
||||||
|
|
||||||
## Bash 特性
|
## Bash 特性
|
||||||
|
|
||||||
@ -712,7 +713,9 @@ $ tar [-z|-j|-J] [xv] [-f
|
|||||||
|
|
||||||
## 变量操作
|
## 变量操作
|
||||||
|
|
||||||
对一个变量赋值直接使用 = ,对变量取用需要在变量前加上 \$ ,也可以用 \${} 的形式,输出变量使用 echo 命令。
|
- 对一个变量赋值直接使用 = ;
|
||||||
|
- 对变量取用需要在变量前加上 \$ ,也可以用 \${} 的形式;
|
||||||
|
- 输出变量使用 echo 命令。
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ var=abc
|
$ var=abc
|
||||||
@ -756,8 +759,9 @@ $ echo ${array[1]}
|
|||||||
|
|
||||||
重定向就是使用文件代替标准输入、标准输出和标准错误输出。
|
重定向就是使用文件代替标准输入、标准输出和标准错误输出。
|
||||||
|
|
||||||
1. 标准输入 (stdin) :代码为 0 ,使用 < 或 << ;
|
|
||||||
2. 标准输出 (stdout) :代码为 1 ,使用 > 或 >> ;
|
1. 标准输入(stdin) :代码为 0 ,使用 < 或 << ;
|
||||||
|
2. 标准输出(stdout) :代码为 1 ,使用 > 或 >> ;
|
||||||
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
|
3. 标准错误输出(stderr):代码为 2 ,使用 2> 或 2>> ;
|
||||||
|
|
||||||
其中,有一个箭头的表示以覆盖的方式重定向,而有两个箭头的表示以追加的方式重定向。
|
其中,有一个箭头的表示以覆盖的方式重定向,而有两个箭头的表示以追加的方式重定向。
|
||||||
@ -823,10 +827,10 @@ $ export | cut -c 12
|
|||||||
$ sort [-fbMnrtuk] [file or stdin]
|
$ sort [-fbMnrtuk] [file or stdin]
|
||||||
-f :忽略大小写
|
-f :忽略大小写
|
||||||
-b :忽略最前面的空格
|
-b :忽略最前面的空格
|
||||||
-M :以月份的名字来排序,例如 JAN, DEC
|
-M :以月份的名字来排序,例如 JAN,DEC
|
||||||
-n :使用数字
|
-n :使用数字
|
||||||
-r :反向排序
|
-r :反向排序
|
||||||
-u :相当于 unique ,重复内容只出现一次
|
-u :相当于 unique,重复的内容只出现一次
|
||||||
-t :分隔符,默认为 tab
|
-t :分隔符,默认为 tab
|
||||||
-k :指定排序的区间
|
-k :指定排序的区间
|
||||||
```
|
```
|
||||||
@ -959,8 +963,6 @@ $ grep -n 'the' regular_express.txt
|
|||||||
$ grep -n 'go\{2,5\}g' regular_express.txt
|
$ grep -n 'go\{2,5\}g' regular_express.txt
|
||||||
```
|
```
|
||||||
|
|
||||||
其它正则表达式请参考 [正则表达式](https://github.com/00000H/notes/blob/master/notes/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F.md).
|
|
||||||
|
|
||||||
## printf
|
## printf
|
||||||
|
|
||||||
用于格式化输出。
|
用于格式化输出。
|
||||||
|
Loading…
x
Reference in New Issue
Block a user