jas0nhuang

[筆記] 命令列 & Bash Script

zsh 好用

  1. 安裝 zsh
  2. NERD FONTS 下載一個你喜歡的字型。(記得要重新設定一下 terminal 的字型)
  3. 安裝 oh-my-zsh
  4. 到 .zshrc 檔內將主題換成 agnoster
    厚厚,然後就有好看好用的命令列啦!
    zsh
    (每個 Terminal 軟體都會有不同的主題設定方式,這裡就不多講。)

常用指令猜猜看

流水記錄課程裡介紹的指令,應該都要很熟悉了,不知道的請 Google 或是 man:
pwd,ls,cd,man,touch,rm,mkdir,cp

大推 VIM

嗯,好吧,我知道想要用這麼麻煩的文字編輯器的人應該沒幾個,而且 VS Code 真的是很好用,還是不要入這個坑才好。
但是有興趣的人可以到我的 vimfiles 裡面抓 vimrc 下來玩玩,我自已的感覺是還是在 Linux 上使用比較不會遇到問題。
VIM

從網路抓東西下來

wget 網址 下載檔案
curl API網址 用 GET 方法輸出 response,-I 可以顯示出 header 資料。

redirection 與 pipe

>(覆蓋)或者 >>(新增)
| 將前面指令之輸出做為後面指令之輸入

Bash Script 寫法與常用字串處理指令

Bash Script 基礎

  1. 讀取參數:
    $1 會讀入執行 Script 時第一個傳入的參數,$2 會讀入第二個,以此類推。
  2. 讀取輸入:
    read VARNAME 會等待使用者輸入,並將輸入的資料傳為 VARNAME 的值。
  3. for 迴圈:
    for i in `seq 1 $X`
    do
    動作
    done
    從 1 重覆執行「動作」$X 次
    for i in "one" "two" "three"
    對 “one” “two” “three” 三個字串各執行一次,執行時 i 的值會分別為 “one” “two” “three”
  4. if 判斷式
    if [ "$i" = '"blog"' ]
    then
    動作 1
    else
    動作 2
    fi
  5. 變數宣告
    VARNAME=VALUE
    記得這裡等號前後都不可以有空格
    想要把一段指令輸出的結果傳入的話,可以這樣寫:
    VARNAME=$(一串會輸出結果的指令)

字串處理

  1. grep - print lines matching a pattern
    grep '"name"' 以 “name” 字串搜尋、grep $i 以 i 的值搜尋、grep 'word1\|word2\|word3' 以三組不同文字搜尋(只要找到其中一項就輸出)
  2. 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/
  3. sed - stream editor for filtering and transforming text
    sed 's/XXX/YYY/g' 會把某字串或文件裡的所有 XXX 都替換為 YYY