5 сучасных альтэрнатыў старым інструментам каманднага радка Linux

Выкарыстоўваючы больш сучасныя альтэрнатывы нараўне са старымі інструментамі каманднага радка, можна атрымаць больш задавальнення і нават павысіць прадукцыйнасць працы.

5 сучасных альтэрнатыў старым інструментам каманднага радка Linux

У паўсядзённай працы ў Linux / Unix мы выкарыстоўваем мноства прылад каманднага радка - напрыклад, du для маніторынгу выкарыстання дыска і сістэмных рэсурсаў. Некаторыя з гэтых інструментаў існуюць ужо даўно. Напрыклад, top зьявіўся ў 1984 годзе, а першы рэліз du датуецца 1971 годам.

За мінулыя гады гэтыя прылады былі мадэрнізаваны і партаваны на розныя сістэмы, але ў цэлым далёка не сышлі ад сваіх першых версій, іх вонкавы выгляд і usability таксама моцна не змяніліся.

Гэта выдатныя прылады, якія неабходныя шматлікім сістэмным адміністратарам. Аднак супольнасць распрацавала альтэрнатыўныя інструменты, якія прапануюць дадатковыя перавагі. Некаторыя з іх проста маюць сучасны прыгожы інтэрфейс, а іншыя значна паляпшаюць зручнасць выкарыстання. У гэтым перакладзе распавядзем аб пяці альтэрнатывах стандартным прыладам каманднага радка Linux.

1. ncdu vs du

NCurses Disk Usage (ncdu) падобны на du, але з інтэрактыўным інтэрфейсам на аснове бібліятэкі curses. ncdu адлюстроўвае структуру каталогаў, якія займаюць большую частку вашага дыскавай прасторы.

ncdu аналізуе дыск, а затым адлюстроўвае вынікі, адсартаваныя па найболей часта выкарыстоўваных каталогах ці файлах, напрыклад:

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

Па запісах можна перамяшчацца з дапамогай клявішаў са стрэлкамі. Калі вы націснеце Enter, ncdu адлюструе змесціва абранага каталога:

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

Вы можаце выкарыстоўваць гэтую прыладу, каб, напрыклад, вызначыць, якія файлы займаюць больш за ўсё дыскавай прасторы. У папярэдні каталог можна перайсці, націснуўшы клавішу са стрэлкай налева. З дапамогай ncdu вы можаце выдаліць файлы, націснуўшы клавішу d. Перад выдаленнем ён запытвае пацверджанне. Калі вы жадаеце адключыць функцыю выдалення, каб прадухіліць выпадковую страту каштоўных файлаў, выкарыстайце опцыю -r для ўключэння рэжыму доступу толькі для чытання: ncdu -r.

ncdu даступны для многіх платформ і дыстрыбутываў Linux. Напрыклад, вы можаце выкарыстоўваць dnf для яго ўстаноўкі на Fedora непасрэдна з афіцыйных рэпазітараў:

$ sudo dnf install ncdu

2. htop vs top

htop - гэта інтэрактыўная ўтыліта для прагляду працэсаў, падобная на top, але з скрынкі забяспечвае прыемнае ўзаемадзеянне з карыстачом. Па змаўчанні htop адлюстроўвае тую ж інфармацыю, што і top, але ў больш наглядным і маляўнічым выглядзе.

Па змаўчанні htop выглядае так:

5 сучасных альтэрнатыў старым інструментам каманднага радка Linux
У адрозненне ад top:

5 сучасных альтэрнатыў старым інструментам каманднага радка Linux
Акрамя таго, у верхняй частцы htop адлюстроўвае аглядную інфармацыю аб сістэме, а ніжняй частцы – панэль для запуску каманд з дапамогай функцыянальных клавіш. Вы можаце наладзіць яе, націснуўшы F2, каб адкрыць экран наладкі. У наладах можна змяніць колеры, дадаць ці выдаліць метрыкі ці змяніць параметры адлюстравання панэлі агляду.

Хоць, пакруціўшы налады апошніх версій top, таксама можна дамагчыся падобнага usability, htop падае зручныя канфігурацыі па змаўчанні, што робіць яго больш практычным і простым у выкарыстанні.

3. tldr vs man

Інструмент каманднага радка tldr адлюстроўвае спрошчаную даведачную інфармацыю аб камандах, у асноўным прыклады. Яго распрацавала супольнасць tldr pages project.

Варта адзначыць, што tldr - гэта не замена man. Ён па-ранейшаму з'яўляецца кананічным і найбольш поўным інструментам вываду даведачных старонак. Аднак у некаторых выпадках man з'яўляецца залішнім. Калі вам не патрэбная вычарпальная інфармацыя аб якой-небудзь камандзе, вы проста спрабуеце запомніць асноўныя варыянты яе выкарыстання. Напрыклад, старонка man для каманды curl утрымоўвае амаль 3000 радкоў. Старонка tldr для curl мае даўжыню 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 азначае «занадта доўга; не чытаў»: гэта значыць, некаторы тэкст быў праігнараваны з-за яго празмернай шматслоўнасці. Назва падыходзіць для гэтай прылады, таму што man-старонкі, хоць і карысныя, але часам бываюць занадта доўгімі.

Для Fedora tldr быў напісаны на Python. Вы можаце ўсталяваць яго з дапамогай мэнэджэра dnf. Звычайна для працы прылады неабходны доступ да інтэрнэту. Але кліент Python у Fedora дазваляе загружаць і кэшаваць гэтыя старонкі для аўтаномнага доступу.

4. jq vs sed/grep

jq - гэта JSON-працэсар для каманднага радка. Ён падобны на sed ці grep, але спецыяльна распрацаваны для працы з дадзенымі ў фармаце JSON. Калі вы распрацоўшчык або сістэмны адміністратар, які выкарыстоўвае JSON у паўсядзённых задачах, гэты інструмент для вас.

Асноўная перавага jq перад стандартнымі прыладамі апрацоўкі тэксту, такімі як grep і sed, складаецца ў тым, што ён разумее структуру дадзеных JSON, дазваляючы ствараць складаныя запыты ў адным выразе.

Напрыклад, вы спрабуеце знайсці назвы кантэйнераў у гэтым файле 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:

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

grep вярнуў усе радкі, якія змяшчаюць слова name. Вы можаце дадаць яшчэ некалькі параметраў у grep, каб абмежаваць яго, і з дапамогай некаторых маніпуляцый з рэгулярнымі выразамі знайсці імёны кантэйнераў.

Каб атрымаць гэты ж вынік з дапамогай jq, дастаткова напісаць:

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

Гэтая каманда выдасць вам імёны абодвух кантэйнераў. Калі вы шукаеце толькі імя другога кантэйнера, дадайце індэкс элемента масіва ў выраз:

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

Паколькі jq ведае аб структуры дадзеных, ён дае тыя ж вынікі, нават калі фармат файла нязначна зменіцца. grep і sed у гэтым выпадку могуць працаваць некарэктна.

У jq шмат функцый, але для іх апісання патрэбна яшчэ адзін артыкул. Для атрымання дадатковай інфармацыі звернецеся да старонцы праекта jq ці да tldr.

5. fd vs find

fd - гэта спрошчаная альтэрнатыва ўтыліце find. Fd не закліканы замяніць яе цалкам: у ім па змаўчанні ўсталяваныя найболей распаўсюджаныя налады, якія вызначаюць агульны падыход да працы з файламі.

Напрыклад, пры пошуку файлаў у каталогу рэпазітара Git, fd аўтаматычна выключае ўтоеныя файлы і падкаталогі, уключаючы каталог .git, а таксама ігнаруе шаблоны з файла .gitignore. У цэлым, ён паскарае пошук, выдаючы больш рэлевантныя вынікі з першай спробы.

Па змаўчанні fd выконвае пошук без уліку рэгістра ў бягучым каталогу з каляровай высновай. Той жа пошук з выкарыстаннем каманды find патрабуе ўводу дадатковых параметраў у камандным радку. Напрыклад, каб знайсці ўсе файлы .md (або .MD) у бягучым каталогу, трэба напісаць такую ​​каманду find:

$ find . -iname "*.md"

Для fd яна выглядае так:

$ fd .md

Але ў некаторых выпадках і для fd патрабуюцца дадатковыя параметры: напрыклад, калі вы жадаеце ўлучыць утоеныя файлы і каталогі, вы павінны выкарыстоўваць опцыю -H, хоць звычайна пры пошуку гэта не патрабуецца.

fd даступны для шматлікіх дыстрыбутываў Linux. У Fedora яго можна ўсталяваць так:

$ sudo dnf install fd-find

Неабавязкова ад нечага адмаўляцца

Ці карыстаецеся вы новыя прылады каманднага радка Linux? Ці сядзіце выключна на старых? Але хутчэй за ўсё, у вас комба, так? Калі ласка, падзяліцеся вашым вопытам у каментарах.

На правах рэкламы

Многія нашы кліенты ўжо ацанілі перавагі эпічных сервераў!
Гэта віртуальныя серверы з працэсарамі AMD EPYC, частата ядра CPU да 3.4 GHz. Максімальная канфігурацыя дазволіць адарвацца на поўную – 128 ядраў CPU, 512 ГБ RAM, 4000 ГБ NVMe. Спяшайцеся замовіць!

5 сучасных альтэрнатыў старым інструментам каманднага радка Linux

Крыніца: habr.com

Дадаць каментар