你必須很努力

Day10 - 一些常用 Linux 指令 - 5-7 (lsof、dig、curl、nc、nice、cpulimit)

2020/09/15
字數統計: 968閱讀時間: 4 min

前言

此為 Linux 相關的 5-7 篇,終於進入 Linux 後半部,寫到有點厭世 XD

lsof

全名為 List Open Files,列出當前被開啟的文件資訊
非常實用的監控、查詢、診斷工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
lsof path
lsof -u username
lsof +d path
lsof +D path
lsof -p PID
lsof -i :port

# 範例
lsof ~/Documents/demo
lsof -u root
lsof +d ~/Documents/demo
lsof +D ~/Documents/demo
lsof -p 9527
lsof -i :80

幾個常用參數說明:

列出指定使用者打開的文件訊息: -u username
列出目錄下被開啟的文件訊息: +d path
列出目錄下被開啟的文件訊息 (含底下的目錄): +D path
列出指定 PID 所開啟的文件訊息: -p PID
列出指定 port 的連線訊息: -i :port

dig

domain 查詢工具

1
2
3
4
5
6
7
8
9
10
dig domain
dig -x target

# 範例
dig www.google.com
dig -x 8.8.8.8
dig -x riverye.com

# 將輸出結果存成檔案
dig www.google.com > info.log

幾個常用參數說明:

反解析: -x target
追蹤網域經過哪些節點: +trace domain

curl

與 server 雙向傳輸資料的工具

發現已經有許多不錯的文章可以參考
故省略 (威,又偷懶惹

僅寫下比較常用小技巧

1
2
3
4
5
6
7
8
# 將 https://riverye.com 查詢結果儲存成 riverye.html 檔案
curl https://riverye.com > ~/Documents/demo/riverye.html

# -vvv 為顯示詳細資訊
curl -vvv ifconfig.me

# 查詢電腦的 IP
curl ifconfig.me

參考資料

  1. Linux Curl Command 指令與基本操作入門教學
  2. [curl] 基本操作與指令 — 搭配 Lidemy HTTP Challenge 實作

nc

全名為 netcat,處理 TCP/UDP 的工具
非常實用,可以做許多事情,像是通訊埠掃描、簡易聊天室、檔案傳輸等

備註: 對於不熟悉的指令,皆可透過 man 來看文件

1
2
3
4
5
6
7
8
9
10
nc -l port
nc ip_address port
nc -w timeout_in_seconds ipaddress port
nc -v -z ip_address port

# 範例
nc -l localhost 8888
nc localhost 8888
nc -w 10 localhost 9527
nc -n -v -z 192.168.1.1 80-100

幾個常用參數說明:

監聽模式: -l
設定 Timeout (單位: sec): -w timeout_in_seconds
不進行 DNS 查詢: -n
顯示掃描訊息: -v
只掃描無資料傳輸: -z

簡易聊天室

傳送檔案

參考資料

  1. Linunx 指令 nc 用法
  2. Netcat(Linux nc 指令)網路管理者工具實用範例

nice

設定程式執行的優先權 (範圍是 -20 ~ 19)
-20 為最高優先權
19 為最低優先權

備註: 輸入小於 0 ,要有 root 權限,如果範圍超過 19,則會做為 19

1
2
3
4
nice -n count command

# 範例
sudo nice -n 15 chromedriver

幾個常用參數說明:

設定優先權 (N 範圍是 -20 ~ 19): -n N

cpulimit

限制 CPU 使用量

備註: 需另外安裝 官方網站

1
2
3
4
5
6
7
8
9
10
# MacOS、Linux 原生不支援這指令

# MacOS 安裝指令
brew install cpulimit

# 限制 CPU 使用上限為 70%
cpulimit -l 70 command

# 範例
cpulimit -l 70 rg 'hello'

幾個常用參數說明:

限制 CPU 上限 (必填,N 範圍是 0 ~ 400): -l N or --limit=N
顯示控制統計: -v or --verbose

(謎之聲,未來會有文章分享 nicecpulimit 的應用

總整理

MacOS / Linux 指令 說明 範例
lsof 列出當前被開啟的文件資訊 lsof ~/Documents/demo
dig domain 查詢工具 dig www.google.com
curl 與 server 雙向傳輸資料的工具 curl -vvv ifconfig.me
nc 處理 TCP/UDP 的工具 nc -v www.google.com 80
nice 設定程式執行的優先權 (範圍是 -20 ~ 19) nice -n 19 htop
cpulimit 限制 CPU 使用量 cpulimit -l 50 htop

小結

發現這篇每個指令都可以寫成一篇,
網路搜尋能找到許多相關範例應用的教學文章,
由於本篇想以常用應用為主,其實是不想寫太長
更多的應用可以透過 man 或上網查詢
也歡迎在下方留言互相交流


鐵人賽文章連結:https://ithelp.ithome.com.tw/articles/10236845
medium 文章連結:https://link.medium.com/It3HtR6gM9
本文同步發布於 小菜的 Blog https://riverye.com/

備註:之後文章修改更新,以個人部落格為主

CATALOG
  1. 1. 前言
  2. 2. lsof
    1. 2.0.1. 幾個常用參數說明:
  • 3. dig
    1. 3.0.1. 幾個常用參數說明:
  • 4. curl
    1. 4.0.1. 參考資料
  • 5. nc
    1. 5.0.1. 幾個常用參數說明:
    2. 5.0.2. 參考資料
  • 6. nice
    1. 6.0.1. 幾個常用參數說明:
  • 7. cpulimit
    1. 7.0.1. 幾個常用參數說明:
  • 8. 總整理
  • 9. 小結