From 073f709b9171de120a6b60fbc0fd0334b86ab23f Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Tue, 20 Mar 2018 20:28:00 +0800 Subject: [PATCH] auto commit --- notes/Linux.md | 52 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/notes/Linux.md b/notes/Linux.md index 0eb97ff5..c1e2fd6b 100644 --- a/notes/Linux.md +++ b/notes/Linux.md @@ -34,19 +34,24 @@ * [压缩](#压缩) * [打包](#打包) * [七、Bash](#七bash) - * [Bash 特性](#bash-特性) + * [特性](#特性) * [变量操作](#变量操作) * [指令搜索顺序](#指令搜索顺序) * [数据流重定向](#数据流重定向) - * [管线指令](#管线指令) -* [八、正规表示法与文件格式化处理](#八正规表示法与文件格式化处理) +* [八、管线指令](#八管线指令) + * [提取指令](#提取指令) + * [排序指令](#排序指令) + * [双向输出重定向](#双向输出重定向) + * [字符转换指令](#字符转换指令) + * [分区指令](#分区指令) +* [九、正规表示法与文件格式化处理](#九正规表示法与文件格式化处理) * [grep](#grep) * [printf](#printf) * [awk](#awk) -* [九、进程管理](#九进程管理) +* [十、进程管理](#十进程管理) * [查看进程](#查看进程) * [查看端口](#查看端口) -* [十、IO 多路复用](#十io-多路复用) +* [十一、IO 多路复用](#十一io-多路复用) * [参考资料](#参考资料) @@ -663,9 +668,9 @@ $ tar [-z|-j|-J] [xv] [-f 已有的 tar 文件] [-C 目录] ==解压缩 可以通过 Shell 请求内核提供服务,Bash 正是 Shell 的一种。 -## Bash 特性 +## 特性 -1. 命令历史:记录使用过的命令。本次登录所执行的命令都会暂时存放到内存中, \~/.bash_history 文件中记录的是前一次登录所执行过的命令。 +1. 命令历史:记录使用过的命令。本次登录所执行的命令都会暂时存放到内存中,\~/.bash_history 文件中记录的是前一次登录所执行过的命令。 2. 命令与文件补全:快捷键:tab。 @@ -687,7 +692,10 @@ $ echo $var $ echo ${var} ``` -变量内容如果有空格,需要使用双引号或者单引号。双引号内的特殊字符可以保留原本特性,例如 var="lang is \$LANG",则 var 的值为 lang is zh_TW.UTF-8;而单引号内的特殊字符就是特殊字符本身,例如 var='lang is \$LANG',则 var 的值为 lang is \$LANG。 +变量内容如果有空格,必须需要使用双引号或者单引号。 + +- 双引号内的特殊字符可以保留原本特性,例如 var="lang is \$LANG",则 var 的值为 lang is zh_TW.UTF-8; +- 单引号内的特殊字符就是特殊字符本身,例如 var='lang is \$LANG',则 var 的值为 lang is \$LANG。 可以使用 \`指令\` 或者 \$(指令) 的方式将指令的执行结果赋值给变量。例如 version=\$(uname -r),则 version 的值为 3.10.0-229.el7.x86_64。 @@ -720,11 +728,13 @@ $ echo ${array[1]} ## 数据流重定向 -重定向就是使用文件代替标准输入、标准输出和标准错误输出。 +重定向指的是使用文件代替标准输入、标准输出和标准错误输出。 -1. 标准输入 (stdin)       :代码为 0 ,使用 < 或 << ; -2. 标准输出 (stdout)     :代码为 1 ,使用 > 或 >> ; -3. 标准错误输出 (stderr):代码为 2 ,使用 2> 或 2>> ; +| 1 | 代码 | 运算符 | +| :---: | :---: | :---:| +| 标准输入 (stdin) | 0 | < 或 << | +| 标准输出 (stdout) | 1 | > 或 >> | +| 标准错误输出 (stderr) | 2 | 2> 或 2>> | 其中,有一个箭头的表示以覆盖的方式重定向,而有两个箭头的表示以追加的方式重定向。 @@ -736,7 +746,7 @@ $ echo ${array[1]} $ find /home -name .bashrc > list 2>&1 ``` -## 管线指令 +# 八、管线指令 管线是将一个命令的标准输出作为另一个命令的标准输入,在数据需要经过多个步骤的处理之后才能得到我们想要的内容时就可以使用管线。在命令之间使用 | 分隔各个管线命令。 @@ -744,7 +754,7 @@ $ find /home -name .bashrc > list 2>&1 $ ls -al /etc | less ``` -### 1. 提取指令:cut +## 提取指令 cut 对数据进行切分,取出想要的部分。提取过程一行一行地进行。 @@ -779,7 +789,7 @@ declare -x HOSTNAME="study.centos.vbird" $ export | cut -c 12 ``` -### 2. 排序命令:sort、uniq +## 排序指令 **sort** 进行排序。 @@ -825,7 +835,7 @@ $ last | cut -d ' ' -f 1 | sort | uniq -c 1 wtmp ``` -### 3. 双向输出重定向:tee +## 双向输出重定向 输出重定向会将输出内容重定向到文件中,而 **tee** 不仅能够完成这个功能,还能保留屏幕上的输出。也就是说,使用 tee 指令,一个输出会同时传送到文件和屏幕上。 @@ -833,7 +843,7 @@ $ last | cut -d ' ' -f 1 | sort | uniq -c $ tee [-a] file ``` -### 4. 字符转换指令:tr、col、expand、join、paste +## 字符转换指令 **tr** 用来删除一行中的字符,或者对字符进行替换。 @@ -879,7 +889,7 @@ $ paste [-d] file1 file2 -d :分隔符,默认为 tab ``` -### 5. 分区指令:split +## 分区指令 **split** 将一个文件划分成多个文件。 @@ -890,7 +900,7 @@ $ split [-bl] file PREFIX - PREFIX :分区文件的前导名称 ``` -# 八、正规表示法与文件格式化处理 +# 九、正规表示法与文件格式化处理 ## grep @@ -989,7 +999,7 @@ bin 1 daemon 2 ``` -# 九、进程管理 +# 十、进程管理 ## 查看进程 @@ -1003,7 +1013,7 @@ ps aux | grep threadx netstat -anp | grep 80 ``` -# 十、IO 多路复用 +# 十一、IO 多路复用