Linux’taki Temel Komutlar ve Erişim Yetkileri

Cihan Erdogan
6 min readSep 17, 2023

--

Linus Torvalds tarafından 1991 yılında basit ve hobi amaçlı bir proje olarak geliştirilen Linux; tüm dünyada milyonlarca insan tarafından kullanılan, ücretsiz ve açık kaynaklı bir işletim sistemine dönüşmüştür.

Linux aslında bir çekirdektir; diğer birçok bileşenle bir işletim sistemi halini alır. Çekirdek, Linux işletim sisteminin kalbinde yer alan ve donanımın yazılımla iletişim kurmasına izin vermek gibi temel görevlerle ilgilenen bir programdır.

Linux açık kaynaklı bir işletim sistemidir. Yani kaynak kodun, herkes tarafından kullanılabilir olduğu ve kaynak koda katkıda bulunmanıza, kodu değiştirmenize ve kodu dağıtmanıza izin verildiği anlamına gelir.

Diğer işletim sistemlerinden çok daha güvenlidir ve kullanıcının gizliliğini korur. Sık yazılım güncellemelerine ve yüksek stabiliteye sahiptir. Linux, kararlılığı ve güvenirliği nedeniyle sunucu ortamları için çokça tercih edilen bir işletim sistemidir. Linux tabanlı bir sunucu yıllarca yeniden başlatmadan kesintisiz çalışabilir.

Kısaca Linux özellikleri bakımından iş hayatında sıkça tercih edilen bir işletim sistemidir. Bu yazımda Linux’da sık kullanılan komutları, dosya sahipliği ve erişim yetkileri konusundan bahsetmek istiyorum.

Sık Kullanılan Linux Komutları

Linux’ta terminale yazdığımız her şey bir komuttur. Komutların genel formatı ise;

command -options arguments şeklindedir.

ls : bulunduğumuz dizinin içindekileri gösterir.

~ = Home . Home dizini içerisindeki dosya ve klasörler yukarıdaki gibidir. Şimdi yeni bir klasör oluşturalım ve içine bir dosya oluşturalım.

pwd : dizini gösterir.

mkdir yeni_klasör : Yeni bir klasör oluşturur.

cd yeni_klasör : klasörün içine girdik.

touch yeni_dosya.txt: Yeni bir dosya oluşturduk.

cd ~ : Home dizinine geri dönmeyi sağlar.

cd .. : Bir önceki dizine dönmemizi sağlar.

pwd 
mkdir yeni_klasör
cd yeni_klasör
touch yeni_dosya.txt
cd ~
cd ..
touch yeni_dosya
touch yeni_dosya2
touch .gizli_dosya
ls : bulunduğumuz dizinin içindekileri listeler. (alfabetik)
ls -l : detaylı ama daha okunaklı bir şekilde listeler.
ls -lh : daha detaylı listeler. (alfabenin tersine göre)
ls -lr : tarihe göre listeler
ls -la : gizli dosyalar da gösterilir. Gizli dosyalar "." ile başlar

ls komutunu daha net gösterebilmek adına yeni_klasör’e yeni_dosya, yeni_dosya2 ve .gizli_dosya adında 3 dosya oluşturduk. Kullandığımız option’ların farkını aşağıdaki çıktıdan görebilirsiniz.

Terminal’i temizlemek için “clear” komutunu kullabiliriz.

Daha önce kullandığımız komutları “history” komutundan görebiliriz.

Alias : Uzun ve sık kullandığımız komutları kısaltmak için kullanılır.

alias md="echo \\"Merhaba dünya\\""
md
Merhaba dünya

env : Ortamdaki değişkenleri gösterir.

MY_NAME=Cihan # Öncelikle bir değişken atadık.
echo $MY_NAME # Değişkeni yazdırdık.
Cihan

Export MY_NAME # Lokaldeki değişkenimizi globale aldık.
unset MY_NAME # Değişkeni sildik.

grep : RegEx (düzenli ifadeler) kullanılarak filtrelemek için kullanılır. Formatı şu şekildedir; grep option pattern file

grep bak words.txt : words.txt dosyasının içinde "bak" geçen ifadeleri aradık ancak sonuç alamadık.
grep ^Bak words.txt : words.txt dosyasının içinde "Bak" ile başlayan ifadeleri aradık.
Baki Mercan
grep -i bak words.txt : -i büyük/küçük harf duyarlılığını ortadan kaldırır.
Baki Mercan
grep -in bak words.txt : -in bulunan ifadenin sırasını da gösterir.
4:Baki Mercan

wget : wget link şeklinde yazılır ve linkteki dosyayı indirir.

rm : Silmek için kullanılır.

rm filename : dosya siler
rm -r dirname : klasör siler

cp : Dosya/klasör kopyalamak için kullanılır.

cp filename hedefklasör	
cp -r : klasör dolu ise -r recursive kullanılır

mv : Dosya/klasör taşımak için kullanılır.

mv filename hedefklasör

nano : nano editörü kullanılarak dosyanın içine istediğimiz şeyleri yazabiliriz.

nano yeni_dosya

nano ekranı aşağıdaki gibidir. Dosyaya yazdıklarımız bittikten sonra kaydedip çıkmak için ctrl+o enter ctrl+x yapıp çıkabiliriz.

cat : dosyanın içeriğini gösterir.

cat yeni_dosya
merhaba

selam

naber

less filename : filename dosyası içerisindekileri yazdırır ve dosya içinde gezinmeyi sağlar.

more filename : filename dosyası içerisindekileri yazdırır ve dosya içinde gezinmeyi sağlar. less’e göre biraz daha gelişmiş % olarak gösteriyor.

head filename : Filename dosyasındaki ilk 10 satırı gösterir.

head -5 filename : Filename dosyasındaki ilk 5 satırı gösterir.
tail filename : Filename dosyasındaki son 10 satırı gösterir.

tail -5 filename : Filename dosyasındaki son 5 satırı gösterir.
sort filename: dosyayı alfabetik olarak sıralar
sort -r : tam tersi şekilde sıralar
sort -n : numerik olarak sıralar
ls -l prod_level/bash_script/notes | wc -l :Bir klasörün içerisinde kaç adet dosya olduğunu gösterir. prod_level/bash_script/notes dizinini kendinize göre değiştirmeniz gerekmektedir.

Disk Kullanım Komutları

df : Disk alanını kontrol etmek için df komutu kullanılır. Kullanılan ve kullanılabilir depolama alanı miktarını gösterir.

df -h : Disk kullanımını anlaşılır bir şekilde gösterir.
df -m : Disk kullanımını mb cinsinden gösterir.
df -k : Disk kullanımını kb cinsinden gösterir.
df -T : Dosyaların türlerini gösteren bir kolon ekler.
df /home : Home dizininin disk kullanımını gösterir.
df --help : Kullanılabilecek diğer optionları ve açıklamalarını gösterir.

du : Linux sisteminizdeki dosya ve dizinlerin disk kullanımını gösterir. Bu komut için klasör veya dosya belirtmeniz gerekir.

du /home/train/Desktop : Masaüstündeki klasör ve dosyaların disk kullanımını gösterir.
du -h /home/train/Desktop : Masaüstündeki klasör ve dosyaların disk kullanımını anlaşılır bir şekilde gösterir.
du -sh /home/train/Desktop : Belirli bir klasörün toplam boyutunu gösterir. Bu örnekte masaüstünün toplam boyutunu göstermektedir.
du -m /home/train/Desktop : Masaüstündeki klasör ve dosyaların disk kullanımını mb cinsinde gösterir.
du -h --time /home/train/Desktop : Dosya ve klasörlerin son değiştirilme tarihiyle birlikte disk kullanımını gösterir.
df --help : Kullanılabilecek diğer optionları ve açıklamalarını gösterir.

Dosya Sahipliği ve Erişim Yetkileri

chmod : change mod . Chmod ile erişim yetkisi değiştiririz.

chown : change ownership . Chown ile dosya sahipliğini değiştiririz.

u : User (dosya veya dizin sahibi)

g : Group (dosya veya dizinin ait olduğu grup)

o : Other (diğerleri, user ve group haricindekiler)

a : All (hepsi, herkes dosya ve dizinlere erişebilir)

chmod erişim izinleri her zaman rwx şeklinde sıralanmaktadır.

r : Okuma izni (Read permission)

w : Yazma izni (Write permission)

x : Çalıştırma izni (Execute permission)

Dosya tür çeşitlerini şu şekilde sıralayabiliriz :

  • * : Normal bir dosya
  • d : Dizin
  • b : Özel blok dosyası
  • c : Özel karakter dosyası
  • l : Sembolik bağlantı dosyası
  • P : Özel isimlendirilmiş pipe dosyası

chmod örnek :

rwx : Okuma, yazma ve çalıştırma erişim izinlerinin hepsi var.

rw- : Okuma ve yazma izinleri var, çalıştırma için izin yok.

r-x : Okuma ve çalıştırma izinleri var, yazma için izin yok.

: İzinleri kaldır

+: İzinleri ekle

= : İzinleri koy

ls -lh
total 8.0K
-rw-rw-r--. 1 train train 0 Sep 15 15:04 yeni_dosya
-rwxr-xr-x. 1 train train 23 Sep 15 16:23 yeni_dosya2

yeni_dosya dosyasının erişim izinler rw- rw- r — şeklinde gördüğünüz üzere. Yani user ve group okuma ve yazma yetkilerine sahiptir ancak çalıştırma yetkisi yoktur. User ve group’a ait olmayanlar ise okumaya yetkisi varken yazmaya ve çalıştırmaya yetkisi yoktur.

yeni_dosya2 dosyasına baktığımızda ise user tüm yetkilere sahipken, group ve diğerleri ise okuma ve çalıştırma yetkisine sahip ancak yazma yetkisine sahip değil.

Dosya sahipliği ve erişim yetkileri hakkında genel bir bilgi sahibi olduk. Şimdi ise erişim yetkileri nasıl değiştiriliyor ona bakalım.

chmod +x filename

chmod +w filename

chmod +r filename

chmod +x yeni_dosya
ls -lh
total 8.0K
-rwxrwxr-x. 1 train train 0 Sep 15 15:04 yeni_dosya
-rwxr-xr-x. 1 train train 23 Sep 15 16:23 yeni_dosya2

yeni_dosya’da çalıştırma yetkisi kimsede yoktu. Ancak chmod +x komutunu kullanarak herkese çalıştırma yetkisi vermiş olduk.

Bu yazımda sizlere Linux ne işe yarar, nerelerde kullanılır hakkında kısa bir açıklama yaptım. Sonrasında ise Linux’da sıkça kullandığımız temel komutlara ve Disk kullanım komutlarına göz attık. Son olarak Dosya Sahipliği ve Erişim Yetkileri hakkında genel bir bilgi sahibi olduk.

Herhangi bir sorunuz olması durumunda bana aşağıdaki linklerden ulaşabilirsiniz.

LinkedIn

GitHub

--

--