Temel Linux Komutları

Furkan Enes Polatoğlu
8 min readJan 18, 2022

--

GNU GENEL KAMU LİSANSI (GPL): Piyasaya sürülen her yazılım, üretici şahıs yada firmanın haklarını ve kullanıcının haklarını korumaya yönelik bir lisans anlaşması içerir. GPL lisans anlaşması, 1983 yılında Richard Stallman tarafından geliştirilmiş lisans türüdür. GPL’nin en çok üzerinde durduğu konu yazılımların kaynak kodu ile birlikte dağıtılmasının gerekliliğidir. Üretici firma yazılımını binary olarak dağıtsa bile kaynak kodunu da herkes tarafından erişilebilir bir yere bırakmak zorundadır. GPL, yazılımın ücretlendirilmesi hakkında hiçbir fikir beyan etmez. GPL yazılımları ücretsiz olmak zorunda değildir. GPL yazılımlarının çok büyük bir kısmı ücretsizdir. Genel yaklaşım yazılımdan değil, kullanıcıya sunulan destekten para kazanılmasıdır.

Unix: 1970, Dennis Ritchie — Ken Thompson, C programlama dili.

Linux: 1991, Linus Torvalds.

Kernel (Çekirdek): Software ve Hardware arasındaki bağlantı (arayüz)’dir. Çalışan tüm programların ve süreçlerin hafıza ile olan ilişkilerini düzenler. İşlemcinin tüm bu programlar arasında adil bir şekilde dağıtımını yapar. Sistem açılırken belleğe yüklenir ve sistem kapatılıncaya kadar bellekte kalır.

Shell (Kabuk): Kernel ile kullanıcının iletişim kurmasını sağlayan programlardır. Linux, Unix gibi sistemlerde komutları yorumlamak ve yönetmek için kullanılan programlardır. (bash, sh, csh, ksh)

Linux’un Genel Kullanım Amaçları;

Kişisel Kullanım: Gelişimleri henüz tamamlanmamış olmasına rağmen, herhangi bir kişisel bilgisayardan beklenebilecek yazı editörleri, hesap cetvelleri, çizim yazımları, veritabanları ve birçok ihtiyaca cevap verir.

İnternet Sunucusu: (WWW, DNS, SMPTP, FTP)

Yazılım Geliştirme: (C, C++, Java, Fortran, Pascal)

LİNUX DOSYA SİSTEMİ

Kök Dizin ( / ): Linux işletim sistemlerinde dosya hiyerarşisinde en üstte bulunan dizindir. Diğer bütün dizinler kök dizininin altında bulunur.

/bin: Genel kullanıcıların kullanabileceği komutlara ait dosyaların bulunduğu dizindir. Is, mkdir, cat, cp… gibi temel komutlar bu dizin altında bulunur.

/sbin: Sadece root kullanıcının kullanabileceği komutlara ait dosyaların bulunduğu dizin.

/boot: Sistem açılıiında kullanılan dosyaların bulunduğu dizin.

/dev: Aygıtlar ve disk bölümlerine ait dosyaların bulunduğu dizin.

/etc: Sisteme ait yapılandırma dosyalarının tutulduğu dizin.

/etc/passwd: Her kullanıcı hakkında ayrıntılı bilgilerin bulunduğu, kullanıcı veritabanı olarak da düşünebileceğimiz yerdir. Burada kullanıcıların gerçek ismi, kullanıcı isimleri, şifrelenmiş parolaları, ev dizinleri gibi bilgiler yer almaktadır.

/etc/group: /etc/passwd dosyasına benzer ama kullanıcılar yerine grupları tanımlar.

/etc/rc veya /etc/rc.d: Açılışta çalıştırılacak betikler ve betik dizinleri burada bulunur.

/home: Sistemdeki kullanıcıların ev dizinidir. Kullanıcının kişisel dosyları burada tutulur. Sisteme yeni bir kullanıcı eklendiği zaman bu dizin altında kullanıcı adıyla bir dizin (klasör) oluşturulur. (/home/Furkan…)

/lib: Programların ihtiyacı olan kütüphane (library) dosyalarının bulunduğu dizindir.

/mnt: Sistem yöneticisinin geçici olarak herhangi bir dosya sistemine ulaşmak için oluşturabileceği bağlama noktalarını içeren dizin.

/opt: Dağıtımdan bağımsız ekstra yüklenen paketler için kullanılan dizin.

/var: Log dosyaları, e-mail ve printer kuyrukları gibi değişken sistem bilgilerini barındırır. Ayrıca web sunucu yazılımına ait dosyaların bulunduğu dizindir.

/tmp: Geçici dosyaların tutulduğu dizindir.

/proc: Sistem süreçlerinin bilgisinin bulunduğu, sanal dosya sisteminin dosyalarının bulunduğu dizin.

/root: Sistem yöneticinin (root kullanıcısının) ev dizinidir.

/usr: Tüm kullanıcılarda paylaşılan verileri (programlar, komutlar, kütüphaneler vb.) içeren dizindir.

/media: Kaldırılabilir aygıtların (CD-ROM, Flash Bellek gibi) sisteme eklendiği dizindir.

LİNUX YARDIM KOMUTLARI

- Linux’ta komutlar hakkında yardım almak için kullanılan komutlar : man, info, whatis, apropos

man ls: ls komutu hakkında bilgi verir. / man pwd: pwd komutu hakkında bilgi verir.

Linux işletim sisteminde temelde 2 farklı dosya tipi vardır: Aygıt Dosyaları ve Sıradan Dosyalar

Aygıt dosyaları: Sistemde bulunan donanım ile haberleşmeyi sağlayan dosyalardır.

İki farklı aygıt dosya tipi vardır;

Karakter aygıt dosyası : Veri alışverini byte bazında yapan aygıtlar. (Klavye, Mouse gibi…)

Blok aygıt dosyası : Veri alışverişini bloklar halinde yapan aygıtlar (Harddisk gibi…)

Sıradan Dosyalar : Aygıt dosyaları dışında kalan dosyalardır.

* ls –l
-rwxr — r — : Normal sıradan dosya.
crw-rw-rw- : Karakter aygıt dosyası.
brw-r — r — : Blok aygıt dosyası.
lrw-r — r — : Link dosyası.
srw-rw-rw- : Soket dosyası
prw — — — — : Pipe dosyası.
drwxr-xr-x : Klasör.

Link dosyası oluşturma : ln –s dosyaKonumu linkinAdi
root@hp: ~ Desktop$ ln –s /boot/grub/grub.cfg acilis
root@hp: ~ Desktop$ ls –l
lrw-r — r — 1 root root acilis -> /boot/grub/grub.cfg şeklinde çıktı görünür.

DOSYALARIN İSİMLENDİRİLMESİ

Linux’ta dosya isimlerinin uzunluğu 256 karaktere kadar uzayabilir. Dosya isimleri büyük/küçük harfe karşı duyarlıdır.

“/” karakterleri dosya yolunda kullanıldığı için dosya isimlerinde kullanılmaz. “.” İle başlayan dosyalar gizli dosyalardır ve “ls –a” komutu ile görüntülenirler.

ls : Bir dizin(klasör) içindeki dosya ve klasörleri listeler.

ls –a : Gizli dosyalar. (. İle başlayan) dahil tüm dizin içeriğini listeler.

ls –l : Dosyalar hakkında ayrıntılı bilgi verir. (Dosyanın sahibi, boyutu, değiştirilme tarihi…)

ls –t : En son yaratılan dosya/dizinden ilk yaratılana doğru sıralar.

ls –al : Şeklinde iki parametre birlikte de kullanılabilir.

pwd : İçinde bulunduğumuz dizinin adresini görüntülemek için kullanılır.

cd : Dizin(klasör) değiştirmek için kullanılır. cd/etc komutu ile kök dizini altındaki etc klasörüne geçiş yapılır.

cd .. : Üst dizine geçer.

touch : Dosya(txt) oluşturmak için kullanılır. “touch deneme” şeklinde.

mkdir : Klasör oluşturmak için kullanılır. “mkdir müzikler” şeklinde.

rm : Dosya(txt) silmek için kullanılır. “rm dosya/dizinadi” şeklinde.

rmdir : Dizin(Klasör) silmek için kullanılır. “rmdir dizin_adi” şeklinde.

rm -i : Dosyanın silinmesi için kullanıcıdan izin ister.

rm -f : Kullanıcıdan hiçbir zaman onay istemez.

rm -r : Komut recursif çalışıp, alt dizin ve dosyaların da silinmesini sağlar.

rm -rf müzikler : Komutu ile müzikler klasörü içerisindeki tüm dosya ve alt klasörleri siler.

cp : Dosya ve dizin kopyalamak için kullanılır. “cp kaynakDosya hedef” şeklinde

cp abc.txt /tmp : abc.txt isimli dosya kök dizini altındaki tmp klasörüne kopyalanır.

cp -R furkanDosyasi /home/furkan/belgeler : furkanDosyasi dizini içindeki tüm dosya ve alt klasörlerle birlikte /home/furkan/belgeler dizinine kopyalar. Recursif kopyalar.

mv : Dosya taşımak / Yeniden adlandırmak için kullanılır. Parametleri;

mv -i : Hedef dosya veya dizin varsa üzerine yazma için onay alır.

mv -f : Hedef dosya ve dizin varsa üzerine yazma işlemini onay almadan yapar.

mv furkan.conf /etc : furkan.conf dosyası /etc dizininin altına taşınacaktır.

mv test test2 : test adlı dosyanın ismini test2 olarak değiştirir.

DOSYA OKUMA

Linux’ta dosya okumak için kullanılan temel komutlar : cat, more, less, tac, rev, head, tail

cat : Dosyanın içeriğini ekrana bastırır. “cat -n veriler” veriler dosyasının içindeki yazıları numaralı şekilde alt alta yazdırır.

more : Dosyanın içeriğini sayfa sayfa gönderir.

less : Aşağı ve yukarı ok tuşlarıyla sayfada ilerlenebilir.

*space : Bir sonraki sayfaya geçer.

*b : Bir önceki sayfaya geçer.

*q : Çıkış yapar.

tac : Dosyanın içeriğini sondan başa doğru gösterir. “tac dosyaAdi” şeklinde.

rev : Dosyanın içeriğini her satırı ters çevirerek gösterir. “rev dosyaAdi” şeklinde. Bütün herşeyi tersten yazar.

head : Dosya içeriğinin baştan belirtilen satır kadar gösterilmesini sağlar. Varsayılan değeri 10’dur.

head -5 linux : linux isimli dosyanın ilk 5 satırını ekrana bastırır.

head linux : linux isimli dosyanın ilk 10 satırı ekranda görüntülenir.

tail : Dosya içeriğinin sondan belirtilen satır kadar gösterilmesini sağlar. Varsayılan değeri 10’dur.

tail -5 linux : Linux isimli dosyanın son 5 satırı ekranda görüntülenir.

tail linux : Linux isimli dosyanın son 10 satırı ekranda görüntülenir.

DOSYA / DİZİN İZİNLERİ

Dosya sahibi izinleri : u
Dosya grubunun izinleri : g
Diğer kullanıcıların izinleri : o

Okuma : r
Yazma : w
Çalıştırma : x

-rwxrw-r — (1. indexteki — , dosya tipinin belirlendiği kısımdır.)
“-“ normal dosya anlamına gelir.
“d” Dizin (Klasör).
“c” Karakter bazında işlem yapan aygıt sürücüleri.
“b” Blok bazında işlem yapan aygıt sürücüleri.
“l” Başka bir dosyayı gösteren link dosyaları

* İzinlerin belirtildiği kısım (ls –l komutu çıktısıdır.)

root@localhost # ls –l
drwxr-xr — 10 murat gs 4096 Nov 14 23:43 isletim komutuna göre;

d : dizin olduğunu gösteriyor.

1. Üçlü : (rwx) murat isimli kullanıcı tüm haklara sahip.

2. Üçlü : (r-x) gs grubuna üye olan kullanıcılar okuma ve çalıştırma haklarına sahip.

3. Üçlü : (r — ) Diğer(other) kullanıcılar sadece okuma haklarına sahip.

chmod : Linux sisteminde dosya ve dizinlerin erişim yekilerini belirlemek, değiştirmek için kullanılır.

-R : Alt klasör ve dosyalardaki izinleri değiştirir. (recursive şekilde).

* İzin eklemek için “+” , kaldırmak için “–“ kullanılır.

* Okuma : r, Yazma : w, Çalıştırma : x

* Sahibi : u, Grubu : g, Diğerleri : o, Herkes : a

“chmod u+rwx, g-w, o-rwx fileName” şeklinde kullanılabilir.

$chmod go-rwx deneme : Deneme klasörü için grup ve diğer kullanıcılardan okuma, yazma ve çalıştırma yetkileri alınmıştır.

$chmod +x dosya : Herkese çalıştırma izni verilmiştir.

$chmod u+rwx deneme : Kullanıcılara okuma, yazma ve çalıştırma yetkileri verilmiştir.

chmod izinlerinin sayı sistemleriyle gösterimi ;

chown : Dosya/dizin sahibini değiştirmek için kullanılan komuttur.

sudo : Normal bir kullanıcıya root hakları ile komut çalıştırma yetkisi verir.

“sudo chown yeniSahip dosya/dizin” şeklinde kullanılabilir.

Önceki durum;
-rwxr-xr-x furkan users ……. deneme

“$sudo chown mehmet deneme”

Sonraki durum;
-rwxr-xr-x mehmet users …… deneme

chgrp : Dosya/dizin grubunu değiştirmek için kullanılır.

“sudo chgrp yeniGrup dosya/dizin”

* Bu komutu çalıştırabilmek için de kullanıcının root yetkisine sahip olması gerekir.

Önceki durum;
-rwxr-xr-x furkan users ……. deneme

“$sudo chown mehmet deneme”

Sonraki durum;
-rwxr-xr-x mehmet murat …… deneme

YENİ KULLANICI EKLEMEK — SİLMEK

sudo adduser kullaniciAdi
sudo deluser kullaniciAdi

GRUP OLUŞTURMAK — SİLMEK

sudo addgroup grubunAdi
sudo delgroup grubunAdi

GRUBA KULLANICI EKLEMEK

“sudo adduser userName groupName” şeklinde kullanılır.

sudo adduser murat gs : Komutu ile murat kullanıcısı gs grubuna eklenecektir

KULLANICININ ÜYESİ OLDUĞU GRUPLARI LİSTELEMEK

furkan@localhost# groups : Komutu ile furkan kullanıcısının üyesi olduğu gruplar ekranda listelenir.

BİR GRUBUN KULLANICILARINI LİSTELEMEK

Bir gruba üye kullanıcılar /etc/group dosyasında tutulur.

murat@localhost# cat /etc/group : Komutu ile sistemde var olan tüm grupları ve bu gruba üye kullanıcıları ekranda listeleyebilirsiniz.

LİNUX METİN EDİTÖRLERİ

vi Editörü : Yazma işlemine başlamak için “i” harfine basmak gerekir.

Metin silme ve düzünleme işlemleri ;

Kursörün üzerindeki satırı silme : dd
4 satır silme : 4dd
Kursör üzerindeki karakteri silme : x
Satırı kopyalama : yy
5 satır kopyalama : 5yy
Yapıştırma : p

Arama işlemleri ;

Geriye doğru metin arama : ?kelime
İleriye doğru metin arama : /kelime

Dosya kaydetme işlemleri ;

Değişiklikleri kaydetme > :w
Değişiklikleri kaydedip editörden çıkma > :wq!
Değişiklikleri kaydetmeden çıkma > :q!
Dosyayı yeni dosya olarak kaydetme > :w dosya

KOMUTLAR 2

ls –a > deneme : ls -a komutunun çıktısı deneme isimli dosyaya yönlendirilir. Eğer dosya yoksa yaratılır, varsada üzerine yazılır.

ls -a >> deneme : ls -a komutunun çıktısı deneme isimli dosyaya eklenir, üzerine yazılmaz. Eğer dosya yoksa yaratılır.

sort : Bir dosyanın yada farklı bir komuttan gelen bir girdinin içeriği sıralanabilir.

sort — r : Sıralama tersine çevrilir.

sort -u : Yinelenen satırları atar.

wc : Bir dosyadaki veya komut çıktısındaki satır, karakter ve kelime sayılarını bulmak için kullanılır. Alabileceği bazı parametreler aşağıdaki gibidir ;

wc -l : Satır sayısını bulur.

wc -w : Kelime sayısını bulur.

wc -c : Karakter sayısını bulur.

| (Pipe) işareti : Bir komutun çıktısını diğer bir komuta girdi olarak gönderebiliriz, wc komutu ile beraber kullanalım;

cat kod | wc –l : kod dosyasında kaç tane satır olduğunu bize döndürür. cat normalde sadece yazıyı basar.

cal : Şuanki ay için bir takvim bastırır.

grep : Dosyaların içinde arama yapar.

grep furkan deneme : Deneme adlı dosyanın içinde furkan kelimesi geçen bütün satırları listeler.

grep furkan /etc/passwd : /etc/paswd dosyasında furkan kelimesi geçen satırları listeler.

find : ls komutu ile dosyaları aramaktansa bu komutu kullanarak daha fonksiyonlu bir şekilde arama yapılabilir.

find /home/murat -name bilgisayar : Komuttaki dosya yolu içinde adı bilgisayar olan bütün belgeleri basar.

find -user furkan : Sahibinin adı furkan olan dosya/dizinler

find –group myo : Sahibi myo grubuna dahil olan dosya/dizinler

find -perm 755 : Erişim izni 755 olan dosya/dizinler

find — size +100k : 100 Kbyte’dan büyük olan dosyalar

ps : Çalışmakta olan programları listeler.

ps -aux | grep murat : Sadece murat kullanıcısına ait süreçler ekranda listelenir.

kill : Çalışmakta olan bir programı sonlandırmak için kullanılır.

kill -9 1125 : 1125 PID nolu uygulamayı sonlandır.

zip — r deneme.zip : Zip ile sıkıştırma işlemi yapar.

unzip deneme.zip : Zip dosyasını açma

telnet www.google.com : Telnet protokolü (İletişim ağı) Ağ üzerindeki çok kullanıcılı bir makineye başka bir makine (pc) kullanılarak bağlanmak ve o pc üzerinde bazı komutları çalıştırmak için kullanılır.

PAKET KURULUMU

sudo apt-get install paketinAdi

Kurulu olan bir paketi kaldırmak

sudo apt-get remove paketinAdi
sudo apt-get purge paketinAdi

Paket arşivini güncellemek

sudo apt-get update

SSH Server : Ağ üzerinden uzaktaki bir makineye erişip yönetebilmemizi sağlayan bir protokoldür.

# sudo apt-get install openssh-server
# ssh username@ IPadress

sudo apt-cache search mysqli > mysqli ile ilgili olan paketleri getirir.
service — status-all > Çalışan/çalışmayan servisleri listeler.
tar jxf sublime_text_3_build_3176_x64.tar.bz2 > tar.bz2 uzantılı arşivleri extract etme.

--

--

Furkan Enes Polatoğlu

Cyber Security Consultant, Computer Engineer, Twitter: @nevrotikharman