Temel SSH Komutları

Yaklaşık 4 dakikalık okuma

Linux tabanlı sunucularda, sunucu yönetimi için sıklıkla kullanılan ssh komutları bulunmaktadır. Bu komutları kullanarak sunucu üzerinde herhangi bir GUI yani arayüze gerek kalmaksızın terminal üzerinden birçok işleminizi gerçekleştirebilirsiniz. Zaten birçok sunucu yöneticisi terminaller üzerinden çalışmakta ve komutların çoğunu sürekli kullandıklarından dolayı ezbere bilmektedir diyebiliriz.

Not: Bu komutlar aslında Linux kabuğunun (shell) komutlarıdır. SSH ile uzaktaki bir sunucuya bağlandığınızda (ssh kullanici@sunucu-adresi), bu komutları o sunucunun terminalinde çalıştırırsınız. Aynı komutlar Linux bilgisayarınızın kendi terminalinde de geçerlidir.

Makalemizde detaylandırılacak olan popüler komutların listesinin tümüne aşağıdan erişebilirsiniz.

KomutAçıklaması
lsMevcut dizin altındaki dosyaların bilgilerini listeler.
cdDizin değiştirmede kullanılır.
mkdirYeni bir klasör oluşturmada kullanılır.
touchDosya oluşturmada kullanılır.
rmDosya silmede kullanılır.
catDosya içeriğini görüntülemede kullanılır.
pwdBulunduğunuz dizinin tam yolunu gösterir.
cpDosya veya dizin kopyalamada kullanılır.
mvDosya veya dizin taşımada kullanılır.
grepDosya içeriğinde veya komut çıktısında metin aramak için kullanılır.
findDosya ve dizin içerisinde aramada kullanılır.
vi/nanoKullanışlı text editörleri açmada kullanılır.
historyDaha önce çalıştırılan komutların geçmişini listeler.
clearKomut ekranını temizler.
tarDosya ve dizinleri arşivlemede (.tar, .tar.gz) ve arşivleri açmada kullanılır.
wgetDosyaları internetten indirmede kullanılır.
duDosya ve dizinlerin diskte kapladığı alanı gösterir.

Şimdi yukarıda listelediğimiz komutları detaylı şekilde madde madde inceleyelim.

ls komutu
ls komutu, tüm dosyaları ve dizinleri listelemede kullanılır. Terminalde ls komutunu girdikten sonra şuna benzer bir çıktı ile karşılaşacaksınız;

ls komutu örnek çıktısı

Bu komuta ek olarak aşağıdaki parametrelerle daha detaylı bilgiler alabilirsiniz;

  • -l: Listelenen dosyaların detaylı bilgisi ile birlikte görüntülenir. Örneğin dosya boyutu, güncellenme zamanı, sahibi vs.
  • -a: Gizli dosyaların da listelenmesinde kullanılır.

cd komutu

cd komutu, dosyalar arasında geçiş yapmak amacıyla kullanılır. Zaten bu komut ismini change directory ifadesinin baş harflerinden almaktadır. Çok basit ve kullanışlı bir komuttur. Tek yapmanız gereken gitmeniz gereken dosya pathini cd komutunun ardından yazmak;

cd komutu ile dizin değiştirme

Mevcut olan dizinden bir üst dizine erişmek için .. (iki nokta) kullanmanız gerekmektedir.

cd .. ile üst dizine geçme

mkdir komutu

mkdir komutu, dizin oluşturmak amacıyla kullanılır. Zaten bu komut Make Directory ifadesinin kısaltmasıdır. Komutun syntaxı şu şekildedir

mkdir komutu ile dizin oluşturma

touch komutu
touch komutu, dosya oluşturmak amacıyla kullanılır. Komutun syntaxı şu şekildedir;

touch komutu ile dosya oluşturma

rm komutu

rm komutu, dosya veya dizin silme amacıyla kullanılır. Dosya silmede kullanılan komutun syntaxı şu şekildedir;

rm komutu ile dosya silme

Eğer bir dizini yani klasörü silmeyi amaçlıyorsanız -r parametresi ile rm komutunu çağırmanız gerekmektedir.

rm -r komutu ile dizin silme

cat komutu

cat komutu, dosya içeriğini görüntülemede kullanılır. Dosya içeriği görüntülemede kullanılan komutun syntaxı şu şekildedir;

cat komutu ile dosya içeriğini görüntüleme

Eğer birden fazla dosyanın içeriğini birleştirip tek bir dosya oluşturmayı düşünüyorsanız aşağıdaki komutu çalıştırabilirsiniz;

cat komutu ile dosyaları birleştirme

Bu komutla birlikte dosya1.txt ve dosya2.txt içeriği merge edilip finaldosya.txt oluşturulup içerisine yapıştırılır.

pwd komutu

pwd komutu, mevcut dizine ait full pathi görüntülemede kullanılır;

pwd komutu çıktısı

Linux sunucularda en kullanışlı komutlardan birisi pwd komutudur. Çünkü herhangi bir path üzerinde bir işlem gerçekleştirmeden önce ilgili pathin doğrulanmasını kolaylaştırmaktadır.

cp komutu

Dosya veya dizin kopyalamak için kullanılır. Dizinleri içerikleriyle birlikte kopyalamak için -r parametresi gerekir.

cp rapor.txt yedek/rapor.txt
cp -r /var/www/site /yedek/site

mv komutu

Dosya veya dizinleri taşımak için kullanılır. Aynı dizin içinde kullanıldığında dosyayı yeniden adlandırır.

mv eski-ad.txt yeni-ad.txt
mv log.txt /tmp/

grep komutu

Dosya içeriğinde veya bir komutun çıktısında metin arar. -i büyük/küçük harf ayrımını kaldırır, -r bir dizindeki tüm dosyalarda arar, -n satır numarasını gösterir.

grep -n "error" /var/log/syslog
grep -ri "listen" /etc/nginx/
ps aux | grep nginx

find komutu

Belirli bir dizin altında ad, tür, boyut veya tarih gibi ölçütlere göre dosya arar.

find /var/log -name "*.log"
find /home -type f -size +100M
find /tmp -type f -mtime +7

Son satırdaki örnek, /tmp altında 7 günden eski dosyaları listeler.

nano ve vi komutları

Terminal üzerinde metin dosyası düzenlemek için kullanılan düzenleyicilerdir. Yeni başlayanlar için nano daha kolaydır: kaydetmek için Ctrl + O, çıkmak için Ctrl + X kullanılır. vi (veya vim) ise hemen her Linux sisteminde bulunur; düzenleme moduna i ile geçilir, Esc ardından :wq ile kaydedip çıkılır.

nano /etc/hosts
vi /etc/ssh/sshd_config

history komutu

Daha önce çalıştırdığınız komutların geçmişini numaralı olarak listeler. Tutulan komut sayısı sistemin HISTSIZE ayarına bağlıdır. Listedeki bir komutu yeniden çalıştırmak için !numara yazabilirsiniz.

history
history | grep apt
!125

clear komutu

Terminal ekranını temizler. Aynı işlemi Ctrl + L kısayolu ile de yapabilirsiniz.

clear

tar komutu

Birden fazla dosya ve dizini tek bir arşiv dosyasında toplar veya arşivi açar. -c arşiv oluşturur, -x arşivi açar, -z gzip ile sıkıştırır, -v işlenen dosyaları gösterir, -f arşiv dosyasının adını belirtir.

tar -czvf yedek.tar.gz /var/www/site
tar -xzvf yedek.tar.gz
tar -tzvf yedek.tar.gz

Son komut, arşivi açmadan içindeki dosyaları listeler.

wget komutu

Bir dosyayı internetten doğrudan sunucuya indirir. -O ile dosyayı farklı bir adla kaydedebilir, -c ile yarım kalan bir indirmeye kaldığı yerden devam edebilirsiniz.

wget https://ornek.com/dosya.iso
wget -c https://ornek.com/buyuk-dosya.iso

du komutu

Dosya ve dizinlerin diskte kapladığı alanı gösterir. -h değerleri KB/MB/GB olarak okunaklı gösterir, -s yalnızca toplamı verir. Diskin genel doluluk oranını görmek için ise df -h komutu kullanılır.

du -sh /var/log
du -h --max-depth=1 /var | sort -h
df -h

Sonuç

Bu komutlar Linux sunucu yönetiminin temelini oluşturur. Özellikle ls, cd, grep, find ve du komutlarını rahat kullanmaya başladığınızda, SSH üzerinden bir sunucuda yapacağınız işlerin çoğunu grafik arayüze ihtiyaç duymadan hızlıca halledebilirsiniz. Bir komutun tüm seçeneklerini görmek için man komut-adi (örneğin man tar) yazmanız yeterlidir.