Linux terminalida profi ishlaymiz: foydali komandalar to'plami (2-qism)
Terminalda samarali ishlaydigan Linux Pro-foydalanuvchilarni ko’rganmisiz? Siz ham xohlaysizmi? Savol emas: bu maqolada biz vaqtni tejashga va samaradorlikni oshirishga yordam beradigan ba’zi foydali buyruqlarning davomini (2-qismini) ko’rib chiqamiz. Maqolaning birinchi qismi bilan bu havolaga o’tib tanishib chiqishingiz mumkin.
Ko’chirilgan kodni terminalga joylashtiramiz (copy-paste)
Bu yerda hammasi bir xil emas, Linux distributivlari va uning terminallari orasida farq mavjud. Lekin umumiy holda matnni quyidagi usullardan birida terminalga joylashtirish mumkin:
- Matnni nusxalash va joylashtirish uchun sichqonchani o’ng tugmasini bosing (Putty va boshqa Windows SSH mijozlarida ishlaydi);
- Matnni nusxalash va joylashtirish uchun o’rta sichqoncha tugmasini (g’ildirakni) bosing;
- Nusxalash uchun Ctrl + Shift + C va joylashtirish uchun Ctrl + Shift + V;
- Ba’zi terminalda emulyatorlarida tanish Ctrl + V kombinatsiyasi ishlaydi.
Ishlaydigan jarayon/buyruqni to’xtatish (process/command)
Ehtimol buni ko’pchilik bilishi mumkin. Agar siz bajarishni xohlagan buyruqni bajarayotgan bo’lsangiz, faqatgina Ctrl + C tugmalarini bosib, buyruqqa chiqib ketish signali (SIGINT) yuboriladi. Agar siz terminalni tezda tark etishni istasangiz, Ctrl + D tugmalarini bosib, bash va boshqa interaktiv dasturlarga to’xtatish buyrug’ini berishingiz mumkin bo’ladi.
Interaktiv javobga (yes) muhtoj bo’lgan skriptlar yoki buyruqlar uchun buyruq
yes
buyrug’i ba’zi script/buyruqlar foydalanuvchidan har safar Y bosishni talab qilgan vaqtda cheksiz unga Y buyruqlarini berish uchun qo’llaniladi.
yes <buyruq yoki skript>
Faylni o’chirmasdan uni tozalash
Agar siz faqat fayl ichini (uning ichidagi ma’lumotni) tozalashingiz kerak va uni o’chirib tashlamasangiz zarur holatlarda, uni quyidagicha qilishingiz mumkin:
> fayl_nomi
Muayyan matnli fayl mavjudligini aniqlang
Linux terminalida siz turli xil usulda fayl kontentidagi matnni qidirishingiz mumkin. Agar muayyan matnli fayl yoki fayllar mavjudligini bilishingiz kerak bo’lsa, ushbu buyruqni ishlatishingiz mumkin:
grep -Pri <qidirish_matni> <qaysi_papkadan_qidirish_yoli>
Har bir buyruq haqida ma’lumot olish
Deyarli barcha buyruqlar o’z yo’riqnomalariga ega. U haqida ma’lumot olish uchun quyidagi buyruqni ishlating:
<buyruq> --help
Bundan tashqari, ba’zida siz man <buyruq>
yordamida buyruq haqida batafsil ma’lumot olishingiz mumkin.
Oldin ishlatilgan buyruqlar ro’yxati
Qachondir ishga tushirilgan barcha buyruqlarni ko’rishni istasangiz, history
buyrug’idan foydalaning. Agar sizga to’liq ro’yxatga kerak bo’lmasa, faqat oxirgi bir nechta buyruqlarni ko’rmoqchi bo’lsangiz,fc-l
buyrug’ini ishlating.
Oldin kiritilgan buyruqni tezda ishga tushirish
Yuqoridagi usullardan birida buyruqlar olganda, har bir komandaning yonida tarixdagi uning soni ko’rsatilgan bo’ladi. Ushbu ro’yxatdan buyruqni tezkor ishga tushirish uchun faqatgina !<buyruq nomeri>
ni kiritsangiz bas.
Buyruqni saqlamasdan bajarish
Agarda siz ishlatmoqchi bo’lgan buyrug’ingiz oldin ishlatilgan buyruqlar ro’yxatida ko’rinishini istamasangiz, shunchaki uning oldidan bitta probel qo’yishingiz yetarli.
Oddiy HTTP serverini ko’taramiz
Server ko’tarish va hozirgi direktoriyani http://localhost:8000/ manzili orqali ko’rinishini istasangiz python3 -m SimpleHTTPServer
buyrug’ini terish kifoya.
Qulaylik bilan uzun buyruqlarni yozamiz
Agar Ctrl tugmasini bosib, keyin navbat bilan X va E tugmalarini bossangiz, unda sizga boshqa matn muharrini ochiladi, siz u yordamida bemalol uzun buyruqlarni yozishingiz va chiqish paytida uni bajartirishingiz mumkin bo’ladi.
Fayl tizimi ma’lumotlari
Mavjud o’rnatilgan fayl tizimlari haqida ma’lumotlarni ustunlar yordamida qulay tarzda ko’rish uchun mount | column -t
buyrug’ini kiriting. Bundan tashqari, tushunarli daraxt shaklidagi ma’lumotlarni ko’rsatadigan va ustunlarni o’zi formatlaydiganfindmnt
buyrug’idan foydalanishingiz va kerakli fayl tizimini topishingiz mumkin:
$ findmnt TARGET SOURCE FSTYPE OPTIONS / /dev/sda4 ext4 rw,relatime,seclabel ├─/sys sysfs sysfs rw,nosuid,nodev,noexec,rela │ ├─/sys/kernel/security securityfs securit rw,nosuid,nodev,noexec,rela │ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,secl │ │ ├─/sys/fs/cgroup/unified cgroup2 cgroup2 rw,nosuid,nodev,noexec,rela │ │ ├─/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,rela │ │ └─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,rela │ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,rela │ ├─/sys/firmware/efi/efivars efivarfs efivarf rw,nosuid,nodev,noexec,rela │ ├─/sys/kernel/config configfs configf rw,relatime │ └─/sys/fs/fuse/connections fusectl fusectl rw,relatime ├─/proc proc proc rw,nosuid,nodev,noexec,rela │ └─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=30,pgrp=1,ti │ └─/proc/sys/fs/binfmt_misc binfmt_misc binfmt_ rw,relatime ├─/home /dev/sda6 ext4 rw,relatime,seclabel └─/var/lib/nfs/rpc_pipefs sunrpc rpc_pip rw,relatime
Buyruqlar daraxti
Chiroyli buyruqlar daraxtlarini chizish mumkin bo’lgan pstree
buyrug’i mavjud. U quyidagicha natija ko’rsatadi:
$ pstree 1721 gnome-shell─┬─Xwayland───5*[{Xwayland}] ├─gnome-system-mo───3*[{gnome-system-mo}] ├─ibus-daemon─┬─ibus-dconf───3*[{ibus-dconf}] │ ├─ibus-engine-sim───2*[{ibus-engine-sim}] │ ├─ibus-extension-───3*[{ibus-extension-}] │ └─2*[{ibus-daemon}] ├─telegram-deskto───14*[{telegram-deskto}] └─13*[{gnome-shell}]
Supershell
Superuser(root) nomidan terminalni ishlatish uchun sudo -s
komandasidan foydalanishingiz mumkin. Ko’p manbalarda, qo’shimcha usulni borligi sababli, sudo su
buyrug’ini topishingiz mumkin.
Fayllarni qidiramiz
Agarda sizga biron faylni qidirish zarur bo’lsa, lekin siz uning qayerda joylashganini bilmasangiz sizga find
buyrug’i yordam beradi.
$ find /usr/include -name gtk.h /usr/include/gtk-3.0/gtk/gtk.h
Kalendar
cal
buyrug’i sizga hozirgi oyning kalendarini chizib berishi (hattoki bugungi kunni belgilab berishi) yoki boshqa biron oraliqni ko’rsatishi mumkin:
$ cal October 2018 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $ cal 2019 2019 January February March Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 2 3 7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10 14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17 21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24 28 29 30 31 25 26 27 28 25 26 27 28 29 30 31 April May June Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 5 1 2 8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9 15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16 22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23 29 30 27 28 29 30 31 24 25 26 27 28 29 30 July August September Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 1 2 3 4 1 8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8 15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15 22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22 29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29 30 October November December Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 1 2 3 1 7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8 14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15 21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22 28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29 30 31
Ob-havo ma’lumotlari
curl wttr.in/<zarur shahar nomi>
buyrug’ini kiriting va siz chiroyli jadval ko’rinishida ob-havo ma’lumotlarini ko’rishingiz mumkin (curl o’rnatilgan bo’lishi lozim):
$ curl wttr.in/Tashkent Weather report: Tashkent, Uzbekistan Smoke .--. 2-3 °C .-( ). ↙ 4 km/h (___.__)__) 4 km 0.0 mm ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Sat 17 Nov ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ Overcast │ Overcast │ \ / Partly cloudy │ \ / Partly cloudy │ │ .--. 7-8 °C │ .--. 12-13 °C │ _ /"".-. 11 °C │ _ /"".-. 10 °C │ │ .-( ). ↖ 7-13 km/h │ .-( ). ↘ 5-6 km/h │ \_( ). ↗ 5-8 km/h │ \_( ). ← 3-6 km/h │ │ (___.__)__) 20 km │ (___.__)__) 20 km │ /(___(__) 20 km │ /(___(__) 20 km │ │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘ ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Sun 18 Nov ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │ │ _ /"".-. 9 °C │ _ /"".-. 12-13 °C │ _ /"".-. 11 °C │ _ /"".-. 10 °C │ │ \_( ). ↖ 5-8 km/h │ \_( ). ↑ 7-8 km/h │ \_( ). ↑ 5-8 km/h │ \_( ). ↙ 4-8 km/h │ │ /(___(__) 20 km │ /(___(__) 20 km │ /(___(__) 20 km │ /(___(__) 20 km │ │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘ ┌─────────────┐ ┌──────────────────────────────┬───────────────────────┤ Mon 19 Nov ├───────────────────────┬──────────────────────────────┐ │ Morning │ Noon └──────┬──────┘ Evening │ Night │ ├──────────────────────────────┼──────────────────────────────┼──────────────────────────────┼──────────────────────────────┤ │ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │ \ / Partly cloudy │ │ _ /"".-. 10 °C │ _ /"".-. 15 °C │ _ /"".-. 13 °C │ _ /"".-. 12 °C │ │ \_( ). ↖ 5-10 km/h │ \_( ). ↘ 5 km/h │ \_( ). ↗ 8-12 km/h │ \_( ). ↙ 5-8 km/h │ │ /(___(__) 20 km │ /(___(__) 20 km │ /(___(__) 20 km │ /(___(__) 20 km │ │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ 0.0 mm | 0% │ └──────────────────────────────┴──────────────────────────────┴──────────────────────────────┴──────────────────────────────┘
ASCII jadvali
ASCII jadvalini ko’rish uchun shunchaki man ascii
buyrug’ini kiriting.
Oddiy kalkulyator
Katta bo’lmagan hisob-kitoblarni terminalning o’zida amalga oshirish mumkin. Buning uchun echo <ifoda> | bc
yoki echo $((<ifoda>))
buyruqlaridan foydalanilishi mumkin.
$ echo 35+42 | bc 77 $ echo $((35+42)) 77
Dastur bajarilishi uchun qaysi kutubxonalar kerakligini aniqlab olamiz
Dastur ishga tushishi uchun qaysi dinamik kutubxonalar zarurligi va ularga qanday ruxsatlar berilganligini bilish uchun lld
buyrug’idan foydalaniladi:
$ ldd /usr/lib/systemd/systemd linux-vdso.so.1 (0x00007fff7e7c6000) libsystemd-shared-239.so => /usr/lib/systemd/libsystemd-shared-239.so (0x00007f265acbd000) librt.so.1 => /lib64/librt.so.1 (0x00007f265ac7e000) libseccomp.so.2 => /lib64/libseccomp.so.2 (0x00007f265ac3a000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f265ac0e000) ... libunistring.so.2 => /lib64/libunistring.so.2 (0x00007f265a076000) libsepol.so.1 => /lib64/libsepol.so.1 (0x00007f2659fc1000) libudev.so.1 => /lib64/libudev.so.1 (0x00007f2659f99000) libm.so.6 => /lib64/libm.so.6 (0x00007f2659e15000)
Fayl ichida nima borligini bilib olamiz
Fayl ichida qaysi turdagi ma’lumot borligini bilish uchun file
buyrug’idan foydalanamiz:
$ file Pictures/wayland-screenshot.png Pictures/wayland-screenshot.png: PNG image data, 1920 x 1080, 8-bit/color RGBA, non-interlaced $ file dev/gnome-builder/src/main.c dev/gnome-builder/src/main.c: C source, UTF-8 Unicode text
Tunnel o’tkazamiz
ssh -N -L 2001:localhost:80 biron_mashina
buyrug’i orqali 80 portdan biron_mashina masofaviy mashinasiga tunnel yaratish mumkin.
Maqolada ko’rsatib o’tmoqchi bo’lgan foydali buyruqlarimiz shulardan iborat edi. Xo’sh, siz qanday foydali linux buyruqlarini bilasiz? O’z variantlaringizni izohlarda qoldiring.