<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          5 款新型 Linux 命令行工具,實(shí)用!

          共 11834字,需瀏覽 24分鐘

           ·

          2021-08-24 19:12

          點(diǎn)擊關(guān)注公眾號(hào),Java干貨及時(shí)送達(dá)

          使用新的替代工具來改進(jìn)舊的命令行工具。

          在Linux/Unix系統(tǒng)的日常使用中,我們需要使用很多命令行工具來完成工作,以及理解和管理我們的系統(tǒng),例如使用du來監(jiān)視磁盤利用率、top來顯示系統(tǒng)資源。有些工具已經(jīng)有很長(zhǎng)的歷史了。例如,top于1984年首次發(fā)布,而du的首次問世可追溯至1971年。

          多年來,這些工具已經(jīng)過現(xiàn)代化的改造,并移植到了不同的系統(tǒng)中,但總的來說,它們?nèi)匀槐A袅俗畛醯南敕?、外觀和感覺。

          這些工具都非常優(yōu)秀,對(duì)于許多系統(tǒng)管理員的工作流程來說都是必不可少的。但近年來,開源社區(qū)開發(fā)了不少更具優(yōu)勢(shì)的替代工具。雖然有些工具華而不實(shí),但有些則大大提高了實(shí)用性,成為了現(xiàn)代系統(tǒng)的絕佳選擇。在本文中,我將介紹五種標(biāo)準(zhǔn)Linux命令行工具的替代品。

          du的替代:ncdu

          NCurses磁盤使用率(NCurses DiskUsage,即ncdu)工具提供了與du類似的結(jié)果,但其基于curses的交互式界面可以顯示消耗了大部分磁盤空間的目錄。

          首先Ncdu需要花一些時(shí)間分析磁盤,然后按照最常用的順序顯示目錄或文件,如下所示:

          ncdu 1.14.2 ~ Use the arrow keys to navigate, press ? for help
          --- /home/rgerardi ------------------------------------------------------------
             96.7 GiB [##########] /libvirt
             33.9 GiB [###       ] /.crc
              7.0 GiB [          ] /Projects
          .   4.7 GiB [          ] /Downloads
          .   3.9 GiB [          ] /.local
              2.5 GiB [          ] /.minishift
              2.4 GiB [          ] /.vagrant.d
          .   1.9 GiB [          ] /.config
          .   1.8 GiB [          ] /.cache
              1.7 GiB [          ] /Videos
              1.1 GiB [          ] /go
            692.6 MiB [          ] /Documents
          . 591.5 MiB [          ] /tmp
            139.2 MiB [          ] /.var
            104.4 MiB [          ] /.oh-my-zsh
             82.0 MiB [          ] /scripts
             55.8 MiB [          ] /.mozilla
             54.6 MiB [          ] /.kube
             41.8 MiB [          ] /.vim
             31.5 MiB [          ] /.ansible
             31.3 MiB [          ] /.gem
             26.5 MiB [          ] /.VIM_UNDO_FILES
             15.3 MiB [          ] /Personal
              2.6 MiB [          ]  .ansible_module_generated
              1.4 MiB [          ] /backgrounds
            944.0 KiB [          ] /Pictures
            644.0 KiB [          ]  .zsh_history
            536.0 KiB [          ] /.ansible_async
           Total disk usage: 159.4 GiB  Apparent size: 280.8 GiB  Items: 561540

          你可以通過方向鍵導(dǎo)航到每個(gè)結(jié)果。如果在選中的結(jié)果上按下Enter,則ncdu將顯示該目錄的內(nèi)容:

          --- /home/rgerardi/libvirt ----------------------------------------------------
                                   /..
             91.3 GiB [##########] /images
              5.3 GiB [          ] /media

          可以深入各個(gè)目錄,找出哪些文件占用的磁盤空間最多。使用左方向鍵可以返回到上一個(gè)目錄。在默認(rèn)情況下,你可以按d鍵刪除文件,但在刪除文件之前ncdu會(huì)要求確認(rèn)。如果你想禁止刪除操作以防止發(fā)生意外,則可以通過-r選項(xiàng)設(shè)置只讀訪問:ncdu -r。

          ncdu可用于許多平臺(tái)和Linux發(fā)行版。例如,你可以使用dnf從官方代碼庫(kù)直接將其安裝在Fedora上:

          $ sudo dnf install ncdu

          更多有關(guān)該工具的信息,請(qǐng)參見:https://dev.yorhel.nl/ncdu。另外,Linux 系列面試題和答案全部整理好了,微信搜索Java技術(shù)棧,在后臺(tái)發(fā)送:面試,可以在線閱讀。

          top的替代:htop

          htop是一個(gè)類似于top的交互式進(jìn)程瀏覽器,提供了更好的用戶體驗(yàn)。在默認(rèn)情況下,htop顯示的各項(xiàng)指標(biāo)與top相同,而且是漂亮的彩色。

          默認(rèn)的htop如下所示:


          與默認(rèn)的top相比:


          此外,htop的頂部還提供了系統(tǒng)的概述信息,底部的命令欄則顯示了功能鍵命令,你還可以按下F2進(jìn)入設(shè)置頁(yè)面來自定義界面。在設(shè)置頁(yè)面中,你可以更改其顏色,添加或刪除指標(biāo)、更改概述欄的顯示選項(xiàng)。

          雖然top的最新版本也可以通過配置獲得相似的結(jié)果,但htop提供的默認(rèn)配置更為合理,作為一個(gè)進(jìn)程瀏覽器更加易于使用。

          如果想了解有關(guān)該項(xiàng)目的更多信息,請(qǐng)查看htop主頁(yè)(https://hisham.hm/htop/)。

          man的替代:tldr

          tldr命令行工具顯示可以簡(jiǎn)化的命令文檔,而且大部分文檔都提供示例。它是tldr pages項(xiàng)目(https://tldr.sh/)的客戶端。

          這個(gè)工具不是man的替代品。man pages仍然是許多工具的規(guī)范以及完整的信息源。但是,在某些情況下,man的內(nèi)容太多了。有時(shí),你不需要有關(guān)命令的所有信息。你只需要記住基本選項(xiàng)。例如,curl命令的man page幾乎有3,000行。相比之下,curl的tldr只有40行,如下所示:

          $ tldr curl

          # curl
            Transfers data from or to a server.
            Supports most protocols, including HTTP, FTP, and POP3.
            More information: <https://curl.haxx.se>.

          - Download the contents of an URL to a file:

            curl http://example.com -o filename

          - Download a file, saving the output under the filename indicated by the URL:

            curl -O http://example.com/filename

          - Download a file, following [L]ocation redirects, and automatically [C]ontinuing (resuming) a previous file transfer:

            curl -O -L -C - http://example.com/filename

          - Send form-encoded data (POST request of type `application/x-www-form-urlencoded`):

            curl -d 'name=bob' http://example.com/form                                                                                            
          - Send a request with an extra header, using a custom HTTP method:

            curl -H 'X-My-Header: 123' -X PUT http://example.com                                                                                  
          - Send data in JSON format, specifying the appropriate content-type header:

            curl -d '{"name":"bob"}' -H 'Content-Type: application/json' http://example.com/users/1234

          ... TRUNCATED OUTPUT

          TLDR的全稱是“too long; didn'tread”(太長(zhǎng);未讀),這是一句網(wǎng)絡(luò)流行語,表示文章太長(zhǎng)。這個(gè)名字非常適合這個(gè)匯總工具,因?yàn)閙anpages雖然非常實(shí)用,但內(nèi)容太長(zhǎng)。

          在Fedora中,tldr客戶端是用Python編寫的。你可以使用dnf安裝。有關(guān)其他客戶端選項(xiàng),請(qǐng)參見tldr pages項(xiàng)目(https://tldr.sh/)。

          通常,tldr工具需要訪問互聯(lián)網(wǎng)才能查詢tldr頁(yè)面。Fedora中的Python客戶端允許你下載和緩存這些頁(yè)面以供離線訪問。

          有關(guān)tldr的更多信息,請(qǐng)運(yùn)行tldr tldr。推薦一個(gè) Spring Boot 基礎(chǔ)教程及實(shí)戰(zhàn)示例:https://github.com/javastacks/spring-boot-best-practice

          用sed/grep查找JSON數(shù)據(jù)的替代:jq

          jq是JSON的命令行處理器。就像sed或grep一樣,但主要是為了處理JSON數(shù)據(jù)。如果你是日常任務(wù)需要使用JSON的開發(fā)人員或系統(tǒng)管理員,那么這是你的工具箱中必不可少的工具。

          與通用文本處理工具(例如grep和sed)相比,jq的主要優(yōu)點(diǎn)在于它了解JSON數(shù)據(jù)結(jié)構(gòu),你可以通過一個(gè)表達(dá)式創(chuàng)建復(fù)雜的查詢。

          舉例說明,假設(shè)你正在嘗試在下列JSON文件中查找容器的名稱:

          {
            "apiVersion""v1",
            "kind""Pod",
            "metadata": {
              "labels": {
                "app""myapp"
              },
              "name""myapp",
              "namespace""project1"
            },
            "spec": {
              "containers": [
                {
                  "command": [
                    "sleep",
                    "3000"
                  ],
                  "image""busybox",
                  "imagePullPolicy""IfNotPresent",
                  "name""busybox"
                },
                {
                  "name""nginx",
                  "image""nginx",
                  "resources": {},
                  "imagePullPolicy""IfNotPresent"
                }
              ],
              "restartPolicy""Never"
            }
          }

          如果你利用grep直接查詢name,則結(jié)果為:

          $ grep name k8s-pod.json
                  "name""myapp",
                  "namespace""project1"
                          "name""busybox"
                          "name""nginx",

          grep會(huì)返回所有包含單詞name的行。你可以在grep中添加一些其他選項(xiàng)來限制查詢結(jié)果,并通過正則表達(dá)式操作找到容器的名稱。在使用jq獲得所需結(jié)果時(shí),你只需要使用一個(gè)模擬向下導(dǎo)航數(shù)據(jù)結(jié)構(gòu)的表達(dá)式,如下所示:

          $ jq '.spec.containers[].name' k8s-pod.json
          "busybox"
          "nginx"

          該命令會(huì)返回兩個(gè)容器的名稱。如果你只想查看第二個(gè)容器的名稱,則可以在表達(dá)式中添加數(shù)組元素索引:

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

          因?yàn)閖q能夠理解數(shù)據(jù)結(jié)構(gòu),所以即使文件格式稍有變化,它也可以提供相同的結(jié)果。但對(duì)于grep和se來說,格式稍有變化提供的結(jié)果就會(huì)完全不同。

          jq還有很多功能,我需要用另寫一篇文章才能介紹其所有的功能。有關(guān)更多信息,請(qǐng)參見jq項(xiàng)目頁(yè)面(https://stedolan.github.io/jq/)、manpages或tldr jq。

          find的替代:fd

          fd是find命令的一種簡(jiǎn)單快速的替代。它的目的不是替換find的功能,而是提供一些合理的默認(rèn)值,在某些情況下非常有用。

          例如,在包含Git代碼庫(kù)的目錄中搜索源代碼文件時(shí),fd會(huì)自動(dòng)排除隱藏的文件和目錄(包括.git目錄),并忽略.gitignore文件中的模式。通常,它可以更快地查詢,并提供相關(guān)度更高的結(jié)果。

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

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

          而如下fd搜索能夠返回相同的結(jié)果:

          $ fd .md

          在有些情況下,fd也需要其他選項(xiàng)。例如,如果想讓搜索包括隱藏的文件和目錄,則必須使用選項(xiàng)-H,而find則不需要。

          fd可用于許多Linux發(fā)行版。在Fedora中安裝fd可使用標(biāo)準(zhǔn)代碼庫(kù):

          $ sudo dnf install fd-find

          有關(guān)更多信息,請(qǐng)請(qǐng)見fd的GitHub代碼庫(kù)(https://github.com/sharkdp/fd/)。

          優(yōu)秀的替代工具與久經(jīng)考驗(yàn)的實(shí)用程序

          盡管我還是習(xí)慣使用舊工具,尤其是在遠(yuǎn)程連接到服務(wù)器時(shí),但新的替代工具提供了額外的好處,而且在許多情況下都很有幫助性。特別是幫助我在Linux臺(tái)式機(jī)和筆記本電腦上管理和工作。

          你是否使用其他工具來處理工作流程?請(qǐng)?jiān)谙路搅粞?。另外,關(guān)注公眾號(hào)Java技術(shù)棧,在后臺(tái)回復(fù):面試,可以獲取我整理的 Linux 系列面試題和答案,非常齊全。

          原文:https://opensource.com/article/20/6/modern-linux-command-line-tools
          作者:Ricardo Gerardi
          譯者:彎月,責(zé)編:屠敏
          出品:CSDN(ID:CSDNnews)






          關(guān)注Java技術(shù)棧看更多干貨



          獲取 Spring Boot 實(shí)戰(zhàn)筆記!
          瀏覽 42
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久欧美精品蜜芽毛片 | 日日干天天干夜夜操 | 黃色A片一级一级一级久别的草原 | 亚洲男人的天堂在线观看 | 黄色亚洲干日本 |