Temel Linux
|Merhabalar Arkadaşlar bu yazıda temel linux komutları nedir nasıl kullanılır, bununla ilgi basit seviyede linux kullanımına yönelik bir kaç noktaya değinmeyi düşünüyorum.
Öncelikle daha önce linux kullanmadıysanız ve hangi sürümünü edineceğiniz konusunda bir fikriniz yoksa genelde başlangıç olarak tavsiye edilen LİNUX MİNT veya UBUNTU türevlerini kullanabirsiniz. Bilgisayarınıza direk kurulum yapmak yerine virtual machine (sanal makine) kullanarak bilgisayarınıza fiziksel olarak başka bir işletim sistemi kurmadan VirtualBox yada VmPlayer gibi programlar sayesinde deneme yapalirsiniz. Beğenirseniz bilgisayarınıza dual-boot olacak şekilde hem Windows hem Linux kurabilme şansınızda var.
Linuxta çalışacaksak öncelikle terminal komutlarını az da olsa bilmekte fayda olacaktır. Bunları en çok kullanılandan en az kullanılana doğru açıklamaya çalışacağım. Konuya tam olarak başlamadan önce tavsiyem eğer öğrenmek istiyorsanız bu komutları denemeniz gerekiyor, yani terminalde ne kadar çalışırsanız sizin için o kadar iyi olacaktır. Aksi halde anlamış olsanız bile unutursunuz.
Sudo
Linux işletim sisteminde sıradan kullanıcılar için yetkilendirmeler güvenlik amacıyla sınırlandırılmıştır, örneğin bir paket yüklemek istediğinizde yada belirli bir komutu çalıştırmak istediğinizde sizden root yetkisi isteyebilir. Root (kök kullanıcı), Linux/Unix temelli sistemlerde bulunan, sistem üzerinde tam yetkiye sahip özel bir kullanıcı hesabıdır. Sudo komutu normal sistem kullanıcılarının çeşitli komutları kullanabilmek için geçici olarak Root yetkisi kazanmasını sağlar. Geçici değilde direk root olarak giriş yapmak için sudo -su komutunu kullanıp, şifre girerek root olarak sistemde istediğiniz işlemi yapabilirsiniz.
apt-get
Öncelike paket yönetiminden bahsetmek istiyorum. Paketler o işletim sistemine yüklenecek programlar olarak düşünülebilir.
Ubuntuda paket yönetimi apt-get ile yapılır. Paket yönetimi ile sitemi güncelleyebilir yada yeni programlar edinebilirsiniz.
Örneğin arduino yu bilgisayarınıza kurmak için apt-get kullanabilrisiniz .
sudo apt-get install arduino arduino-core
güncelleştirmek için
sudo apt-get update
yükseltmek için
sudo apt-get upgrade
paket kaldırmak için
sudo apt-get remove arduino (arduino paketini sitemden kaldırır).
başında sudo kullanmamızın sebebi bu işlemler için root yetkisi gerektiğidir.
pwd
o an bulunduğunuz dizini ekrana basar. Dizin = klasör olarak düşünülebilir.
örn :
pwd
çıktı şu formatta olacaktır : /home/cgcenap/vs/vs
ls
ls bulunduğunuz dizindeki dosyaları listeler. ls – la yazarak dosyalara ait daha detaylı bilgilere ulaşmanız mümkün.
cd
cd (change directory) komutu ile dizininizi değiştirebilirsiniz. Yada bir önceki dizine geri gelebilirsiniz veya home dizinine geçebilirsiniz.
Örneğin;
cd cd .. cd Masaüstü cd Masaüstü/ödevler/yazilim_müh
mkdir
mkdir yeni bir dizin oluşturmak için kullanılır.
örn:
mkdir elektrobot
elektrobot isimli bir dizin oluşturduk ve bunun içeriğine ,
cd elektrobot
ile bakabiliriz .
touch
touch yeni bir dosya oluşturmak için kullanılır.
örn :
cd elektrobot touch yeniyazi.txt gedit yeniyazi.txt
rm
rm (remove) klasör yada dizin silemek için kullanılabilir. Default olarak, dizinleri silmez. rm ile dizin silmek istersek -r parametresi kullanılır. -v parametresi ile de bize silme işlemi hakkında bilgileri verir.
rm yeniyazi.txt cd .. rm -r elektrobot
cp
cp (copy) belirtilen kaynak dosyasını hedef dosyaya veya birden fazla kaynak
dosyasını dizin’e kopyalar.
touch elektrobot.py touch elektrobot2.py cp elektrobot.py elektrobot2.py cat elektobot2.py
mv
mv (move) dosyaları veya dizinleri taşımamıza olanak sağlar.
mv elektrobot.py elektorbot2.py cd .. mv elektrobot /home/cgcenap/İndirilenler
cat
cat “Dosya(lar)ın , standart girişten , standart çıkışa listelenmesi” olarak tanımlanabilir, linux/unix
sistemlerde standart giriş default olarak klavyedir, çıkış ise terminaldir.
Terminale direk cat yazıp enterladığınızda klavyeden bir giriş bekler, siz giriş yapıp enterladığınızda yazdığınız şeyi ekrana basar. Sebebi cat komutunun aksi belirtilmedikçe stdin(standart in ) olarak klavye stdout(standart out) olarak terminali kullanıyor olması.
Mesela bulunduğumuz dizinde file.txt isimli bir dosya olsun. Aşağıdaki komut ile biz bu dosyayı açarak terminale yazdirabiliriz.
cat file.txt
Burada stdin olarak file.txt yi kullandık , default değerinden başka bişey seçmiş olduk.
peki stdout olarak terminal yerine farklı bir dosya seçilebilirmiydik ? tabiki evet. Burada yönlendirme işlemi yapmak için özel bir operatör olan > kullanılır.
cat file.txt > yeni.txt
file.txt dosyasının içeriğini yeni.txt dosyasının üzerine yazdı. Üzerine yazmak yerine sonuna ekleme yapmak için >> kullanılabilir.
örneğin
cat cat file.txt cat file.txt > file2.txt cat file.txt >> file2.txt
| işareti ile bir komutun çıktısı diğer komuta girdi olarak verilebilir.
cat file.txt | cat > file2.txt cat file.txt | cat >> file2.txt cat | cat >> file2.txt
man
man bir komut hakkında bilgi almak için kullanılır. Örneğin ls komutunun nasıl kullanılabileceği ile ilgili bir döküman elde etmek istiyorsak ;
man ls
sort
sort isminden de anlayacağımız gibi sıralama işlemi yapıyor. kendisine girdi olarak verdiğiniz dosya içeriğini istediğiniz parametrelere göre sıralayabilirsiniz. Default olarak alfabetik sıralama yapar.
sort deneme.txt
-n numeric parametresiyle numerik sıralama yapılabilir, -r parametresi reverse yani tersten sıralar , -u unique yani tekrarlanan satırları siliyor.
sort -n -r -u deneme.txt
tabi yazının başından bu yana anlatılanlar ışığında sıralanan dosyayı terminale yazmak yerine başka bir dosyaya yazabilir hatta girdiyi de başka bir komutun çıktısından alabiliriz
sort deneme2.txt >> deneme1.txt cat deneme1.txt | sort > deneme2.txt
daha fazla bilgi için ;
man sort
grep
grep bir dosya içerisinde arama yapmamızı sağlar. default olarak iki parametre alır birincisi aranacak kelime ikincisi dosya adı.
grep "ktu" deneme.txt
bu arama işlemi büyük küçük harf duyarlı olduğu için -i (ignore) parametresi ile her ikisinide listelemiş oluruz.
grep - i "ktu" deneme.txt
Arama işlemi sadece bir dosyayı içermesin istiyorsak örneğin * işareti ile deneme…. ile başlayan tüm dosyalarda arama yaparı örneğin deneme.txt , deneme2.txt , denemeabc.txt , deneme_abc , vs.
grep - i "ktu" deneme*
İçinde bulunduğunuz dizinin içindeki tüm dosya ve klasörlerde aramak istersek -r (recursively) parametresini kullanıp , dosya adını yazmamız gereken yere sadece * yazarak bu işlemi gerçekleştirebiliriz.
grep -i -r "ktu" *
Son olarak benim en çok kullandığım örneğe gelelim. Genelde ls komutuyla dizin içeriğine bakıp aradığım dosyayı bulamadığımdan şunu yazıyorum :)
ls | grep -i "ktu"
Terminalde editör kullanma
Terminalde editör olarak oldukça kullanışlı olan vim kullanılabir. Kullanımı kolay ancak ilk başlarda biraz garip gelebilir.
Örneğin bulunduğunuz dizinde yeni.txt , yeni.c veya yeni.py isimli dosyalar oluşturup bunları okuyup yazabilirsiniz.
vim yeni.txt vim yeni.py
İsterseniz terminalde değilde normal not defteri gibi masaüstü uygulaması olan gedit gibi editörler de kullanabilirsiniz.
Dosya sıkıştırma ve açma komutları
Linuxta bir paketi manuel olarak internetten indirip kurmaya çalıştığınızda ilk karşılaşacağınız problem bu sıkıştırılmış dosya formatının windowsta ki gibi .zip yada .rar olmaması ve muhtemelen ilk defa göreceğiniz .tar.gz gibi uzantıları olması . Bu tarz dosyaları nasıl oluşturabileceğiniz yada nasıl açabileceğiniz ile ilgili birkaç maddeyi aşağıda topladım.
- gzip -9 dosya : Belirtilen dosyayı en iyi şekilde sıkıştırır ve dosya.gz haline getirir.
- bzip2 dosya : Belirtilen dosyayı en iyi şekilde sıkıştırır ve dosya.bz2 haline getirir. Çoğunlukla gzip’den daha iyi sıkıştırır.
- gunzip dosya.gz : gzip ile sıkıştırılmış dosya.gz dosyasını dosya olarak açar.
- bunzip2 dosya.bz2 :bzip2 ile sıkıştırılmış dosya.bz2 dosyasını dosya olarak açar.
- tar -xvf arsiv.tar :İsmi arsiv.tar gibi belirtilen (sıkıştırılmamış) arşiv dosyasını bulunulan dizine açar.
- tar -zxvf arsiv.tar.gz : İsmi arsiv.tar.gz gibi belirtilen sıkıştırılmış arşiv dosyasını bulunulan dizine açar. Dosya uzantısı .tar.gz olan dosyalardan başka .tgz olan dosyaları da açar.
- tar -zxvf arsiv.tar.gz -C dizin : Sıkıştırılmış arşiv dosyasını belirtilen dizine açar.
- tar -jxvf arsiv.tar.bz2 -C dizin : Bzip2 ile sıkıştırılmış arşiv dosyasını belirtilen dizine açar. (Eski sürümlerde -Ixvf kullanılırdı.)
- tar -zcvf arsiv.tar.gz dizin1 dizin2 … dosya1 dosya2 … : Belirtilen dizin ve/veya dosyaları arsiv.tar dosyası haline getirir ve ardından gzip ile sıkıştırıp arsiv.tar.gz haline getirir.
- unzip arsiv.zip -d dizin : arsiv.zip , zip arşivini belirtilen dizine açar.
- unarj e arsiv.arj : arsiv.arj , arj arşivini açar.
- uudecode -o hedef kaynak : uuencode ile kodlanmış (genelde eposta ekleri) dosyayı açar.