Linux ­Kurulu­m ve Y­onetim­i
  • Döküman Hakkında
  • Linux ve GNU'nun Geçmişi
    • CentOS, Debian ve FreeBSD Ana Sürümlerin Farkları
  • Temel Komutlar
    • Temel Terminal Komutları
    • Yardım Dosyaları
    • Dosya İzinleri, Yetkiler, Kullanıcılar ve Gruplar
    • Dosya Düzenleme Araçları
      • nano ve pico
      • vi
    • Sıkıştırılmış Dosyalar
  • Standart Girdi ve Çıktı
    • Standart Çıktı
    • Standart Girdi
    • UNIX Pipeline
    • Olmazsa Olmaz: stdio.h
    • Standart Hata ve File Descriptor
    • Forkbomb
    • Named Pipe
  • Gelişmiş Terminal Komutları
    • Tarih ve Saat Ayarlama
    • Sistem Yükünü İzleme
    • patch ve diff
    • xargs
    • awk ve sed
    • egrep ve Regular Expressions
    • rename
    • Imagemagick ve Görüntü Dosyaları
    • wget
    • Python ile Dosya Sunuculuğu
  • Temel Dağıtımlar
    • RHEL Tabanlı (CentOS, Rocky, Alma)
      • rpm Paketleri
      • DNF Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • Debian
      • deb Paketleri
      • apt Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • FreeBSD
      • Ports ve pkg Yönetimi
      • Güncelleme Teknikleri
      • Network Ayarları
    • Arch Linux
      • pacman ve AUR
      • Network Ayarları
    • Ortak Network Dosyaları
  • SSH
    • Uzak Sunucuya Bağlanma
    • sshd Sunucu Ayarları
    • Private ve Public Anahtarlar
    • Güvenli Dosya Aktarımı
    • sshfs
  • Kernel Boot
    • Sunucu Başlangıcına Genel Bakış
    • Çekirdeğin Yüklenmesi ve Boot Seçenekleri
    • Çekirdek Parametreleri
    • Bootloader Nedir?
  • User Space
    • Başlangıç: Init
    • Init Versiyonunu Belirlemek
    • System V
      • Servislerin Yönetimi
      • Çalışma Seviyeleri (Run Levels)
      • Örnek System V Servis Oluşturma
    • systemd
      • Servislerin Yönetimi
      • Birimler ve Birim Tipleri
      • Örnek systemd Servis Oluşturma
    • Acil Durumlar ve Tek Kullanıcı Modu
  • BASH Programlama
    • Döngüler ve Diğer Kontrol Yöntemleri
    • Menüler
  • Log Dosyaları
    • Log İnceleme ve Filtreleme
  • İnternet Servisleri
    • Bir sayfanın İnternetteki Serüveni
    • Nameserver Servisleri
    • Apache
    • PHP-FPM
    • FTP/FTPS/SFTP
      • vsftpd
      • ProFTPD
      • SFTP
      • Komut Satırından ftp Kullanımı
  • Zamanlanmış Görevler
    • crontab
    • at
  • Veritabanı
    • MySQL
      • MySQL Kurulumu
      • MySQL Servisini Çalıştırmak
      • Veritabanı ve Tablo oluşturmak
      • SQL Tablosuna Veri Eklemek
      • Temel SQL Sorgularına Giriş
        • Birinci bölüm
      • mysqldump ile yedekleme
      • Replikasyon teknikleri
      • Yedekleri içeri alma
    • PostgreSQL
      • PostgreSQL Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • MongoDB
      • MongoDB Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • Redis
      • Redis Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
  • Temel Network Yapılandırması
  • Gelişmiş Network Komutları
    • ip
    • ifconfig
    • route
    • ping
    • traceroute
    • dig
    • nslookup
    • netcat
    • nmap
    • tcpdump
    • Wireshark (Giriş)
    • Bantgenişliği Ölçümü
  • Güvenlik
    • Firewalld
    • IPTables
      • Temel İzinler
      • IP ve Port Engelleme
    • selinux
  • Disk Sistemleri
    • ext
    • zfs
    • lvm
  • RAID
    • RAID Biçimleri
    • Verinin Disklere Yayılması
    • Cache
    • Terimler ve Tavsiyeler
  • Örnek Kurulumlar ve Modern Yaklaşımlar
    • CentOS 7 Tam Sistem Kurulumu (Arşiv)
    • AlmaLinux ile Hosting Ortamı Kurulumu
    • Ubuntu ile Hosting Ortamı Kurulumu
    • Modern Hosting Yaklaşımları (PaaS, Coolify vb.)
  • Konteynerleştirme (Docker / Podman)
  • Yapılandırma Yönetimi (Ansible)
  • İzleme ve Uyarı (Prometheus / Grafana)
  • Nginx Web Sunucusu
  • Kubernetes (Giriş)
  • PCI-DSS ve Linux Sistemleri
  • İndeks
  • Kaynaklar
Powered by GitBook
On this page
  • Tarihçe
  • Çalışma Modları
  • Temel Komutlar (Komut Modu)
  1. Temel Komutlar
  2. Dosya Düzenleme Araçları

vi

vi, terminalde çok satırlı düzenleme yapabilen metin editörlerinin atalarından birisi olarak görülür. 2009'da yapılan bir anket Linux üzerine kullanılan en yaygın metin editörünün %36 ile vi olduğunu göstermektedir. Kompleks işlemleri destekleyen ve hemen her sistemde önyüklü olarak gelen vi haricinde bir diğer popüler metin editörü ise emacs'tir.

Tarihçe

vi editörü aslında oldukça eskiye dayanan bir takım editörlerin evrilmesiyle ortaya çıkmıştır. Editörün çıkış noktası ed isimli editördür. ed Ken Thompson tarafından UNIX işletim sisteminin üç temel yapı taşından biri olarak geliştirilmiştir: assembler, editör ve shell.

ed'in kullanımı zamanla pek "pratik" bulunmadığından, "ölümsüzler" (immortals) tarafından kullanılabileceği espirisiyle, "ölümlüler" (mortals) için em geliştirildi: editor for mortals. em'nin görece yaygınlaşmasının ardından Bill Joy ve Chuck Haley kodu kendilerince şekillendirip en isimli bir versiyonunu geliştirdiler. Daha sonra Bill Joy tek başına en'yi "extend" edip ex'i piyasaya sürdü. ex'e eklenen tam-ekran görsel modu, metin editörlerinin dönüm noktası oldu. Her ne kadar bu fikir piyasadaki başka yazılımlardan alınmış olsa da, en yaygın kullanıma ulaşanı kendisi olmuştu. Zamanla ex'in görsel modu (visual mode) o kadar çok kullanıldı ki, doğrudan vi komutu ile ex programı tam-ekran görsel modunda çalıştırılır oldu.

Yıllar sonra Bram Moolenaar tarafından vi kodu geliştirildi ve vim (Vi IMproved) ortaya çıktı. vim, vi'ın tüm özelliklerini içerirken, üzerine sözdizimi renklendirme (syntax highlighting), çoklu geri alma (undo), görsel mod (visual mode), eklenti desteği gibi birçok modern özellik eklemiştir. Günümüzde çoğu Linux dağıtımında vi komutu aslında vim'in daha kısıtlı bir modda çalışan halini veya doğrudan vim'i çalıştırır. Bu nedenle, genellikle vim'in sunduğu gelişmiş özelliklerden faydalanmak daha pratiktir. Örneklerimizde vim'i temel alacağız.

Çoğu sistemde vim önyüklü gelir. Eğer kurulu değilse, dağıtımınızın paket yöneticisi ile kolayca kurabilirsiniz:

# Debian/Ubuntu tabanlı sistemler:
sudo apt update && sudo apt install vim

# RHEL/CentOS/Fedora tabanlı sistemler:
sudo dnf install vim 
# veya eski sürümlerde:
# sudo yum install vim 

Çalışma Modları

vi'ın bir takım çalışma modları vardır, bu aslında ed'den kalan bir alışkanlıktır. vi ilk çalıştırıldığında komut modunda bulunur, düzenleme moduna geçmek için ayrıca işlem yapmanız gerekir. komut modundayken tuşlara basarsanız yazı yazamazsınız, ancak kopyalama, silme, dosya içinde gezinme benzeri işlemleri gerçekleştirebilirsiniz.

Dosyamızı vi (veya vim) ile aşağıdaki gibi açtığımızda, varsayılan olarak _Komut Modu_nda başlarız.

vim crc8.py 

Komut Modu'ndan Düzenleme (Insert) Modu'na geçmek için çeşitli tuşlar kullanılır:

  • i: İmlecin bulunduğu yerden itibaren eklemeye başlar (insert).

  • a: İmlecin bulunduğu karakterden sonra eklemeye başlar (append).

  • I: Satırın başına geçer ve eklemeye başlar.

  • A: Satırın sonuna geçer ve eklemeye başlar.

  • o: İmlecin bulunduğu satırın altına yeni bir boş satır açar ve ekleme moduna geçer.

  • O: İmlecin bulunduğu satırın üstüne yeni bir boş satır açar ve ekleme moduna geçer.

Düzenleme moduna geçtiğinizde, terminalin en alt satırında genellikle -- INSERT -- veya -- EKLE -- gibi bir ibare belirir. Bu modda klavyeden yazdıklarınız doğrudan dosyaya eklenir.

Düzenleme modundan çıkıp tekrar Komut Modu'na dönmek için klavyenizdeki ESC tuşuna basmanız gerekir. -- INSERT -- yazısı kaybolacaktır. Tüm temel komutlar, silme, kopyalama, yapıştırma işlemleri Komut Modu'nda yapılır.

Temel Komutlar (Komut Modu)

Aşağıdaki komutlar Komut Modu'nda iken çalışır. Bazıları doğrudan harf tuşları ile, bazıları ise : karakteri ile başlar.

Çıkış ve Kaydetme:

  • :q : Değişiklik yapılmadıysa çıkar (quit).

  • :q! : Değişiklikleri kaydetmeden çıkmaya zorlar.

  • :w : Dosyayı kaydeder (write).

  • :wq veya :x veya ZZ (Shift+Z iki kere): Dosyayı kaydedip çıkar.

  • :w yeni_dosya_adi : Dosyayı farklı bir isimle kaydeder.

Navigasyon (Gezinme):

  • h, j, k, l: Sol, aşağı, yukarı, sağ yön tuşları gibi çalışır.

  • w: Sonraki kelimenin başına gider.

  • b: Önceki kelimenin başına gider.

  • 0 (sıfır): Satırın başına gider.

  • $: Satırın sonuna gider.

  • ^: Satırın başındaki ilk karaktere (boşluk olmayan) gider.

  • gg: Dosyanın başına gider.

  • G (Shift+g): Dosyanın sonuna gider.

  • :N (N bir sayı): N numaralı satıra gider (örneğin :17).

  • Ctrl+f: Bir sayfa aşağı gider (forward).

  • Ctrl+b: Bir sayfa yukarı gider (backward).

Silme:

  • x: İmlecin üzerindeki karakteri siler.

  • dw: İmleçten kelimenin sonuna kadar siler (delete word).

  • dd: İmlecin bulunduğu satırı tamamen siler.

  • D (Shift+d) veya d$: İmleçten satır sonuna kadar siler.

Kopyalama ve Yapıştırma:

  • yw: İmleçten kelimenin sonuna kadar kopyalar (yank word).

  • yy veya Y (Shift+y): İmlecin bulunduğu satırı tamamen kopyalar.

  • p: Kopyalanan veya silinen metni imleçten sonra yapıştırır (paste).

  • P (Shift+p): Kopyalanan veya silinen metni imleçten önce yapıştırır.

Geri Alma / Yineleme:

  • u: Son yapılan değişikliği geri alır (undo).

  • Ctrl+r: Geri alınan değişikliği yineler (redo).

Arama:

  • /aranacak_metin: İmleçten itibaren ileriye doğru metin arar. n tuşu sonraki eşleşmeye, N tuşu önceki eşleşmeye gider.

  • ?aranacak_metin: İmleçten itibaren geriye doğru metin arar. n ve N tuşları aynı şekilde çalışır.

Diğer Modlar:

  • v: Görsel Moda (Visual Mode) geçer. Ok tuşları veya navigasyon komutları ile metin seçilebilir. Seçilen metin üzerinde silme (d), kopyalama (y) gibi işlemler yapılabilir.

  • V (Shift+v): Satır bazında Görsel Moda geçer.

  • Ctrl+v: Blok bazında Görsel Moda geçer (dikdörtgen seçim).

Ayarlar (: ile başlayan komutlar):

  • :set number veya :set nu: Satır numaralarını gösterir.

  • :set nonumber veya :set nonu: Satır numaralarını gizler.

  • :set hlsearch: Arama sonuçlarını vurgular.

  • :set nohlsearch: Arama vurgusunu kaldırır.

  • :syntax on: Sözdizimi renklendirmeyi açar (genellikle varsayılan olarak açıktır).

  • :syntax off: Sözdizimi renklendirmeyi kapatır.

Pencere Yönetimi (: ile başlayan komutlar):

  • :split veya :sp: Ekranı yatay olarak ikiye böler, aynı dosyayı gösterir.

  • :vsplit veya :vsp: Ekranı dikey olarak ikiye böler, aynı dosyayı gösterir.

  • :sp dosya_adi: Ekranı yatay böler ve yeni pencerede belirtilen dosyayı açar.

  • :vsp dosya_adi: Ekranı dikey böler ve yeni pencerede belirtilen dosyayı açar.

  • :new: Yeni boş bir pencere açar.

  • Ctrl+w Ctrl+w veya Ctrl+w w: Pencereler arasında geçiş yapar.

  • Ctrl+w h/j/k/l: Yön tuşlarına göre pencereler arasında geçiş yapar.

  • :q (pencere içindeyken): Aktif pencereyi kapatır.

  • :only: Aktif pencere dışındaki tüm pencereleri kapatır.

Bu komutlar vim'in temel kullanımını kapsar. vim çok daha fazla özelliğe ve komuta sahiptir. Daha fazla bilgi için komut modundayken :help yazarak vim'in kendi yardım sistemine başvurabilirsiniz veya vimtutor komutunu çalıştırarak interaktif bir eğitim alabilirsiniz.

Previousnano ve picoNextSıkıştırılmış Dosyalar

Last updated 2 months ago