[筆記] 命令列 & Bash Script
zsh 好用
- 安裝 zsh
- 到 NERD FONTS 下載一個你喜歡的字型。(記得要重新設定一下 terminal 的字型)
- 安裝 oh-my-zsh
- 到 .zshrc 檔內將主題換成 agnoster
厚厚,然後就有好看好用的命令列啦!
(每個 Terminal 軟體都會有不同的主題設定方式,這裡就不多講。)
常用指令猜猜看
流水記錄課程裡介紹的指令,應該都要很熟悉了,不知道的請 Google 或是 man:
pwd,ls,cd,man,touch,rm,mkdir,cp
大推 VIM
嗯,好吧,我知道想要用這麼麻煩的文字編輯器的人應該沒幾個,而且 VS Code 真的是很好用,還是不要入這個坑才好。
但是有興趣的人可以到我的 vimfiles 裡面抓 vimrc 下來玩玩,我自已的感覺是還是在 Linux 上使用比較不會遇到問題。
從網路抓東西下來
wget 網址
下載檔案curl API網址
用 GET 方法輸出 response,-I
可以顯示出 header 資料。
redirection 與 pipe
>
(覆蓋)或者 >>
(新增)|
將前面指令之輸出做為後面指令之輸入
Bash Script 寫法與常用字串處理指令
Bash Script 基礎
- 讀取參數:
$1
會讀入執行 Script 時第一個傳入的參數,$2
會讀入第二個,以此類推。 - 讀取輸入:
read VARNAME
會等待使用者輸入,並將輸入的資料傳為 VARNAME 的值。 - for 迴圈:從 1 重覆執行「動作」$X 次
for i in `seq 1 $X`
do
動作
done對 “one” “two” “three” 三個字串各執行一次,執行時 i 的值會分別為 “one” “two” “three”for i in "one" "two" "three"
- if 判斷式
if [ "$i" = '"blog"' ]
then
動作 1
else
動作 2
fi - 變數宣告記得這裡等號前後都不可以有空格
VARNAME=VALUE
想要把一段指令輸出的結果傳入的話,可以這樣寫:VARNAME=$(一串會輸出結果的指令)
字串處理
- grep - print lines matching a pattern
grep '"name"'
以 “name” 字串搜尋、grep $i
以 i 的值搜尋、grep 'word1\|word2\|word3'
以三組不同文字搜尋(只要找到其中一項就輸出) - cut - remove sections from each line of files
cut -d ":" -f X-Y
以「:」為分隔項目的符號,保留第 X 到第 Y 項的內容。
例:blog: http://github.com/
這個字串經過cut -d ":" -f 2-3
處理的結果就會是https://github.com/
- sed - stream editor for filtering and transforming text
sed 's/XXX/YYY/g'
會把某字串或文件裡的所有 XXX 都替換為 YYY