Skip to main content

Text Editors Tutorial

Linux tizimida matn tahrirlovchilar DevOps muhandislari uchun eng muhim vositalardan biridir. Har bir editor o'zining afzalliklari va kamchiliklariga ega.

nano - Boshlang'ich Foydalanuvchilar Uchun

nano ga Kirish

nano - bu oddiy va oson foydalaniladigan terminal-based matn tahrirlovchi. Yangi boshlaganlar uchun eng yaxshi tanlov.

nano ni Ishga Tushirish

# Yangi fayl yaratish
nano filename.txt

# Mavjud faylni ochish
nano /etc/nginx/nginx.conf

# Readonly mode da ochish
nano -v filename.txt

# Line numbers bilan ochish
nano -l filename.txt

# Auto-indent bilan
nano -i filename.txt

# Tab size o'rnatish
nano -T 4 filename.txt

nano da Asosiy Harakat Tugmalari

nano'da barcha buyruqlar ekranning pastki qismida ko'rsatiladi:

Ctrl + G    Help menu ni ochish
Ctrl + X Chiqish (saqlash so'rashi bilan)
Ctrl + O Saqlash (Write Out)
Ctrl + R Boshqa faylni o'qish/qo'shish
Ctrl + W Qidirish
Ctrl + \ Qidirish va almashtirish
Ctrl + K Qatorni kesish
Ctrl + U Kesgan qatorni qo'yish
Ctrl + J Justify (matnni tekislash)
Ctrl + T Spell checker
Ctrl + C Cursor pozitsiyasini ko'rsatish
Ctrl + _ Ma'lum qatorga o'tish

nano da Navigation

Ctrl + A    Qator boshiga
Ctrl + E Qator oxiriga
Ctrl + Y Sahifa yuqoriga
Ctrl + V Sahifa pastga
Ctrl + F Bir belgi o'ngga
Ctrl + B Bir belgi chapga
Ctrl + P Yuqori qatorga
Ctrl + N Pastki qatorga
Alt + A Mark text boshlanishi
Alt + 6 Copy marked text
Ctrl + K Cut marked text yoki joriy qator
Ctrl + U Paste

DevOps uchun nano Amaliy Misollar

# SSH konfiguratsiyasini tahrirlash
nano ~/.ssh/config

# Nginx virtual host yaratish
sudo nano /etc/nginx/sites-available/mysite

# Environment variables tahrirlash
nano ~/.bashrc

# Docker compose fayl yaratish
nano docker-compose.yml

# Kubernetes deployment yaratish
nano deployment.yaml

# Crontab tahrirlash
crontab -e # nano ni default editor sifatida tanlasa

nano Konfiguratsiyasi

~/.nanorc faylida nano ni konfiguratsiya qilish mumkin:

# ~/.nanorc
set linenumbers # Line numbers ko'rsatish
set mouse # Mouse support
set smooth # Smooth scrolling
set tabsize 4 # Tab size
set autoindent # Auto indentation
set cut # Cut empty lines
include /usr/share/nano/*.nanorc # Syntax highlighting

vim - Kuchli va Samarali Editor

vim ga Kirish

vim (Vi IMproved) - bu juda kuchli va professional matn tahrirlovchi. O'rganish qiyin, lekin o'rgangandan keyin juda samarali.

vim Modes (Rejimlar)

vim da 3 ta asosiy rejim mavjud:

  1. Normal Mode (Default) - Navigation va buyruqlar
  2. Insert Mode - Matn yozish
  3. Command Mode - Buyruqlar berish

vim ni Ishga Tushirish

# Yangi fayl yaratish
vim filename.txt

# Mavjud faylni ochish
vim /etc/hosts

# Read-only mode
vim -R filename.txt

# Multiple files
vim file1.txt file2.txt

# Specific line ga ochish
vim +25 filename.txt

# Pattern bilan ochish
vim +/pattern filename.txt

# Binary mode
vim -b filename

vim da Rejimlar Orasida O'tish

Normal Mode dan Insert Mode ga:
i Insert - cursor oldidan
a Append - cursor keyinidan
o New line - pastga yangi qator
O New line - yuqoriga yangi qator
I Insert - qator boshidan
A Append - qator oxiridan

Insert Mode dan Normal Mode ga:
Esc Escape tugmasi

Normal Mode dan Command Mode ga:
: Colon tugmasi

vim Normal Mode Commands

h          Chapga
j Pastga
k Yuqoriga
l O'ngga

w Keyingi so'z boshiga
b Oldingi so'z boshiga
e So'z oxiriga

0 Qator boshiga
$ Qator oxiriga
^ Qatordagi birinchi belgiga

gg Fayl boshiga
G Fayl oxiriga
5G 5-qatorga o'tish

Ctrl+f Sahifa pastga
Ctrl+b Sahifa yuqoriga
Ctrl+d Yarim sahifa pastga
Ctrl+u Yarim sahifa yuqoriga

Editing Commands

x          Belgi o'chirish
dd Qatorni o'chirish
dw So'zni o'chirish
d$ Qator oxirigacha o'chirish
d0 Qator boshigacha o'chirish

yy Qatorni copy qilish
yw So'zni copy qilish
y$ Qator oxirigacha copy

p Paste (keyindan)
P Paste (oldindan)

u Undo
Ctrl+r Redo

. Oxirgi commandni takrorlash

Search and Replace

/pattern   Qidirish (oldinga)
?pattern Qidirish (orqaga)
n Keyingi match
N Oldingi match

:%s/old/new/g Barchasini almashtirish
:%s/old/new/gc Tasdiqlash bilan almashtirish
:5,10s/old/new/g 5-10 qatorlarda almashtirish

vim Command Mode

File Operations

:w         Saqlash
:w filename Boshqa nom bilan saqlash
:wq Saqlash va chiqish
:q Chiqish
:q! Majburan chiqish (saqlamasdan)
:x Saqlash va chiqish (ZZ bilan bir xil)

:e filename Boshqa faylni ochish
:e! Faylni qayta yuklash
:r filename Boshqa faylni qo'shish

Line Operations

:25        25-qatorga o'tish
:$ Oxirgi qatorga
:1 Birinchi qatorga
:.,$d Joriy qatordan oxirigacha o'chirish
:5,10d 5-10 qatorlarni o'chirish
:5,10y 5-10 qatorlarni copy qilish

Settings

:set number      Line numbers ko'rsatish
:set nonumber Line numbers yashirish
:set hlsearch Search highlight
:set nohlsearch Search highlight o'chirish
:set tabstop=4 Tab size
:set expandtab Tab ni space ga aylantrish
:syntax on Syntax highlighting yoqish

DevOps uchun vim Amaliy Misollar

1. Configuration File Editing

# Apache virtual host tahrirlash
sudo vim /etc/apache2/sites-available/000-default.conf

# vim da:
# - /DocumentRoot/ bilan qidirish
# - i bilan insert mode
# - path o'zgartirish
# - Esc, :wq bilan saqlash va chiqish

2. Log File Analysis

# Log faylni ochish
vim /var/log/nginx/error.log

# vim da:
# - G bilan oxiriga o'tish
# - ?ERROR bilan error qidirish
# - n bilan keyingi error topish

3. Multi-file Editing

# Multiple files ochish
vim nginx.conf ssl.conf

# vim da:
:n # Keyingi fayl
:prev # Oldingi fayl
:files # Ochiq fayllar ro'yxati
:e file3 # Uchinchi fayl qo'shish

4. Advanced Editing Techniques

# vim da macro recording
qa # 'a' registriga macro yozishni boshlash
# ... buyruqlar ...
q # Macro yozishni tugatish
@a # 'a' macrosini ishga tushirish
@@ # Oxirgi macrosini takrorlash

# Visual mode
v # Character visual mode
V # Line visual mode
Ctrl+v # Block visual mode

# Block operations
Ctrl+v # Block select
I # Insert at beginning of each line
A # Append at end of each line

vim Konfiguratsiyasi (.vimrc)

~/.vimrc faylida vim ni konfiguratsiya qilish:

# ~/.vimrc
set number " Line numbers
set tabstop=4 " Tab size
set shiftwidth=4 " Indent size
set expandtab " Use spaces instead of tabs
set autoindent " Auto indentation
set hlsearch " Highlight search
set incsearch " Incremental search
set ignorecase " Case insensitive search
set smartcase " Smart case search
syntax on " Syntax highlighting
set mouse=a " Mouse support

" Color scheme
colorscheme desert

" Key mappings
map <F2> :w<CR> " F2 for save
map <F3> :q<CR> " F3 for quit

" DevOps specific settings
autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab
autocmd FileType json setlocal ts=2 sts=2 sw=2 expandtab

emacs - GNU Emacs Editor

emacs ga Kirish

emacs - bu kuchli va kengaytirilishi mumkin bo'lgan matn tahrirlovchi. "An extensible, customizable, free/libre text editor — and more."

emacs ni Ishga Tushirish

# Terminal mode da
emacs filename.txt

# GUI mode da
emacs &

# Terminal mode da majburlash
emacs -nw filename.txt

# No init file
emacs -q filename.txt

emacs Key Bindings (Tugma Birikmalari)

emacs da C- Control tugmasini, M- Meta (Alt) tugmasini bildiradi.

File Operations

C-x C-f    Find file (ochish)
C-x C-s Save file
C-x C-w Save as
C-x C-c Exit emacs
C-x C-v Find alternative file
C-f        Forward character
C-b Backward character
C-p Previous line
C-n Next line
C-a Beginning of line
C-e End of line
M-f Forward word
M-b Backward word
M-< Beginning of buffer
M-> End of buffer
C-v Page down
M-v Page up

Editing

C-d        Delete character
M-d Delete word
C-k Kill line
M-k Kill sentence
C-w Cut region
M-w Copy region
C-y Paste (yank)
C-/ Undo
C-x u Undo

Search and Replace

C-s        Forward search
C-r Reverse search
M-% Query replace
M-x replace-string Replace all

Windows and Buffers

C-x 2      Split window horizontally
C-x 3 Split window vertically
C-x 1 Close other windows
C-x 0 Close current window
C-x o Switch to other window
C-x b Switch buffer
C-x k Kill buffer
C-x C-b List buffers

DevOps uchun emacs Amaliy Misollar

1. Configuration Management

# emacs da YAML file tahrirlash
emacs kubernetes-deployment.yaml

# emacs da:
# M-x yaml-mode (agar installed bo'lsa)
# Syntax highlighting va indentation

2. Multiple Files

# emacs da:
C-x C-f # New file ochish
C-x b # Buffer switch
C-x 2 # Window split
C-x o # Window switch

3. emacs Packages

;; ~/.emacs yoki ~/.emacs.d/init.el
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/"))
(package-initialize)

;; DevOps uchun foydali packages
;; - yaml-mode
;; - dockerfile-mode
;; - terraform-mode
;; - ansible-mode
;; - kubernetes-mode

Editor Tanlash Bo'yicha Tavsiyalar

nano - Qachon Foydalanish

  • Yangi boshlaganlar uchun
  • Tez kichik o'zgarishlar uchun
  • Remote server'larda qisqa tahrirlash
  • Script'larda automatic editing uchun
# Script'da nano ishlatish
echo "new_setting=value" | sudo tee -a /etc/config.conf
# yoki
sudo nano /etc/config.conf

vim - Qachon Foydalanish

  • Katta fayllar bilan ishlash
  • Professional development
  • Remote server'larda intensive work
  • Performance muhim bo'lganda
# vim shortcuts for DevOps
# Configuration file quick edit
vim /etc/nginx/nginx.conf +25 # 25-qatordan boshlash

# Multiple files
vim *.yaml # Barcha yaml fayllar

# Read-only viewing
view /var/log/syslog # vim readonly mode

emacs - Qachon Foydalanish

  • IDE kabi imkoniyatlar kerak bo'lganda
  • Programming development
  • Extensive customization uchun
  • Long editing sessions

Amaliy DevOps Stsenarilar

1. Emergency Configuration Fix

# Server'da muammo, tezda nginx config tuzatish kerak
sudo nano /etc/nginx/nginx.conf
# yoki vim bilan
sudo vim /etc/nginx/nginx.conf

2. Log File Investigation

# Katta log faylni tahlil qilish
vim /var/log/syslog
# vim da:
# - /ERROR bilan error qidirish
# - n bilan keyingi error
# - G bilan oxiriga

3. Script Writing

# Deployment script yozish
vim deploy.sh
# vim da:
# - :set number
# - Syntax highlighting
# - Easy navigation

4. Configuration Templates

# Docker compose template
nano docker-compose.yml
# Template structure:
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"

5. Kubernetes Manifest Editing

# vim bilan YAML editing
vim deployment.yaml
# vim da YAML uchun settings:
# :set tabstop=2
# :set expandtab
# :set autoindent

Editor Productivity Tips

1. Environment Variables

# Default editor o'rnatish
export EDITOR=vim
export VISUAL=vim

# Git uchun editor
git config --global core.editor vim

2. Aliases

# .bashrc da
alias v='vim'
alias n='nano'
alias e='emacs -nw'

3. Quick Edit Functions

# .bashrc da
function vconf() {
vim ~/.bashrc
}

function reload() {
source ~/.bashrc
}

Bu tutorial text editor'lar bo'yicha DevOps engineers uchun zarur bo'lgan barcha asosiy ma'lumotlarni qamrab oladi. Har bir editor o'z joyida foydali va maqsadga muvofiq tanlov qilish muhimdir.