Köhnə Linux Komanda Xətti Alətlərinə 5 Müasir Alternativ

Köhnə komanda xətti alətləri ilə yanaşı daha müasir alternativlərdən istifadə etməklə siz daha çox əylənə və hətta məhsuldarlığınızı artıra bilərsiniz.

Köhnə Linux Komanda Xətti Alətlərinə 5 Müasir Alternativ

Linux/Unix-də gündəlik işimizdə biz bir çox komanda xətti alətlərindən istifadə edirik - məsələn, diskdən istifadəni və sistem resurslarını izləmək üçün du. Bu vasitələrdən bəziləri uzun müddətdir mövcuddur. Məsələn, top 1984-cü ildə çıxdı və du-nun ilk buraxılışı 1971-ci ilə aiddir.

İllər keçdikcə bu alətlər modernləşdirilərək müxtəlif sistemlərə daşınıb, lakin ümumilikdə onlar ilk versiyalarından çox da uzaqlaşmamış, görünüşü və istifadə imkanları da çox dəyişməmişdir.

Bunlar bir çox sistem administratorunun ehtiyac duyduğu əla alətlərdir. Bununla belə, cəmiyyət əlavə üstünlüklər təklif edən alternativ alətlər hazırlayıb. Onlardan bəziləri sadəcə müasir, gözəl interfeysə malikdir, digərləri isə istifadəni xeyli yaxşılaşdırır. Bu tərcümədə biz standart Linux komanda xətti alətlərinə beş alternativdən danışacağıq.

1. ncdu vs du

NCurses Disk İstifadəsi (ncdu) du ilə oxşardır, lakin lənətlər kitabxanasına əsaslanan interaktiv interfeysə malikdir. ncdu disk yerinizin çox hissəsini tutan kataloq strukturunu göstərir.

ncdu diski təhlil edir və sonra ən çox istifadə olunan kataloq və ya fayllar üzrə çeşidlənmiş nəticələri göstərir, məsələn:

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

Ox düymələrindən istifadə edərək qeydlər arasında hərəkət edə bilərsiniz. Enter düyməsini basarsanız, ncdu seçilmiş kataloqun məzmununu göstərəcək:

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

Məsələn, hansı faylların diskdə ən çox yer tutduğunu müəyyən etmək üçün bu alətdən istifadə edə bilərsiniz. Sol ox düyməsini basaraq əvvəlki qovluğa keçə bilərsiniz. ncdu ilə siz d düyməsini basaraq faylları silə bilərsiniz. Silmədən əvvəl təsdiq tələb edir. Əgər dəyərli faylların təsadüfən itirilməsinin qarşısını almaq üçün silmə funksiyasını söndürmək istəyirsinizsə, yalnız oxumaq üçün giriş rejimini aktivləşdirmək üçün -r seçimindən istifadə edin: ncdu -r.

ncdu bir çox Linux platformaları və paylamaları üçün mövcuddur. Məsələn, onu Fedora-da birbaşa rəsmi depolardan quraşdırmaq üçün dnf-dən istifadə edə bilərsiniz:

$ sudo dnf install ncdu

2. htop vs top

htop yuxarıya bənzər interaktiv proses görüntüləyicisidir, lakin qutudan kənarda gözəl istifadəçi təcrübəsi təqdim edir. Varsayılan olaraq, htop yuxarıdakı ilə eyni məlumatları göstərir, lakin daha vizual və rəngarəng şəkildə.

Varsayılan olaraq htop bu kimi görünür:

Köhnə Linux Komanda Xətti Alətlərinə 5 Müasir Alternativ
Üstdən fərqli olaraq:

Köhnə Linux Komanda Xətti Alətlərinə 5 Müasir Alternativ
Bundan əlavə, htop yuxarıda sistem haqqında ümumi məlumatı və aşağıda funksiya düymələrindən istifadə edərək əmrləri yerinə yetirmək üçün panel göstərir. Konfiqurasiya ekranını açmaq üçün F2 düyməsini basaraq onu konfiqurasiya edə bilərsiniz. Parametrlərdə siz rəngləri dəyişə, ölçüləri əlavə edə və ya silə və ya icmal panelinin ekran seçimlərini dəyişə bilərsiniz.

Üstün ən son versiyalarının parametrlərini dəyişdirməklə oxşar istifadəyə nail ola bilsəniz də, htop onu daha praktik və istifadəni asanlaşdıran rahat standart konfiqurasiyaları təmin edir.

3. tldr insana qarşı

tldr komanda xətti aləti əmrlər haqqında sadələşdirilmiş yardım məlumatını, əsasən nümunələri göstərir. Cəmiyyət tərəfindən hazırlanmışdır tldr pages layihəsi.

Qeyd etmək lazımdır ki, tldr insanı əvəz etmir. Bu, hələ də kanonik və ən əhatəli insan səhifəsi çıxış vasitəsidir. Ancaq bəzi hallarda insan lazımsızdır. Komanda haqqında hərtərəfli məlumata ehtiyacınız olmadıqda, sadəcə onun əsas istifadələrini xatırlamağa çalışırsınız. Məsələn, curl əmri üçün man səhifəsində demək olar ki, 3000 sətir var. Curl üçün tldr səhifəsi 40 sətir uzunluğundadır. Onun fraqmenti belə görünür:


$ 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 “çox uzun” deməkdir; oxumadı”: yəni bəzi mətnlər həddən artıq təfərrüatlı olduğu üçün nəzərə alınmadı. Ad bu alət üçün uyğundur, çünki insan səhifələri faydalı olsa da, bəzən çox uzun ola bilər.

Fedora üçün tldr Python-da yazılmışdır. Onu dnf meneceri ilə quraşdıra bilərsiniz. Tipik olaraq, alət işləmək üçün internet tələb edir. Lakin Fedora-nın Python müştərisi bu səhifələrin endirilməsinə və oflayn daxil olmaq üçün yaddaşda saxlanmasına imkan verir.

4.jq vs sed/grep

jq komanda xətti üçün JSON prosessorudur. O, sed və ya grep-ə bənzəyir, lakin xüsusi olaraq JSON məlumatları ilə işləmək üçün nəzərdə tutulub. Əgər siz gündəlik işlərdə JSON-dan istifadə edən tərtibatçı və ya sistem administratorusunuzsa, bu sizin üçün alətdir.

jq-ın grep və sed kimi standart mətn emal alətləri ilə müqayisədə əsas üstünlüyü ondan ibarətdir ki, o, JSON məlumat strukturunu başa düşür və bir ifadədə mürəkkəb sorğular yaratmağa imkan verir.

Məsələn, siz bu JSON faylında konteyner adlarını tapmağa çalışırsınız:

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

Sətir adını tapmaq üçün grep-i işə salın:

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

grep sözü adı olan bütün sətirləri qaytardı. Onu məhdudlaşdırmaq üçün grep-ə bir neçə daha çox seçim əlavə edə və konteyner adlarını tapmaq üçün bəzi müntəzəm ifadə manipulyasiyasından istifadə edə bilərsiniz.

jq istifadə edərək eyni nəticəni əldə etmək üçün yazmaq kifayətdir:

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

Bu əmr sizə hər iki konteynerin adını verəcəkdir. Yalnız ikinci konteynerin adını axtarırsınızsa, massiv elementinin indeksini ifadəyə əlavə edin:

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

jq verilənlər strukturu haqqında bildiyi üçün fayl formatı bir qədər dəyişsə belə eyni nəticələri verir. grep və sed bu halda düzgün işləməyə bilər.

jq bir çox funksiyaya malikdir, lakin onları təsvir etmək üçün başqa məqalə lazımdır. Əlavə məlumat üçün əlaqə saxlayın layihə səhifəsi jq və ya tldr.

5. fd vs tap

fd find yardım proqramına sadələşdirilmiş alternativdir. Fd onu tamamilə əvəz etmək üçün nəzərdə tutulmayıb: o, standart olaraq quraşdırılmış ən ümumi parametrlərə malikdir, fayllarla işləmək üçün ümumi yanaşmanı müəyyənləşdirir.

Məsələn, Git repository kataloqunda faylları axtararkən fd avtomatik olaraq gizli faylları və alt kataloqları, o cümlədən .git kataloqunu istisna edir və həmçinin .gitignore faylındakı joker işarələrə məhəl qoymur. Ümumiyyətlə, ilk cəhddə daha uyğun nəticələr qaytarmaqla axtarışları sürətləndirir.

Varsayılan olaraq, fd rəng çıxışı ilə cari qovluqda hərflərə həssas olmayan axtarış aparır. Tap əmrindən istifadə edərək eyni axtarış əmr satırına əlavə parametrlərin daxil edilməsini tələb edir. Məsələn, cari qovluqda bütün .md (və ya .MD) fayllarını tapmaq üçün aşağıdakı kimi tapmaq əmrini yazmalısınız:

$ find . -iname "*.md"

fd üçün bu belə görünür:

$ fd .md

Ancaq bəzi hallarda fd əlavə seçimlər də tələb edir: məsələn, gizli faylları və kataloqları daxil etmək istəyirsinizsə, axtarış zamanı adətən bu tələb olunmasa da, -H seçimindən istifadə etməlisiniz.

fd bir çox Linux paylamaları üçün mövcuddur. Fedora-da belə quraşdırıla bilər:

$ sudo dnf install fd-find

Heç nədən imtina etmək lazım deyil

Yeni Linux komanda xətti alətlərindən istifadə edirsiniz? Yoxsa eksklüziv olaraq köhnələrin üstündə oturursunuz? Amma çox güman ki, kombin var, elə deyilmi? Zəhmət olmasa şərhlərdə təcrübənizi bölüşün.

Reklam Hüquqları haqqında

Müştərilərimizin çoxu artıq üstünlükləri yüksək qiymətləndiriblər epik serverlər!
O AMD EPYC prosessorları ilə virtual serverlər, CPU nüvə tezliyi 3.4 GHz-ə qədər. Maksimum konfiqurasiya sizə bir partlayışa imkan verəcək - 128 CPU nüvəsi, 512 GB RAM, 4000 GB NVMe. Sifariş verməyə tələsin!

Köhnə Linux Komanda Xətti Alətlərinə 5 Müasir Alternativ

Mənbə: www.habr.com

Добавить комментарий