Eski Linux buyruq qatori vositalariga 5 ta zamonaviy alternativ

Eski buyruq qatori vositalari bilan bir qatorda zamonaviyroq alternativalardan foydalanish orqali siz ko'proq zavq olishingiz va hatto mahsuldorligingizni oshirishingiz mumkin.

Eski Linux buyruq qatori vositalariga 5 ta zamonaviy alternativ

Linux/Unix-dagi kundalik ishimizda biz ko'plab buyruqlar qatori vositalaridan foydalanamiz - masalan, diskdan foydalanish va tizim resurslarini kuzatish uchun du. Ushbu vositalardan ba'zilari uzoq vaqtdan beri mavjud. Masalan, top 1984 yilda paydo bo'lgan va du ning birinchi nashri 1971 yilga to'g'ri keladi.

Yillar davomida ushbu vositalar modernizatsiya qilindi va turli tizimlarga o'tkazildi, lekin umuman olganda, ular birinchi versiyalaridan uzoqqa ketmadi, tashqi ko'rinishi va foydalanish qulayligi ham unchalik o'zgarmadi.

Bu ko'plab tizim ma'murlariga kerak bo'lgan ajoyib vositalar. Biroq, jamiyat qo'shimcha imtiyozlarni taklif qiluvchi muqobil vositalarni ishlab chiqdi. Ulardan ba'zilari oddiygina zamonaviy, chiroyli interfeysga ega, boshqalari esa foydalanishni sezilarli darajada yaxshilaydi. Ushbu tarjimada biz standart Linux buyruq qatori vositalariga beshta alternativa haqida gapiramiz.

1. ncdu vs du

NCurses Diskdan foydalanish (ndu) duga o'xshaydi, lekin la'natlar kutubxonasiga asoslangan interaktiv interfeysga ega. ncdu disk maydonining katta qismini egallagan katalog tuzilishini ko'rsatadi.

ncdu diskni tahlil qiladi va keyin eng ko'p ishlatiladigan kataloglar yoki fayllar bo'yicha saralangan natijalarni ko'rsatadi, masalan:

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

O'q tugmalari yordamida yozuvlar bo'ylab harakat qilishingiz mumkin. Agar siz Enter tugmasini bossangiz, ncdu tanlangan katalog tarkibini ko'rsatadi:

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

Ushbu vositadan, masalan, qaysi fayllar diskda eng ko'p joy egallashini aniqlash uchun foydalanishingiz mumkin. Chap strelka tugmachasini bosish orqali oldingi katalogga o'tishingiz mumkin. ncdu yordamida siz d tugmachasini bosib fayllarni o'chirishingiz mumkin. Oʻchirishdan oldin tasdiqlashni soʻraydi. Agar siz qimmatbaho fayllarning tasodifiy yo'qolishini oldini olish uchun o'chirish funksiyasini o'chirib qo'ymoqchi bo'lsangiz, faqat o'qish uchun kirish rejimini yoqish uchun -r opsiyasidan foydalaning: ncdu -r.

ncdu ko'plab Linux platformalari va distributivlari uchun mavjud. Masalan, uni Fedora-ga to'g'ridan-to'g'ri rasmiy omborlardan o'rnatish uchun dnf dan foydalanishingiz mumkin:

$ sudo dnf install ncdu

2. htop vs top

htop yuqoriga o'xshash interaktiv jarayonni ko'ruvchidir, lekin qutidan tashqarida u yoqimli foydalanuvchi tajribasini taqdim etadi. Odatiy bo'lib, htop yuqoridagi kabi ma'lumotlarni ko'rsatadi, lekin ko'proq vizual va rang-barang tarzda.

Sukut bo'yicha htop quyidagicha ko'rinadi:

Eski Linux buyruq qatori vositalariga 5 ta zamonaviy alternativ
Yuqoridan farqli o'laroq:

Eski Linux buyruq qatori vositalariga 5 ta zamonaviy alternativ
Bundan tashqari, htop yuqori qismida tizim haqida umumiy ma'lumotni va pastki qismdagi funktsiya tugmachalari yordamida buyruqlarni bajarish panelini ko'rsatadi. Konfiguratsiya ekranini ochish uchun F2 tugmasini bosish orqali uni sozlashingiz mumkin. Sozlamalarda siz ranglarni o'zgartirishingiz, ko'rsatkichlarni qo'shishingiz yoki olib tashlashingiz yoki umumiy ko'rinish panelini ko'rsatish parametrlarini o'zgartirishingiz mumkin.

Yuqorining so'nggi versiyalari sozlamalarini o'zgartirish orqali shunga o'xshash qulaylikka erishishingiz mumkin bo'lsa-da, htop qulay standart konfiguratsiyalarni taqdim etadi, bu esa uni yanada amaliy va foydalanishni osonlashtiradi.

3. tldr vs man

Tldr buyruq qatori vositasi buyruqlar haqida soddalashtirilgan yordam ma'lumotlarini, asosan misollarni ko'rsatadi. U jamiyat tomonidan ishlab chiqilgan tldr sahifalari loyihasi.

Shuni ta'kidlash kerakki, tldr insonning o'rnini bosa olmaydi. Bu hali ham kanonik va eng keng qamrovli odam sahifasini chiqarish vositasidir. Biroq, ba'zi hollarda odam ortiqcha bo'ladi. Buyruq haqida toʻliq maʼlumot kerak boʻlmasa, siz uning asosiy qoʻllanilishini eslab qolishga harakat qilasiz. Masalan, curl buyrug'i uchun man sahifasi deyarli 3000 qatorni o'z ichiga oladi. Curl uchun tldr sahifasi 40 qatordan iborat. Uning bo'lagi quyidagicha ko'rinadi:


$ 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 "juda uzoq" degan ma'noni anglatadi; o‘qimagan”: ya’ni ba’zi matnlar haddan tashqari so‘zliligi tufayli e’tiborga olinmagan. Ushbu nom ushbu vositaga mos keladi, chunki man sahifalari foydali bo'lsa-da, ba'zan juda uzun bo'lishi mumkin.

Fedora uchun tldr Pythonda yozilgan. Siz uni dnf menejeri yordamida o'rnatishingiz mumkin. Odatda, vosita ishlashi uchun Internetga kirish kerak. Ammo Fedora-ning Python mijozi ushbu sahifalarni oflayn kirish uchun yuklab olish va keshlash imkonini beradi.

4.jq va sed/grep

jq - bu buyruq qatori uchun JSON protsessori. U sed yoki grepga o'xshaydi, lekin JSON ma'lumotlari bilan ishlash uchun maxsus ishlab chiqilgan. Agar siz kundalik vazifalarda JSON-dan foydalanadigan dasturchi yoki tizim ma'muri bo'lsangiz, bu siz uchun vositadir.

Jq ning grep va sed kabi standart matnni qayta ishlash vositalaridan asosiy afzalligi shundaki, u JSON ma'lumotlar strukturasini tushunadi, bu sizga bitta ifodada murakkab so'rovlarni yaratish imkonini beradi.

Masalan, siz ushbu JSON faylida konteyner nomlarini topishga harakat qilyapsiz:

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

String nomini topish uchun grep ni ishga tushiring:

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

grep so'z nomini o'z ichiga olgan barcha qatorlarni qaytardi. Siz uni cheklash uchun grep-ga yana bir nechta variantni qo'shishingiz va konteyner nomlarini topish uchun ba'zi muntazam ifoda manipulyatsiyasidan foydalanishingiz mumkin.

jq yordamida bir xil natijaga erishish uchun shunchaki yozing:

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

Bu buyruq sizga ikkala konteyner nomini beradi. Agar siz faqat ikkinchi konteyner nomini izlayotgan bo'lsangiz, iboraga massiv elementi indeksini qo'shing:

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

jq ma'lumotlar strukturasi haqida bilganligi sababli, fayl formati biroz o'zgargan taqdirda ham bir xil natijalarni beradi. grep va sed bu holda to'g'ri ishlamasligi mumkin.

jq juda ko'p funktsiyalarga ega, ammo ularni tavsiflash uchun boshqa maqola kerak. Qo'shimcha ma'lumot uchun murojaat qiling loyiha sahifasi jq yoki tldr.

5. fd va topish

fd find yordam dasturiga soddalashtirilgan muqobildir. Fd uni to'liq almashtirish uchun mo'ljallanmagan: u sukut bo'yicha o'rnatilgan eng keng tarqalgan sozlamalarga ega bo'lib, fayllar bilan ishlashning umumiy yondashuvini belgilaydi.

Masalan, Git ombori katalogidagi fayllarni qidirishda fd avtomatik ravishda yashirin fayllar va pastki kataloglarni, shu jumladan .git katalogini chiqarib tashlaydi, shuningdek, .gitignore faylidagi joker belgilarga e'tibor bermaydi. Umuman olganda, u birinchi urinishda ko'proq mos natijalarni qaytarish orqali qidiruvlarni tezlashtiradi.

Odatiy bo'lib, fd joriy katalogda rangli chiqishi bilan kichik harflarsiz qidiruvni amalga oshiradi. Find buyrug'i yordamida bir xil qidiruv buyruq satriga qo'shimcha parametrlarni kiritishni talab qiladi. Masalan, joriy katalogdagi barcha .md (yoki .MD) fayllarni topish uchun siz quyidagi kabi find buyrug'ini yozasiz:

$ find . -iname "*.md"

fd uchun bu shunday ko'rinadi:

$ fd .md

Ammo ba'zi hollarda fd qo'shimcha variantlarni ham talab qiladi: masalan, agar siz yashirin fayllar va kataloglarni qo'shmoqchi bo'lsangiz, -H opsiyasidan foydalanishingiz kerak, garchi bu odatda qidirishda talab qilinmaydi.

fd ko'pgina Linux distributivlari uchun mavjud. Fedora-da u quyidagicha o'rnatilishi mumkin:

$ sudo dnf install fd-find

Hech narsadan voz kechishingiz shart emas

Siz yangi Linux buyruq qatori vositalaridan foydalanyapsizmi? Yoki faqat eskilariga o'tirasizmi? Lekin sizda kombinat bor, shunday emasmi? Iltimos, sharhlarda tajribangizni baham ko'ring.

Reklama huquqlari to'g'risida

Ko'pgina mijozlarimiz imtiyozlarni allaqachon qadrlashdi epik serverlar!
bu AMD EPYC protsessorlari bilan virtual serverlar, CPU yadro chastotasi 3.4 gigagertsgacha. Maksimal konfiguratsiya sizga portlash imkonini beradi - 128 protsessor yadrosi, 512 GB RAM, 4000 GB NVMe. Buyurtma berishga shoshiling!

Eski Linux buyruq qatori vositalariga 5 ta zamonaviy alternativ

Manba: www.habr.com

a Izoh qo'shish