LİNUX SİSTEMLER VE KULLANIMI
Linux File System(linux dosya sistemi) tüm dosyalar ve dizinler farklı fiziksel veya sanal cihazlarda depolanmış olsalar bile ( / ) kök dizini yani root altında görünür. Bu dizine sadece root kullanıcısı yazma hakkına sahiptir.
Linux’un dosya sistemi, Windows’un dosya sisteminden farklı olduğu için, yeni kullanıcılara karmaşık gibi gözükse de aslen öyle değildir. Genel olarak incelersek Microsoft sistemlerinde birbirinden bağımsız kök dizinler(root) bulunur. Mesela C dizini hard diskin ilk bölümünü gösterirken D dizini, 2. bölümü gösterir. Ayrıca disket ve USB için de ayrı ayrı kök dizini bulunur. Ancak Linux işletim sisteminde hiyerarşik bir klasör yapısı vardır. Bu hiyerarşik yapıda en üst dizin kök dizini (root directory) olarak bilinir ve “/” ile gösterilir. Tüm dosya sistemleri, programlar hatta sonradan eklenen disk bölümleri(partition) bile kök dizininin alt dizinlerinde yer alır. Kök dizini önyükleme esnasında hafızaya yüklenen ilk bölümdür.
Gelin beraber bu kök dizindekilerin neler olduğunu inceleyelim.
- /root: Root kullanıcısının dosya dizinidir. / ana dizin ile karıştırılmamalıdır.
- /home: Lokal kullanıcıların dosyalarının barındırıldığı ana dizindir.
- /boot: Kernel’in boot etmesi gereken bütün dosya ve dizinleri içerir.
- /bin: Temel komut dosyalarını barındıran dizindir.
- /sbin: Sistem administratorleri tarafından kullanılan komut dosyalarını
barındırır. - /usr: Programların, dosyaları ve dokümanları için kullanılan alt dizinlerini
barındıran dizindir. - /var:Dinamik olarak boyutu değişen log, mailbox gibi dosyaları
barındıran dizindir. - /dev: Fiziksel donanıma erişim gerekli dosyaları barındırır. Boot
sırasında kullanılır. - /etc: Sistemde kullanılan tüm servis ve programlarının yapılandırma
dosyalarını içerir. - /media: Dosya sistemine dahil edilen harici depolama cihazları kullanılır.
- /opt:Uygulamaların opsiyonel olarak kullandığı paketler için kullanılır.
- Bu kök dizinini terminalde görmek için şu komutu kullanbilirsiniz; ls -l /
Temel linux komutları
Artık Ubuntu makinelerimizi açıp komutları deneyerek keşfedebiliriz. :)
İlk komutumuzla başlayalım.
whoami
whoami
- whoami: Linux terminalinde çalışırken oturum açtığımız kullanıcıyı gösterir.
man
man [komut adı]
- Man manual kelimesinden gelir bir komutun nasıl kullanılacağı hakkında bize detaylı bilgi verir. Bu komutu kullanmak için (man+bilgi almak istediğimiz komut) yazmamız yeterlidir. Örneğin şu şekilde;
--help
[komut adı] --help
- --help:Man komutuna benzer herhangi bir komut hakkında unutursak(komut+- -help) ile basitçe detaylı bilgiye ulaşabiliriz. Man bize daha ayrıntılı verir biz hızlı kısa şekilde bilgi almak istediğimizde genelde help komutunu kullanırız. Örneğin şu şekilde;
pwd
pwd
- pwd (Print Working Directory) :Şu an bulunduğumuz dizini gösterir. Şu şekilde;
cd
cd [dizin adı]
- cd(change directory):Dizinler arasında gezinmek için kullanılır.
Örneğin Music dizinine cd komutu ile girip geri şu şekilde çıkabiliriz.
Görüldüğü gibi cd Music yazdığımızda o dizinin içerisine girdik. Sonra sadece cd yazıp enter yaptığımızda Music dizininden çıktı. Home dizinine geri döndü. Sizde bu şekilde deneyerek öğrenebilirsiniz.
Unutmayın linux öğrenmek zor değil aslında sadece biraz el alışkanlığı ezberlemeyin pratik yaparak öğrenebilirsiniz.
NOT: Bu arada linux büyük küçük harfe duyarlıdır. Aradığımız her dosya veya dizinin adını doğru olarak yazdığınızdan emin olun!!!
cd ..
Bulunduğumuz dizinden bir önceki dizine dönmek için bu komutu kullanabiliriz.
ls
ls
- ls(list): Bir dizinin içeriğini görmek için kullanılır. Bu komut mevcut dizinin içeriğini görüntüleyecektir.
- ls -a : Bütün gizli dosyaları gösterir.
- ls -l : Dosya ve dizinleri ayrıntılı olarak listeler.
Dediğim daha bir çok ls komutu var. Bunların detayını aslında lazım oldukça öğrenebilirsiniz isterseniz ls --help yazarak bu komut hakkında sizde deneyerek öğrenebilrisiniz. Ben en çok sıklıkla kullandığımız komutları anlatmaya çalıştım.
history
history
- history: Komut satırında girdiğimiz komutları saklar. Komut satırına history yazdığınızda login olduğunuz kullanıcı ile girdiğiniz tüm komutları görebilirsiniz. History daha önceden yaptığınız bir işlemi hatırlamadığınızda neler yaptığınız konusunda size faydalı bilgiler
sunabilir.
clear
clear
- clear : Açık olan oturumdaki ekranı temizlemek için kullanılır. Ekranınızda çok fazla işlem yaptınız ve artık bu rahatsızlık verecek seviyeye geldiyse clear ile temiz bir komut satırına döndürülürsünüz.
cat
cat [dosya adı]
- cat: Bir dosyanın içeriğini yazdırmak istedğimizde cat ile içine bakabiliriz. Örneğin şu şekilde;
mkdir
mkdir [dizin adı]
mkdir: Linuxta bir dizin oluşturmak için kullanılır. Örneğin şu şekilde;
rm
rm [dosya adı]
- rm(remove):Bir dosyayı silmek için kullanılır. Dikkatli kullanılması gerekir. rm ile sildiğiniz dosyaları bir daha geri döndüremezsiniz. Şu şekilde ;
rmdir
rmdir [dizin adı]
- rmdir (Remove Directory) : Bir dizini silmek isterseniz rmdir komutunu kullanabilirsiniz. Yine -p argümanı ile alt dizinler dahil bir silme işlemi de gerçekleştirebilirsiniz.
mv(move)
mv [dizin/dosya adı]
- mv (Move) : Bir dosya veya dizini başka bir konuma taşımak için kullanılır. Windows’daki kes komutunun aynısıdır. mv ile taşıdığınız dosyaya bir daha eski konumundan ulaşamazsınız.
touch
touch [dosya adı]
- touch :Boş dosya oluşturabilmenin en kolay yoludur. Örneğin şu şekilde;
cp
cp [dosya adı]
- cp(copy):Bir dosyayının kopyasını oluşturmak için kullanılır. Bir konfigürasyon dosyasında değişiklik yapmadan önce bu komut ile mutlaka bir kopyasını oluşturmanızı öneririm. Herhangi bir şeyin ters gitmesi durumunda yedek dosyanızdan düzeltme imkanınız olur.
echo
echo [dosya adı]
echo: Linux echo
komutu ile terminal ekranına istediğimiz yazıyı çıktı olarak alabileceğimiz gibi, yeni dosya oluşturmak için de kullanabiliriz.
Ekrana bir şeyler yazdırmak için echo
komutundan sonra çift tırnak içerisinde yazımızı yazabiliriz. Örneğin direk ekrana yazdırmak için ;
Dosya oluşturmak
echo > [dosya adı]
echo komutuyla doysa oluşturmak için echo komutundan sonra büyüktür işareti konulur ve işaretten sonra dosya ismi yazılır. Formata baktığımız zaman kullanım olarak cat komutu ile benzerliğini görmekteyiz.
vi
vi [dosya adı]
vi: Bu komut bir dosyanın içerisine girip bir şeyler yazmak istediğimizde kullanırız. Fakat dikkat edilmesi gereken bazı detaylar var :
- 1. adım: vi dosya adı (artık dosyanın içersindeyiz)
- 2. adım: Dosyanın içine yazabilmek için önce klavyeden i tuşuna basmalıyız. Şimdi aktifleşti eklemek istediğiniz her şeyi yazabilirsiniz.
- 3. adım: Dosyaya eklemelerimizi yaptıktan sonra çıkmak için önce ESC tuşuna basmalıyız sonra :wq yazarak Enter tuşuna bastığımızda kayderek dosyadan çıkar.
- 4. adım : Eğer dosyamıza eklediğimiz değişiklikleri kaydetmek istemezsek önce ESC tuşuna basmalıyız daha sonra :q! şeklinde yaparak çıkabiliriz.
nano
nano [dosya adı]
nano: Nano komutu da vi komutuna çok benzer. Her ikisi de bir dosyanın içerisine bir şeyler yazmak istediğimizde kullanırız. Fakat nano , vi komutuna göre kullanımı daha kolaydır. Şöyle bir ekran gelir ve bizi yönlendirir.;
Bu sayede CTRL ile birlikte yapmak istediğimiz işlemler için bizi yönlendirir.
find
find [dizin yolu] [parametreler] [aranacak ifade]
find: find komutu ile dosya ve dizin aramaları yapılabilir. Kullanılacak parametreler sayesinde bir dosya araması yaparken çok yardımcı olabilecek bir komuttur.
locate
locate, en basit tanımıyla bir dosya arama aracıdır. Sisteminizde adını bildiğiniz ama yerini hatırlamadığınız bir dosyayı find kullanarak bulabilirsiniz. Ama find gerçek zamanlı tarama yaptığı için arama işlemi çok uzun sürebilir. find’ın aksine locate çok hızlı sonuç üretir, çünkü aramak istediğimiz dosyayı daha önce kataloglanmış bir veritabanından tarar.
- i parametresiyle birlikte büyük/küçük harf duyarsız arama yapabilir.
Çünkü linux için ne demiştik büyük küçük harfe duyarlı demiştik aman dikkat !!!
grep
grep parametreler AranacakKelime DosyaAdı
grep: grep komutu, metin dosyaları içerisinde arama yapmaya yarayan bir komuttur. Tek başına veya parametreler ile kullanılabilir. Kullanımı ise komuttan sonra aranacak harf yada kelime girilir ve ardından arama yapılacak dosya belirtilir. (Aranacak kelimede büyük harf-küçük harf duyarlılığı bulunmaktadır.)
LINUX YETKİ VE YETKİLENDİRME İŞLEMLERİ
Linux sistemlerinin yapısı gereği güvenlik açısından, dosya ve dizinlere ait birçok kısıtlama ve yetkilendirme ayarları vardır. Bu yetkilerin hepsine sahip olan tek kullanıcı ise root kullanıcısıdır.
Bu yüzden sistemi kullanırken eğer root kullanıcısı isek önümüzde uyarıcı bizi kısıtlayıcı bir mekanizma olmayacağından, kimi durumlarda yapacağımız değişiklikler sistemle ilgili büyük sorunlara yol açabilir. Bu yüzden root kullanıcısıyken yapılan işlemlere dikkat etmek gerekir.
read-okuma(r)(4): Klasör listesini ve dosya içeriğini görüntüleme.
write-yazma(w)(2): Dosya veya klasör üzerinde değişiklik yapma.
execute-çalıştırma(x)(1): Hedef dosyayı çalıştırma veya klasör içerisine erişme.
Şimdi listemizi inceleyerek bulunan izinleri ele alalım.
drwxr-xr-x ve -rw-r — r — şeklinde gördüğümüz kısımlar dosya izinlerini ifade ediyor.
- Bazı ifadelerin başında olan d harfi o ifadenin dizin olduğunu belirtiyor.
Geriye kalan kısımları ayrı ayrı açıklayacak olursak (-)işareti ile ayrılan kısımlar o izine sahip kullanıcı grubunu temsil ediyor. Daha iyi anlamak için d harfi hariç (-) işaretini ayırdığımız zaman geri kalan harfleri üç adet üçlü grup haline getirelim;
rwxr-xr-x=rwx r-x r-x
rw-r — r — =rw- r — r —
Sırayla; birinci harf kümesi dosya sahibinin izinlerini, ikinci harf kümesi grup izinleri ve son küme de diğer kullanıcıların izinlerini belirtir.
rwx : Dosyanın sahibi olan kullanıcı okuyabilir, yazabilir, çalıştırabilir.
r-x : Dosya sahibi kullanıcı grubu ile aynı gruba dahil kullanıcılar okuyabilir, çalıştırabilir fakat yazamaz(değişiklik yapamaz).
r-x : Diğer kullanıcılar okuyabilir, çalıştırabilir fakat yazamaz(değişiklik yapamaz).
Yetkilerin Değişimi(chmod)
Erişim yetkisini değiştirme işlemini, ancak en yetkili kişi olan root yapabilir. Bu değişim işlemi; daha öncede de kullandığımız chmod
komutu sayesinde gerçekleştirilir. Bir örnek vererek anlatalım.
Desktop dosyamıza tüm yetkileri verelim o halde komut şu şekilde
write (4) + read(2) + execute(1)=7
chmod 777 desktop
Gördüğünüz gibi vermek istediğiniz yetkileri bu şekilde yapabilirsiniz.
Nasıl Program Kurarım?
Linux işletim sisteminde program kurmak için çeşitli yöntemler bulunuyor. Ben depodan kurmayı ve paket yönetim sistemiyle kurmayı anlatacağım.
Depodan Kurulum
sudo apt-get install [program_adi]
İlk olarak komut cümlesinde ki sudo komutundan bahsetmek istiyorum. sudo
komutu yönetici izni gerektiren işlemlerde kullanıcılara yönetici iznini vermemizi sağlar. Bir kullanıcı sudo
komutu ile bir komut çalıştırırsa geçerli olan kullanıcı hesabının parolasını girmek zorundadır.
Depodan kurulum yaparken sisteminizin güncel olması gerekiyor. Sisteminizi güncellemek için sudo apt-get update
komutunu kullanmanız gerekmektedir. Sisteminizi güncelledikten sonra depoda bulunan paketleri güncellemeniz gerekir, bunun için ise sudo apt-get upgrade
komutunu kullanmanız gerekmektedir.
Kurmak istenilen uygulamanın depoda olmayabilir, tabi bu nedenle kurulum başarısız tamamlanacaktır. Kurmak istenilen uygulamanın depoda olup olmadığının kontrolünü sudo apt-cache search [program_adi]
komutuyla kontrol edebilirsiniz.
Örnek olarak Chrome tarayıcısının depoda olup olmadığını kontrol edelim.
Görünüşe göre Chrome tarayıcısı depoda bulunuyor. Şimdi bu uygulamayı sistemimize kuralım.
Kurulum aşamasında dosya boyutunu belirterek bu kadar disk alanı kullanacağını söylüyor ve sizden bir onay bekliyor. Onay verdikten sonra kurulum tamamlanmış olacaktır.
Kurulan uygulamayı açmak için terminale uygulama adını yazmanız ve ardından enter tuşuna basmanız yeterli olacaktır.
Uygulamayı kaldırmak için ise sudo apt-get remove [program_adi]
komutunu kullanmalısınız.
Paket Yönetim Sistemi İle Kurulum
Windows’ta kullanılan kurulum dosyaları genellikle .exe uzantılıdır. Linux’ta ise bir kaç çeşit kurulum dosya tipi bulunmaktadır. Bunlardan .deb ve .rpm en çok kullanılan paketleme biçimleridir.
Deb : Debian genelinde gelen Ubuntu, LinuxMint, Mepis, Pardus gibi Linux dağıtımlarının kullandığı paketleme biçimidir.
Rpm : Bu paketleme biçimini Fedora, OpenSUSE, CentOS, Mageia gibi Linux dağıtımlarının kullandığı paketleme biçimidir.
sudo dpkg -i [paket_adı]
Kuruluma başlamadan önce ilk olarak kurmak istediğimiz programın kurulum dosyasını indirmemiz gerekiyor. Docker kurulumundan bahsedelim.
Dökumantasyon takip etmeliyiz.
Buradaki dokümatasyonu doğru bir şekilde takip ettiğinizde kurulumu tamamlamış olacaksınız. Dokümantasyon okumak önemlidir. Tavsiyem sizlerde adım adım deneyerek yapabilirsiniz.