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.
| Komut | Açıklaması |
|---|---|
ls | Mevcut dizin altındaki dosyaların bilgilerini listeler. |
cd | Dizin değiştirmede kullanılır. |
mkdir | Yeni bir klasör oluşturmada kullanılır. |
touch | Dosya oluşturmada kullanılır. |
rm | Dosya silmede kullanılır. |
cat | Dosya içeriğini görüntülemede kullanılır. |
pwd | Bulunduğunuz dizinin tam yolunu gösterir. |
cp | Dosya veya dizin kopyalamada kullanılır. |
mv | Dosya veya dizin taşımada kullanılır. |
grep | Dosya içeriğinde veya komut çıktısında metin aramak için kullanılır. |
find | Dosya ve dizin içerisinde aramada kullanılır. |
vi/nano | Kullanışlı text editörleri açmada kullanılır. |
history | Daha önce çalıştırılan komutların geçmişini listeler. |
clear | Komut ekranını temizler. |
tar | Dosya ve dizinleri arşivlemede (.tar, .tar.gz) ve arşivleri açmada kullanılır. |
wget | Dosyaları internetten indirmede kullanılır. |
du | Dosya 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;

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;

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

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

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

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

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

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;

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;

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;

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.



