1. 程式人生 > 實用技巧 >在Jenkins的幫助下讓我們的應用CI與CD

在Jenkins的幫助下讓我們的應用CI與CD

20.11.25

影響顯示結果的語系變數 (locale)

locale -a:顯示Linux 支援了多少語系

locale :當前語系的配置

[root@www ~]# locale  <==後面不加任何選項與引數即可!
LANG=en_US                   <==主語言的環境
LC_CTYPE="en_US"             <==字元(文字)辨識的編碼
LC_NUMERIC="en_US"           <==數字系統的顯示資訊
LC_TIME="en_US"              <==時間系統的顯示資料
LC_COLLATE="en_US"           <==字串的比較與排序等
LC_MONETARY="en_US"          <==幣值格式的顯示等
LC_MESSAGES="en_US"          <==資訊顯示的內容,如選單、錯誤資訊等
LC_ALL=                      <==整體語系的環境

變數鍵盤讀取、陣列與宣告: read, array, declare

read [-pt] variable:命令用於從標準輸入讀取數值

選項與引數:
-p  :後面可以接提示字元!
-t  :後面可以接等待的『秒數!』這個比較有趣~不會一直等待使用者啦!

declare / typeset:declare 或 typeset 是一樣的功能,宣告變數的型別

選項與引數:
-a  :將後面名為 variable 的變數定義成為陣列 (array) 型別
-i  :將後面名為 variable 的變數定義成為整數數字 (integer) 型別
-x  :用法與 export 一樣,就是將後面的 variable 變成環境變數;
-r  :將變數配置成為 readonly 型別,該變數不可被更改內容,也不能 unset

var[index]=content:陣列 (array) 變數型別

範例:
[root@www ~]# var[1]="small min"
[root@www ~]# var[2]="big min"
[root@www ~]# var[3]="nice min"
[root@www ~]# echo "${var[1]}, ${var[2]}, ${var[3]}"
small min, big min, nice min

與檔案系統及程式的限制關係: ulimit

ulimit [-SHacdfltu] [配額]:限制使用者的某些系統資源

選項與引數:
-H  :hard limit ,嚴格的配置,必定不能超過這個配置的數值;
-S  :soft limit ,警告的配置,可以超過這個配置值,但是若超過則有警告資訊。
      在配置上,通常 soft 會比 hard 小,舉例來說,soft 可配置為 80 而 hard 
      配置為 100,那麼你可以使用到 90 (因為沒有超過 100),但介於 80~100 之間時,
      系統會有警告資訊通知你!
-a  :後面不接任何選項與引數,可列出所有的限制額度;
-c  :當某些程式發生錯誤時,系統可能會將該程式在記憶體中的資訊寫成檔案(除錯用),
      這種檔案就被稱為核心檔案(core file)。此為限制每個核心檔案的最大容量。
-f  :此 shell 可以建立的最大檔案容量(一般可能配置為 2GB)單位為 Kbytes
-d  :程式可使用的最大斷裂記憶體(segment)容量;
-l  :可用於鎖定 (lock) 的記憶體量
-t  :可使用的最大 CPU 時間 (單位為秒)
-u  :單一使用者可以使用的最大程式(process)數量。
範例一:列出你目前身份(假設為root)的所有限制資料數值
[root@www ~]# ulimit -a
core file size          (blocks, -c) 0          <==只要是 0 就代表沒限制
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited  <==可建立的單一檔案的大小
pending signals                 (-i) 11774
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024       <==同時可開啟的檔案數量
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 11774
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

變數內容的刪除、取代與替換

變數配置方式 說明
${變數#關鍵詞} ${變數##關鍵詞} 若變數內容從頭開始的資料符合『關鍵詞』,則將符合的最短資料刪除 若變數內容從頭開始的資料符合『關鍵詞』,則將符合的最長資料刪除
${變數%關鍵詞} ${變數%%關鍵詞} 若變數內容從尾向前的資料符合『關鍵詞』,則將符合的最短資料刪除 若變數內容從尾向前的資料符合『關鍵詞』,則將符合的最長資料刪除
${變數/舊字串/新字串} ${變數//舊字串/新字串} 若變數內容符合『舊字串』則『第一個舊字串會被新字串取代』 若變數內容符合『舊字串』則『全部的舊字串會被新字串取代』
先讓小寫的 path 自定義變數配置的與 PATH 內容相同
[root@www ~]# path=${PATH}
[root@www ~]# echo $path
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:
/usr/sbin:/usr/bin:/root/bin  

假設我不喜歡 kerberos,所以要將前兩個目錄刪除掉,如何顯示?
[root@www ~]# echo ${path#/*kerberos/bin:}
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin