Basit Terminal Kullanımı
Serimizin bu noktasında, Linux tabanlı işletim sistemlerinde kullanabileceğiniz, ilerleyen süreçlerde sıklıkla ihtiyacınız olacak olan bazı komutlardan bahsedeceğiz. Her ne kadar Linux tabanlı işletim sistemlerinde desek de bahsedeceğimiz komutlar çok genel olduğu için diğer işletim sistemlerinde de aynılarını veya benzer komutları bulabilirsiniz.
Terminal seçimi#
Öncelikle hemen hemen tüm işletim sistemleri kendi içlerinde bir terminal emülatörü bulundurur, ancak şahsen sundukları ek özellikler nedeniyle ben ayrıca bir emülatör yüklüyorum.
Daha önce kullandığım terminal emülatörleri.
Siz de kendi platformunuza ve keyfinize göre herhangi bir emülatör seçip başlayabilirsiniz.
Windows kullanıcıları ** WSL ** vasıtasıyla bilgisayarlarında Linux tabanlı bir işletim sistemine sahip olabilirler, burada üstünden geçeceğimiz komutları deneyebilirler.
Mac kullanıcılarının ise komutları olduğu gibi kullanabilir.
Eğer terminal emülatörünü açtığınızda aşağıdakine benzer bir komut satırı görüyorsanız başlamaya hazırız.
Temel komutlar#
echo#
Bir programlama dilini öğrenmeye başladığımızda genelde ilk yaptığımız şey ekrana “Merhaba Dünya” yazdırmak olur. Burada da geleneği bozmayalım. echo
komutu ekrana birşeyler bastırmanızı sağlar.
echo Merhaba Dünya
pwd (print working directory)#
Biliyorsunuz ki her işletim sisteminin sahip olduğu bir dosya dizin yapısı var, örneğin Windows’da bir uygulama yüklediğinizda genellikle “Program Files” isimli klasörde görürsünüz veya Linux tabanlı işletim sistemlerinde her kullanıcının dosyaları “/home” isimli dizinin altında yer alır.
Linux tabanlı bir işletim sisteminin dosya yapısı:
Windows işletim sistemi dosya yapısı:
Terminal içerisinde pwd komutunu kullandığınızda, o an o terminalin çalıştığı dizinin yol(path) bilgisini ekranda görürsünüz.
ls (list)#
ls komutu en basit haliyle bir dizindeki tüm dosyaları ve diğer dizinlerin listesini verir. Örneğin ls /usr/local
komutunu çalıştırırsanız cihanızıdaki “/usr/local” klasörü altındaki tüm dosya ve dizinleri görürsünüz. Tabi ki cihazınızda “/usr/local” dizini bulunuyor olmalı. Aksi taktirde bir hata mesajıyla karşılaşırsınız.
Burada ls
komutundan sonra boşluk bırakıp “/usr/local” yazdığımızda ls
komut (çalıştırılacak program) iken “/usr/local” ise bu komuta gönderdiğimiz argüman olarak isimlendiriliyor.
Eğer ls
komutunu hiç argüman göndermeden çalıştırırsak, o an bulunduğunuz dizindeki dosyaları listeleyecektir.
Tabi ls
komutu listelenecek dizin dışında farklı argümanlar da alır. Örneğin bu komutu ls -l
şeklinde çalıştıracak olursak, önümüze gelen çıktının daha detaylı bir liste olduğunu görebiliriz.
Aslında bu komut bir çok farklı argüman kabul ediyor peki biz bunların hepsini ezberlemeli miyiz? Tabi ki hayır! Çok sık kullandıklarımız muhtemelen aklımızda kalacaktır ancak hepsini ezberlemek hem zor hem gereksiz. İşte bu durumda sıradaki komutumuzu kullanabilirsiniz.
man (manual)#
man
komutu diğer komutların kullanım kılavuzunu(manual) görmenizi sağlar. Geliştiriciler olarak birçoğumuz bu komutu biliriz, ancak nedense komutlarla ilgili cevaplarını çok kolaylıkla bulabileceğimiz sorular için Google’a başvururuz. Oysa ki bu komutu kullanmayı alışkanlık haline getirsek cevapları çok daha hızlı elde edebiliriz.
Örnek olarak daha öncedek gördüğümüz ls
komutunun kullanım kılavuzunu görmek isterseniz man ls
yazmanız yeterli olacaktır.
Diğer komutları çalıştırdığımızda sonuçları ekrana basılıyordu ve terminal tekrar komut almaya hazır hale geliyordu, ancak burada durum farklı, kullanım kılavuzları sayfalarca uzunlukta olabileceği için man
terminal üstünde bir arayüz sağlayarak kılavuzun içeriside gezinmenizi sağlıyor. Dikkat ettiyseniz terminalimizin en altında bu arayüzü nasıl kullanacağınıza dair bazı ipuçları bulunuyor. Eğer bu konumdayken h
tuşuna basarsanız kullanabileceğiniz tüm kısayolların bir listesini görürsünüz. Kılavuzda daha fazlasını görmek için (diğer sayfaları) “enter” tuşunu kullanabilirsiniz. Çıkmak için ise q
tuşuna basmanız yeterli.
Bu yazıda kullanacağımız tüm komutların ayrıntılı kullanımını görmek için lütfen man
komutunu kullanın en az bir kere bile olsa göz gezdirirseniz inanılmaz faydalı kullanımlarla karşılaşabilirsiniz.
cd (change directory)#
Bulunduğumuz konumun neresi olduğunu ve o konumun içerisindeki tüm dosya ve dizinleri gördük. İşte cd
komutu da dizinler arasında gezinmenizi sağlar.
Örneğin cd /home/ugursogukpinar/Downloads
kendi bilgisayarımdaki indirilenler klasörüne geçiş yapabiliyorum.
Burada öğrenmemiz gereken birkaç kavram bulunuyor.
Örneğin;
cd ./bir-dizin-adi
komutunu çalıştırırsak bulunduğumuz konumdan “bir-dizin-adi” isimli dizine gitmek istediğimizi ifade etmiş oluruz. Dolayısıyla .
ifadesi bulunduğumuz dizini ifade ediyor.
Bir başka örnek olarak;
cd ..
şeklinde bir ifade kullanırsak, bulunduğumuz dizinden bir üst dizine gitmek istediğimizi söylemiş oluruz. Yani ..
bir üst dizini ifade ediyor.
cd ../abc
bu ifade ise bir üst dizindeki “abc” isimli klasöre geçiş yapmak istediğimizi söylüyor.
Bu ifadeleri cd
komutuna özgü olarak düşünmeyin. .
ve ..
gibi ifadeler komut satırının size verdiği güçten geliyor, aynı özellikleri ls
komutuna da uygulayabilirsiniz. ls ..
dediğinizde bir üst dizindeki dosyaları listelemiş olursunuz.
mkdir (make directory)#
Komut satırında sadece dizinler arasında gezinmek yetmez, bir noktada birşeyleri oluşturmamız gerekecek. Bir dizin oluşturmak isterseniz mkdir
komutunu kullanabilirsiniz.
İç içe birden fazla dizini aynı anda yaratmak isterseniz, -p
argümanını kullanabilirsiniz.
Eğer varolan bir dizini tekrar oluşturmaya çalışırsanız hatayla karşılaşırsınız, eğer oluşturmak istediğiniz dizin zaten var ise hatayla karşılaşmak istemiyorsanız yine -p
komutunu kullanabilirsiniz.
touch#
Dosya sisteminde bir dosyanın ne zaman oluşturulduğu, en son ne zaman açıldığı ve en son ne zaman güncellendiğine dair bazı bilgiler tutulur. touch
komutu aslında bu tarihlerin güncellenmesi için hazırlanmıştır. Ancak çoğu geliştirici bu komutu içi boş yeni bir dosya oluşturmak için kullanır.
cat#
cat
komutu en temelde bir dosyanın içeriğini ekrana bastırmak için kullanılır.
rm (remove)#
rm
komutu dosya ve dizinleri silmek için kullanılır.
Bu komutu kullanırken verdiğiniz argümanlara özellikle dikkat etmelisiniz. Aksi taktirde çok büyük veri kayıpları yaşayabilirsiniz.
touch ./file-1
touch ./file-2
rm file-1 file-2
Örnekte önce file-1 ve file-2 isimli dosyaları touch
komutuyla bulunduğumuz dizinde oluşturup, ardından rm
komutuyla siliyoruz. Gördüğünüz gibi rm komutuna birden fazla argüman geçerek aynı anda birden fazla dosyayı silebiliyorsunuz.
mkdir -p /home/ugursogukpinar/my-new-dir/nested-dir
rm -r /home/ugursogukpinar/my-new-dir
Bir dizini silmek isterseniz yukardaki örnekte olduğu gibi -r
parametresini kullanabilirsiniz. Bu durumda verdiğiniz dizin ve onların altında olan tüm dizinler silinecektir.
cp (copy)#
Adından da kolaylıkla anlaşılacağı gibi dosya veya dizinleri bir başka noktaya kopyalamak için kullanılır.
# my-new-dir/first-dir dizini oluşturalım.
mkdir -p /home/ugursogukpinar/my-new-dir/first-dir
# my-new-dir dizini içerisine geçelim.
cd /home/ugursogukpinar/my-new-dir
# first-dir dizini altına iki adet dosya oluşturalım.
touch ./first-dir/file-1
touch ./first-dir/file-2
# first-dir dizinini my-new-dir dizinine copied-second-dir olarak kopyalayalım.
cp -r /home/ugursogukpinar/my-new-dir/first-dir /home/ugursogukpinar/my-new-dir/copied-second-dir
# Kopyaladıktan sonra my-new-dir dizininde son duruma bakalım.
ls -la /home/ugursogukpinar/my-new-dir
# Aynı şekilde copied-second-dir dizini içerisine bakalım.
ls -la /home/ugursogukpinar/my-new-dir/copied-second-dir
Yukarıdaki komut dizisinin çıktısına baktığınızda aşağıdaki gibi olduğunu görebilirsiniz:
#
ile başlayan satırların komut olarak değerlendirilmediğini fark etmişsinizdir. Bu karakter yazdığınız komutların arasına yorum ekleyebilmek için kullanılır.
mv (move)#
mv
komutu ise bir dizini veya dosyayı bir noktadan başka bir noktaya taşımak için kullanılır. Yukardaki örneğin aynısını cp
yerine mv
komutuyla deneyebiliriz.
# my-new-dir/first-dir dizini oluşturalım.
mkdir -p /home/ugursogukpinar/my-new-dir/first-dir
# my-new-dir dizini içerisine geçelim.
cd /home/ugursogukpinar/my-new-dir
# first-dir dizini altına iki adet dosya oluşturalım.
touch ./first-dir/file-1
touch ./first-dir/file-2
# first-dir dizinini my-new-dir dizinine copied-second-dir olarak taşıyalım.
mv /home/ugursogukpinar/my-new-dir/first-dir /home/ugursogukpinar/my-new-dir/moved-dir
# Kopyaladıktan sonra my-new-dir dizininde son duruma bakalım.
ls -la /home/ugursogukpinar/my-new-dir
# Aynı şekilde copied-second-dir dizini içerisine bakalım.
ls -la /home/ugursogukpinar/my-new-dir/moved-dir
Bu komutun çıktısını incelediğinizde, my-new-dir klasörü altında artık first-dir klasörünün kaybolduğunu onun yerine moved-dir klasörünün oluştuğunu görebilirsiniz.
Aslında yukarıdaki örnekte “first-dir” isimli dosya “my-new-dir” klasöründe bulunuyor, taşıma işlemini de yine aynı dizine ancak farklı isimle yaptık. Bu durumda mv
komutunu aslında dizinin adını değiştirmek için kullanmış olduk. Benzer şekilde dosya isimlerini değiştirmek için de kullanabiliriz.
mv ./old-file-name ./new-file-name