Eski buyruq qatori vositalari bilan bir qatorda zamonaviyroq alternativalardan foydalanish orqali siz ko'proq zavq olishingiz va hatto mahsuldorligingizni oshirishingiz mumkin.
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 (
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
Sukut bo'yicha htop quyidagicha ko'rinadi:
Yuqoridan farqli o'laroq:
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
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
5. fd va topish
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
Manba: www.habr.com