使用者工具

網站工具


linux_shell_instruction

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
linux_shell_instruction [2024/03/15 09:03]
don
linux_shell_instruction [2024/03/26 11:02] (目前版本)
don
行 1: 行 1:
 ====== Linux Shell Instruction 說明 ====== ====== Linux Shell Instruction 說明 ======
  
-==== shell program structure ====+===== shell program structure =====
  
 <code> <code>
行 20: 行 20:
 This is function test2, second parameter 2 This is function test2, second parameter 2
 </code> </code>
-==== if =====+===== if =====
  
 <color #00a2e8>使用 if 條件判斷語法要注意[ ]中括號的兩端必須要有一個空白字元,且最後必須使用 fi 結尾,以下範例介紹 if 的用法,以及比較二個字串是否相等。</color> <color #00a2e8>使用 if 條件判斷語法要注意[ ]中括號的兩端必須要有一個空白字元,且最後必須使用 fi 結尾,以下範例介紹 if 的用法,以及比較二個字串是否相等。</color>
行 55: 行 55:
  
  
-=== 檔案判斷 ===+==== 檔案判斷 ====
 ^ 判斷式        ^ 說明         ^ 備註        ^ ^ 判斷式        ^ 說明         ^ 備註        ^
 | -e <file>        | 檔名是否存在          |       | | -e <file>        | 檔名是否存在          |       |
行 69: 行 69:
 | file1 -ef file2  | file1 與 file2 為同一檔案傳回 ture |       | | file1 -ef file2  | file1 與 file2 為同一檔案傳回 ture |       |
  
-=== 數字比較 ===+==== 數字比較 ====
 ^ 判斷式        ^ 說明         ^ 備註        ^ ^ 判斷式        ^ 說明         ^ 備註        ^
 | "$a" -eq "$b"        | 兩數字是否相等          |       | | "$a" -eq "$b"        | 兩數字是否相等          |       |
行 78: 行 78:
 | "$a" -le "$b"        | a是否小於等於b         | | "$a" -le "$b"        | a是否小於等於b         |
  
-=== 字串比較 ===+==== 字串比較 ====
 ^ 判斷式        ^ 說明         ^ 備註        ^ ^ 判斷式        ^ 說明         ^ 備註        ^
 | "$str1" = "$str2"  | 兩字串是否相等         | | "$str1" = "$str2"  | 兩字串是否相等         |
行 86: 行 86:
 | -z "$str1"         | 字串長度是否為 0         | | -z "$str1"         | 字串長度是否為 0         |
  
-=== 多重條件比較 ===+==== 多重條件比較 ====
 ^ 判斷式        ^ 說明         ^ 備註        ^ ^ 判斷式        ^ 說明         ^ 備註        ^
 | 條件1 -a 條件2  | 條件 1和條件 2都成立時|       | | 條件1 -a 條件2  | 條件 1和條件 2都成立時|       |
行 118: 行 118:
 </code> </code>
  
-==== case ====+===== case =====
 <code> <code>
  
行 140: 行 140:
 esac esac
 </code> </code>
-==== grep ====+===== grep =====
 grep 的全寫是 “global regular expression print”,是 Linux 系統內置的字串搜索工具, 它可以用作搜索檔案的內容, 除了搜索檔案內容外, 也可以透過管線 (pipe) 輸入內容搜索。 grep 的全寫是 “global regular expression print”,是 Linux 系統內置的字串搜索工具, 它可以用作搜索檔案的內容, 除了搜索檔案內容外, 也可以透過管線 (pipe) 輸入內容搜索。
 <code> <code>
行 147: 行 147:
  
  
-==== execute shell method ====+===== execute shell method =====
 shell程序運行有多種方法,這裏介紹三種方法: shell程序運行有多種方法,這裏介紹三種方法:
  
行 158: 行 158:
 bash是一個腳本程序的解釋器,本質上是一個可執行程序。這樣執行相當於我們執行了bash程序,然後把xx.sh作為argv[1]傳給他運行 bash是一個腳本程序的解釋器,本質上是一個可執行程序。這樣執行相當於我們執行了bash程序,然後把xx.sh作為argv[1]傳給他運行
 </code> </code>
-==== rm ====+===== rm =====
 這是移除的指令,相當於 dos 下的 del 指令!這裡要注意的是,通常在 Linux 系統下,為了怕檔案被誤殺,所以都已經有 -i 這個參數, -i 是指每個檔案被殺掉之前都會確認一次。 這是移除的指令,相當於 dos 下的 del 指令!這裡要注意的是,通常在 Linux 系統下,為了怕檔案被誤殺,所以都已經有 -i 這個參數, -i 是指每個檔案被殺掉之前都會確認一次。
 <code> <code>
行 165: 行 165:
 </code> </code>
  
-==== read ====+===== read =====
 <code> <code>
  
行 217: 行 217:
 </code> </code>
  
-==== readlink ====+===== readlink =====
 <color #22b14c>Linux中的readlink命令用於列印解析的符號連結或規範檔案名。</color> <color #22b14c>Linux中的readlink命令用於列印解析的符號連結或規範檔案名。</color>
 <code> <code>
行 236: 行 236:
  
  
-==== shell function parameter ====+===== shell function parameter =====
  
 <code> <code>
行 323: 行 323:
 </code> </code>
  
-==== Pause ====+===== Pause =====
 <code> <code>
  
行 361: 行 361:
 </code> </code>
  
-==== dmesg ====+===== dmesg =====
 <code> <code>
 dmesg [-cn][-s <緩衝區大小>] dmesg [-cn][-s <緩衝區大小>]
行 372: 行 372:
 </code> </code>
  
-==== calculate programming time ====+===== calculate programming time =====
 <code> <code>
 #! /bin/bash #! /bin/bash
行 396: 行 396:
 In console mode (ctrl + alt + t Terminal) In console mode (ctrl + alt + t Terminal)
 sudo nautilus root sudo nautilus root
 +</code>
 +
 +===== &, &&, | and || =====
 +<code>
 +& 如果在指令後面加上 & 符別, 即表示指令在背景執行, 
 +   例如 my-script.sh &
 +&& 用 “&&” 分開兩個指令, 即第一道指令執行成功後, 才會執行第二道指令, 
 +   例如 make && make install
 +| 這是管線的符號, 即是將第一道指令的輸出, 作為第二道指令的輸入, 
 +   例如 ls | grep filename
 +|| 表示第一道指令執行失敗後, 才會執行第二道指令, 
 +   例如 cat filename || echo “fail”
 +</code>
 +
 +===== find =====
 +<code>
 +# -type f 找檔案
 +# -type d 找目錄
 +# -type p 具名的 pipe(FIFO)。
 +# -type l 找連結檔
 +# 不加 -type 就是所有結果都會列出來
 +
 +find ./ -name "*spi*" -type f
 +
 +
 +# 把當下目錄有 "spi" 關鍵字檔名移動到 bar 資料夾
 +
 +find ./ -name "*spi*" -type f | xargs -i mv {} bar
 +
 +# 找出單檔大於 600M/2G的檔案
 +
 +find ./ -size +600M
 +find ./ -size +2G
 +
 +</code>
 +
 +===== tar =====
 +<code>
 +#保留 "檔案擁有者"
 +#壓縮目錄
 +cd ~/workspace/dev2725_002_mod02b
 +sudo tar -czvpf ~/workspace/dev2725_002_mod03.tar.gz .
 +#解壓到目錄
 +cd ~/workspace
 +mkdir dev2725_002_mod03
 +sudo tar -xzvpf ~/workspace/dev2725_002_mod03.tar.gz -C ~/workspace/dev2725_002_mod03
 +</code>
 +
 +===== chown =====
 +<code>
 +ex:
 +sudo chown -vR kk3985:kk3985 ~/workspace/dev2725_002_mod03
 +</code>
 +
 +===== chmod =====
 +<code>
 +ex:
 +chmod -vR 777 ~/workspace/dev2725_002_mod03
 +</code>
 +
 +
 +===== vmware =====
 +<code>
 +#Install vmware tools
 +sudo apt-get update
 +sudo apt-get install open-vm-tools
 +
 +#shrink vmware image size
 +sudo vmware-toolbox-cmd disk shrink /
 +</code>
 +
 +===== USB Storage Size =====
 +<code>
 +sudo lsblk -p -d | grep sd
 </code> </code>
linux_shell_instruction.1710464601.txt.gz · 上一次變更: 2024/03/15 09:03 由 don