Skip to main content

command-line

基本款

  1. 切換檔案位子,查看清單
$ ls # 列出目前所在的清單
$ pwd # 確認目前所在路徑
$ cd [path | ..] # 切換到所在的檔案位子
  1. 另一個比較特別的是看說你的檔案權限
$ ll
-rw-r--r--@ 1 zhuzhengyang staff 20K 7 16 16:44 2021 Trend of MLCC under 5G Era.jpg
  1. 建立 folder 和刪除 folder
$ mkdir # 建立
$ rm -rf [FOLDER_NAME] # 刪除
  1. 建立一個檔案 => 這樣子會開啟一 vim 的模式,編寫完成後存擋就會有新的檔案出來了
vi [FILE_NAME]
  1. 在背景執行一個 shell
./shell &
# check list
jobs
# kill app
kill all [PID | ./shell]

cp

CP 是 Linux(Unix Like)常用使用命令之一,用來複製檔案與目錄。

指令:cp -參數 來源檔案 目標檔案

常用參數: -a:除了具有-p 參數功能外,還能加入 SElinux 屬性 -i:如果要複製過去的位置已經有相同檔案,會在覆蓋前詢問是否持續進行 -p:將檔案本身屬性(權限、所有者、時間)同時複製過去(一般用於備份居多) -r:針對目錄下檔案做遞歸複製(白話:整個目錄下每一個檔案複製到你想要的位置) -s:複製成符號連結檔(symbolic link)(白話:複製成捷徑檔)

範例 1:將 from.txt 檔案從 user 目錄,複製到 user2 目錄下,並改名為 to.txt

cp /user1/from.txt /user2/desktop/to.txt

範例 2:將 frome 目錄下,user 目錄夾連同檔案整個複製到 to 目錄

cp -r /from/user1 /to/

範例 3:將 source 目錄下,user 目錄夾連同檔案與屬性整個備份到 backup 目錄

cp -rp /source/user /backup/

範例 4:複製多個檔案到 to 目錄夾

cp  user1.txt user2.txt /to/

範例 5:利用萬用符號*複製多個符合.mp3 檔案到 to 目錄夾

cp  /from/*.mp3 /to/

補充說明:像是特殊權限檔案(/etc/shadow),密碼檔、設定檔、…等,需要加上-a 或-p 參數,才能完整複製檔案。如果複製過程希望有進度條功能,建議改用 scp 或 rsync 指令

tail

查看 log 時候用的

$ tail [-F | -f | -r] [-b number | -c number | -n number] [file ...]

多加一個 [-q] 為了在檢查多個文件時禁止打印標題。

$ tail [-F | -f | -r] [-q] [-b number | -c number | -n number] [file ...]

curl

透過 terminal 直接打 url,當成是 client 的一樣的去打 request

curl [option] [url]

常用到的 option

-H "name: value" # 加上自定義的 header
# curl -H "User-Agent: yes-please/2000" https://example.com"

參考的 option

xargs

xargs 可以讀入 stdin 的資料,並且以空白字元或斷行字元作為分辨,將 stdin 的資料分隔成為 arguments 。 因為是以空白字元作為分隔,所以,如果有一些檔名或者是其他意義的名詞內含有空白字元的時候, xargs 可能就會誤判了~他的用法其實也還滿簡單的!就來看一看先!

$ xargs -[ 0 | e | p | n ] command
選項與參數:
-0 :如果輸入的 stdin 含有特殊字元,例如 `, \, 空白鍵等等字元時,這個 -0 參數
可以將他還原成一般字元。這個參數可以用於特殊狀態喔!
-e :這個是 EOF (end of file) 的意思。後面可以接一個字串,當 xargs 分析到這個字串時,
就會停止繼續工作!
-p :在執行每個指令的 argument 時,都會詢問使用者的意思;
-n :後面接次數,每次 command 指令執行時,要使用幾個參數的意思。
當 xargs 後面沒有接任何的指令時,預設是以 echo 來進行輸出喔!

exclude

https://blog.csdn.net/leshami/article/details/18225683

https://cloud.tencent.com/developer/article/1360591

下列為查尋 command line 網站

https://ss64.com/osx/

lsof

列出所有行程所開啟的檔案

# 列出所有行程所開啟的檔案
lsof .my_file.txt.swp
# lsof .my_file.txt.swp
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gvim 7167 gtwang 14u REG 8,6 12288 786944 .my_file.txt.swp
lsof -i :80

lsof 參考文章

什麼是 Linux lsof ? 5 分鐘學會管理行程和檔案的用法教學與範例 – Li-Edward

kill

kill -9 [PID]

最常用的訊號是:

  • SIGKILL(訊號 9):立即結束進程,不能被捕獲或忽略。
  • SIGTERM(訊號 15):正常結束進程,可以被捕獲或忽略。
  • SIGSTOP(訊號 19):暫停進程,不能被捕獲、忽略或結束。
  • SIGCONT(訊號 18):繼續執行被暫停的進程。
  • SIGINT(訊號 2):通常是 Ctrl+C 產生的訊號,可以被進程捕獲或忽略。

pbcopy & pbpaste

macOS 中用來與剪貼簿 (clipboard) 互動的指令:

  • pbcopy:接收標準輸入 (stdin) 的內容並複製到系統剪貼簿。
  • pbpaste:將系統剪貼簿的內容輸出到標準輸出 (stdout)。
# 將檔案內容複製到剪貼簿
$ cat file.txt | pbcopy

# 將指令的輸出結果複製到剪貼簿
$ ls -al | pbcopy

# 將剪貼簿的內容輸出並存成新檔案
$ pbpaste > new_file.txt

參考文章

cp

https://linux.vbird.org/linux_basic/centos7/0320bash.php#bash

https://blog.gtwang.org/linux/linux-grep-command-tutorial-examples/

https://codingnote.cc/zh-tw/p/337545

https://ithelp.ithome.com.tw/articles/10236105