5 Modernong Alternatibo sa Lumang Linux Command Line Tools

Sa pamamagitan ng paggamit ng mas modernong mga alternatibo kasama ng mga mas lumang tool sa command line, maaari kang magkaroon ng higit na kasiyahan at pagbutihin pa ang iyong pagiging produktibo.

5 Modernong Alternatibo sa Lumang Linux Command Line Tools

Sa aming pang-araw-araw na gawain sa Linux/Unix, gumagamit kami ng maraming command line tool - halimbawa, du to monitor disk usage at system resources. Ang ilan sa mga tool na ito ay nasa loob ng mahabang panahon. Halimbawa, lumabas ang top noong 1984, at ang unang release ng du ay itinayo noong 1971.

Sa paglipas ng mga taon, ang mga tool na ito ay na-moderno at nai-port sa iba't ibang mga sistema, ngunit sa pangkalahatan ay hindi pa sila nakakalayo sa kanilang mga unang bersyon, ang kanilang hitsura at kakayahang magamit ay hindi rin masyadong nagbago.

Ito ay mahusay na mga tool na kailangan ng maraming mga administrator ng system. Gayunpaman, ang komunidad ay nakabuo ng mga alternatibong tool na nag-aalok ng mga karagdagang benepisyo. Ang ilan sa mga ito ay mayroon lamang isang moderno, magandang interface, habang ang iba ay lubos na nagpapabuti sa kakayahang magamit. Sa pagsasaling ito, pag-uusapan natin ang tungkol sa limang alternatibo sa karaniwang mga tool sa command line ng Linux.

1. ncdu vs du

NCurses Disk Usage (ncdu) ay katulad ng du, ngunit may interactive na interface batay sa library ng curses. Ipinapakita ng ncdu ang istraktura ng direktoryo na kumukuha ng karamihan sa iyong espasyo sa disk.

Sinusuri ng ncdu ang disk at pagkatapos ay ipinapakita ang mga resulta na pinagsunod-sunod ayon sa pinakamadalas na ginagamit na mga direktoryo o file, halimbawa:

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

Maaari kang mag-navigate sa mga entry gamit ang mga arrow key. Kung pinindot mo ang Enter, ipapakita ng ncdu ang mga nilalaman ng napiling direktoryo:

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

Maaari mong gamitin ang tool na ito upang, halimbawa, matukoy kung aling mga file ang kumukuha ng pinakamaraming espasyo sa disk. Maaari kang pumunta sa nakaraang direktoryo sa pamamagitan ng pagpindot sa kaliwang arrow key. Sa ncdu maaari mong tanggalin ang mga file sa pamamagitan ng pagpindot sa d key. Humihingi ito ng kumpirmasyon bago tanggalin. Kung gusto mong i-disable ang feature na tanggalin para maiwasan ang aksidenteng pagkawala ng mahahalagang file, gamitin ang -r na opsyon para paganahin ang read-only na access mode: ncdu -r.

Ang ncdu ay magagamit para sa maraming mga platform at distribusyon ng Linux. Halimbawa, maaari mong gamitin ang dnf upang i-install ito sa Fedora nang direkta mula sa mga opisyal na repositoryo:

$ sudo dnf install ncdu

2. htop vs top

htop ay isang interactive na viewer ng proseso na katulad sa itaas, ngunit sa labas ng kahon ay nagbibigay ito ng magandang karanasan ng user. Bilang default, ipinapakita ng htop ang parehong impormasyon sa itaas, ngunit sa mas visual at makulay na paraan.

Bilang default, ganito ang hitsura ng htop:

5 Modernong Alternatibo sa Lumang Linux Command Line Tools
Hindi tulad ng tuktok:

5 Modernong Alternatibo sa Lumang Linux Command Line Tools
Bilang karagdagan, ang htop ay nagpapakita ng pangkalahatang-ideya ng impormasyon tungkol sa system sa itaas, at isang panel para sa pagpapatakbo ng mga command gamit ang mga function key sa ibaba. Maaari mong i-configure ito sa pamamagitan ng pagpindot sa F2 upang buksan ang screen ng pagsasaayos. Sa Mga Setting, maaari mong baguhin ang mga kulay, magdagdag o mag-alis ng mga sukatan, o baguhin ang mga opsyon sa display ng panel ng pangkalahatang-ideya.

Bagama't makakamit mo ang katulad na kakayahang magamit sa pamamagitan ng pagsasaayos ng mga setting ng pinakabagong bersyon ng tuktok, ang htop ay nagbibigay ng maginhawang mga default na configuration, na ginagawang mas praktikal at mas madaling gamitin.

3. tldr laban sa tao

Ang tldr command line tool ay nagpapakita ng pinasimpleng impormasyon ng tulong tungkol sa mga command, karamihan ay mga halimbawa. Ito ay binuo ng komunidad proyekto ng mga pahina ng tldr.

Kapansin-pansin na ang tldr ay hindi kapalit ng tao. Ito pa rin ang kanonikal at pinakakomprehensibong tool sa output ng man page. Gayunpaman, sa ilang mga kaso ang tao ay kalabisan. Kapag hindi mo kailangan ng komprehensibong impormasyon tungkol sa isang command, sinusubukan mo lang tandaan ang mga pangunahing gamit nito. Halimbawa, ang man page para sa curl command ay naglalaman ng halos 3000 linya. Ang tldr page para sa curl ay 40 linya ang haba. Ang fragment nito ay ganito ang hitsura:


$ 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

Ang ibig sabihin ng TLDR ay β€œmasyadong mahaba; hindi nabasa": ibig sabihin, binalewala ang ilang teksto dahil sa labis na pandiwang salita nito. Angkop ang pangalan para sa tool na ito dahil ang mga man page, habang kapaki-pakinabang, ay maaaring masyadong mahaba.

Para sa Fedora, ang tldr ay isinulat sa Python. Maaari mong i-install ito gamit ang dnf manager. Karaniwan, ang tool ay nangangailangan ng internet access upang gumana. Ngunit pinapayagan ng Python client ng Fedora ang mga pahinang ito na ma-download at mai-cache para sa offline na pag-access.

4.jq vs sed/grep

Ang jq ay isang JSON processor para sa command line. Ito ay katulad ng sed o grep, ngunit partikular na idinisenyo upang gumana sa data ng JSON. Kung isa kang developer o system administrator na gumagamit ng JSON sa mga pang-araw-araw na gawain, ito ang tool para sa iyo.

Ang pangunahing bentahe ng jq sa mga karaniwang tool sa pagpoproseso ng teksto tulad ng grep at sed ay naiintindihan nito ang istruktura ng data ng JSON, na nagbibigay-daan sa iyong lumikha ng mga kumplikadong query sa isang expression.

Halimbawa, sinusubukan mong maghanap ng mga pangalan ng container sa JSON file na ito:

{
  "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"
  }
}

Patakbuhin ang grep upang mahanap ang pangalan ng string:

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

Ibinalik ng grep ang lahat ng mga linya na naglalaman ng pangalan ng salita. Maaari kang magdagdag ng ilang higit pang mga opsyon sa grep upang paghigpitan ito, at gumamit ng ilang regular na pagmamanipula ng expression upang mahanap ang mga pangalan ng container.

Upang makakuha ng parehong resulta gamit ang jq, isulat lamang:

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

Ibibigay sa iyo ng command na ito ang mga pangalan ng parehong container. Kung hinahanap mo lamang ang pangalan ng pangalawang lalagyan, idagdag ang index ng elemento ng array sa expression:

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

Dahil alam ng jq ang tungkol sa istraktura ng data, gumagawa ito ng parehong mga resulta kahit na bahagyang nagbabago ang format ng file. Maaaring hindi gumana nang tama ang grep at sed sa kasong ito.

Ang jq ay may maraming mga pag-andar, ngunit kailangan ng isa pang artikulo upang ilarawan ang mga ito. Para sa karagdagang impormasyon mangyaring makipag-ugnayan pahina ng proyekto jq o sa tldr.

5. fd vs find

fd ay isang pinasimple na alternatibo sa find utility. Ang Fd ay hindi inilaan na ganap na palitan ito: mayroon itong pinakakaraniwang mga setting na naka-install bilang default, na tumutukoy sa pangkalahatang diskarte sa pagtatrabaho sa mga file.

Halimbawa, kapag naghahanap ng mga file sa isang direktoryo ng repositoryo ng Git, awtomatikong ibinubukod ng fd ang mga nakatagong file at subdirectory, kabilang ang direktoryo ng .git, at binabalewala din ang mga wildcard mula sa .gitignore na file. Sa pangkalahatan, pinapabilis nito ang mga paghahanap sa pamamagitan ng pagbabalik ng mga mas nauugnay na resulta sa unang pagsubok.

Bilang default, nagsasagawa ang fd ng case-insensitive na paghahanap sa kasalukuyang direktoryo, na may kulay na output. Ang parehong paghahanap gamit ang find command ay nangangailangan ng pagpasok ng mga karagdagang parameter sa command line. Halimbawa, upang mahanap ang lahat ng .md (o .MD) na file sa kasalukuyang direktoryo, susulat ka ng command na find tulad nito:

$ find . -iname "*.md"

Para sa fd ganito ang hitsura:

$ fd .md

Ngunit sa ilang mga kaso, ang fd ay nangangailangan din ng mga karagdagang opsyon: halimbawa, kung gusto mong isama ang mga nakatagong file at direktoryo, dapat mong gamitin ang -H na opsyon, bagama't karaniwang hindi ito kinakailangan kapag naghahanap.

fd ay magagamit para sa maraming mga pamamahagi ng Linux. Sa Fedora maaari itong mai-install tulad nito:

$ sudo dnf install fd-find

Hindi mo kailangang isuko ang anuman

Gumagamit ka ba ng bagong Linux command line tool? O umupo ka ba ng eksklusibo sa mga luma? Pero malamang may combo ka diba? Mangyaring ibahagi ang iyong karanasan sa mga komento.

Sa Mga Karapatan ng Pag-advertise

Marami sa aming mga kliyente ang na-appreciate na ang mga benepisyo epic server!
Ito mga virtual server na may mga processor ng AMD EPYC, CPU core frequency hanggang 3.4 GHz. Ang maximum na configuration ay magbibigay-daan sa iyo na magkaroon ng isang putok - 128 CPU core, 512 GB RAM, 4000 GB NVMe. Bilisan mo mag order!

5 Modernong Alternatibo sa Lumang Linux Command Line Tools

Pinagmulan: www.habr.com

Magdagdag ng komento