From e1330e7caa2658795ffb3e9da9bda4b69719b008 Mon Sep 17 00:00:00 2001
From: GentleCold <1952173800@qq.com>
Date: Sat, 10 Sep 2022 00:06:14 +0800
Subject: [PATCH] update: update note

---
 README.md                                  |   2 +-
 quiz/linux_shell_learning/learning_note.md | 131 +++++++++++++++++++++++++++++
 2 files changed, 132 insertions(+), 1 deletion(-)
 create mode 100644 quiz/linux_shell_learning/learning_note.md

diff --git a/README.md b/README.md
index 4a0417e..e98d836 100644
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 * csapp.txt - 由本人 E-note 项目生成的笔记
 
 各 lab 得分
-* Datalab - 62 / 62
+* Data Lab - 62 / 62
   * 项目目录下运行 ```./labs/data_lab/driver.pl -u GentleCold```
 
 注:
diff --git a/quiz/linux_shell_learning/learning_note.md b/quiz/linux_shell_learning/learning_note.md
new file mode 100644
index 0000000..73c54e9
--- /dev/null
+++ b/quiz/linux_shell_learning/learning_note.md
@@ -0,0 +1,131 @@
+### 生成 50000 行随机字符串文件
+
+使用 head 和 base64 命令
+
+读取 50000 行 dev/urandom 文件,由于是二进制数据,通过管道输入给 base64 命令转码,再重定向到目标文件
+
+输入命令 ```head -n 50000 /dev/urandom | base64 > random```
+
+用 vim 查看 random 文件
+
+![image-20220909211933123](C:/Users/15791/AppData/Roaming/Typora/typora-user-images/image-20220909211933123.png)
+
+注意到实际行数达 22 万行
+
+为达到要求,再使用 head 命令获取 50000 行数据,输入命令 ```head -n 50000 random > random2```
+
+用 wc 命令查看 random2 文件
+
+![image-20220909205002527](C:\Users\15791\AppData\Roaming\Typora\typora-user-images\image-20220909205002527.png)
+
+替换 random 文件
+
+![image-20220909205622666](C:\Users\15791\AppData\Roaming\Typora\typora-user-images\image-20220909205622666.png)
+
+***
+
+### 按字母排序文件,输出 unique 行
+
+使用 sort 命令,覆盖写入
+
+输入命令 ```sort --unique random > unique_sort_by_asc```
+
+查看结果
+
+![image-20220909212221043](C:\Users\15791\AppData\Roaming\Typora\typora-user-images\image-20220909212221043.png)
+
+***
+
+### 按数字排序文件,输出 unique 行
+
+输入命令 ``` sort --unique --numeric-sort random > unique_sort_by_num``` 
+
+查看结果
+
+![image-20220909212307763](C:\Users\15791\AppData\Roaming\Typora\typora-user-images\image-20220909212307763.png)
+
+***
+
+### 追加写入文件 totall
+
+使用 cat 命令
+
+![image-20220909212434813](C:\Users\15791\AppData\Roaming\Typora\typora-user-images\image-20220909212434813.png)
+
+通过行数判断追加成功
+
+***
+
+### 找内容确定的字符串
+
+以 totall 文件为例,查找指定内容
+
+使用 grep 命令
+
+![image-20220909213439956](C:\Users\15791\AppData\Roaming\Typora\typora-user-images\image-20220909213439956.png)
+
+***
+
+### 统计匹配数目
+
+将 grep 产生的数据通过管道输入给 wc 命令统计行数即匹配到的数目
+
+![image-20220909213604144](C:\Users\15791\AppData\Roaming\Typora\typora-user-images\image-20220909213604144.png)
+
+***
+
+### Git 练习
+
+1. 创建仓库并 push 到远程仓库
+
+   git init
+
+   git commit -m "first commit"
+
+   git remote add shuishan git@gitea.shuishan.net.cn:10215501413/CsappLearning.git
+
+   git push -u shuishan master
+
+2. 创建分支并 push
+
+   git checkout -b gitPractise
+
+   git add ./quiz/linux_shell_learning/*
+
+   git commit -m "feat: linux shell learning"
+
+   git push shuishan gitPractise
+
+3. 查看分支
+
+   git branch -a
+
+4. 合并分支
+
+   git checkout master
+
+   git merge gitPractise
+
+5. push
+
+   git push shuishan master
+
+6. 删除新分支
+
+   git push shuishan --delete gitPractise
+
+***
+
+
+
+### 使用命令小结
+
+* tldr - 查看命令使用方法
+* head - 获取文件从头开始的内容
+* base64 - 将数据转为 base64 编码
+* sort - 排序数据内容
+* cat - 向文件追加数据
+* grep - 匹配指定内容
+* wc - 统计文件行数等信息
+* mv - 重命名文件
+* /dev/urandom - 包含随机数据的文件
\ No newline at end of file
-- 
2.8.3