# Linux 學習筆記
資工二 李易 111010512
## 第一週
### 系統安裝
先前往 [ftp.iij.ad.jp](http://ftp.iij.ad.jp/pub/linux/centos-vault/7.6.1810/isos/x86_64/)下載 [CentOS-7-x86_64-LiveKDE-1810.iso](http://ftp.iij.ad.jp/pub/linux/centos-vault/7.6.1810/isos/x86_64/CentOS-7-x86_64-LiveKDE-1810.iso)。
(備註:CentOS 從第 7 版開始就只支援 64 bits)
![](https://i.imgur.com/0N3XUp7.png)
下載完畢後,再前往 VirtualBox [官網](https://www.virtualbox.org/wiki/Downloads)取得最新版安裝包及擴展包。
(備註:也可以下載VMware。其中,VMware Play是免費版,VMware Workstation效能功能都比較好)
![](https://i.imgur.com/qATijbY.png)
安裝完畢後,點選介面內的新增按鈕,並進行以下配置:
(備註:擴展包只要直接點兩下就好,然後再到 `File > Tools > Extension Pack Manager` 進行查看)
![](https://i.imgur.com/ANvpw7P.png)
隨後啟動虛擬機,並點選 CentOS 桌面左下角的開始圖標,開始進行 Install。
(備註:在安裝過程中,管理員的密碼要設定成 `centos`,使用者的名稱、密碼要設定成 `user`)
![](https://i.imgur.com/obelyKn.png)
等到一切就緒後,再從 VirtualBox 那裏移除原本的光碟檔,然後重新登入,並確認是否設定成功。
(備註:重新登入時還要再設定License,直接勾選 Aceept 然後 Continue 就好)
### 相關比較
#### User vs Root
![](https://i.imgur.com/7ALYJs6.png)
#### Windows vs Linux
Windows: ipconfig
Linux: ifconfig
![](https://i.imgur.com/QMshcds.png)
#### VMware vs VirtualBox
VMware 和 VirtualBox 在 NAT 上會有所不同。
VMware: NAT VM can talk to host. Host can also talk to VM.
VirtualBox: NAT VM can talk to host. Host can not talk to VM.
![](https://i.imgur.com/IP6b0cm.png)
### 課程資源
https://www.bilibili.com/video/BV1U14y1G7UJ?p=1&vd_source=f74a220251f63c0d2381f8c51b2cbdee
https://www.bilibili.com/video/BV1Ug411k71N/?spm_id_from=333.999.0.0&vd_source=f74a220251f63c0d2381f8c51b2cbdee
https://hackmd.io/@jenny126/CentOS7/%2F2vZs_D8GRv29KdIQiiv95g
https://www.bilibili.com/video/BV1z54y1z7yN/?spm_id_from=333.337.search-card.all.click&vd_source=f74a220251f63c0d2381f8c51b2cbdee
https://www.books.com.tw/products/0010755095
### 就業機會
https://we.51job.com/pc/search?keyword=linux&searchType=2&sortType=0&metro=
## 第二週
### 設定 NAT
前往 CentOS 在 VirtualBox 底下的網路卡設定,在`介面卡1`啟動`NAT`網路卡,在`介面卡2`啟動`僅限主機介面卡`,並選擇`VirtualBox Host-Only Ethernet Adapter`。如果找不到該介面卡,就前往`檔案 > 工具 > Network Manager`自行新增,且新增時要勾選`DHCP Server`。
### 終端機
`$`是一般使用者的提示符號。
`#`是超級使用者的提示符號。
`~`符號代表家目錄。例如在 Windows 底下,使用者的家目錄為 `C:\Users\E321-21`。
`pwd`指令代表`print work directory`。
`cd`指令代表`change directory`。
`cd ~`指令可以回到家目錄。
`cd -`指令可以回到上一個路徑。
`clear`指令可以清除終端機畫面。
`kill -9 [pid]`指令可以清除背景程式。
`echo $?` 指令可以顯示上一段程式碼的執行結果是對是錯。
`sudo`指令可以在執行階段切換成管理者,執行完畢後再切換回來。
`ifconfig`指令相當於 Windows 底下的`ipconfig`。
如果顯示`ifconfig: command not found`的錯誤,就輸入`sudo yum install net-tools`來進行安裝。之所以使用`yum`是因為在 CentOS 底下沒有`apt`。
![](https://i.imgur.com/Heg55iw.png)
![](https://i.imgur.com/9UI0ETj.png)
### 關閉防火牆
1. 輸入 `su` 進入超級使用者。
2. 輸入 `sudo yum install gedit` 安裝 `gedit` 套件。
3. close selinux (gedit /etc/selinux/config)
4. save -> close -> reboot
5. 輸入 `getenforce` 進行確認。
6. 輸入 `systemctl stop firewalld` 停止防火牆。
7. 輸入 `systemctl disable firewalld` 關閉防火牆。
8. 輸入 `systemctl status firewalld` 檢查防火牆。
![](https://i.imgur.com/n7sdeMg.png)
![](https://i.imgur.com/0d1VMMp.png)
![](https://i.imgur.com/fR1yYQw.png)
![](https://i.imgur.com/BpdRwoe.png)
### 遠端登入
1. 輸入 `sudo yum install openssh-server -y` 安裝套件。
2. 輸入 `systemctl start sshd` 啟動伺服器。
3. 輸入 `systemctl status sshd` 檢查伺服器。
![](https://i.imgur.com/qYTwR6q.png)
前往 https://www.putty.org/ 下載 PuTTY
前往 https://winscp.net/eng/download.php 下載 WinSCP
在 PuTTY 下輸入 CentOS 對外主機的 IP 位址,然後按 Open,即可在登入後進行指令操作。
![](https://i.imgur.com/PcCc1BU.png)
在 WinSCP 下輸入 CentOS 對外主機的 IP 位址,然後按登入,即可在登入後進行檔案傳輸。
![](https://i.imgur.com/JKGNTid.png)
### 網頁伺服器
1. 輸入 `sudo yum install httpd -y` 安裝套件。
2. 輸入 `systemctl start httpd` 啟動伺服器。
3. 輸入 `systemctl status httpd` 檢查伺服器。
4. 輸入 `cd /var/www/html` 前往資料夾。
5. 輸入 `echo "hi" > hi.htm` 寫入檔案。
6. 回到本機瀏覽器。
7. 輸入 `虛擬機 IP 位址 + 檔案名` 進行確認。
![](https://i.imgur.com/WdAXW7Z.png)
![](https://i.imgur.com/fNgXoJb.png)
![](https://i.imgur.com/L9AVpB4.png)
## 第三週
### 架設網站
IPv6
#### 設定網路卡
![](https://i.imgur.com/I29VhrY.png)
![](https://i.imgur.com/UgCvh0b.png)
#### 檢查防火牆
![](https://i.imgur.com/lfDykTn.png)
#### 啟動伺服器
![](https://i.imgur.com/QaC3kGQ.png)
![](https://i.imgur.com/sERCh6W.png)
### 架設機器人
OpenAI + LINE + Vercel = GPT AI Assistant
https://mrmad.com.tw/chatgpt-line-robot-creation-teaching
> ![](https://i.imgur.com/0lpDcgT.png)
### C語言
先用 gedit 進行編寫,然後再用 gcc 進行編譯。
![](https://i.imgur.com/HBXewhz.png)
## 第四週
### 建立快照
https://quietbo.com/2021/07/04/virtualbox-%E9%82%84%E5%8E%9F%E4%B9%8B%E5%89%8D%E7%9A%84%E5%82%99%E4%BB%BD%E8%88%87%E9%82%84%E5%8E%9F%E6%96%B9%E5%BC%8F-%E5%BF%AB%E7%85%A7-%E5%BF%85%E5%AD%B8/
> ![](https://i.imgur.com/0zxHot9.png)
### 安裝 Wget
```
yum install wget
```
![](https://i.imgur.com/JScEFfy.png)
### 安裝 Conda
```
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
press q
enter yes
press enter
enter no
/home/user/miniconda3/bin/conda config --set auto_activate_base false
cd
gedit .bashrc
export PATH=$PATH:/home/user/miniconda3/bin
restart konsole
```
![](https://i.imgur.com/hRDMilE.png)
![](https://i.imgur.com/sSJb3mB.png)
![](https://i.imgur.com/ewCq728.png)
![](https://i.imgur.com/qq05KU6.png)
![](https://i.imgur.com/Ofgu9xk.png)
![](https://i.imgur.com/nEN95pk.png)
![](https://i.imgur.com/5bfIfln.png)
![](https://i.imgur.com/n2EoLM7.png)
![](https://i.imgur.com/CvdLhlj.png)
![](https://i.imgur.com/kxcnznX.png)
![](https://i.imgur.com/qk4liHA.png)
![](https://i.imgur.com/olRljQS.png)
### 建立環境
```
conda init
conda create -n py310 python=3.10
restart konsole
```
![](https://i.imgur.com/tPi5fq7.png)
![](https://i.imgur.com/wfVyWM6.png)
### 測試環境
```
conda activate py310
python
exit()
conda deactivate
```
![](https://i.imgur.com/rzLo1Tc.png)
![](https://i.imgur.com/MQNKh7X.png)
### 安裝 FFmpeg
https://sysadminxpert.com/install-ffmpeg-on-centos-7/
> ![](https://i.imgur.com/DPnngvK.png)
### 安裝 VLC
```
yum install vlc
```
### 安裝 Whisper
```
yum install git
conda activate py310
pip install git+https://github.com/openai/whisper.git
pip install pytube
```
### 下載程式
```
touch subtitle.py
gedit subtitle.py
copy from https://raw.githubusercontent.com/smallko/test-whisper/main/gen_sub.py
paste
```
### 執行程式
```
python subtitle.py
```
![](https://i.imgur.com/nn2Oboj.png)
### 播放影片
```
vlc
```
### 編輯字幕
```
gedit p4switch1.srt
```
## 第五週
### 基礎
Linux 管理者名稱: root
Windows 管理者名稱: administrator
Linux 裡面第一支被執行的應用程式 (process id = 1):
* old: init
* new: systemd
> ![](https://i.imgur.com/9v3IrH6.png)
0.0.0.0: 任一界面的IP
### 快捷鍵
https://blog.csdn.net/qq_45083975/article/details/105274397
> ![](https://i.imgur.com/oeZNfx3.png)
### 常用指令
chmod (change mode) +x (excutable)
> ![](https://i.imgur.com/sBf2BXL.png)
dmesg | more
> ![](https://i.imgur.com/waQuSmx.png)
clear
> 清除螢幕畫面
netstat
> ![](https://i.imgur.com/GJblAB1.png)
uname
> ![](https://i.imgur.com/r91rKsI.png)
hostnamectl
> ![](https://i.imgur.com/FCkrSxK.png)
PS1
> ![](https://i.imgur.com/AAcDHcF.png)
echo pts
> ![](https://i.imgur.com/GXo0Vy9.png)
fg
> ![](https://i.imgur.com/jF6i8DK.png)
ls
> ![](https://i.imgur.com/nRbEH7T.png)
### 更新密碼
https://www.unixmen.com/reset-root-password-centos-7/
> ![](https://i.imgur.com/7lCDO23.png)
## 第六週
### 4-1
/lib
> 動態函式庫: `lib` 開頭, `.so.*` 結尾
> 靜態函式庫: `lib` 開頭, `.a` 結尾
/mnt
> ![](https://i.imgur.com/7orlnRH.jpg)
### 4-2
ls
> ![](https://i.imgur.com/6RTWN0i.png)
> ![](https://i.imgur.com/XX1WcrJ.png)
> ![](https://i.imgur.com/hd4T29p.png)
特殊目錄
> ![](https://i.imgur.com/o6kdCQd.png)
cd
> ![](https://i.imgur.com/WwW2rHJ.png)
touch
> ![](https://i.imgur.com/58uuxRF.jpg)
> ![](https://i.imgur.com/4XpgE6V.png)
cat
> ![](https://i.imgur.com/d2pphXl.png)
pipe
> ![](https://i.imgur.com/mwYtS2y.png)
## 第十週
![](https://i.imgur.com/QnmvLQ2.png)
windows下"捷徑"可以連結到任意的"檔案"或者是"資料夾"
![](https://i.imgur.com/CgPUkQl.png)
![](https://i.imgur.com/l6ir7iV.png)
![](https://i.imgur.com/K9ba1lG.png)
https://dywang.csie.cyut.edu.tw/dywang/linuxsecurity/node39.html
![](https://i.imgur.com/aoBZhyN.png)
s = SUID
t = SBIT
r: 4
w: 3
x: 1
![](https://i.imgur.com/iRFj9DH.png)
典型的例子如 /tmp 的權限是 『drwxrwxrwt』,任何用戶都可在 /tmp 內新增、修改檔案,但僅有該檔案/目錄建立者與 root 能夠刪除自己的目錄或檔案。 (Sticky bit的功用)
![](https://i.imgur.com/04dFpZG.png)
切換身分
![](https://i.imgur.com/P6K25Ji.png)
![](https://i.imgur.com/uX4GEDU.png)
https://blog.51cto.com/u_13662393/2094920
> change time : 除了內容改變會變動外,屬性變動也會變更時間
![](https://i.imgur.com/XdIZsbn.png)
可以用 ntpdate 調整時區
![](https://i.imgur.com/PxEZuQp.png)
slink 符號連結
![](https://i.imgur.com/sqkad35.png)
hlink 硬連結
![](https://i.imgur.com/txbI0Ph.png)
修改環境變數
![](https://i.imgur.com/1KuBToJ.png)
dd
![](https://i.imgur.com/FmuhRwS.png)
顯示硬碟空間使用率
![](https://i.imgur.com/KCEN5DK.png)
## 第十一週
du vs df
![](https://i.imgur.com/cX4r8W1.png)
du
![](https://i.imgur.com/19NPu9a.png)
sum
![](https://i.imgur.com/UIbWE0Q.png)
depth
![](https://i.imgur.com/rdm2P0b.png)
stdout
![](https://i.imgur.com/vFNc4Ga.png)
stderr
![](https://i.imgur.com/QGa5nzx.png)
![](https://i.imgur.com/ONXgvUc.png)
![](https://i.imgur.com/hwfWdnO.png)
![](https://i.imgur.com/n2Bpssn.png)
![](https://i.imgur.com/TyJhJtc.png)
hide
![](https://i.imgur.com/33f4zI5.png)
![](https://i.imgur.com/t3hchAF.png)
pipe
![](https://i.imgur.com/XkM2vfL.png)
xargs
![](https://i.imgur.com/u0nBuSg.png)
有名管道
![](https://i.imgur.com/b78OdI9.png)
![](https://i.imgur.com/IB7YxS2.png)
`>` `>>`
![](https://i.imgur.com/teKocib.png)
updatedb, locate
![](https://i.imgur.com/6LNDTnN.png)
![](https://i.imgur.com/LDOexlL.png)
find
![](https://i.imgur.com/vjJQaZW.png)
![](https://i.imgur.com/evBE5sK.png)
![](https://i.imgur.com/5eqxFiA.png)
期末必考:
https://blog.gtwang.org/linux/unix-linux-find-command-examples/
增量備份
![](https://i.imgur.com/Gnpr3ed.png)
![](https://i.imgur.com/FGVEfQU.png)
## 第十二週
### 通配符 / 正則表達式
> https://bpdocs.blueprism.com/bp-7-1/zh-hans/helpWildcardsAndRegex.htm
>
> 通配符: 用來找檔案
> 正則表達式: 用來找檔案裡面的內容
### passwd
> ![](https://i.imgur.com/208o9Lb.png)
### grep
> https://blog.gtwang.org/linux/linux-grep-command-tutorial-examples
>
> ![](https://i.imgur.com/dF50K2Z.png)
>
> ![](https://i.imgur.com/mT3a7Ke.png)
>
> ![](https://i.imgur.com/79Vg563.png)
>
> ![](https://i.imgur.com/zO1epV7.png)
>
> ![](https://i.imgur.com/RboNYTm.png)
>
> ![](https://i.imgur.com/8TPtyaK.png)
>
> ![](https://i.imgur.com/kOHWcAm.png)
>
> ![](https://i.imgur.com/kwmWxLR.png)
>
> ![](https://i.imgur.com/8EqGJBg.png)
>
> ![](https://i.imgur.com/Qy7ygwB.png)
>
> ![](https://i.imgur.com/eCJzAID.png)
>
> ![](https://i.imgur.com/thyhdJf.png)
>
> ![](https://i.imgur.com/3Dxv1K1.png)
>
> ![](https://i.imgur.com/p28zI9y.png)
>
> ![](https://i.imgur.com/xQQH4zL.png)
>
> ![](https://i.imgur.com/Oooa83a.png)
>
> ![](https://i.imgur.com/ieI9ai1.png)
>
> ![](https://i.imgur.com/CvvM5LA.png)
### Linux三劍客
> awk / grep / sed
### tty
> 主設備號: 不同設備的編號
> 次設備號: 相同的裝置,紀錄第幾個
## 第十三週
### FAT32 掛載
USB driver : if it is FAT32, just plug into linux system. It can identify the usb drive.
Linux can also mount automatically.
![](https://hackmd.io/_uploads/r1OUrmv42.png)
![](https://hackmd.io/_uploads/rkpLBQwN3.png)
https://earthcat99.pixnet.net/blog/post/36811189
### NTFS 掛載
![](https://hackmd.io/_uploads/rkguYXDE3.png)
https://it001.pixnet.net/blog/post/328444228
### 群組
![](https://hackmd.io/_uploads/S1xCnGEvN3.png)
![](https://hackmd.io/_uploads/ryJl1SvVn.png)
### 密碼破解
https://trendoceans.com/how-to-install-john-the-ripper-on-all-platforms/
> ![](https://hackmd.io/_uploads/rye63NDV2.png)
![](https://hackmd.io/_uploads/BJbbhEPNn.png)
![](https://hackmd.io/_uploads/SJye2Vw4n.png)
https://ithelp.ithome.com.tw/m/articles/10300529
## 第十四週
mkdir -p 目錄名稱: 加上-p,如果資料夾不存在,則創建資料夾,如果資料夾存在,則不動作,也不會有錯誤發生
### touch
![](https://hackmd.io/_uploads/H1IaJwgBn.png)
### ls
![](https://hackmd.io/_uploads/HJrAiUxBn.png)
### r
![](https://hackmd.io/_uploads/ryP82IeS2.png)
### x
![](https://hackmd.io/_uploads/SJ962Igrn.png)
### w
![](https://hackmd.io/_uploads/r1lBYAUxB3.png)
![](https://hackmd.io/_uploads/Bk1oAIgHh.png)
![](https://hackmd.io/_uploads/S1hjmPxHh.png)
如果目錄權限沒有w,就無法刪除檔案....但這只是對一般使用者,管理者還是可以照常刪除
### su
![](https://hackmd.io/_uploads/HknRXPlBn.png)
![](https://hackmd.io/_uploads/r1cbVPerh.png)
### chown
![](https://hackmd.io/_uploads/Bk6N_PxSh.png)
### lsattr
![](https://hackmd.io/_uploads/SyV5FPgS3.png)
### chattr
https://blog.gtwang.org/linux/how-to-make-file-immutable-on-linux-chattr-command/
![](https://hackmd.io/_uploads/rJgKqweS3.png)
![](https://hackmd.io/_uploads/BJ41jPxBn.png)
![](https://hackmd.io/_uploads/HJ2aivxS2.png)
![](https://hackmd.io/_uploads/H140swgB3.png)
![](https://hackmd.io/_uploads/Byye2Plr3.png)
### CPU
![](https://hackmd.io/_uploads/S1EFU_eHh.png)
### MEM
![](https://hackmd.io/_uploads/H1GTIOer3.png)
### free
![](https://hackmd.io/_uploads/SkxGP_lrh.png)
### ps
![](https://hackmd.io/_uploads/r1scDOlBh.png)
![](https://hackmd.io/_uploads/HJ0WOOgr3.png)
![](https://hackmd.io/_uploads/SJ3Ks_gBh.png)
![](https://hackmd.io/_uploads/r1FITdxBn.png)
![](https://hackmd.io/_uploads/SkKO6deB2.png)
### pstree
![](https://hackmd.io/_uploads/Sk2ju_eB2.png)
![](https://hackmd.io/_uploads/ByRZFdlB2.png)
![](https://hackmd.io/_uploads/ryBjF_eHn.png)
![](https://hackmd.io/_uploads/S12vqOlrh.png)
### bg / jobs / fg
![](https://hackmd.io/_uploads/S1UBgYxH3.png)
![](https://hackmd.io/_uploads/H1qBxKeS2.png)
## 第十五週
### ACL
https://ithelp.ithome.com.tw/articles/10221185
![](https://hackmd.io/_uploads/rJuP85KBh.png)
![](https://hackmd.io/_uploads/S1e0U9Fr3.png)
![](https://hackmd.io/_uploads/BJbfv9Kr3.png)
![](https://hackmd.io/_uploads/HJAN_cYSh.png)
### Shell Script
![](https://hackmd.io/_uploads/rk9zj5KHh.png)
### SRE
https://ithelp.ithome.com.tw/m/articles/10264860
### FirewallD
https://blog.gtwang.org/linux/centos-7-firewalld-command-setup-tutorial/
#### zone
![](https://hackmd.io/_uploads/Bk7DQiFHh.png)
![](https://hackmd.io/_uploads/Hk_DmstB3.png)
![](https://hackmd.io/_uploads/rkXsXjYBh.png)
![](https://hackmd.io/_uploads/r1zIHsFH3.png)
#### service
![](https://hackmd.io/_uploads/ryBhuiFBh.png)
![](https://hackmd.io/_uploads/BJi2usYH2.png)
#### port
![](https://hackmd.io/_uploads/Bkpe9otB2.png)
![](https://hackmd.io/_uploads/rkX-9jKH3.png)
### SSH
![](https://hackmd.io/_uploads/Sks7FsFSh.png)
![](https://hackmd.io/_uploads/SJM4KitBh.png)
![](https://hackmd.io/_uploads/SkOBYstS2.png)
![](https://hackmd.io/_uploads/rySMqstH2.png)
### SSH tunnel
![](https://hackmd.io/_uploads/ryWfDoFSh.png)
### 壓縮 / 解壓縮
http://note.drx.tw/2008/04/command.html
![](https://hackmd.io/_uploads/rJFAm3YH2.png)
![](https://hackmd.io/_uploads/ryugN2Yrn.png)
#### zip
![](https://hackmd.io/_uploads/BJpRE2trh.png)
#### tar
![](https://hackmd.io/_uploads/S1c2rntrn.png)
![](https://hackmd.io/_uploads/B17VInFBh.png)
#### gz
![](https://hackmd.io/_uploads/S1YV8ntr2.png)
![](https://hackmd.io/_uploads/SyFCUntH3.png)
#### bz2
![](https://hackmd.io/_uploads/Skx8D3YB2.png)
![](https://hackmd.io/_uploads/HJA3vnKSh.png)
![](https://hackmd.io/_uploads/BkbzunKH2.png)
![](https://hackmd.io/_uploads/Skj4O2tH3.png)
### 系統時間
https://blog.gtwang.org/linux/centos-linux-change-system-timezone-command-tutorial/
![](https://hackmd.io/_uploads/Hywoc3YH2.png)
![](https://hackmd.io/_uploads/H1V3q3YB3.png)
## 第十六週
### 系統時間
![](https://hackmd.io/_uploads/HJg2kCMI3.png)
![](https://hackmd.io/_uploads/S181lCfUh.png)
### NTP
```
tock.stdtime.gov.tw
watch.stdtime.gov.tw
time.stdtime.gov.tw
clock.stdtime.gov.tw
tick.stdtime.gov.tw
```
![](https://hackmd.io/_uploads/H1adG0fIn.png)
### history
![](https://hackmd.io/_uploads/HkGPzRz8h.png)
![](https://hackmd.io/_uploads/BJVE70fU3.png)
### Server
如果安裝完server,卻無法連接? 如何debug:
1. systemctl status 伺服器 查看狀態, 如果已經running,但還是無法連接
2. 查看防火牆,selinux
3. 檢查port number
![](https://hackmd.io/_uploads/ry3-HRfU2.png)
### crondtab
![](https://hackmd.io/_uploads/Sy_tARMIh.png)
![](https://hackmd.io/_uploads/BkE4JyQLn.png)
![](https://hackmd.io/_uploads/rJh9JJ7L3.png)
![](https://hackmd.io/_uploads/Bk75byQU3.png)
![](https://hackmd.io/_uploads/SJ_qbyXLn.png)
![](https://hackmd.io/_uploads/HkBwfyXL3.png)
![](https://hackmd.io/_uploads/r17JQkmUh.png)
![](https://hackmd.io/_uploads/BJNurJ78h.png)
### 磁碟配額設定
![](https://hackmd.io/_uploads/SyA5sJm83.png)
![](https://hackmd.io/_uploads/Skty3kQU2.png)
![](https://hackmd.io/_uploads/rJQa3yXL2.png)
![](https://hackmd.io/_uploads/BJNHNem8h.png)
![](https://hackmd.io/_uploads/ByuBVg7Lh.png)
![](https://hackmd.io/_uploads/SygLT4gXLh.png)