Ескі Linux пәрмен жолы құралдарының 5 заманауи баламалары

Ескі пәрмен жолы құралдарымен қатар заманауи баламаларды пайдалану арқылы сіз көбірек көңіл көтеруге және тіпті өнімділікті арттыруға болады.

Ескі Linux пәрмен жолы құралдарының 5 заманауи баламалары

Linux/Unix жүйесіндегі күнделікті жұмысымызда біз көптеген пәрмен жолы құралдарын қолданамыз - мысалы, дискті пайдалануды және жүйелік ресурстарды бақылау үшін du. Бұл құралдардың кейбіреулері бұрыннан бар. Мысалы, топ 1984 жылы пайда болды, ал du бірінші шығарылымы 1971 жылдан басталады.

Осы жылдар ішінде бұл құралдар жаңартылды және әртүрлі жүйелерге ауыстырылды, бірақ жалпы алғанда олар өздерінің алғашқы нұсқаларынан алысқа кеткен жоқ, олардың сыртқы түрі мен ыңғайлылығы да көп өзгерген жоқ.

Бұл көптеген жүйелік әкімшілерге қажет тамаша құралдар. Дегенмен, қауымдастық қосымша артықшылықтар ұсынатын балама құралдарды әзірледі. Олардың кейбіреулері жай ғана заманауи, әдемі интерфейске ие, ал басқалары пайдалану мүмкіндігін айтарлықтай жақсартады. Бұл аудармада біз стандартты Linux пәрмен жолы құралдарының бес баламасы туралы айтатын боламыз.

1. ncdu vs du

NCurses Disk Usage (NCDU) du-ге ұқсас, бірақ қарғыс кітапханасына негізделген интерактивті интерфейсі бар. 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 платформалары мен дистрибутивтері үшін қол жетімді. Мысалы, сіз оны Fedora-ға ресми репозиторийлерден орнату үшін dnf пайдалана аласыз:

$ sudo dnf install ncdu

2. htop vs top

htop жоғарыға ұқсас интерактивті процесті қарау құралы, бірақ қораптан тыс ол жақсы пайдаланушы тәжірибесін береді. Әдепкі бойынша, htop жоғарғы жағындағы ақпаратты көрсетеді, бірақ көрнекі және түрлі-түсті түрде.

Әдепкі бойынша htop келесідей көрінеді:

Ескі Linux пәрмен жолы құралдарының 5 заманауи баламалары
Жоғарыдан айырмашылығы:

Ескі Linux пәрмен жолы құралдарының 5 заманауи баламалары
Сонымен қатар, htop жоғарғы жағында жүйе туралы шолу ақпаратын және төменгі жағында функционалдық пернелерді пайдаланып пәрмендерді іске қосу тақтасын көрсетеді. Оны конфигурациялау экранын ашу үшін F2 пернесін басу арқылы конфигурациялауға болады. Параметрлерде түстерді өзгертуге, көрсеткіштерді қосуға немесе жоюға немесе шолу тақтасын көрсету опцияларын өзгертуге болады.

Жоғарғы нұсқаның соңғы нұсқаларының параметрлерін өзгерту арқылы ұқсас қолайлылыққа қол жеткізуге болатынына қарамастан, htop ыңғайлы әдепкі конфигурацияларды қамтамасыз етеді, бұл оны практикалық және пайдалануды жеңілдетеді.

3. tldr адамға қарсы

tldr пәрмен жолы құралы пәрмендер туралы жеңілдетілген анықтамалық ақпаратты, негізінен мысалдарды көрсетеді. Оны қоғамдастық әзірледі tldr беттерінің жобасы.

Айта кетейік, tldr адамды алмастырмайды. Бұл әлі де канондық және ең жан-жақты адам бетін шығару құралы. Дегенмен, кейбір жағдайларда адам артық болады. Пәрмен туралы жан-жақты ақпарат қажет болмаса, сіз оның негізгі қолданыстарын есте сақтауға тырысасыз. Мысалы, curl пәрменіне арналған адам бетінде 3000-ға жуық жол бар. 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 «тым ұзақ» дегенді білдіреді; оқымады»: яғни кейбір мәтін шектен тыс көп сөз болғандықтан ескерілмеді. Бұл құралға атау сәйкес келеді, себебі адам беттері пайдалы болғанымен, кейде тым ұзын болуы мүмкін.

Fedora үшін tldr Python тілінде жазылған. Оны dnf менеджері арқылы орнатуға болады. Әдетте, құрал жұмыс істеу үшін Интернетке қосылуды қажет етеді. Бірақ Fedora компаниясының Python клиенті бұл беттерді жүктеп алуға және желіден тыс кіру үшін кэштеуге мүмкіндік береді.

4.jq және sed/grep

jq пәрмен жолына арналған JSON процессоры. Ол sed немесе grep сияқты, бірақ JSON деректерімен жұмыс істеу үшін арнайы жасалған. Егер сіз күнделікті тапсырмаларда JSON қолданатын әзірлеуші ​​немесе жүйелік әкімші болсаңыз, бұл сізге арналған құрал.

grep және sed сияқты стандартты мәтінді өңдеу құралдарына қарағанда jq негізгі артықшылығы оның 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 іске қосыңыз:

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

grep сөзі аты бар барлық жолдарды қайтарды. Оны шектеу үшін 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 және табу

fd find утилитасының жеңілдетілген баламасы болып табылады. Fd оны толығымен ауыстыруға арналмаған: ол файлдармен жұмыс істеудің жалпы тәсілін анықтайтын әдепкі бойынша орнатылған ең көп таралған параметрлерге ие.

Мысалы, Git репозиторий каталогындағы файлдарды іздеу кезінде fd автоматты түрде жасырын файлдар мен ішкі каталогтарды, соның ішінде .git каталогын қоспайды, сонымен қатар .gitignore файлындағы қойылмалы таңбаларды елемеді. Тұтастай алғанда, ол бірінші әрекетте көбірек сәйкес нәтижелерді қайтару арқылы іздеуді жылдамдатады.

Әдепкі бойынша, fd ағымдағы каталогта регистрді ескермейтін іздеуді түсті шығыспен орындайды. Табу пәрмені арқылы бірдей іздеу пәрмен жолына қосымша параметрлерді енгізуді талап етеді. Мысалы, ағымдағы каталогтағы барлық .md (немесе .MD) файлдарын табу үшін келесідей табу пәрменін жазасыз:

$ find . -iname "*.md"

fd үшін бұл келесідей көрінеді:

$ fd .md

Бірақ кейбір жағдайларда fd қосымша опцияларды да қажет етеді: мысалы, жасырын файлдар мен каталогтарды қосқыңыз келсе, -H опциясын пайдалануыңыз керек, дегенмен бұл әдетте іздеу кезінде талап етілмейді.

fd көптеген Linux дистрибутивтері үшін қол жетімді. Fedora-да оны келесідей орнатуға болады:

$ sudo dnf install fd-find

Ештеңеден бас тартудың қажеті жоқ

Сіз жаңа Linux пәрмен жолы құралдарын пайдаланасыз ба? Әлде сіз тек ескілерге отырасыз ба? Бірақ сізде комбо бар шығар, солай емес пе? Пікірлерде тәжірибеңізбен бөлісіңіз.

Жарнама құқықтары туралы

Біздің көптеген клиенттеріміз артықшылықтарды бағалады эпикалық серверлер!
осы AMD EPYC процессорлары бар виртуалды серверлер, CPU ядросының жиілігі 3.4 ГГц-ке дейін. Максималды конфигурация сізге жарылыс жасауға мүмкіндік береді - 128 CPU ядросы, 512 ГБ жедел жады, 4000 ГБ NVMe. Тапсырыс беруге асығыңыз!

Ескі Linux пәрмен жолы құралдарының 5 заманауи баламалары

Ақпарат көзі: www.habr.com

пікір қалдыру