Terminal matn muharrirlari: Nano va Vim
Serverda grafik interfeys ko‘pincha bo‘lmaydi. SSH orqali konfiguratsiyadagi bitta qiymatni tuzatish, cron yozuvini ko‘rish yoki vaqtinchalik fayl tayyorlash uchun terminal muharriri kerak bo‘ladi. Nano tez o‘rganiladi; Vimning modal ishlash usuli esa ko‘p fayl va takroriy tahrirda samaraliroq. Aslida qaysi muharrirni tanlashdan ham muhimrog‘i — bitta odat: tahrirdan oldin backup olish, so‘ng fayl mazmuni va faqat rejalashtirgan o‘zgarishni tekshirish.
Misollarni fayl va kataloglar maqolasidagi ~/lab test muhitida bajaring. $ promptini yozmang.
Tahrirdan oldingi xavfsiz ish oqimi
Muharrir sintaksisni bilmaydi: u noto‘g‘ri yozilgan Nginx direktivasini ham bemalol saqlab qo‘yaveradi. Shuning uchun avval laboratoriya faylini yarating:
Nano ichida server_name=demo, port=8080 va mode=test qatorlarini alohida yozing. Ctrl+O, Enter, keyin
Ctrl+X bilan saqlab chiqing. Shundan so‘ng tahrirdan oldingi nusxani oling:
Tahrirdan keyin umumiy tekshiruv:
Hozircha ikkala fayl mazmunini ketma-ket ko‘rib, qaysi qator o‘zgarganini o‘zingiz solishtiring. Farqni avtomatik topadigan vositalarni keyingi matn va qidiruv mavzularida o‘rganamiz. Muhim qoida esa o‘zgarmaydi: backup tahrirdan oldin olinadi, tahrirdan keyin faqat rejalashtirgan qatorlar o‘zgarganini tekshirasiz.
Warning
/etc ostidagi real konfiguratsiyani birinchi mashq sifatida tahrirlamang. VM snapshot va fayl backupisiz
ishlamang. Rootga tegishli fayl uchun sudo kerak bo‘lishi mumkin, ammo yuqori huquq muharrirdagi xatodan himoya
qilmaydi.
Nano: sodda va ko‘rsatmali muharrir
Ubuntu Serverda Nano o‘rnatilgan bo‘lsa, faylni quyidagicha oching:
Ekranning pastki ikki qatorida tezkor tugmalar ko‘rsatib turiladi. U yerdagi ^ belgisi Ctrlni, M- esa Meta
tugmasini anglatadi; odatda Meta Alt bilan ishlaydi. Masalan, ^O — bu Ctrl+O; uni ^ va O belgilarini
ketma-ket yozish deb tushunmang.
Kundalik Nano tugmalari
| Amal | Tugma |
|---|---|
| yordam | Ctrl+G |
| qidirish | Ctrl+W |
| keyingi moslik | Alt+W |
| joriy faylga yozish | Ctrl+O, so‘ng Enter |
| joriy qatorni kesish | Ctrl+K |
| kesilgan matnni qo‘yish | Ctrl+U |
| bekor qilish / qaytarish | Alt+U / Alt+E |
| qator va ustunga o‘tish | Alt+G |
| chiqish | Ctrl+X |
Ctrl+Odan keyin Nano fayl nomini tasdiqlashni so‘raydi. Nomni tasodifan o‘zgartirmaganingizga ishonch hosil qilib,
Enter bosing. Agar saqlanmagan o‘zgarish bilan Ctrl+X bossangiz, Nano saqlashni so‘raydi: Y — ha, N — yo‘q,
Ctrl+C — chiqishni bekor qilish.
Faylni qator raqamlari bilan ochish va aniq qatorga o‘tish:
Bu faylni 2-qator, 1-ustunda ochadi. Parametrlar Nano versiyasiga qarab farq qilishi mumkin, shuning uchun o‘z
tizimingizda nano --help va man nano bilan tekshirib oling.
Nano bilan kichik mashq
port=8080niport=9090ga o‘zgartiring.Ctrl+Wbilanmodeni toping.mode=testnimode=stagingga aylantiring.Ctrl+O,Enter,Ctrl+Xorqali saqlab chiqing.-
Terminalda tekshiring:
Vim: rejimlarga asoslangan muharrir
vi — POSIX muharriri an’anasi, vim esa uning kengaytirilgan varianti (Vi Improved). Ubuntuning minimal
o‘rnatmasida vi o‘rnida soddaroq Vim yoki boshqa mos muharrir bo‘lishi mumkin. Avval nimasi borligini tekshiring:
vim topilmasa, bu maqola uchun paket o‘rnatish shart emas: mavjud vini ishlating yoki Nano bilan davom eting. Paket
boshqaruvi alohida mavzuda o‘tiladi.
Uch asosiy rejim
Vimdagi chalkashliklarning aksariyati aynan rejimni bilmaslikdan kelib chiqadi:
- Normal rejim — yurish, o‘chirish, nusxalash va buyruqlar uchun; muharrir shu rejimda ochiladi.
- Insert rejim — matn kiritish uchun;
i,a,okabi tugmalar bilan kiriladi. - Command-line rejim — saqlash, chiqish va sozlash uchun; Normal rejimdan
:bilan boshlanadi.
Qaysi rejimda ekaningizga ishonchingiz bo‘lmasa, Esc bosing: u odatda sizni Normal rejimga qaytaradi. So‘ng kerakli
amalni bajaring.
Normal --i/a/o--> Insert
Insert --Esc----> Normal
Normal --:------> Command-line --Enter/Esc--> Normal
Minimal Vim buyruqlari
Normal rejimda:
| Amal | Buyruq |
|---|---|
| chap, past, yuqori, o‘ng | h, j, k, l |
| keyingi / oldingi so‘z | w / b |
| qator boshi / oxiri | 0 / $ |
| insert / qator oxiridan insert | i / A |
| pastda yangi qator | o |
| qatorni o‘chirish | dd |
| qatorni nusxalash va qo‘yish | yy, keyin p |
| bekor qilish / qaytarish | u / Ctrl+R |
| oldinga qidirish | /matn, keyin Enter |
| keyingi / oldingi moslik | n / N |
Command-line rejimda:
:w— saqlash;:q— o‘zgarish bo‘lmasa chiqish;:wq— saqlab chiqish;:q!— saqlanmagan o‘zgarishni tashlab chiqish;:set number— qator raqamlarini yoqish;:15— 15-qatorga o‘tish;:help :write—:writehaqida ichki yordam.
Note
:w! ruxsat muammosini sehrli tarzda hal qilib bermaydi. Faylga yozish uchun processda tegishli huquq bo‘lishi
shart. Muharrirni boshidan sudo bilan ochish esa plugin va konfiguratsiyalarni root huquqida ishga tushirib
yuborishi mumkin; productionda jamoaning tasdiqlangan usuliga amal qiling.
Vim bilan nazoratli tahrir
Muharrir ichida:
/portvaEnterbilan kerakli satrni toping.0bilan satr boshiga,wbilan qiymatga yaqinlashing.cw9090, so‘ngEscbosing (cwso‘zni almashtirishni boshlaydi).:set numberbilan qatorlarni ko‘ring.:wqbilan saqlab chiqing.
Tekshiruv:
Ikki natijani ko‘zdan kechirib, port qatoridan boshqa, rejalashtirilmagan qatorlar o‘zgarmaganiga ishonch hosil
qiling.
Vimni xavfsiz o‘rganishning eng qulay yo‘li — vimtutor dasturi. U sizni nusxa fayl ustida mashq qildiradi:
Faqat o‘qish va parallel tahrir
Konfiguratsiyani tasodifan o‘zgartirib qo‘ymasdan ko‘rish uchun oldin o‘tilgan cat kichik faylda yetarli:
Vimda faqat o‘qish niyatini bildirish:
Bu mutlaq xavfsizlik chegarasi emas: ayrim holatlarda yozishni majburan amalga oshirish mumkin. Kichik faylni faqat
ko‘rish uchun cat eng sodda tanlov; katta matnni sahifalab ko‘rishni keyingi maxsus maqolada o‘rganamiz.
Bir fayl boshqa sessiyada ochilgan bo‘lsa, Vim swap fayl haqida ogohlantirishi mumkin. Bu ogohlantirishni ko‘r-ko‘rona
chetlab o‘tmang: boshqa terminalda shu fayl ochiq qolmaganini, shuningdek recovery kerakmi (vim -r <fayl>) degan
savolni tekshiring. Eski swapni faqat faol sessiya yo‘qligiga va tiklanadigan o‘zgarish qolmaganiga ishonch hosil
qilgach olib tashlash mumkin. Shubha bo‘lsa, faylni o‘zgartirmasdan chiqish xavfsizroq.
Production ssenariysi: konfiguratsiyadagi bitta qiymat
Muammo: service porti o‘zgarishi kerak. Haqiqiy service nomi va validatori dasturga bog‘liq, shuning uchun laboratoriyada umumiy oqimni bajaramiz.
-
Holat va backup:
-
Nano yoki Vimda faqat
portqatorini tahrirlang. -
Backup va yangi faylni ketma-ket ko‘rib chiqing:
-
portqiymati faqat raqamlardan iboratligini va boshqa qatorlar rejasiz o‘zgarmaganini tekshiring. Haqiqiy productionda servicega xos validator ishlatiladi; u tegishli service mavzusida alohida o‘rganiladi. Validatsiya muvaffaqiyatsiz tugasa, service’ni reload qilmang. -
Rollback:
Bu oqim muharrirdan mustaqil ishlaydi: backup va taqqoslash “nima o‘zgardi?”, validator “fayl qabul qilinadimi?”, service tekshiruvi esa “o‘zgarish ishladimi?” degan savolga javob beradi.
Ko‘p uchraydigan xatolar
- Vimda matn yozolmay qolish: ehtimol Normal rejimdasiz;
ibilan Insert rejimga o‘ting. :qchiqarmasligi: saqlanmagan o‘zgarish bor; saqlab chiqish uchun:wq, ataylab tashlab chiqish uchun:q!.- Nano pastidagi
^Oni oddiy harflar deb yozish: bu aslidaCtrl+Otugmalar birikmasi. - faylni
sudobilan ochib, backup va validatsiyani unutish: huquqning oshishi xavfsiz ish oqimini almashtirmaydi. - tahrirdan keyin faqat fayl ochilishini tekshirish: uni backup bilan solishtiring va keyin dasturga xos validatorni ishlating.
- Vim swap ogohlantirishida darhol delete tanlash: avval boshqa sessiya va recovery ehtimolini tekshiring.
- tab va bo‘shliqni ko‘rinishidan bir xil deb qabul qilish: YAML, Python va Makefile kabi formatlarda bu farq muhim.
Amaliy mashqlar
- Nanoda besh qatorli test fayli yarating, qidirish orqali uchinchi qatorni toping va saqlang.
- Vimda shu faylning nusxasida qator raqamlarini yoqing, bir qatorni
yy/pbilan ko‘paytiring,ubilan bekor qiling. - Ikkala natijani
catbilan ketma-ket ko‘ring va aynan qaysi qatorlar farq qilishini yozib chiqing. - Ataylab noto‘g‘ri
port=abcyozing, qiymat formatini ko‘zdan kechiring va backupdan rollback qiling. So‘ng faylni yana ochib, oldingi to‘g‘ri qiymat qaytganini tasdiqlang.
Tekshiruv mezoni: asl backup o‘zgarmagan, yangi faylda faqat rejalashtirgan satrlar almashgan va noto‘g‘ri qiymat backupdan qaytarilgach yo‘qolgan bo‘lsin. Har bir natijani faylni qayta ochib isbotlang.
Xulosa
Nano bir martalik, tez tahrir uchun qulay; Vim esa rejimlari o‘zlashtirilgach takroriy terminal ishlarini tezlashtiradi. Ikkalasi ham faqat vosita: productiondagi ishonchlilik backup, minimal o‘zgarish, sintaksis validatsiyasi va tekshiruvdan keladi. Keyingi matn va qidiruv mavzularida faylni umuman ochmasdan uning mazmunini ko‘rish va kerakli qatorni topishni o‘rganamiz.