Pages - Menu

2023年3月27日 星期一

[Linux] shell 進階指令

碎碎念

我也不知道這算不算進階? 但平常我應該不會用,本文有

  1. 計算某個開頭的tag數量有多少
  2. for迴圈的資料寫到文字檔
  3. 取得檔案詳細時間
  4. 取得檔案列表後刪除
  5. xargs 參數
  6. 只顯示資料夾
  7. 只顯示檔案
  8. ls參數
  9. 計算目錄底下的檔案數
  10. 查詢使用者

正文

1. 計算某個開頭的tag數量有多少

for tag in $(git tag --sort -version:refname -l "1.1.*"); do
  echo $tag;
  let i++
done
echo $i;
unset i;

2. for迴圈的資料寫到文字檔

for i in {20221201..20221202}
do
  for j in {00..01}
  do
      echo "mkdir $i$j" 
  done
done  > 1.txt

3.取得檔案詳細時間

ls --full-time | sort -k6

4.取得檔案列表後刪除

ls | grep 4793877c | xargs -p rm -f

5. xargs 參數

-I {} 將指令帶到後面的{}執行

ls nfs | head -10 | xargs -t -I {} ls nfs/{}

-t 顯示執行的指令 -p 執行前的確認

ref.

6. 只顯示資料夾

ls -l | grep ^d   # 利用詳細資訊,判斷開頭是不是 d(directory)
ls -d */
ls -F | grep \/$  # 檔案名稱的最後如果有/表示是folder

7. 只顯示檔案

ls -F /etc | grep -v '/$'

8. ls參數

-l 顯示檔案與目錄的詳細資訊 -a 顯示隱藏的檔案與目錄 -h 輸出的資訊以比較容易閱讀的格式呈現 -F 檔案名稱的後面加上檔案類型的標示字元 -r 檔案的列表以反向的排序列出 -R 用遞迴的方式列出所有子目錄的檔案 -S 檔案依照檔案的大小來排序 -d 只列出目錄,後面不加上*/ 無法顯示 --full-time 顯示完整時間

9. 計算目錄底下的檔案數

 find ./ -type f -name *.*| wc -l

find [obj_directory] [-type f] [-name filename]

find參數說明:

obj_directory:要搜尋的路徑 -type:要搜尋的類型,f=檔案,d=目錄
-iname:不區分大小寫 -name:後面接檔名,可加萬用字元(*),搜尋類似檔名的檔案

wc [-l] wc參數說明:

-c: 統計位元組數
-l:統計行數
-m:統計字元數。不能與 -c 一起使用。
-w 統計字數。一個字被定義為由空白、跳格或換行字元分隔的字串。
-L 列印最長行的長度。
-help 顯示説明資訊。

ref. [Linux] 計算目錄底下的檔案數

10. 查所有使用者

cat /etc/passwd | awk -F: '{print $1}'

ref. How To List Users and Groups on Linux

刪除使用者

userdel -r <userID>

ref. [GCP]遇到permission denied (publickey)怎麼辦?

ref.

沒有留言:

張貼留言