自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

5個基本Linux命令行工具的現(xiàn)代化替代品

新聞 Linux
在日常使用 Linux/Unix 系統(tǒng)時,我們會使用許多命令行工具來完成我們的工作,并理解和管理我們的系統(tǒng),像 du 用于監(jiān)視磁盤利用率,top 用于顯示系統(tǒng)資源。

 [[333832]]

在日常使用 Linux/Unix 系統(tǒng)時,我們會使用許多命令行工具來完成我們的工作,并理解和管理我們的系統(tǒng),像 du 用于監(jiān)視磁盤利用率,top 用于顯示系統(tǒng)資源。其中一些工具已經(jīng)存在很長時間了。例如,top 于 1984 年首次發(fā)布,而 du 的首次發(fā)布要追溯到 1971 年。

多年來,這些工具已經(jīng)被現(xiàn)代化并移植到不同的系統(tǒng),但是,通常,它們?nèi)匀谎永m(xù)著它們最初的思想和體驗。

這些都是很好的工具,對于許多系統(tǒng)管理員的工作流來說都是必不可少的。然而,最近幾年,開源社區(qū)已經(jīng)開發(fā)出了可以帶來額外好處的替代工具。雖然有些華而不實,但另外一些則極大地提高了可用性,使它們成為現(xiàn)代化系統(tǒng)上的最佳選擇。這包括以下五個標(biāo)準(zhǔn) Linux 命令行工具的替代品。

1. 作為 du 替代品的 ncdu

NCurses 磁盤利用率(ncdu)工具提供了與 du 類似的結(jié)果,但是在一個基于 curses 的交互式界面中,它重點關(guān)注那些占用磁盤空間比較多的目錄。

ncdu 會花一些時間分析磁盤,然后根據(jù)你最常用的目錄或文件顯示結(jié)果,如下所示:

  1. ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help 
  2.  
  3. --- /home/rgerardi ------------------------------------------------------------ 
  4.  
  5. 96.7 GiB [##########] /libvirt 
  6.  
  7. 33.9 GiB [### ] /.crc 
  8.  
  9. 7.0 GiB [ ] /Projects 
  10.  
  11. 4.7 GiB [ ] /Downloads 
  12.  
  13. 3.9 GiB [ ] /.local 
  14.  
  15. 2.5 GiB [ ] /.minishift 
  16.  
  17. 2.4 GiB [ ] /.vagrant.d 
  18.  
  19. 1.9 GiB [ ] /.config 
  20.  
  21. 1.8 GiB [ ] /.cache 
  22.  
  23. 1.7 GiB [ ] /Videos 
  24.  
  25. 1.1 GiB [ ] /go 
  26.  
  27. 692.6 MiB [ ] /Documents 
  28.  
  29. 591.5 MiB [ ] /tmp 
  30.  
  31. 139.2 MiB [ ] /.var 
  32.  
  33. 104.4 MiB [ ] /.oh-my-zsh 
  34.  
  35. 82.0 MiB [ ] /scripts 
  36.  
  37. 55.8 MiB [ ] /.mozilla 
  38.  
  39. 54.6 MiB [ ] /.kube 
  40.  
  41. 41.8 MiB [ ] /.vim 
  42.  
  43. 31.5 MiB [ ] /.ansible 
  44.  
  45. 31.3 MiB [ ] /.gem 
  46.  
  47. 26.5 MiB [ ] /.VIM_UNDO_FILES 
  48.  
  49. 15.3 MiB [ ] /Personal 
  50.  
  51. 2.6 MiB [ ] .ansible_module_generated 
  52.  
  53. 1.4 MiB [ ] /backgrounds 
  54.  
  55. 944.0 KiB [ ] /Pictures 
  56.  
  57. 644.0 KiB [ ] .zsh_history 
  58.  
  59. 536.0 KiB [ ] /.ansible_async 
  60.  
  61. Total disk usage: 159.4 GiB Apparent size: 280.8 GiB Items: 561540 

使用方向鍵導(dǎo)航到每個條目。如果你在一個目錄條目上按下 Enter 鍵,ncdu 將顯示該目錄的內(nèi)容:

  1. --- /home/rgerardi/libvirt ---------------------------------------------------- 
  2.  
  3. /.. 
  4.  
  5. 91.3 GiB [##########] /images 
  6.  
  7. 5.3 GiB [ ] /media 

你可以使用它下鉆目錄并查找哪些文件占用的磁盤空間最多,使用左箭頭鍵可以返回上一級目錄。在默認(rèn)情況下,可以按下 d 鍵使用 ncdu 刪除文件,在刪除之前,它會跟你確認(rèn)刪除請求。如果你想禁用此行為以防止發(fā)生意外,請使用 -r 選項進(jìn)行只讀訪問:ncdu -r。

ncdu 可用于許多平臺和 Linux 發(fā)行版。例如,你可以使用 dnf 直接從官方存儲庫把它安裝到 Fedora 上:

  1. $ sudo dnf install ncdu 

要了解關(guān)于這個工具的更多信息,請查看 ncdu 頁面。

https://dev.yorhel.nl/ncdu

2. 作為 top 替代品的 htop

htop 是一個類似于 top 的交互式流程查看器,但它提供了更好的開箱即用的用戶體驗。默認(rèn)情況下,htop 會用令人愉快的彩色顯示與 top 相同的指標(biāo)。

默認(rèn)情況下,htop 是這樣的:

相比之下,top 默認(rèn)是這樣的:

此外,htop 在頂部提供了系統(tǒng)概覽信息,在底部提供了一個命令欄,可以使用功能鍵來觸發(fā)命令,而且,你還可以按 F2 進(jìn)入設(shè)置界面對它進(jìn)行定制。你可以更改其顏色、添加或刪除指標(biāo),或更改概覽欄的顯示選項。

雖然對于最新版本的 top,你也可以通過配置實現(xiàn)類似的結(jié)果,但 htop 提供了更合理的默認(rèn)配置,這使得它成為一個漂亮且易于使用的流程查看器。

要了解關(guān)于這個項目的更多信息,請查看 htop 首頁。

https://hisham.hm/htop/

3. 作為 man 替代品的 tldr

tldr 命令行工具顯示簡化的命令用法信息,主要包括示例。它是作為社區(qū)項目 tldr pages 的客戶端。

這個工具不能代替 man。man 頁面仍然是許多工具規(guī)范而完整的信息源。然而,在某些情況下,man 提供的信息太多了。有時候,你不需要一個命令的所有信息;你只是試著記住基本的選項。例如,curl 命令的 man 頁面幾乎有 3000 行。相反,curl 的 tldr 頁面只有 40 行,如下所示:

  1. $ tldr curl 
  2.  
  3. # curl 
  4.  
  5. Transfers data from or to a server. 
  6.  
  7. Supports most protocols, including HTTP, FTP, and POP3. 
  8.  
  9. More information: <https://curl.haxx.se>. 
  10.  
  11. - Download the contents of an URL to a file: 
  12.  
  13. curl http://example.com -o filename 
  14.  
  15. - Download a file, saving the output under the filename indicated by the URL: 
  16.  
  17. curl -O http://example.com/filename 
  18.  
  19. - Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer: 
  20.  
  21. curl -O -L -C - http://example.com/filename 
  22.  
  23. - Send form-encoded data (POST request of type `application/x-www-form-urlencoded`): 
  24.  
  25. curl -d 'name=bob' http://example.com/form 
  26.  
  27. - Send a request with an extra header, using a custom HTTP method: 
  28.  
  29. curl -H 'X-My-Header: 123' -X PUT http://example.com 
  30.  
  31. - Send data in JSON format, specifying the appropriate content-type header: 
  32.  
  33. curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234 
  34.  
  35. ... TRUNCATED OUTPUT 

TLDR 是網(wǎng)絡(luò)俚語“too long; didn't read”的縮寫,指對一篇很長的文章進(jìn)行總結(jié)。這個名稱很適合這個工具,因為 man 頁面雖然有用,但有時太長了。

在 Fedora 中,tldr 客戶端是用 Python 編寫的。你可以使用 dnf 安裝它。要了解其他客戶端選項,請參閱 tldr pages 項目頁面。

https://tldr.sh/

一般來說,tldr 工具需要訪問互聯(lián)網(wǎng)以查閱 tldr pages。Fedora 中的 Python 客戶端允許你下載并緩存這些頁面以供脫機(jī)訪問。

要了解有關(guān) tldr 的更多信息,可以使用 tldr tldr。

4. 作為 sed/grep 替代品的 jq

jq 是一個命令行 JSON 處理器,類似于 sed 或 grep,但專門設(shè)計用于處理 JSON 數(shù)據(jù)。如果你是在日常任務(wù)中會用到 JSON 的開發(fā)人員或系統(tǒng)管理員,那么這是你工具箱中必不可少的工具。

與 grep 和 sed 等通用文本處理工具相比,jq 的主要優(yōu)點是它理解 JSON 的數(shù)據(jù)結(jié)構(gòu),允許使用單個表達(dá)式創(chuàng)建復(fù)雜的查詢。

舉例來說,假設(shè)你試圖在這個 JSON 文件中查找容器的名稱:

  1.  
  2. "apiVersion""v1"
  3.  
  4. "kind""Pod"
  5.  
  6. "metadata": { 
  7.  
  8. "labels": { 
  9.  
  10. "app""myapp" 
  11.  
  12. }, 
  13.  
  14. "name""myapp"
  15.  
  16. "namespace""project1" 
  17.  
  18. }, 
  19.  
  20. "spec": { 
  21.  
  22. "containers": [ 
  23.  
  24.  
  25. "command": [ 
  26.  
  27. "sleep"
  28.  
  29. "3000" 
  30.  
  31. ], 
  32.  
  33. "image""busybox"
  34.  
  35. "imagePullPolicy""IfNotPresent"
  36.  
  37. "name""busybox" 
  38.  
  39. }, 
  40.  
  41.  
  42. "name""nginx"
  43.  
  44. "image""nginx"
  45.  
  46. "resources": {}, 
  47.  
  48. "imagePullPolicy""IfNotPresent" 
  49.  
  50.  
  51. ], 
  52.  
  53. "restartPolicy""Never" 
  54.  
  55.  

如果你直接使用 grep 查找 name,則寫法如下:

  1. $ grep name k8s-pod.json 
  2.  
  3. "name""myapp"
  4.  
  5. "namespace""project1" 
  6.  
  7. "name""busybox" 
  8.  
  9. "name""nginx"

grep 返回包含單詞 name 的所有行。你可以向 grep 添加更多選項來限制它,借助一些正則表達(dá)式操作來找到容器的名稱。如果是使用 jq 獲得你想要的結(jié)果,則可以使用一個表達(dá)式來模擬向下導(dǎo)航數(shù)據(jù)結(jié)構(gòu),如下所示:

  1. $ jq '.spec.containers[].name' k8s-pod.json 
  2.  
  3. "busybox" 
  4.  
  5. "nginx" 

這個命令提供這兩個容器的名稱。如果你只是在查找第二個容器的名稱,則可以在表達(dá)式中添加數(shù)組元素索引:

  1. $ jq '.spec.containers[1].name' k8s-pod.json 
  2.  
  3. "nginx" 

因為 jq 知道數(shù)據(jù)結(jié)構(gòu),所以即使文件格式稍有變化,它也能提供相同的結(jié)果。而只要格式稍有變化,grep 和 sed 就可能提供不同的結(jié)果。

jq 有許多特性,要介紹所有這些特性的話,需要另寫一篇文章。要了解更多信息,請參閱 jq 項目頁、man 頁面或 tldr jq。

https://stedolan.github.io/jq/

5. 作為 find 替代品的 fd

fd 是 find 命令的一個簡單而快速的替代品。它的目的不是取代 find 提供的全部功能;相反,它提供了一些合理的默認(rèn)值,在某些情況下非常有用。

例如,在包含 Git 存儲庫的目錄中搜索源代碼文件時,fd 會自動排除隱藏的文件和目錄,包括. .git 目錄,并忽略.gitignore 文件中的模式。一般來說,它的搜索速度更快,而且第一次搜索時提供了更多相關(guān)的結(jié)果。

默認(rèn)情況下,fd 在當(dāng)前目錄中執(zhí)行不區(qū)分大小寫的模式搜索,輸出是彩色的。使用 find 進(jìn)行相同的搜索需要你提供額外的命令行參數(shù)。例如,在當(dāng)前目錄中搜索所有的 markdown 文件(.md 或.MD ),find 命令如下:

  1. $ find . -iname "*.md" 

使用 fd 進(jìn)行同樣的搜索:

  1. $ fd .md 

在某些情況下,fd 需要額外的選項;例如,如果你想包含隱藏文件和目錄,則必須使用選項 -H,而這在 find 中是不需要的。

fd 可用于許多 Linux 發(fā)行版。執(zhí)行以下命令,可以使用標(biāo)準(zhǔn)存儲庫在 Fedora 中安裝:

  1. $ sudo dnf install fd-find 

要了解更多信息,請查閱 fd GitHub 存儲庫。

https://github.com/sharkdp/fd/

6. 其他替代品

雖然我仍然經(jīng)常使用所有舊的基本工具,特別是在遠(yuǎn)程連接到服務(wù)器時,但這些替代品額外提供了一些在許多場景中都非常有用的好處。特別是,它們對我在 Linux 臺式機(jī)和筆記本電腦上的工作幫助很大。

你的工作流中是否使用了其他工具?歡迎在下面的評論區(qū)補(bǔ)充。

7. 作者介紹

Ricardo Gerardi 是加拿大紅帽公司的高級顧問,他專門從事基于 Ansible 和 Openshift 的 IT 自動化。他有豐富的電信行業(yè)經(jīng)驗,曾在 TELUS 擔(dān)任高級架構(gòu)師,并曾在 IBM 巴西和 IBM 加拿大擔(dān)任網(wǎng)絡(luò)管理解決方案的高級顧問和售前專家長達(dá) 13 年。Ricardo 是一個超過 20 年的 Linux 愛好者。他目前感興趣的是用 Go 編程來破解東西……

 

責(zé)任編輯:張燕妮 來源: 架構(gòu)頭條
相關(guān)推薦

2022-03-11 09:00:51

2022-01-12 17:35:50

Linux命令命令行工具

2021-11-10 18:40:24

exa命令 ls命令Linux

2024-03-12 10:13:08

LodashJavaScript工具庫

2020-12-09 10:28:10

Github開源編程代碼

2022-08-29 19:52:34

socat命令Linux

2023-11-30 08:55:15

LinuxLibreOffic

2020-07-07 09:10:29

VS CodeLinux開源

2022-12-26 07:40:00

Heroku替代品dynos

2015-07-29 10:34:50

Linux系統(tǒng)命令行工具

2015-07-30 11:04:08

Linux命令行工具

2015-07-30 11:24:47

Linux 系統(tǒng)命令行工具

2020-03-30 12:57:50

Linux命令行Markdown

2010-08-24 09:10:14

Linux命令行工具

2014-02-18 10:45:48

2014-04-09 11:05:11

2014-08-25 16:23:24

2019-07-23 13:08:45

LinuxVisio查看器

2015-05-25 10:40:22

Linux命令行技巧

2015-07-22 17:33:52

UbuntuCCleaner系統(tǒng)清理工具
點贊
收藏

51CTO技術(shù)棧公眾號