Bir sunucuyu SSH üzerinden yönettiğinizde, önünüzde grafiksel bir arayüz yoktur. Bir Nginx yapılandırmasını değiştirmek, bir ortam değişkenini eklemek ya da bir cron satırı yazmak istediğinizde tek seçeneğiniz terminalin içinde çalışan bir metin düzenleyicidir. İşte tam bu noktada Linux dünyasının iki klasik aracı devreye girer: Nano ve Vim. Bu iki editör neredeyse her sunucuda hazır kuruludur ve sunucu yönetiminin günlük parçasıdır.
Bu rehberde her iki editörü de sıfırdan ele alıyoruz. Yeni başlayanlar için son derece sezgisel olan Nano ile başlayıp, güçlü ama başlangıçta kafa karıştırıcı olan Vim'e geçeceğiz. "Vim'den nasıl çıkarım?" sorusunun neden internetin en çok aranan konularından biri olduğunu ve çözümünü de göreceksiniz. Amacımız, SSH oturumunuzda bir dosya açtığınızda ne yapacağınızı bilmeniz ve panik yaşamadan işinizi tamamlamanız.
Neden Terminal Tabanlı Bir Editöre İhtiyaç Duyarsınız#
Masaüstünüzdeki VS Code ya da Notepad++ gibi editörler grafiksel arayüze ihtiyaç duyar. Oysa bir sunucuya genellikle sadece komut satırıyla, yani SSH ile bağlanırsınız. Uzak sunucuda ekran, fare ya da pencere yoktur; sadece bir terminal oturumu vardır. Bir web sunucusunun yapılandırmasını düzeltmek ya da bir hata günlüğünü incelemek için dosyayı doğrudan sunucunun içinde açmanız gerekir.
Elbette dosyayı yerel makinenize indirip düzenleyip geri yükleyebilirsiniz, ancak bu her seferinde zaman kaybettiren, hataya açık bir yöntemdir. Bir yazım hatasını düzeltmek için üç ayrı adım atmak yerine, dosyayı olduğu yerde açıp iki tuşla değiştirip kaydetmek çok daha hızlıdır. Terminal editörleri tam da bunun için vardır: yapılandırma dosyalarını hızlıca, sunucudan çıkmadan düzenlemek.
SSH bağlantısının kendisiyle ilgili ayrıntıları ve güvenlik önlemlerini SSH bağlantısı ve güvenliği rehberinde bulabilirsiniz. Bu yazıda ise bağlantıyı kurduktan sonra dosyaları nasıl düzenleyeceğinize odaklanıyoruz.
Terminal editörleri ayrıca çok az kaynak tüketir. Yüzlerce megabaytlık RAM kullanan grafiksel uygulamaların aksine, Nano ve Vim düşük belleğe sahip küçük sunucularda bile anında açılır. Ağ bağlantınız yavaş olsa bile terminal üzerinden çalışmak, uzak masaüstüne kıyasla akıcı bir deneyim sunar.
Nano ile Başlamak – En Kolay Yol#
Nano, yeni başlayanların en sevdiği terminal editörüdür çünkü ekranın alt kısmında sık kullanılan komutları sürekli gösterir. Bir dosyayı açmak için nano yazıp dosya adını eklemeniz yeterlidir:
nano /etc/nginx/nginx.conf
Dosya açıldığında imleç doğrudan metnin içindedir. Herhangi bir moda geçmenize gerek yoktur; yazmaya başladığınız an harfler ekrana gelir. Ok tuşlarıyla gezinir, silmek için Backspace ya da Delete kullanırsınız. Tıpkı basit bir not defteri gibi çalışır. Bu doğrudanlık, Nano'yu ilk kez terminal editörü kullananlar için ideal kılar.
Ekranın en altında ^ işaretiyle başlayan kısayolları görürsünüz. Buradaki ^ simgesi klavyenizdeki Ctrl tuşunu temsil eder. Örneğin ^O yazısı, "Ctrl tuşuna basılı tutup O tuşuna bas" anlamına gelir. En sık kullanacağınız iki komut şunlardır:
- Ctrl+O – dosyayı kaydeder (İngilizce "Write Out"). Bu tuşa bastığınızda alt kısımda dosya adını onaylamanız istenir; Enter'a basınca kayıt tamamlanır.
- Ctrl+X – editörden çıkar. Kaydedilmemiş değişiklik varsa Nano kaydetmek isteyip istemediğinizi sorar.
Diğer faydalı kısayollar da vardır. Bir kelimeyi bulmak için Ctrl+W (arama) kullanılır; aradığınız metni yazıp Enter'a basarsınız. Bir satırı kesmek için imleci o satıra getirip Ctrl+K, sonra başka bir yere yapıştırmak için Ctrl+U kullanılır. Aynı Ctrl+K komutunu üst üste basarak birden çok satırı da kesebilirsiniz. Belirli bir satıra hızlıca gitmek için Ctrl+/ ile satır numarası girebilirsiniz.
Örneğin kişisel kabuk yapılandırmanız olan .bashrc dosyasına bir kısayol eklemek isterseniz:
nano ~/.bashrc
Dosyanın sonuna gider (Nano'da Ctrl+End ya da sadece ok tuşuyla aşağı inerek), yeni bir satır ekler ve yazarsınız:
alias ll='ls -alh'
Ardından Ctrl+O ile kaydeder, Enter ile onaylar, Ctrl+X ile çıkarsınız. Değişikliğin etkin olması için source ~/.bashrc komutunu çalıştırırsınız. Bu kadar basit. Nano'nun tüm mantığı bu döngüye dayanır: aç, yaz, kaydet, çık.
Nano'nun Küçük Ama Yararlı Özellikleri#
Nano göründüğünden biraz daha yeteneklidir. Bir dosyayı satır numaralarıyla açmak için -l bayrağını kullanabilirsiniz; bu, hangi satırda hata olduğunu söyleyen bir günlük mesajını takip ederken çok işe yarar:
nano -l /etc/nginx/sites-available/default
Yanlışlıkla yaptığınız bir değişikliği geri almak için Alt+U, tekrar uygulamak için Alt+E kullanılır. Metnin belirli bir bölümünü seçmek için Alt+A ile seçim işaretlemesini başlatabilir, ardından ok tuşlarıyla alanı genişletebilirsiniz. Bu seçili alanı Ctrl+K ile kesebilir ya da Alt+6 ile kopyalayabilirsiniz.
Bir metni başka bir metinle otomatik değiştirmek için Ctrl+\ (Ctrl ve ters bölü işareti) kullanılır. Nano önce aranacak metni, sonra yerine yazılacak metni sorar ve her eşleşmede size onay şansı verir. Bir yapılandırma dosyasındaki eski bir alan adını yenisiyle değiştirmek için pratik bir yoldur.
Nano genellikle basit düzenlemeler için fazlasıyla yeterlidir. Hızlıca bir port numarasını değiştirmek, bir satırı yorum haline getirmek ya da yeni bir dizin eklemek gibi işler için ekstra bir öğrenme eğrisine ihtiyaç duymazsınız. Bu yüzden birçok deneyimli sistem yöneticisi bile küçük düzenlemeler için Nano'yu tercih eder.
Vim'e Giriş – Modlu Editörün Mantığı#
Vim, Nano'dan çok daha güçlüdür ancak çalışma mantığı tamamen farklıdır. Vim bir "modlu" editördür; yani bulunduğunuz moda göre klavye tuşları farklı işler yapar. Bu, ilk kez kullananları şaşırtan ama alışıldığında olağanüstü hızlı çalışmayı sağlayan bir tasarımdır. Vim'i açmak için:
vim /etc/nginx/nginx.conf
Vim'in üç temel modu vardır:
- Normal mod – Vim açıldığında bu moddasınızdır. Burada tuşlar metin yazmaz; gezinme, silme, kopyalama gibi komutlar çalıştırır. Diğer modlardan buraya dönmek için Esc tuşuna basarsınız.
- Insert (ekleme) modu – Metin yazabildiğiniz normal düzenleme modudur. Normal moddan bu moda geçmek için i tuşuna basarsınız. Artık klavyeniz beklediğiniz gibi harf yazar.
- Command-line (komut) modu – Kaydetme, çıkış ve arama-değiştirme gibi komutları çalıştırdığınız moddur. Normal moddayken : (iki nokta) tuşuna basarak bu moda girersiniz.
Bu üçlünün mantığı şudur: yazmak istediğinizde i ile insert moduna geçer, yazınızı bitirince Esc ile normal moda döner, dosyayı kaydetmek istediğinizde : ile komut moduna geçersiniz. Bu döngüye alıştığınızda Vim'de gezinme çok akıcı hale gelir.
Dosyayı kaydetme ve çıkış komutları normal moddan başlayarak : ile girilir:
| Komut | İşlevi |
|---|---|
:w | Dosyayı kaydeder (write) |
:q | Editörden çıkar (quit) |
:wq | Kaydeder ve çıkar |
:x | Değişiklik varsa kaydeder ve çıkar |
:q! | Kaydetmeden zorla çıkar |
Buradaki :q! komutu hayat kurtarıcıdır. Yanlışlıkla bir dosyayı bozduysanız ve değişiklikleri kaydetmeden çıkmak istiyorsanız, ünlem işareti Vim'e "sormadan çık" der.
Vim'de Gezinme ve Temel Düzenleme Komutları#
Vim'in gücü, normal moddaki tek harflik komutlarında saklıdır. En temel gezinme tuşları klavyenin orta sırasındaki h, j, k, l harfleridir:
- h – sola
- j – aşağı
- k – yukarı
- l – sağa
Ok tuşları da çalışır, ancak deneyimli kullanıcılar ellerini klavyenin ortasından kaldırmamak için bu harfleri tercih eder. Dosyanın en başına gitmek için gg, en sonuna gitmek için G (büyük G) yazarsınız. Belirli bir satıra gitmek için satır numarasını yazıp G eklersiniz; örneğin 42G sizi 42. satıra götürür.
Silme ve kopyalama komutları da normal modda tek tuşla çalışır:
- dd – üzerinde bulunduğunuz satırı komple siler (ve keser)
- yy – üzerinde bulunduğunuz satırı kopyalar (yank)
- p – kesilen ya da kopyalanan satırı imlecin altına yapıştırır
- x – imlecin üzerindeki tek karakteri siler
- u – son işlemi geri alır
Bu komutları sayılarla birleştirebilirsiniz. Örneğin 3dd üç satırı birden siler, 5yy beş satırı kopyalar. Bu birleştirilebilir dilbilgisi, Vim'i öğrenmeye değer kılan asıl özelliktir. Arama yapmak için normal moddayken / tuşuna basıp aranacak metni yazar, Enter'a basarsınız. Sonraki eşleşmeye n, önceki eşleşmeye N ile geçersiniz.
Vim'in en güçlü komutlarından biri toplu değiştirmedir. Bir dosyadaki tüm eşleşmeleri değiştirmek için komut modunda şu kalıbı kullanırsınız:
:%s/eski_metin/yeni_metin/g
Buradaki % tüm dosya anlamına gelir, s "substitute" (değiştir) demektir ve sondaki g her satırdaki tüm eşleşmeleri kapsar. Örneğin bir yapılandırma dosyasındaki 8080 portunu 3000 ile değiştirmek için :%s/8080/3000/g yazarsınız. Her değişiklikte onay almak isterseniz sona c ekleyin: :%s/8080/3000/gc.
"Vim'den Çıkamıyorum" Sorunu ve Çözümü#
Vim ile ilgili en meşhur hikaye, kullanıcıların editörden çıkamamasıdır. Bunun nedeni basittir: yeni bir kullanıcı Vim'i açar, moddan habersiz olarak harflere basmaya başlar, ekranda garip şeyler olur ve çıkmak için denediği tüm klasik yöntemler (Ctrl+C, Ctrl+X, Esc) işe yaramaz. Çünkü Vim'de çıkış, bir tuşa değil bir komuta bağlıdır.
Çözüm her zaman aynı üç adımdır. Önce Esc tuşuna basın; bu sizi hangi modda olursanız olun normal moda döndürür. Ardından iki nokta yazın, yani : tuşuna basın. Son olarak durumunuza göre şu komutlardan birini yazıp Enter'a basın:
:q # Hiç değişiklik yapmadıysanız
:wq # Değişiklikleri kaydederek çıkmak için
:q! # Değişiklikleri atarak çıkmak için
Bu sırayı ezberlerseniz Vim size asla tuzak kurmaz. "Esc, iki nokta, q, Enter" dizisi Vim'de sıkışmanın kesin çözümüdür. Eğer emin değilseniz ve yaptıklarınızı kaydetmek istemiyorsanız her zaman :q! güvenli seçenektir; hiçbir değişikliği kalıcılaştırmadan sizi terminale döndürür.
Terminalin temel komutlarını ve dosya sistemi gezinmesini henüz kavramadıysanız, Linux temel komutları rehberi bu editörlerle çalışırken sizi daha rahat hissettirecektir. Editörden çıktıktan sonra dosyanın gerçekten kaydedilip kaydedilmediğini cat ya da ls -l gibi komutlarla doğrulayabilirsiniz.
Hangi Editörü Ne Zaman Kullanmalısınız#
Nano ve Vim arasında "daha iyisi" diye bir şey yoktur; ikisi de farklı ihtiyaçlara hitap eder. Aşağıdaki tablo, ne zaman hangisine yöneleceğinize dair pratik bir özet sunar:
| Özellik | Nano | Vim |
|---|---|---|
| Öğrenme kolaylığı | Çok kolay | Dik öğrenme eğrisi |
| Kısayolları ekranda gösterme | Evet | Hayır |
| Modlu çalışma | Hayır | Evet |
| Hızlı toplu düzenleme | Sınırlı | Çok güçlü |
| Büyük dosyalarda performans | İyi | Mükemmel |
| Uzak sunucularda bulunma | Neredeyse her zaman | Neredeyse her zaman |
| İdeal kullanıcı | Yeni başlayan | Deneyimli yönetici |
Pratikte çoğu insanın izlediği yol şudur: Nano ile başlarsınız çünkü hemen üretken olursunuz ve hiçbir şey ezberlemenize gerek kalmaz. Sunucuyla daha fazla zaman geçirdikçe, tekrar eden düzenlemelerin Vim'de ne kadar hızlı yapıldığını fark eder ve yavaş yavaş onu öğrenirsiniz. Birçok deneyimli yönetici hızlı düzeltmeler için Nano'yu, yoğun düzenleme gerektiren işler için Vim'i kullanır. İkisini de bilmek en sağlıklı yaklaşımdır çünkü bağlandığınız bir sunucuda hangisinin kurulu olacağını her zaman kestiremezsiniz.
Bir öneri: Vim'i öğrenmek istiyorsanız vimtutor komutunu çalıştırın. Bu, Vim ile birlikte gelen interaktif bir eğitimdir ve yaklaşık yarım saatte temel komutları uygulamalı olarak öğretir. Terminalde sadece vimtutor yazmanız yeterli.
Sıkça Sorulan Sorular#
Nano'da yaptığım değişiklikleri nasıl kaydederim?#
Klavyenizde Ctrl tuşuna basılı tutup O tuşuna basın. Nano ekranın altında dosya adını onaylamanızı isteyecek; Enter'a bastığınızda dosya kaydedilir. Ardından Ctrl+X ile editörden çıkabilirsiniz. Eğer çıkarken kaydetmeyi unuttuysanız Nano zaten size kaydetmek isteyip istemediğinizi sorar.
Vim'den nasıl çıkarım?#
Önce Esc tuşuna basarak normal moda dönün, sonra iki nokta tuşuna (:) basın ve çıkış komutunu yazın. Değişiklik yapmadıysanız :q, kaydederek çıkmak için :wq, değişiklikleri atarak çıkmak için :q! yazıp Enter'a basın. Bu "Esc, iki nokta, q, Enter" dizisi her durumda işe yarar.
Yeni başlayan biri Nano mı Vim mi öğrenmeli?#
Yeni başlıyorsanız Nano ile başlamanızı öneririz. Nano sezgiseldir, komutlarını ekranda gösterir ve hemen üretken olmanızı sağlar. Sunucu yönetiminde deneyim kazandıkça Vim'in sunduğu hıza ilgi duyarsanız vimtutor komutuyla adım adım öğrenebilirsiniz. İkisini birden bilmek en iyisidir.
Vim'de bir kelimeyi başka bir kelimeyle nasıl değiştiririm?#
Normal moddayken iki nokta tuşuna basıp %s/eski/yeni/g kalıbını yazın ve Enter'a basın. Buradaki yüzde işareti tüm dosyayı, sondaki g her satırdaki tüm eşleşmeleri kapsar. Her değişiklikte onay istiyorsanız komutun sonuna c ekleyerek :%s/eski/yeni/gc yazabilirsiniz.
Bu editörler her sunucuda kurulu mu?#
Nano ve Vim (ya da onun basit sürümü vi) neredeyse tüm Linux dağıtımlarında öntanımlı olarak bulunur. Bazı minimal sunucu kurulumlarında Nano gelmeyebilir; bu durumda Ubuntu ve Debian'da apt install nano, CentOS ve AlmaLinux'ta dnf install nano komutuyla kolayca kurabilirsiniz. Vim için de aynı paket yöneticileri vim paketini sunar.
SSH ile bağlandığım sunucuda dosya düzenlemek güvenli mi?#
Evet, ancak önemli yapılandırma dosyalarını düzenlemeden önce bir yedek almanız iyi bir alışkanlıktır. Örneğin cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak komutuyla dosyanın bir kopyasını oluşturabilir, bir hata yaparsanız kolayca geri dönebilirsiniz. SSH bağlantısının kendisinin anahtar tabanlı kimlik doğrulama ile güvenli olduğundan emin olmak da önemlidir.
Kapanış#
Nano ve Vim, sunucu yönetiminin vazgeçilmez iki aracıdır. Nano ile birkaç dakika içinde yapılandırma dosyalarını düzenlemeye başlayabilir, Vim'i öğrendikçe düzenleme hızınızı ciddi biçimde artırabilirsiniz. En önemlisi, artık bir SSH oturumunda bir dosya açtığınızda ne yapacağınızı biliyorsunuz ve "Vim'den çıkamıyorum" paniğine kapılmayacaksınız.
Bu becerileri güçlü ve kararlı bir altyapıda pratiğe dökmek isterseniz, Clou.TR'nin sunucu çözümleri ve tam kök erişimi sunan VDS sunucuları tam size göre. Yönetimi bize bırakmak isterseniz sunucu yönetimi hizmetimizle uzman ekibimiz yapılandırma işlerini sizin yerinize üstlenir. Uygun fiyatlı ve performanslı bir başlangıç için hosting paketlerimize da göz atabilirsiniz.