101
TARİHÇE
• Atası Unix’tir.(1960 Bell Laboratuarı, Amerika)
• Unix, Dennis Ritche tarafından C programlama dili kullanılarak geliştirilmiştir.
• Linux, ilk defa 1990 yılında Finli bilgisayar mühendisliği öğrencisi Linus Torwalds
tarafından Intel işlemci mimarili bilgisayarlarda çalışmak üzere geliştirildi. Linux bir Unix
türevidir.
• Çok kullanıcılı(multi user) ve çok görevli (multitasking) bir işletim sistemidir.
• 1991'de Linus Torvalds, bugünki Linux çekirdeğini geliştirmeye başladı
• 1994 yılında Linux 1.0 serisi kernel GPL lisansı ile yayınlanarak 100.000 kullanıcıya
erişmiştir.
• Linux" terimi aslında Linux çekirdeğini ima eder. Ama birçok dağıtım Linux çekirdeğini
kullandığından Linux işletim sistemleri olarak bilinirler.
Bİr Lİnux sİstemİ üç ana parçadan
oluşur
1) Donanım Bellek, işlemci, disk vb. yanı sıra sistem
üzerinde çalışan tüm donanımları içerir.
2) Linux Çekirdeği Linux, işletim sisteminin
çekirdeğidir. Donanımı yönetir ve sistemle donanım
arasında ki haberleşmeyi sağlar.
3) Kullanıcı Uzayı Bu kısım kullanıcıların sistem ile
doğrudan etkileşiminin olduğu yerdir.
LİNUX DAĞITIMLARI
✘ Pardus( Tubitak UAKAE), Gelecek Linux, Turkuaz Linux…
✘ Red-Hat, CentOS , Fedora, Suse,Debian , Knoppix,Mandriva,
Ubuntu, Gentoo,Slackware…
✘ Debian Linux Google tarafından kullanılmaktadır.
✘ Çok duyulan FreeBSD ise Linux değil ‘’UNİX İŞLETİM
SİSTEMİDİR’’.
DEBİAN
✘ Debian baştan sona özgür ve açık kaynak koddan oluşan, yaygın bilinen bir
işletim sistemidir.
✘ Kullanabileceğimız 3 versiyonu vardır; Kararlı, Test ve Kararsız.
✘ Tüm Linux dağıtımları paketlerini farklı şekilde yükler, yönetir ve farklı paket
yönetim araçları kullanır. Debian, Debian paket yönetim araçlarını kullanır.
✘ Herhangi bir platform için iyi bir çekirdek işletim sistemidir.
✘ Debian aynı zamanda; Mepis, Ubuntu, Yoper, Knoppix, Libranet, Linspire,
Xandros ve Adamantix gibi bir çok GNU/Linux dağıtımına da kaynak teşkil
etmekte ve Google başta gelmek üzere iyi tanınan bir çok Web sitesinde de
tercih edilmektedir.
Red Hat Enterprise Linux (RHEL)
Red Hat Tarafından üretilen kurumsal amaçlı işletim sistemidir.
EDİSYONLARI
✘ RHEL AS (Advanced Server)(Gelişmiş Sunucu) kurumsal amaçlıdır.
✘ RHEL ES (Edge Server or Entry-level Server)(Kenar Sunucu, Giriş
Seviyesi Sunucu) ağ sunucuları için geliştirilmiştir.
✘ RHEL WS (Workstation)(İş İstasyonu) power-user masaüstleri için
geliştirilmiştir
✘ Red Hat Desktop masaüstü için geliştirilmiştir.
✘ Rhel debiandan farklı olarak RPM paket yöneticisini kullanır.
Ubuntu
✘ Kişisel makinalar için en popüler Linux dağıtımlarından biridir.
✘ Debian paket yönetim sistemini kullanır.
✘ Ubuntu Canonical, tarafından geliştirilen Debian tabanlı bir işletim
sistemidir. Linux öğrenmeye yeni başlayanlar için mükemmel bir
tercihtir.
✘ Ubuntu kullanım kolaylığı ve mükemmel bir kullanıcı arayüzü sunması
sebebiyle geniş kitleler tarafından benimsenmiştir.
FEDORA
✘ Fedora, daha önce bilinen adıyla Fedora Core tamamen açık kaynak
kodlu ve özgür birLinux dağıtımıdır.
✘ Dünyanın çeşitli bölgelerinde varlığını sürdüren özgür yazılım
toplulukları arasında Fedora Projesi kapsamında hala geliştirilmekte
ve yönetilmekte olup, RedHat tarafından destek görmektedir.
✘ Fiyat etiketi olmayan bir işletim sistemidir. Masaüstü ve dizüstü
bilgisayarlar için önerilen bir işletim sistemidir.
✘ RED hat paket yöneticisini kullanır.
LİNUX MİNT
✘ Linux Mint, Ubuntu ve Debian temel alınarak geliştirilen, masaüstü
kullanıcılarına yönelik bir Linux dağıtımıdır. Linux Mint , "güçlü ve
kullanımı kolay hem de modern, şık bir işletim sistemi " olmayı
hedeflemektedir.
✘ Masaüstü ve dizüstü bilgisayarlar için idealdir.
✘ Ubuntunun kullandığı pakete ek olarak Debian paket yöneticisini
kullanır.
gentoo
✘ Gentoo, kaynak kod temelli bir Linux dağıtımıdır.
✘ Kaynak kod tabanlı kurulumunun zorluğu sebebiyle, diğer Linux
dağıtımları kadar popüler olamasa da; kaynak kurulumlu dağıtımlar
arasında en popüleridir.
✘ Kendi paket yönetimi olan portage i kullanır . Portage paket yönetimi
çok modüler ve bakımı kolaydır.
✘ Novell firması tarafından geliştirilen bir Linux dağıtımıdır. OpenSUSE
Linux OpenSUSE Projesiyle tasarlanmıştır.
✘ YaST SuSE Linux için kurulum ve yapılandırma aracıdır.
✘ Kullanımı kolay ve çekici ara yüzü ve kurulum sırasında ya da
sonrasında sisteminizi hızlı olarak özelleştirme yeteneği ile oldukça
popülerdir.
OpenSUSE
ARCH LİNUX
✘ Arch Linux, sadeliği ve zerafeti kendine hedef edinmiş bir GNU / Linux
dağıtımıdır.
✘ Ekibinin tasarım yaklaşımı sadelik, şıklık, kod doğruluğu ve
minimalizm üzerinedir.
✘ Yükleme , güncelleme ve yönetim paketleri için kendi paket
yöneticisi olan pacman’ i kullanır.
KOMUT SATIRI İSTEMLERİ
Kabuk1.
• Kabuk temelde klavyeden komutları
alan ve gerçekleştirmek için işletim
sistemine gönderen bir programdır
• Kabuk istemi dağılımına bağlı olarak
değişebillr ama çoğunlukla aşağıdaki
formata uygun olmalıdır:
hostname @ kullanıcı adı : current_directory
pete @ buzdolabına : / home / pete $
KABUK TÜRLERİ
o Bash (eskiden sh) Kabuğu:
Bash kabuğu ilk UNIX sistemlerinde
hem sh ve ksh kabukları, hem de bazı
csh özellikleri için orjinal olarak
geliştirilen özellikleri içerir. Çoğu LINUX
sisteminde varsayılan kabuktur.
o Tcsh (eskiden csh) Kabuğu:
C Kabuğunun (csh) açık kaynak
versiyonudur. Bu kabuk çoğu Berkeley
UNIX sistemlerde varsayınlan kabuk
olarak kullanılır.
o Ash Kabuğu:
UNIX sh kabuğunun ufak bir
versiyonudur. sh kabuğunun çoğu
özelliğini barındırmaz. (komut
geçmişleri gibi)...ash kabuğu daha az
sistem kaynağına sahip gömülü
sistemler için güzel bir kabuktur. bash
kabuğunun boyutunun yaklaşık yedi de
biri kadar bir boyutu vardır.
o Ksh Kabuğu:
ksh kabuğu sh kabuğunun atasıdır.
UNIX V sistemlerin varsayılan
kabuğudur.
o Zsh Kabuğu:
sh kabuğunun klonlarından biridir.
POSIX uyumludur (bash gibi). ancak
yazım denetimi ve komut düzenlemeye
farklı yaklaşım gibi özellikler içerir. ilk
Mac OS X sistemleri zsh kabuğunu
varsayılan kabuk olarak kullanmıştır.
ancak şuanda varsayılan kabuk bash
kabuğudur.
✘ Neredeyse tüm Linux dağıtımlarında varsayılan olarak
bash kabuğu(bourne again Shell) kullanılmaktadır .
✘ ksh, zsh, tsch gibi diğer kabuklarda mevcuttur
✘ Kabuk bir LINUX sistemin olmazsa olmazıdır. İlk olarak
kullanıcı adımız belirtilmiştir. @ (amphora)'dan sonra
gelen kısım bilgisayar adımızı belirtir
Anlaşılacağı üzere bash kabuğu kullanılmaktadır.
Print Working Directory (PWD)
o Diğer işletim sistemlerinde olduğu gibi Linux’ta da, disk, kendine
isim verilmiş bir takım bölgelere ayrılır. Bu isimlendirilmiş
bölgelere dizin(directory) ismi verilmektedir. Bir dizin içine belirli
bir konu ile ilgili çok sayıda dosya konulabilir. Ayrıca bir dizin
başka bazı dizinleride içerebilir.
o Linux’ta, diskteki diğer bütün dizinleri içeren dizine kök(root) dizin
adı verilir.
o Kök dizine ebeveyn dizin (parent directory) adı da verilir. Kök
dizin altındaki alt dizinlerde kendilerine bağlı alt dizinler içerebilir
ve bu yapı belirli bir derinliğe kadar sürebilir. Kök dizin ve onun
altındaki alt dizin guruplarından oluşan yapıya ağaç yapısı(tree
structure) adı verilmektedir.
2.
Print Working Directory (PWD)
o Bir dizin içerisinde bulunan diğer dizinleri veya
dosyalarıbelirtmek için / sembolü kullanılır. Örneğin;
/usr/begüm ifadesi, begüm’ün usr dizini içinde olduğunu
anlatmaktadır.
o File System’de nerede olduğumuzu görmek
istiyorsak pwd komutunu kullanırız.
2.
Cd komutu
o cd komutu; Linux İşletim dizgelerinde o an içinde
bulunulan dizini değiştirmeye yarayan komuttur.
Gidilecek olan dizinin, dosya sistemi ağacında, kökten
itibaren ifade edilişine mutlak yol denir.
o Örneğin: /usr/local/bin yolunu yazarak, cd komutuna
önce / dizinine gitmesini, oradan usr dizinine, daha sonra
da usr dizininin altında local ve onunda altında bin
dizinine gitmesi söyleniyor. Mutlak yol ifadeleri, her zaman
/ den başlayarak kullanılır.
3.
Cd komutları
o cd cd komutunu çalıştırırsanız bulunduğumuz dizine
gelmeden önce neredeysek bizi tekrar oraya götürür.(Bir
önceki dizine götürür.)
o cd.. iki nokta ile kullanırsak bulunduğumuz yerden
hiyerarşik yapıda bir üst dizine geçeriz.
o cd . cd’yi bir nokta ile kullanırsak bulunduğumuz dizini
gösterir. Hiçbir yere hareket etmeyiz.
3.
Ls komutu neden kullanılır?
o ls komutu; salt olarak kullanıldığında aktif klasördeki
dosya ve klasörleri listeler.
o Dosya ve klasörler farklı renklerde gösterilir.
o İstenirse belirli bir klasör veya dosya belirtilip o klasörün
içeriği veya dosya listelenebilir.
o a parametresi gizli dosyaların da görüntülenmesini
sağlar.
4.
Ls komutları
ls -l : Tarih, dosya sahibi, izinler ile detaylı liste çıkartır.
ls -a : Gizli dosyalarla birlikte tüm dosyaları görüntülemek
için kullanılır bu parametreler aynı anda da kullanılabilir.
(Örnek: ls -la )
ls -lS : Dosyaları sıralarken dosya boyutuna göre sıralar.
ls -lh : Dosya boyutlarını Mb, GB, TB cinsinden gösterir.
ls -lt : Dosyaları yaratılış tarihine ve değiştirme tarihine göre
sıralar.
ls -R: Ardışık dizi içeriklerini listeler. Alt dizinleri ve içeriklerini
de gösterir.
ls -r : Sıralamayı ters şekilde yapar. Sıralamayı tersten
yaptırır. Eğer başka bir seçenekle kullanılmamışsa harf
sırasına göre sıralar.
4.
Ls komutları4.
Ls komutları4.
Touch komutu
✘ Touch komutuyla yeni boş bir dosya tasarlayabiliyoruz.
Örneğin;
✘Aynı zamanda
-a --> erişim zamanını değiştirir
-m --> dosya değiştirilme zamanını değiştirir
-t --> o an yerine belirtilen tarih ve zaman olacak
şekilde değiştirilir.
✘Eğer birden fazla dosya oluşturmak istiyorsak touch
komutundan sonra arada boşluk bırakarak dosya isimlerini
yazmamız yeterlidir.
5.
cat komutu
✘ Cat komutu genellikle bir dosyanın içeriğini terminal ekranına
yazdırma, dosyayı terminal üzerinden okuma gibi işlemler için
kullanılmaktadır.
✘ Bununla birlikte dosyaları birleştirme, bir dosyanın içeriğini başka
bir dosyaya kaydetme gibi farklı kullanımlarını da mevcuttur.
✘ Cat komutunu ve yine yönlendiricileri kullanarak dosyalarımızı
kolaylıkla kopyalayabiliriz.
cat dosya1.txt > dosya2.txt
✘ Bir dosyanın içeriğini başka bir dosyaya ekleyebiliriz.(Aşağıdaki
kod da dosya1’in içeriği dosya2’nin sonuna eklenmekte.)
cat dosya1 >> dosya2
7.
HİSTORY
✘ Komut satırı geçmişi terminal kullanarak yazdığımız komutların
hafızada tutulmasıdır. Daha sonra istediğimiz zaman geçmişe
erişebiliriz.
✘ Yeniden kullanmak istediğimiz bir komut var ise Ctrl-R tuşlarına basıp
kullanmak istediğimiz komutu daha kolay bulabiliyoruz ve enter diyerek
tekrardan kullanabiliyoruz
✘ Konsol ekranını temizlemek için clear komutunu kullanıyoruz.
8.
cp (Copy)
✘ cp dosyaları kopyalamızı sağlar. Cp ile dosyaları, dizinleri
kopyalayabiliriz. GNU/Linux'larda aksi belirtilmediği sürece
bir dosya ya da dizinin aynısı kopyalanacaksa üzerine
yazar.
-i --> Eğer benzer bir dizin ya da dosya kopyalanıyorsa
uyarması istenir.
-r --> Alt dizinleriyle birlikte dizinleri ve dosyaları kopyalar.
-R --> Alt dizinleriyle birlikte dizinleri ve dosyaları kopyalar.
9.
MV komutu
✘ Dosyaları taşımak veya adlarını değiştirmek için kullanılır.
-i --> Taşıma öncesi onay istenmesi için kullanılır.
-f --> Onaylatmaksızın taşımaya yarar.
$ mv oldfile newfile «Dosyayı yeniden adlandırdık»
$ Mv file2 / home / Pete / Documents «Dosyayı farklı
bir dizine taşıdık»
$ Mv file_1 file_2 / somedirectory «Birden fazla
dosyayı taşımak için kullanılır»
10.
RM(remove) KOMUTU
✘ rm komutu ile dosyalar ve dizinler silinebilir. Varsayılan
değeri sormadan silmek şeklindedir.
-i --> Silme işlemi onaylatılır.
-f --> Onaylatma sorulmadan siler.
-r,-R --> Dizin, altdizin ve içerisindeki dosyaları da siler.
-rmdir --> Dizini siler (Dizinin boş olması şartı ile)
11.
FİND
✘ Sistemde dosya veya dizin araması
yapmak istediğimizde find komutunu
kullanırız.
✘Aldığı seçenekler ve paremetrelerle
çok güçlü bir komuttur.
✘İstediğimiz türde, istediğimiz şekilde
dosya ve dizinleri arayıp, onlar üstünde
istediğimiz değişikliği
gerçekleştirebiliriz.
$ find /home -name puppies.jpg
12. 13. HELP
✘ help komutismi şeklinde kullanarak
ya da komut - - help şeklinde
kullanarak ilgili komut hakkında yardım
alabiliriz.
Man
✘ Manuel ifadesinin kısaltmasıdır, linux sistemlerde bir komut veya yazılım hakkında
bilgi almayı sağlar.
14.
alias
 Alias, kullanıcıların komut satırı üzerinden kendi komutlarının oluşturulması daha
doğrusu var olan bash komutlarının yeni isimlerle kaydedilmesidir.
Alias yazdıktan sonra yeni komutumuzun adını yazıyoruz.
 “ls” komutumuzu “ls -l” komutu ile değiştiriyoruz. Böylece artık ls yazdığımızda komut
ls -l komut gibi davranıyor.
 Normalde alias komutları terminal oturumu sona erdiğinde sıfırlanır ve yeniden
tanımlamak zorunda kalırız. Eğer komutlarımızın(aliasların) kalıcı olmasını istiyorsak
kök dizinimizdeki “.bashrc ” dosyasını düzenlememiz gerekiyor. Bu işlemi ~ /.bashrc
komutu ile yapıyoruz
15.
whatis
 whatis ; Komut hakkinda basit icerik saglamak için kullanır. Bir
komut için tek satırlık bir açıklama gösterir.
 Exit komut ekranından çıkmak için kullanılır.
16.
exit17.
TEXT-FU
Standart girdi ,çıktı ,hata
(stdout; stdin; stderr)
 Linux sistemlerinde bir proses yaratıldığında üç dosya betimleyicisi üst prosesten
aktarılmaktadır. Bunlar stdin, stdout ve stderr dosyalarına ilişkin betimleyicilerdir.
 Stdin ; standart giriş (standard input) dosyasıdır ve default olarak okuma amacıyla
terminale (yani kalvyeye) yönlendirilmiş durumdadır.
 Stdout ; standart çıkış (standard output) dosyasıdır ve default olarak yazma amaçlı
terminale (yani ekrana) yönlendirilmiş durumdadır.
 Stderr ise programda oluşacak hata mesajlarının yazdırılması için kullanılan
standart hata (standard error) dosyasıdır.
komut >file stdout’a gelen akışı file’a aktarır
komut >>file stdout’a gelen akışı file’ın sonuna ekler.
komut <file file’dan stdin’e akış gerçekleştirir.
GREP & PİPE
o Grep komutu, kelime arama komutudur. Verilen data içerisinden
istenilen kelimeye uygun satırı getirir.
● -i, Büyük küçük harf duyarsızlığı parametresidir.
● -r, ile düzenli idadeler (regex) kullanılabilir.
o Bir komutun çıktısı, diğer bir komuta girdi olarak verilebilir. Bu işlem
linux da Pipe ile gerçekleştirilir. Bu işlem çoklu olarak da
gerçekleştirilmektedir.
o Bu komut kali dosyasının ilk 10 satırını grep komutuna aktarır. Grep
komutu “KALİ’’ kelimesinin geçtiği satırları ekrana yazdırır.
Linux Komutları Serisi
● Linuxte bir çok komut parametre almaktadır. Parametreler komut adı
yazıldıktan sonra bir boşluk bırakılarak yazılmalıdır. Genellikle
parametreler “ - “ işareti ile başlamaktadır.
● Linux komutlarına parametreler ile özel işler yaptırılabilir.
Terminal
● Terminal Gnome masaüstü aracının komut satırı aracıdır.
● Linux’un en güçlü olduğu taraf terminal (shell) sistemidir.
 Kabuk tarafından atanmış tüm
çevresel değişkenler env komutu
yardımıyla görülebilir.
hostname tail
 Tail komutu, head komutunun tam
tersi olarak dokümanın sonundan
itibaren tarama ve görüntüleme
yapar. Bir dokümanın sondan
itibaren istenen sayıda satırını
görüntüler. Herhangi bir satır sayısı
verilmediği takdirde varsayılan değer
10 satırdır.
 Hostname komutu, bilgisayarın
adını görüntüleyen ve değiştirebilen
komuttur
 Aşağıdaki komut örneği gibi
hostname değiştirilebilir.
ENV
sort
 Bu komut ismini, number lines
yani satırları numaralandır anlamına
gelen ifadenin baş harflerinden
almaktadır.
 Kendisine verilen metin
girdisini, varsayılan olarak alfabetik
sıraya dizer. Başka kriterlerle de
sıraya dizmek imkanı vardır.
nl
UniQ
 Uniq komutu unique yani biricik, tek
anlamına gelen kelimeden
oluşturulmuştur.
 Temel olarak yaptığı işlem, tekrar eden
satırlardan sadece birisini almak ve
diğer tekrarları devre dışı bırakmaktır.
 Bazen kayıtlarda çift giriş olabilir. Bu
durumda kayıtları düzeltmek ve
sadeleştirmek için kullanılmaktadır.
Burada dikkat edilmesi gereken önemli
konu, tekrar eden satırların alt alta
birbirini takip ediyor olması gerektiğidir.
WC
o wc komutu word count (kelime say)
ifadesinin baş harflerinden oluşur ve
girilen metin belgesinde bulunan
kelimelerin sayısını verir. Aksi
belirtilmedikçe komut çıktısında satır,
kelime ve harf sayıları raporlanır.
o Bazen, bu bilgilerden sadece bir tanesi
bize gerekli olabilir. Bu durumda, hangi
bilgi gerekliyse onun harf seçeneğinin
komuta bildirilmesi yeterlidir. -l (line)
satır sayısını, -w (word) kelime sayısını,
-m karakter sayısını bildirecektir.
CuT
 Cut komutu, bir dosyadaki veriler sütunlara ayrılmış ise, içerisinden
istediğimiz sütunları almamıza olanak sağlar, CSV (Virgülle ayrılmış değerler)
veya boşlukla ayrılmış değerlerden oluşan metinlerden istediğimiz sütunları
kopyalama işlemini yapar.
-f Fields ifadesinin baş harfidir ve hangi alanları alacağımızı ifade eder.
-d Delimiter ifadesinin baş harfidir ve alanları ayırmak için kullanılacak
karakteri belirtir.
tac
 tac komutu, cat komutunun
tam tersi işlem yapar.
Dosyanın en alt satırını okur
ve ilk satır olarak yazar.
 Bazen kayıtlar tutulurken,
yeni kayıtlar dosyanın en
altına yazılıyor olabilir.Bu yeni
kayıtları en üstte görmek
istediğimizde tac komutunu
kullanırız.
Regular Expression Metakarakterleri
Metakarakter
^
$
.
*
[ ]
[^]
Örnek
‘^silgi’
‘kalem$’
‘ if..e’
‘[a-z]*’
‘[Kk]alem’
‘[^a-t]alak’
Kapsam
Satır başını belirtir.
Satır sonlarını belirtir.
Sadece bir karakter ile
eşleşir,bir karakter ifade eder
Kendinden önceki
karakterden 0 veya daha
fazla olmasını belirtir
Köşeli Parantez içindeki
karakterlerden sadece biriyle
eşleşir.
Köşeli parantez içinde
olmayan karakterlerle eşleşir.
Sonuç
o Satır başlarında “silgi” geçen bütün satırları
getirir.
o Satır sonları “kalem” ile biten satırları
getirir.
o “if” ile başlayan sonra herhangi iki karakter
gelen ve sonu “e” ile biten ifadeleri getirir.
o Küçük alfabetik karakterlerle eşleşir veya
hiçbirşeyle eşleşmez.
o Kalem veya kalem içeren satırları getirir.
o A ile t harfleri dahil ve bunların arasındaki
harflerle başlamayacak ve “alak” ile devam
edecek satırlar.
“VİM(Vi Improved)
 Bilgisayar programlarının kod yazılımında yaygın olarak kullanılsa da, konsolda genel
amaçlı metin editörü olarak da kullanılabilir. Ayrıca, GVim isminde masaüstünde
kullanılan grafik tabanlı versiyonu da mevcuttur.
 iki kullanım moduvardır, Yazım modu ve Komut modu. Yazım moduna geçmek ve
başlayabilmek için "i" tuşuna basmamız, komut moduna geri dönmek için ise "Esc"
tuşuna basıp, tek karakterden ibaret komutları iki nokta üstüste [:] ile vermemiz
gerekiyor.
1. Konsolu açıyoruz : "Alt+F2 >> gnome-terminal«
2. vimtutor yazıyoruz.
TEMEL KULLANICI VE GRUP
İŞLEMLERİ
• /etc/passwd‘a bakacak olursak, bu dizin Linux ve Unix tabanlı sistemlerde,
kullanıcıların “kullanıcı adı, şifresi (şifrelenmiş vaziyette), kullanıcı kimliği ve grup
kimliğinin yanı sıra kullanıcının özel bilgilerininde” yer aldığı bölümdür.
• /etc/ dizini altındaki /etc/shadow ise /etc/passwd’un gizlenmiş şeklidir. Permisson’lara
bakıldığında bu dizinin yalnızca root yetkisine sahip olan kişiler tarafından
görünebileceğini ve üzerinde oynama yapılabileceğini görebiliriz.
 /etc/passwd - kullanıcı hesabı bilgileri
 /etc/shadow - güvenli kullanıcı hesabı bilgileri /etc/shadow dosyası
kullanıcı hesaplarının password’lerin tutulduğu bir dosyadır. Kullanıcı
hesabına ilişkin bu bilgiler : ile ayrılarak tutulur.
 /etc/group - grup bilgileri
Kullanıcı Hesabı Nedİr ?
• Bir bilgisayarın farklı kişiler tarafından kullanıldığı
durumlarda, kullanıcılar arasında ayrım yapmak
gerekmektedir. . Bu sayede kişiye özel dosyalar ve
programlar kişisel hâle getirilebilir.
• Bir hesap, kullanıcının ismini, dosyalarını, kaynaklarını,
haklarını ve ona ait her şeyi temsil eder.
SİSTEM YÖNETİCİSİ (root)
• Linux işletim sisteminde sistem yöneticisinin kullanıcı adı
root'dur. root parolasını bilen bir kullanıcı, işletim sistemi
üzerinde her işlemi yapmaya yetkilidir.
• Linux işletim sistemini kişisel kullanım amacı ile de olsa
sistem yöneticisi (root) kullanıcı hesabı ile kullanmak,
sistemin güvenliği açısından tercih edilmemelidir. root
kullanıcısı sistem üzerinde sınırsız yetkiye sahip olduğu
için yapılacak bazı hatalar sistemin zarar görmesine,
belki de bir daha çalışmamasına neden olabilir.
GRUP OLUŞTURMA
/etc/shadow dosyası alanları:
1) Kullanıcı adı: kullanıcıların giriş yaparken kullandıkları isim. dizin
yolundaki isimle aynı olma ihtimali yüksektir.
2) Şifre: passwd de şifreler gözükmez. Onun yerine x yazar. Asıl şifreler
/etc/shadow da kriptolanmış olarak bulunur. Eğer bu bölüm boş
bırakılmışsa şifresiz olarak giriş yapılınabilir. Eğer * varsa kullanıcı
disable olmuştur.
3) User id: kullanıcı id . 0 ' ı root kullanır. Genel olarak 100 e kadar olanlar
sistemin kendi sanal kullanıcılarına aittir. Mesela daemon,mail,wealizer
vs vs... Bunlar normal kullanıcılar değildir. Normal kullanıcılar genellikle
100 den büyük numaraları alırlar. Bu numaralandırma 65000 e kadar
gider
4) Grup id: /etc/group buradan gruplara ulaşabiliyoruz. Grup id hangi
kullanıcının hangi gruba ait olduğunu bize bildirir. Genelde user id ile
aynı olur
5) User id info: kullanıcı hakkında daha detaylı bilgileri bulabileceğimiz
bölüm. Mesela kullanıcının telefon numarası ,tam ismi vs
yazabilmektedir.
6) Dizin yolu: burası kullanıcının giriş yaptığı zaman bulunacağı bölüm.
Burada kullanıcıya ait programlar , dosyalar vs bulunur.
7) Shell:. Shell kullanıcının girdiği komutları işlemeyi ve sonuçlarını
göstemeyi sağlayan programdır.Burada genelde /bash ya da
/bin/bash yazar. Eğer /bin/false gibi bişey yazıyorsa kullanıcı girişi
engellenmiş demektir.
İZİNLER(PERMİSSİONS)
 Dosyalara ve dizinlere erişilirken Unix&Linux
sistemlerdestandart olarak kullanıcı ve grup sahiplikleri,
izinleri kullanılmaktadır.
 3 adet izin alanı bulunmaktadır.
1) Dosya veya dizinin sahibinin izinleri (user)
2)Dosya veya dizinin grubunun izinleri(group)
3)Dosya veya dizinin diğer şahıslara göre olan izinleri.(others)
İZİNLER(PERMİSSİONS)
Dosyanın
izinleri
Link
sayısı
Dosyanın
sahibi
Dosyanın
grubu
Dosya
boyutu
Dosyanın son
değiştirilme
zamanı
Dosya ismi
r-read,okuma
• Bir dizinde read hakkınız olması,dizinin içinde ne olduğunu görebilmek ve ls komutunu o
dizin üstünde çalıştırabilmek demektir.
w-write,yazma
• Bir dizinde write hakkınız varsa, o dizin içinde dosya oluşturabilirsiniz,var olan dosyaları da
silebilirsiniz o dosyalar üstünde w-write hakkınız olmasa dahi.
x-execute,çalıştırma • Bir dizinde execute hakkınız var ise o dizinin içine gidebilirsiniz/geçebilirsiniz.
Chmod
Dosya ve dizinlerin izinleri sahipleri ve root tarafından değiştirilebilir.
Değiştirmek için “chmod” komutu kullanılır.
Umask
Sistemdeki varsayılan izinler umask değerleri ile son hallerine dönüşür.
Normalde sistemde dosyalar 666,dizinler ise 777 izinleri ile oluşturulur
eğer umask 000 ise. Fakat Unix&Linux sistemlerde umask’i 022’e
ayarlayarak genel bir izin sınırlaması getirilmiş olur. Burada dikkat
edilmesi gereken nokta Umask ‘a verilen değerin sistemden verdiği
değerlerden kaldırılacak izinleri göstermesidir.
Chown,chgrp
Dosya veya dizinin sahipliği değiştirilirken chown komutu,grubu
değiştirilirken chgrp komutu kullanılır.
Bu komutları kullanırken root kullanıcısı olmamız gerekli. Aksi
takdirde “operations not permitted” hatası alırız.
👉
👉
👉
PROCESS
 İşletim sistemleri üzerinde koşan programların parçalarından her birisine
verilen addır.
 Processler o an koşan programın kodunu ve yaptığı işlevleri tutarlar.
 Processler bir çok alt görevi aynı anda yerine getiren çoklu threadlerden de
oluşabilir.
 Genel olarak Processler aşağıdaki yapıları içerirler.
1) Koşmakta olan bir Program
2) Programla alakalı Asenkron bir işlev
3) İşlemcinin belirlediği bir görev
 Linux işletim sistemi, aynı anda birden fazla kullanıcının birden fazla süreç
çalıştırmasına izin vermektedir. Böylelikle sistem çalışır durumdayken
üzerinde çalışan birden fazla süreç bulunmaktadır. Linux işletim sistemi bu
süreçlerin kontrolü ve yönetimi için belli araçlar sunmaktadır. Tüm sistem
arka plandan çalışmakta olan prosesler sayesinde ayakta kalmaktadır. Girdi
çıktı işlemleri, web hizmeti vb. tüm işlemler için tanımlanmış prosesler
mevcuttur.
ps komutu: Bu komut ile sistem üzerinde koşmakta olan tüm
süreçleri ve bu süreçlerin process id leri kullanıcıya sunulur.
 ps komutunun yanı sıra top komutu ile de süreçleri
görüntüleyebiliriz.
top komutu: Bu komut ile Linux sistemleri üzerinde koşmakta
olan görevleri ve temel sistem durumunu ayrıca koşmakta olan
programların harcadıkları bellek ve cpu miktarlarını kullanıcıya
sunar.
 ps ile arasındaki temel fark, top komutu ile gelen dataların güncelleniyor
olmasıdır. (canlı)
 Ayrıca top komutu, proses bilgilerini ekrana getirirken CPU’ yu baz alır. CPU
yu en çok kullanandan en az kullanan prosese doğru bir liste getirir.
PEKİ ARADAKİ FARK NEDİR?
kill komutu: Bu komut ile sistemde var olan
processlerin id leri girilerek bir process
sonlandırılabilir. Linux sistemlerde bir süreci
sadece ve sadece en üstün haklara sahip olan
root kullanıcısı silebilir.
Kill komutuna ait bazı sinyaller şöyledir:
- 1 (SIGHUP) : Servis konfigürasyon
dosyalarının yeniden okunmasını sağlar.
- 9 (SIGKILL) : Bir süreci tamamen öldürmek
için kullanılır.
- 15 (SIGTERM) : Süreci öldürmek için
kullanılır. Fakat her zaman başarılı
olamayabilir. O durumlarda SIGKILL
kullanılır.
ps aux : O an çalışmakta olan işlemlerin bir listesini
oluşturur
Bir prosesi çalıştırırken arka plana atmanın iki yolu vardır.
● Süreç çalıştırıldıktan sonra “ctrl + z” ile durdurulur.
Ardından “bg” komutu ile arka plandan çalıştırılır.
● Diğer yol ise prosesi çalıştırırken sonuna “&” işareti
eklemektir. Böylece proses çalışır çalışmaz arka plana
atılacaktır.
● Arka plandan çalışan prosesleri görmek için “jobs”
komutu kullanılır.
● Arka plana gönderilmiş prosesi tekrardan ön plana almak
için ise “fg” komutu kullanılır.
● bg komutu durdurulan process'i kaldığı yerden arka
planda çalışmaya devam etmesi için kullanılır.
bg komutu durdurulan process'i
kaldığı yerden arka planda
çalışmaya devam etmesi için
kullanılır.
/proc dosya sistemi, çekirdek ve çekirdek
modüllerinin programlara bilgi vermek için
oluşturulmuş bir yöntemdir. Sanal bir dosya
sistemi olan proc, çekirdeğin iç veri yapıları
hakkında bilgi almak, sistemde çalışmakta
olan programlar hakkında kullanışlı bilgiler
edinmek ve çekirdeğin parametrelerini
değiştirerek, çalışmakta olan sistemde
yapılandırmalar yapılmasını sağlamaktadır.
Diğer dosya sistemleri diskte iken proc, geçici
bellekte yeralmaktadır.
"cat /proc/cpuinfo" komutuyla işlemci
özellikleri görülebilir.
Birincisi hazır derlenmiş, direk çalıştırılabilir
paketlerdir ki bunlar çeşitli uzantılarda
olabilirler. Bunlardan '.deb' (Debian Package
Manager) ve '.rpm' (Redhat Package Manager)
en çok kullanılanlardır. Bu paketlerin yaygın
olmalarının en önemli nedeni Debian ve
Redhat’ın çok eski dağıtımlar olması ve birçok
dağıtımın da bu dağıtımların türevi olarak
çıkarılmasıdır. Örneğin openSUSE, Mandriva,
Fedora ‘.rpm’ kulanırken, Ubuntu, Kubuntu ve
Knoppix ‘.deb’ paketlerini kullanır. Bunun dışında
bazı dağıtımların kendi paketleme sistemleri
vardır. Örneğin Pardus .pisi (Packages Installed
Successfully as Intended) paketleme sistemini
kullanır. Aynı şekilde köklü bir Linux dağıtımı olan
Slackware de kendi paketleme sistemini (.tgz)
kullanır.
Linux'ta, Windows'taki kurulum dosyalarına karşılık gelen bazı yapılar vardır.
Bu yapıları temel olarak iki başlık altında toplayabiliriz:
ikincisi, arşivlenmiş kaynak kodlarıdır. Bu
kodlar en çok ‘.tar.gz’ ya da ‘.tar.bz2’
formatları ile bulunurlar. buradaki ‘.tar’
arşivleme formatıdır. .tar kullanılmasındaki
amaç birçok parçadan oluşan kaynak
kodlarını tek bir dosya görünümüne sokmak
ve arşivdeki dosyaların arşiv tarihindeki
bilgilerinde en ufak bir değişiklik
yapmamaktır. ‘.gz’ ve ‘.bz2’ ise ‘gzip’ ve ‘bzip2’
programlarının sıkıştırma formatlarıdır.
Debian pakcage (Debian paketi)
.deb uzantılı dosyalar
• pkg, debian paket yönetim sisteminin
temelini oluşturan yazılımdır dpkg .deb
paketlerini yüklemeye, silmeye ve onlar
hakkında bilgi toplamaya yarar.
• dpkg düşük seviyeli bir araçtır.
Bir .deb paketini yüklemek için:
 dpkg -i deb dosya adı
 sudo apt-get install paketadi.deb
Yüklü paketlerin listesini almak için:
 dpkg -l [opsiyonel olarak şablon]
Yüklü bir paketi silmek için:
 dpkg -r paketadi
.bin uzantılı dosyaları yüklemek için
 Terminal ekranında aşağıdaki
şekilde isimleriyle
yazıldıklarında çalışırlar.
./jre-1_5_0_02-linux-amd64.bin
.tar.bz2 uzantılı dosyaları yüklemek için
 Öncelikle sıkıştırılmış paket açılmalı
 tar.gz tipindeki arşivler için
tar -zxvf dosyaadı.tar.gz
 tar.bz2 tipindeki arşivler için
tar -jxvf dosyaadı.tar.bz2
 Daha sonra açılan dizine girip
./configure
make
make install
komutları verilmelidir.
.rpm uzantılı dosyaları yüklemek için
• RPM redhat package management’ tan
gelmekte ve redhat tabanlı sistemlerde
kullanılılmaktadır.
• Öncelikle .rpm uzantısını .deb uzantılı
paketlere çeviren, çevirici programı
kuruyoruz.
$sudo apt-get update
$sudo apt-get install alien
• .rpm uzantılı dosyamızın olduğu klasöre
gidiyoruz.
Örneğin; $cd ~/Desktop
• .rpm uzantılı dosyamızın deb uzantılısını
elde ediyoruz.
$sudo alien -k rpm-dosya-adi.rpm
• .deb uzantılı paketi çalıştırmak için;
$sudo dpkg -i name-of-deb-file.deb
 Yum komutu ile İşletim sisteminin online
repository'sinden paket arayıp bunu
yükleyebiliriz. Bunun için bilgisayarın
online olması gerekmekte. Yum kullanana
her işletim sisteminin mutlaka bir online
repository'si vardır.
 Yum aracı paketleri otomatik olarak
kurmak, kaldırmak, bilgi almak için
kullanılabilir.
 İhtiyacımız olan paketleri gruplar halinde
de indirebildiği gibi tek tek de indirip
yüklememizi veya aynı şekilde kaldırma
işlemleri içinde kullanabildiğimiz pratik bir
paket yönetme uygulamasıdır.
 apt-get, Ubuntu'nun APT paketleme
aracı ile çalışarak, yeni yazılım paketleri
yükleme, mevcut yazılım paketlerini
yükseltme, paket liste içeriklerini
güncelleme ve hatta tüm Ubuntu
sistemini güncelleme gibi işlemleri yerine
getirmek için kullanılan güçlü
bir uçbirim komutudur.
Yum & Apt
 Açık yazılım dünyasında geliştirilmiş çoğu programın, başka ortamlara
taşınabilirliği yüksektir. Yazılımın kodu ortadadır ve bizim yapmamız gereken
bu kodu derlemektir. Bu sayede, dağıtım bağımsız bir yapıda programı kurup,
kullanma fırsatımız olur. Üstelik bunun için programlama bilmemiz de
gerekmemektedir.
 Her programın uyacağı belirli bir standart yoktur. Ancak çoğunluğun sahip
olduğu, genel kurallar bulunmaktadır. Hemen hemen
hepsinde, README ve INSTALL adında okunabilir metin (text) dosyaları
bulanabilir. Bu iki dosya, programın ne olduğunu, yüklemek için nelere
ihtiyacımız olduğunu içerir. Bir programı derlemek için yapacağımız ilk iş
shell'de, programı açtığımız (extract) yere gelip, "./configure" yazmaktır.
./configure yazdığımızda karşımıza çıkacak ekran, gerekli programlardan
hangilerinin bizde olup olmadığını yes/no ifadeleriyle gösterir.
Compile Source Code
 ./configure komutu: uzunca bir komut akışı yaratır. Eğer işlem
sonunda, "configure: error:" şeklinde bir hata çıkarsa, işletim
sistemimizde, gereken bir araç (program, kütüphane veya derleyici)
yüklü değil demektir.
 make yazıp, programı yüklemeye hazır hâle getirin.
 make install yazarak, programı yükleyin.
 Eğer programı kaldırmak isterseniz, aynı klasörde "make uninstall"
yazabilirsiniz.
Compile Source Code
Aygıtlar
 Linux'ta her şey bir dosyadır;
donanım aygıtları da öyle..
 USB girişleri, seri ve paralel
portlar, diskler, cd-rom'lar vb...
 Bütün aygıtlar /dev klasörü
altında tutulan dosyalardan
ibarettir. Örneğin /dev altında
bulunan hda1 dosyası, sabit
diski temsil eder. Ya da
/dev/dsp, ses aygıtıdır. Bunları
programlar vasıtasıyla
kullanırız ancak direk
müdahale etmek mümkündür.
aygıtlar
- /dev : Donanımlar (cpu, sata
vb.) ve özel dosyalar için
ayrılmıştır.
 /dev Sistemdeki device’lara(aygıtlara, disk ve terminal gibi) erişmek için gerekli olan
dosyaların yer aldığı dizindir.
 /dev sistemin tüm aygıt dosyaları buradadır:
o $ ls -l /dev/cua0
o crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0
 İlk kolondaki ilk karakter (c), bu dosyanın bir karakter aygıtına ait olduğunu belirtiyor.
Normal dosyalar için buradaki karakter '-' olmalıydı. Benzer şekilde blok aygıtlar için ise
'b' kullanılr.
 Aygıt sürücü desteği çekirdekte olmasa bile /dev dizini altında genellikle tüm aygıt
dosyaları bulunur. Bu demektir ki /dev/sda dosyasına sahip olduğunuz halde bir SCSI
sabit diski sistemde takılı olmayabilir.
AYGIT TÜRLERİ
Aygıt (Device Name) Açıklama
hd
IDE disk sürücülerini belirtir; 1–4 primary bölümlere; 5 ve
sonrası logical bölümlere işaret eder.
sd
SCSI disk sürücülerini belirtir. Sisteme disk ekledikçe
sda,sdb,sdc şeklinde isimlendirme devam eder.
scd SCSI CD-ROM sürücüleri
fd Floppy diskleri
st SCSI tape sürücüleri
tty
Terminals,sistemde var olan terminaller tty1,tty2..
isimlendirmesiyle devam eder.
lp Printer ports,printer portlarını ifade eder.
ttyS Serial ports,sistemdeki seri portları ifade eder.
md RAID devices,RAID aygıtlar varsa onları belirtir.
cdrom CD-ROM device dosyasına linktir.
cdwriter CD-R veya CD-RW device dosyasına linktir.
modem Modem device dosyasına linktir.
floppy Floppy device dosyasına linktir.
tape Tape device dosyasına linktir.
scanner Scanner device dosyasına linktir.
 Linux çekirdeği bağlanabilir her türlü aygıt ya da sistem için /sys
dizinini kullanarak bir cihaz oluşturur. Ancak bunun kullanıcılar
tarafından kullanılması için devfs, udev ya da hotplug gibi sistemlere
ihtiyaç bulunmaktadır.
 Devfs, bağlanabilir şeyleri kullanıcıya sunmak için kullanılan en eski ve
bugün yerini udev'e bırakmış olan bir sistemdir.
 Bunun yanında hotplug scriptleri bugüne kadar kullanıldılar. Ancak bu
scriptler yavaş kaldıkları ve her ihtiyaca cevap istenildiği gibi cevap
veremedikleri için bunların görevini de günümüzde udev üstlenmiş
durumdadır.
UDEV
 MAKEDEV halihazırda var olmayan aygıt dosyalarını yaratmak için kullanılır.
 Bununla beraber bazı zamanlar MAKEDEV yaratmak istediğimiz aygıta ilişkin dosyayı
tanımayabilir.
 Burada mknod komutu devreye girer. Bu komutu kullanabilmek için anadüğüm ve
altdüğüm numaralarını bilmek zorundayız.
 Çekirdek içerisindeki devices.txt dosyası, bu bilgilerin yer aldığı temel kaynaktır.
mknod
 Bilgisayarinizdaki CPU (islemci) bilgisini goruntulemek icin,
 sysfs ve /proc/cpuinfo
aracılığıyla işlemci mimarisi, işlemci çekirdek sayısı (CPU core), işlemci
ailesi (CPU family), işlemci (CPU) cache, işlemci (CPU) thread vb. bilgileri
gösteren lscpu komutunu kullanabiliriz.
CPU(İŞLEMCİ)
BİLGİSİNİ GÖRÜNTÜLEME
LİNUXTAKİ TEMEL DOSYA
SİSTEMLERİ
 Disk üzerindeki dosyaların düzenlenmesini ve bir işletim sisteminde dosyaların izlerinin
bulunmasını sağlayan yapıya Dosya Sistemi (File System) denir. Bir disk üzerinde dosya
sistemi oluşturmadan önce, o disk eski haline döndürülmeli ve gereken bilgiler diske
yazılmalıdır. Bu işleme dosya oluşturma denir.
 Dosya sistemi yapısı genel olarak şu bölümlerden oluşur:
Süperblok (Superblock) : Dosya sisteminin boyutu gibi, bütünü hakkında bilgiler içeren
bölüm. Dosya sisteminin büyüklüğü, başlangıç ve bitiş adresleri, inode tablosu, boş blok
tablosu, veri bloklarının başlangıç adresleri gibi bilgileri saklar. Süperblok aynı zamanda
dosya sisteminin düzgün olarak kalmasını sağlar, yapısı herhangi bir nedenle bozulursa
bozukluğu giderebilecek yazılımların çalışmasını sağlar.
Dosya Düğümü (Inode) : Dosyanın ismi dışında bütün bilgilerini içeren bölümdür. Dosyanın
ismi, dosya düğümünün numarasıyla birlikte bulunur. Dosya düğümü, veri bloklarının da
numaralarını içerir. Bir dosya düğümünde belli sayıda veri bloğu için yer vardır. Daha fazla
alana ihtiyaç duyulması durumunda dosya düğümünde dinamik olarak yeni bir yer ayrılır.
Veri Bloğu: Dosyalardaki bilgilerin depolanmasını sağlayan kısımdır.
• Linux işletim sistemi ile birlikte kullanıma giren bu dosya sistemi extended filesystem
(uzatılmış dosya sistemi) ya da kısaca ext olarak adlandırılır.
• Fiziksel aygıtları işlemek için sanal dizinler kullanılır ve veriler fiziksel aygıtlardaki belli
uzunluktaki bloklarda depolanır.
• Ext dosya sistemi, sanal dizinde depolanan dosyalar hakkında iz bilgisi veren inode adlı
bir sistem kullanır.
• İnode sistemi, dosya bilgisini saklamak için her bir fiziksel aygıt üzerinde ayrı bir tablo
yaratır ve buna inode tablosu denir. Sanal dizinde depolanan her dosyanın inode
tablosunda bir girişi vardır.
Ext Dosya Sİstemİ
• Bu dosya sistemi türünün adındaki uzatılmış sözcüğü, her dosyada izlenen aşağıda
sıralanan ek verilerden ötürüdür:
 Dosya adı
 Dosya boyutu
 Dosyanın sahibi
 Dosyanın ait olduğu grup
 Dosya için erişim izinleri
 Dosyadan veri barındıran her disk bloğuna işaretçiler
• Linux, inode tablosundaki her bir inode’u, dosya sistemi tarafından veri dosyaları
yaratmakla görevlendirilmiş özgün bir numara kullanarak (inode numarası) işaretler.
Dosya sistemi, bir dosyayı belirlemek için tam dosya adı ve yolundan ziyade inode
numarasını kullanır.
Ext Dosya Sİstemİ
• Orijinal ext dosya sistemi, dosya boyutunu 2GB ile kısıtlıyordu.
• Bu yüzden ext dosya sistemi ikinci uzatılmış dosya sistemi yani ext2 olarak yükseltildi.
• ext2 dosya sistemi, ext dosya sisteminin temel yeteneklerinin genişletilmiş hâlidir; fakat
aynı yapıyı da korur. Ext2 dosya sistemi, sistemdeki her bir dosya hakkındaki inode
tablo biçimini iz ek bilgisine genişletir.
• İnode tablosunun genişlemesine ek olarak ext2 dosya sistemi, hangi dosyaların veri
bloklarında depolanacağının yolunu da değiştirdi. Ext dosya sistemindeki yaygın sorun
bir dosya fiziksel aygıta yazılırken verileri depolamak için kullanılan blokların aygıtın
(parçalanma denilen) her tarafına dağılma meyli idi.
• Ext2 dosya sistemi bir dosyayı kaydettiğiniz zaman disk bloklarını gruplara ayırarak
parçalanmayı azaltmaya yardımcı olur. Bir dosya için veri blokları gruplandığında, dosya
sistemi belli bir dosyayı okumak için fiziksel aygıttaki tüm veri bloklarında arama
yapmak zorunda kalmaz.
Ext2 DOSYA SİSTEMİ
Eğer dosya depolanırken ve inode tablosu güncellenirken bilgisayardaki
sisteme bir şey olursa, her ikisi de birbiriyle uyumsuz olur. Ext2 dosya
sistemi, sistem çökmeleri ve güç kesintisinden dolayı kolayca
bozulmasıyla nam salmıştır . Veri dosyası fiziksel aygıta düzgün biçimde
depolansa bile inode tablo girişi tamamlanmamışsa ext2 dosya sistemi
böyle bir dosyanın var olduğunu bile bilmeyecektir! Bu sebeplerle
geliştiriciler farklı bir Linux dosya sistemi arayışına girmişlerdir.
Ext2 DOSYA SİSTEMİ
 Günlükleme dosya sistemleri Linux’a güvenlikte yeni bir düzey
sağlamıştır.
 Depolama aygıtına veriyi doğrudan yazmak ve sonra inode tablosunu
güncellemek yerine bu dosya sistemleri dosyadaki değişiklikleri ilk
başta geçici bir dosyaya (journal denen) yazarlar.
 Veri başarılı bir şekilde aygıta ve inode tablosuna yazıldıktan sonra
journal girişi silinir.
 Eğer veri depolama aygıtına yazılmadan önce sistem çöker ya da güç
kesintisi olursa, günlükleme dosya sistemi sadece journal dosyasını
okur ve süreçte işlenmemiş veri kalmaz.
Günlükleme Dosya Sİstemlerİ
 Linux’ta çoğunlukla kullanılan üç farklı günlükleme yöntemi vardır, her biri farklı
düzeyde koruma sağlar. Bunlar aşağıdaki tabloda gösterilmiştir.
Günlükleme Dosya Sİstemlerİ
Yöntem Açıklama
Veri kipi
Hem inode hem de dosya verisi günlüklenir. Veri
kaybı olasılığı çok düşük; fakat başarımı da
düşüktür.
Düzenli kip
Günlüğe sadece inode verisi yazılır; fakat veri
başarılı bir şekilde yazılana dek silinmez. Başarım
ve güvenlik açısından iyi bir bileşimdir.
Geri yazma kipi
Günlüğe sadece inode verisi yazılır, dosya verisi
yazıldığında bir kontrol yapılmaz. Yüksek veri
kaybı riski vardır ama yine de günlükleme
kullanmamaktan daha iyidir.
 Ext ve ext2 dosya sistemlerini geliştiren ekip, Linux projesinin bir
parçası olarak bu dosya sistemlerinin günlükleme sürümlerini
oluşturmuştur. Günlükleme dosya sistemleri ext2 ile uyumludur ve
aralarında eskiye ya da ileriye dönmek kolaydır. Şu anda ext2 dosya
sistemine dayalı iki ayrı günlükleme sistemi vardır.
UZATILMIŞ LİNUX GÜNLÜKLEME DOSYA
SİSTEMLERİ
 ext2 dosya sistemi gibi aynı inode tablo yapısını kullanır; fakat depolama aygıtına
yazılan veriyi günlüklemek için her depolama aygıtına bir günlükleme dosyası ekler.
 Öntanımlı olarak ext3 dosya sistemi, günlüklemenin düzenlenmiş kipini kullanır, günlük
dosyasına sadece inode bilgisini yazar ve veri blokları depolama aygıtına başarılı bir
biçimde yazılana değin bu bilgiyi silmez.
 Ext3 dosya sistemi, Linux dosya sisteminin temel günlüklemesine eklendiğinde hâlen
birkaç noksan tarafı vardı. Örneğin, ext3 dosya sisteminde kazara dosyaların silinme
durumu için kurtarma kipi bulunmuyor, mevcut gömülü veri sıkıştırma özelliği yok (ayrı
olarak yüklenen ve bu özelliği sağlayan bir yama var sadece) ve ext3 dosya sistemi
dosyaların şifrelenmesini desteklemiyor. Bu sebeplerden ötürü geliştiriciler ext3 dosya
sistemini ilerletme konusu üstünde çalışmaya devam etmeyi seçtiler.
Ext3 DOSTA SİSTEMİ
 Genişleyen ext3 dosya sisteminin bir sonucu olarak ,ext4 ortaya çıktı. Ext4 dosya
sistemi resmî olarak 2008’de Linux çekirdeğinde desteklendi. Şimdi de Fedora ve
Ubuntu gibi en çok kullanılan Linux dağıtımlarında öntanımlı dosya sistemidir.
 Sıkıştırma ve şifreleme desteğine ek olarak, ext4 dosya sistemi aynı zamanda kaplam
(extens) diye adlandırılan bir özelliği de destekliyor. Kaplam, depolama aygıtında
bloklar hâlinde alan ayırır ve sadece inode tablosundaki başlangıç konumu bloğuna
depolar. Bu işlem, dosyadan veri depolamada kullanılan tüm veri bloklarını listemeye
gerek kalmadan alan tasarruf etmeye yardımcı olur.
 Ext4 dosya sistemi, önceden blok ayırmaya imkân veriyor. Eğer bir süre için bir
depolama aygıtında boyutunu arttırabileceğimiz bir yer ayırmak istersek, sadece
fiziksel olarak var olan bloklar için değil, aynı zamanda dosya için de tüm beklenen
blokları ayırmak mümkün. Ext4 dosya sistemi, ayrılan veri bloklarını sıfırlarla doldurur
ve diğer başka dosyalara ayırmaması gerektiğini bilir.
Ext4 DOSTA SİSTEMİ
 2001 yılında Hans Reiser, ReiserFS adını verdiği Linux için ilk günlükleme dosya sistemini
yaratmıştır.
 ReiserFS dosya sistemi sadece geri yazma günlükleme kipini desteklemekte, günlük
dosyasını sadece inode tablo verisine yazmaktadır. Günlüğe sadece inode tablo verisini
yazması sebebiyle, ReiserFS dosya sistemi Linux’taki en hızlı günlükleme dosya
sistemlerinden biridir.
 ReiserFS dosya sistemi ile birleştirilmiş iki ilginç özellikten biri, hâlâ etkin iken bir dosya
sistemini yeniden boyutlandırabilmektir. Diğeri de Tailpacking (kuyruk birleştirme)
tekniği diye de anılan bir yöntemdir, veriyi bir dosyadan diğerindeki bir veri bloğunda
bulunan boş alana doldurur.
Reiser DOSYA SİSTEMİ
• XFS günlükleme dosya sistemi, aslında yolu Linux dünyasından geçen ticari bir Unix
sistemi için tasarlanmış olan bir dosya sistemidir.
• Silicon Graphics Incorporated (SGI- Silikon Grafik Anonim Şirketi) XFS dosya sistemini
aslında kendi IRIX Unix sistemi için 1994 yılında yaratmıştır. Linux ortamında ise yaygın
olarak 2002 yılında boy göstermeye başlamıştır.
• XFS dosya sistemi geri yazma kipi günlüklemeyi kullanır, bu yöntem yüksek başarım
sağlar ama aynı zamanda bir miktar riski de beraberinde getirir, çünkü güncel veri
günlükleme dosyasına kaydedilmez. XFS dosya sistemi, ReiserFS dosya sistemine
benzer biçimde çevrimiçi olarak dosya sistemini yeniden boyutlandırma olanağı sunar,
bunun haricinde XFS dosya sistemleri sadece genişletilebilir, fakat daraltılamaz.
XFS DOSYA SİSTEMİ
o Sabit disk üzerine Linux kurulumu için disk üzerinde belli bir alana ve gerekli
partitionlama (bölümleme) işlemi yapmaya gereksinim vardır.
o Disk bölümleme işlemi Linux işletim sisteminin kurulması ve boot işlemi için
gereksinimlerini karşılamayı amaçlar. Bölümleme işlemi belli bir planlama işleminin
ardından yapılması önerilir. Bu planlamada diski kapasitesi, gerekli bölümler ve varsa
diğer işletim sistemlerinin kullandığı disk bölümleri göz önünde bulundurulur.
o Temel dosya sistemi yapısı:
Minimum directory: /dev, /proc, /bin, /etc, /lib, /usr, /tmp dir
DİSK BÖLÜMLEME
 Disk bölümleme işlemi Linux kurulumu sırasında yapılabileceği gibi
kurulumdan önce çeşitli araçlarla da yapılabilir. Bu araçlardan ikisi
şunlardır:
*Fips
*Disk Druid
 Disk Druid; Sabit disk üzerinde bölümleme yapar.
 Fips ;Disk yapılandırmak için kullanılan ücretsiz bir programdır. Bir
sabit disk üzerinde bölümleme (partition) işlemlerini yerine getirir.
Boş disk üzerinde bölümlerin açılmasını, mevcut bölümlerin
görülmesini ya da değiştirilmesini sağlar.
DİSK BÖLÜMLEME ARAÇLARI
 Bir dosya sisteminin kullanılabilmesi için boş bir dizin altına yerleştirilmesi gerekir.
Ancak bu gerçekleştirilirse sözkonusu dosya sistemini oluşturan dosyalar üzerinde
işlem yapılabilir. Bu işlem mount komutu yardımıyla yapılır.
 mount komutu şu şekilde kullanılır :
o mount -t <tip> <nereye> <aygit>
o tip : Dosya sistemi çeşidi.
o nereye : mount edilecek dosya sistemi hangi dizin altına yerleştirileceğini
belirtir.
o aygıt : Üzerinde dosya sisteminin bulunduğu sabit disk, CD-ROM benzeri aygıt.
mount İŞLEMİ
• Yeni bir dosya sistemini kullanıma hazır duruma getirmek için kullanılan program mkfs
programıdır. Örneğin /dev/hda5 disk bölümünün tanımlanmasından ve ext2 türü bir dosya
sisteminin bu bölüm üzerinde çalışacak biçimde düzenlemesinin fdisk ile yapılmasından sonra
mkfs programı aşağıdaki gibi çalıştırılmalıdır:
o # mkfs /dev/hda5
• Bu komut işletildiğinde sistem birkaç dakika süre ile dosya sisteminin tanımlanması
için çalışacak ve bu işlemin sonrasında dosya sistemi kullanılabilir duruma gelecektir.
mkfs
• Sistem ana belleğinin yeterli olmadığı durumlarda kullanılmak üzere, belleği
olduğundan daha büyükmüşçesine kullanmak üzere takas (swapping) işleminden
faydalanılır. Ana belleğin az kullanılan bölümleri geçici olarak diske saklanır ve diğer
süreçlerin kullanımı için yer açılması sağlanır.
• Linux işletim sistemi çalıştıran sistemlerde bu türden bir kullanım için takas dosya
sistemi (swap file system) vardır.
• Sistemde tanımlı dosya sistemlerinin ve bu dosya sistemlerine ilişkin seçimlerin
bulunduğu yapılandırma dosyası /etc/fstab yolundadır. Doğal olarak diğer dosya
sistemlerinin açılış esnasında bağlanabilmesi için bu dosyanın kök dosya sistemi
üzerinde yer alması gerekmektedir.
• Bağlı bir dosya sistemini ayırmak üzere umount programı kullanılır.
mkfs
KERNEL (ÇEKİRDEK)
NEDİR?
 Çekirdek, bilgisayarda donanım (hardware) ve yazılım (software) arasındaki
bağlantıyı sağlayan arabirime verilen isimdir. İşletim sistemi çalışırken
sistemdeki temel işlemler arasındaki iletişimi kurarak işlemci yönetimi, bellek
yönetimi ve G/Ç(giris-çıkış) işlemleri gibi daha pek çok işlemin
yürütülmesinde ve işlemlerin paylaşılmasında görev alır.
LİNUX ÇEKİRDEĞİ NEDİR?
Bugün insanların dağıtımlarda kullandığı “Linux” adı yalnızca teknik
bakımdan çekirdeğin (kernel) adıdır.
Peki bugün teknolojik aletlerin %75′ inde kullanılan bu çekirdeğin
özellikleri nelerdir?
 Linux çekirdeği sistemimizde bulunan işlemciye bir soyutlama katmanı katar.
Bu sayede bir çok program eş zamanlı çalışıyormuş gibi gözükür.
Programların ihtiyacı olduğu kadar işlemciden
yararlanmasını çekirdek sağlar.
 Eğer bir linux sistemi üzerindeyseniz iki tür çekirdekten birini
kullanıyorsunuzdur. UP veya SMP. UP tek işlemcili SMP ise simetrik çok
işlemcili bir çekirdektir.Eğer UP anakarta sahip ve SMP çekirdek
kullanıyorsanız. Sisteminiz birçok işlemciden haberdar olmayacaktır.
Bu sorunu gidermek için de bir UP çekirdek derlenmelidir.
CPU soyutlama
 Çekirdek aynı zamanda her türlü dosya girdi çıktı soyutlama görevini
de yapar. Disk kontrolorlerinizi değiştirdiğiniz takdirde programlarınız
çalışmayacaktır. İşte bu yüzden Linux çekirdeği programların
kullanabileceği Unix modüller kullanmaktadırlar.
IO(GİRİŞ/ÇIKIŞ) SOYUTLAMA
 Linux çekirdeğinin en ünlü ve başarılı olduğu konulardan biri de ağ merkezidir. Güçlü bir
ağ yapısı ve TCP/IP desteği vardır. Çekirdek uyumlu, yüksek seviyeli bir arabirim ile ağ
üzerinden veri gönderilmesini ve alınmasını sağlar.
 uname r kodu ile de kernel versiyonunuzu öğrenebilirsiniz.
Linux Kernel 3.16.1 Kurulumu
Aşağıdaki komutları sırasıyla Uçbirim'de çalıştırın.
o cd /tmp
o wget http://goo.gl/SwCBQM -O kernel-3.16.1
o chmod +x kernel-3.16.1
o sudo sh kernel-3.16.1
o sudo reboot
AĞ MERKEZİ
Linux Kernel 3.16.1'i kaldırmak için
Aşağıdaki komutları Uçbirim'de çalıştırın.
o sudo apt-get purge linux-image-3.16.1*
o sudo update-grub
 Kernel modülü, kernele sonradan eklenip çıkartılabilen kodlardır. C ile geşliştirilen
Kernel Modülleri aslında sıradan bir programdan çok da farklı değildir. Kernelimizde
kurulu olan modülleri lsmod komutuyla görebiliriz.
Kernel Modülü
 Kerneli derleyebilmemiz için bazı paketlere ihtiyacımız vardır.
o $ sudo apt-get install build-essential ncurses-base ncurses-dev
fakeroot kernel-package
 İndirilen tar.xz ‘e sağ tık buraya çıkar deyin ve linux-3.15.6 klasöründe
sağ tık terminalde aç işlemini uygulayın.
o $ make defconfig
o $ make && make modules && make modules_install install
 Kernelin yüklenmesini beklyoruz….
 $ sudo apt dist-upgrade komutuyla gerekli önemli paketlerin sisteme
kurulmasını sağlayabilirsiniz.
Kernel Derleme
 İnit.d dizini aslında yalnız bir tek iş yapar ama bunu bütün sisteminiz
için yapar. Bu yüzden sistemin vazgeçilmezlerinden biridir.İçeriğinde
ise çeşitli hizmetler için başlat/durdur komut dizileri vardır
 init.d dizinini kullanmak için root yetkisi yani sudo yetkisine sahip
olmak gerekir.
o /etc/init.d/command SECENEK
-start
-stop
-reload
-restart
-force-reload
Çoğu durumda start,stop yada restart komutu kullanılır.
İNİT.D
LİNUX AÇILIŞ SÜRECİ
 Linux işletim sisteminin açılış süreci BIOS'un açılışı ile başlar BIOS giriş çıkışları kontrol
eder. Boot Loader programını bulur. Boot Loader'ı bulduktan sonra memory'ye
programı yükler ve kontrolü ona bırakır. Kısaca BIOS MBR yükler ve çalıştırır.
 MBR bootable diskin 1. sektöründe bulunmaktadır. Yeri genellikle /dev/sda veya
/dev/hda olan MBR 512 byte'dan küçük boyuttadır.
Üç parçadan oluşur:
-İlk 446 bytes Primary boot loader bilgisi
-Sonraki 64 bytes Partition table bilgisi
-Son 2 bytes MBR validation check bilgisi
GRUB (Grand Unified Bootloader) kısaca Kernel and initrd imajlarını yükler ve çalıştırır. Eğer sistemininzde
birden fazla kernel kurulu ise bu aşamada hangisinin açılacağı size sorulur. GRUB ayrıca dosya sistemi
hakkında bilgiye sahiptir. Eski sistemlerde bulunan LILO ise dosya sistemini anlayamamaktaydı.
Kernel /sbin/init programını çalıştırır. Root dosya sistemini mount eder. initrd (Initial RAM Disk) kernel
tarafından gerçek root file sistem mount edilene kadar geçici root file sistem olarak kullanılır.
Init Process'i başlatılırken başlangıç seviyeleri (run level):
0 – halt
1 – Single user mode
2 – Multiuser, without NFS
3 – Full multiuser mode
4 – unused
5 – X11
6 – reboot
Sistemin o anki run level'ini öğrenmek için: runlevel veya who -r komutu kabuğa girilebilir.
Sistemin run level'ini değiştirmek için ise rc-sysinit.conf dosyası açılır ve ilgili yer değiştirilir.
init processinin ardından runlevel denilen kullanıcı seviyesinde programlar çalışmaya başlar.
Run level 0 – /etc/rc.d/rc0.d/
Run level 1 – /etc/rc.d/rc1.d/
Run level 2 – /etc/rc.d/rc2.d/
Run level 3 – /etc/rc.d/rc3.d/
Run level 4 – /etc/rc.d/rc4.d/
Run level 5 – /etc/rc.d/rc5.d/
Run level 6 – /etc/rc.d/rc6.d/
Bu programlar şeklinde klasörlerde listelenmiştir. Bu klasörlerde
genelde sembolik linkleri olan programlar başlatılarak boot işlemi
tamamlanmış olur. Eğer sizde açılış sürecinde bir program
çalıştırılmasını istiyorsanız link'ini veya çalıştırılabilir dosyanın
kendisini uygun Run Level klasörünün içine koyarsanız init
process'inin ardından çalışacaktır.
 Linux ve Linux içersinde çalışan uygulamaların farklı log tutma şekilleri vardır. Bu log
dosyalarının nerede tutulduğunu bilmek ve logları okuyabilmek sorun çözme sırasında
yardımcı olur ve zamandan tasarruf sağlar.
 Standart log dosyaları nerede bulunur?
• Linux log dosyaları "/var/log" dizini içersinde bulunur.
Basitce "ls -l /var/log" komutunu kullanarak log dosyalarını listeleyebilirsiniz.
Sistemdeki hemen hemen tüm log dosyaları /var/log/messages dosyasında toplanır.
Örnek olarak bu dosyayı anlık olarak görüntülülemek için;
• tail -f /var/log/messages kullanılır.
• Linux sistemlerde önemli loglama bileşenlerinden birisi de Syslog'dur. Linux
sistemlerdeki sistem loglarının bir çoğu /var/log dizini altında yada bu dizin altındaki alt
dizinlerde tutulur. Syslog istemci/sunucu mimaride çalışır ve hem yerel hemde uzak bir
sunucuya logların gönderilmesine imkan tanır. Bununla birlikte standalone çalışan
Linux sistemlerin çoğunda loglar yerelde tutulur. Syslog konfigurasyonuna ilişkin
detaylar /etc/syslog.conf dosyasında yer alır.
LOGGİNG
/var/log/kern.log dosyası işletim sisteminin çekirdeğine ilişkin olay kayıtlarının
bulunduğu log dosyasıdır ve bu dosyayı analiz ederek ilgili bilgisayara herhangi
bir harici diskin takılıp takılmadığı, takıldı ise ne zaman takıldığı gibi bilgilere
ulaşılabiliriz.
LOGGİNG
 Linux altında ağ ayarlarının yapılandırılması için bir çok farklı seçenek mevcuttur. Ağ
ayarlarının yapılandırılmasında kullanılan dosyaları düzenleyen, kullanımı son derece
kolay programlar tercih edilebileceği gibi, ayarları ilgili yapılandırma dosyalarının elle
değiştirilmesi yolu ile gerçekleştirmek de mümkündür.
 Ağ ayarlarını h ızla ve kolayca gerçekleştirmek üzere netconfig programı kullanılabilir.
 netconfig programı /etc/sysconfig/network dosyasını ve /etc/sysconfig/network-
scripts dizini altında yer alan dosyaları kullanıcıdan alınan parametreler aracılığı ile
yeniden düzenleyen bir aracı programdır.
 Ağın çalışır durumda olması için gereksinim duyulan ağ ayarları ifconfig programı ile
yapılır. ifconfig, ağ bağdaştırıcınızın kullanacağı bağlantı kapsülleme modelinden,
donanım adresine (MAC), kullandığı protokol adresinden protokol yayın (broadcast)
adresi, ağ maskesi ve yayın durumuna değin bir çok değişkeni düzenlemenize imkan
veren bir programdır.
AĞ AYARLARI
 Sistemin ağ ayarları yapılandırılmış ise, sistem açıldığında ilgili ağ bağdaştırıcısının
ayarları otomatik olarak yapılır ve aksi özellikle istenmedikçe ağ bağdaştırıcısı aktif
hale getirilir.
 Çalışan sistem üzerinde aktif olan ve olmayan bir bağdaştırıcının ayarlarını yapmak
üzere ifconfig programı kullanılır. eth0 isimli ethernet ağ bağdaştırıcısına bir IP adresi
atamak üzere aşağıdaki gibi bir komut satırı işletilmelidir:
o # ifconfig eth0 192.168.1.1 up
 Yukarıdaki komut işletildiğinde eth0 adı ile kullanılan bağdaştırıcıya 192.168.1.1 IP adresi
verilecek ve eğer aktif değil ise up parametresi ile bağdaştırıcının aktif hale getirilmesi
sağlanacaktır.
AĞ AYARLARI
 Eğer sistem alt ağlara bölünmüş bir ağ üzerinde yer alıyor ise 255.255.255.0 yerine
farklı bir ağ maskesi kullanımı gerekli olabilir; bu durumda IP adresi ile birlikte ağ
maskesinin de bildirilmesi gerekecektir. Bu durumda aşağıdaki komut satırı uygun
olacaktır:
# ifconfig eth0 192.168.1.1 netmask 255.255.255.128 up
 ifconfig programı yalnızca ağ bağdaştırıcısı ayarlarını gerçekleştirmek için değil, mevcut
yapılandırmayı incelemek için de kullanılabilir.
 ifconfig eth0 biçimindeki bir komut satırı ile eth0 isimli bağdaştırıcının ayarlarının
görüntülenmesi sağlanacaktır.
 ifconfig -a komutu ise sistemde aktif tüm bağdaştırıcıların ayarlarını görüntülemek
amacıyla kullanılabilir.
AĞ AYARLARI
 Yerel ağdaki veya İnternet’teki sistemlere isimleri ile ulaşılmaya çalışıldığında sistem bu
isimleri IP adreslerine dönüştürecektir. Sistem isimlerini IP adreslerine dönüştürmek için
sistemin başvuracağı kaynaklar /etc/hosts dosyası, NIS ve ağın DNS sunucusudur.
/etc/hosts dosyası, sistem isimlerini IP adresleri ile eşleştirme işini durağan bir biçimde
gerçekleştirmek için kullanılabilir.
Temel Ağ Hizmetleri ve inetd
 Sunucu kaynaklarının çok kıt olduğu günlerde geliştirilen bir teknoloji olan inetd
sunucusu, en az kaynak kullanımı ile olabildiğince çok ağ hizmetinin sağlanmasına
imkan verecek bir düzenek teşkil eder. Sıkça İnternet Süper Sunucusu olarak da anılan
inetd, birden çok ağ hizmeti için kukla vazifesi görür.
 inetd, çalışmaya başladığında birden fazla ağ hizmetini kendi başına veriyormuşçasına
ağ bağlantı noktalarını dinlemeye başlar. Dinlediği bağlantı noktalarından herhangi
birine bir hizmet talebi geldiğinde bu isteği alır ve ilgili hizmet sağlayıcı programı
çalıştırarak isteğin karşılanmasını sağlar. Hizmetin karşılanmasından sonra hizmeti
sağlayan program sonlanır ve inetd çalışmasını sürdürür.
AĞ AYARLARI
Nedir Bu MetaRoc?
MetaRoc, Siber Güvenliğin çok önemli oldugu şu günlerde kendini bu
alanda geliştirmek isteyen altı kişinin güçlerini birleştirerek
olusturdugu bir ekiptir. Kar amacı gütmeyeninden ;)
MetaRoc ekibi, 2016 yılından beri Siber Güvenlik konusunda bilinçli
bireylerin yetişmesi için kendi üniversitelerinden başlayarak tüm
Türkiye’de bu alanda çalısmalar yapmayı görev bilmiştir. Bunun için
kendi dokümantasyonlarını ve çalısma alanlarını tamamen yasal
çerçevede hazırlayıp sunmaktadır.
Projelerimizden, etkinliklerimizden haberdar olmak için bizi takip
edin. Soru, öneri ve eleştirilerinizi lütfen bize iletin.
teşekkürler!

Li̇nux-101

  • 1.
  • 2.
    TARİHÇE • Atası Unix’tir.(1960Bell Laboratuarı, Amerika) • Unix, Dennis Ritche tarafından C programlama dili kullanılarak geliştirilmiştir. • Linux, ilk defa 1990 yılında Finli bilgisayar mühendisliği öğrencisi Linus Torwalds tarafından Intel işlemci mimarili bilgisayarlarda çalışmak üzere geliştirildi. Linux bir Unix türevidir. • Çok kullanıcılı(multi user) ve çok görevli (multitasking) bir işletim sistemidir. • 1991'de Linus Torvalds, bugünki Linux çekirdeğini geliştirmeye başladı • 1994 yılında Linux 1.0 serisi kernel GPL lisansı ile yayınlanarak 100.000 kullanıcıya erişmiştir. • Linux" terimi aslında Linux çekirdeğini ima eder. Ama birçok dağıtım Linux çekirdeğini kullandığından Linux işletim sistemleri olarak bilinirler.
  • 3.
    Bİr Lİnux sİstemİüç ana parçadan oluşur 1) Donanım Bellek, işlemci, disk vb. yanı sıra sistem üzerinde çalışan tüm donanımları içerir. 2) Linux Çekirdeği Linux, işletim sisteminin çekirdeğidir. Donanımı yönetir ve sistemle donanım arasında ki haberleşmeyi sağlar. 3) Kullanıcı Uzayı Bu kısım kullanıcıların sistem ile doğrudan etkileşiminin olduğu yerdir.
  • 4.
    LİNUX DAĞITIMLARI ✘ Pardus(Tubitak UAKAE), Gelecek Linux, Turkuaz Linux… ✘ Red-Hat, CentOS , Fedora, Suse,Debian , Knoppix,Mandriva, Ubuntu, Gentoo,Slackware… ✘ Debian Linux Google tarafından kullanılmaktadır. ✘ Çok duyulan FreeBSD ise Linux değil ‘’UNİX İŞLETİM SİSTEMİDİR’’.
  • 5.
    DEBİAN ✘ Debian baştansona özgür ve açık kaynak koddan oluşan, yaygın bilinen bir işletim sistemidir. ✘ Kullanabileceğimız 3 versiyonu vardır; Kararlı, Test ve Kararsız. ✘ Tüm Linux dağıtımları paketlerini farklı şekilde yükler, yönetir ve farklı paket yönetim araçları kullanır. Debian, Debian paket yönetim araçlarını kullanır. ✘ Herhangi bir platform için iyi bir çekirdek işletim sistemidir. ✘ Debian aynı zamanda; Mepis, Ubuntu, Yoper, Knoppix, Libranet, Linspire, Xandros ve Adamantix gibi bir çok GNU/Linux dağıtımına da kaynak teşkil etmekte ve Google başta gelmek üzere iyi tanınan bir çok Web sitesinde de tercih edilmektedir.
  • 6.
    Red Hat EnterpriseLinux (RHEL) Red Hat Tarafından üretilen kurumsal amaçlı işletim sistemidir. EDİSYONLARI ✘ RHEL AS (Advanced Server)(Gelişmiş Sunucu) kurumsal amaçlıdır. ✘ RHEL ES (Edge Server or Entry-level Server)(Kenar Sunucu, Giriş Seviyesi Sunucu) ağ sunucuları için geliştirilmiştir. ✘ RHEL WS (Workstation)(İş İstasyonu) power-user masaüstleri için geliştirilmiştir ✘ Red Hat Desktop masaüstü için geliştirilmiştir. ✘ Rhel debiandan farklı olarak RPM paket yöneticisini kullanır.
  • 7.
    Ubuntu ✘ Kişisel makinalariçin en popüler Linux dağıtımlarından biridir. ✘ Debian paket yönetim sistemini kullanır. ✘ Ubuntu Canonical, tarafından geliştirilen Debian tabanlı bir işletim sistemidir. Linux öğrenmeye yeni başlayanlar için mükemmel bir tercihtir. ✘ Ubuntu kullanım kolaylığı ve mükemmel bir kullanıcı arayüzü sunması sebebiyle geniş kitleler tarafından benimsenmiştir.
  • 8.
    FEDORA ✘ Fedora, dahaönce bilinen adıyla Fedora Core tamamen açık kaynak kodlu ve özgür birLinux dağıtımıdır. ✘ Dünyanın çeşitli bölgelerinde varlığını sürdüren özgür yazılım toplulukları arasında Fedora Projesi kapsamında hala geliştirilmekte ve yönetilmekte olup, RedHat tarafından destek görmektedir. ✘ Fiyat etiketi olmayan bir işletim sistemidir. Masaüstü ve dizüstü bilgisayarlar için önerilen bir işletim sistemidir. ✘ RED hat paket yöneticisini kullanır.
  • 9.
    LİNUX MİNT ✘ LinuxMint, Ubuntu ve Debian temel alınarak geliştirilen, masaüstü kullanıcılarına yönelik bir Linux dağıtımıdır. Linux Mint , "güçlü ve kullanımı kolay hem de modern, şık bir işletim sistemi " olmayı hedeflemektedir. ✘ Masaüstü ve dizüstü bilgisayarlar için idealdir. ✘ Ubuntunun kullandığı pakete ek olarak Debian paket yöneticisini kullanır.
  • 10.
    gentoo ✘ Gentoo, kaynakkod temelli bir Linux dağıtımıdır. ✘ Kaynak kod tabanlı kurulumunun zorluğu sebebiyle, diğer Linux dağıtımları kadar popüler olamasa da; kaynak kurulumlu dağıtımlar arasında en popüleridir. ✘ Kendi paket yönetimi olan portage i kullanır . Portage paket yönetimi çok modüler ve bakımı kolaydır.
  • 11.
    ✘ Novell firmasıtarafından geliştirilen bir Linux dağıtımıdır. OpenSUSE Linux OpenSUSE Projesiyle tasarlanmıştır. ✘ YaST SuSE Linux için kurulum ve yapılandırma aracıdır. ✘ Kullanımı kolay ve çekici ara yüzü ve kurulum sırasında ya da sonrasında sisteminizi hızlı olarak özelleştirme yeteneği ile oldukça popülerdir. OpenSUSE
  • 12.
    ARCH LİNUX ✘ ArchLinux, sadeliği ve zerafeti kendine hedef edinmiş bir GNU / Linux dağıtımıdır. ✘ Ekibinin tasarım yaklaşımı sadelik, şıklık, kod doğruluğu ve minimalizm üzerinedir. ✘ Yükleme , güncelleme ve yönetim paketleri için kendi paket yöneticisi olan pacman’ i kullanır.
  • 13.
    KOMUT SATIRI İSTEMLERİ Kabuk1. •Kabuk temelde klavyeden komutları alan ve gerçekleştirmek için işletim sistemine gönderen bir programdır • Kabuk istemi dağılımına bağlı olarak değişebillr ama çoğunlukla aşağıdaki formata uygun olmalıdır: hostname @ kullanıcı adı : current_directory pete @ buzdolabına : / home / pete $
  • 14.
    KABUK TÜRLERİ o Bash(eskiden sh) Kabuğu: Bash kabuğu ilk UNIX sistemlerinde hem sh ve ksh kabukları, hem de bazı csh özellikleri için orjinal olarak geliştirilen özellikleri içerir. Çoğu LINUX sisteminde varsayılan kabuktur. o Tcsh (eskiden csh) Kabuğu: C Kabuğunun (csh) açık kaynak versiyonudur. Bu kabuk çoğu Berkeley UNIX sistemlerde varsayınlan kabuk olarak kullanılır. o Ash Kabuğu: UNIX sh kabuğunun ufak bir versiyonudur. sh kabuğunun çoğu özelliğini barındırmaz. (komut geçmişleri gibi)...ash kabuğu daha az sistem kaynağına sahip gömülü sistemler için güzel bir kabuktur. bash kabuğunun boyutunun yaklaşık yedi de biri kadar bir boyutu vardır. o Ksh Kabuğu: ksh kabuğu sh kabuğunun atasıdır. UNIX V sistemlerin varsayılan kabuğudur. o Zsh Kabuğu: sh kabuğunun klonlarından biridir. POSIX uyumludur (bash gibi). ancak yazım denetimi ve komut düzenlemeye farklı yaklaşım gibi özellikler içerir. ilk Mac OS X sistemleri zsh kabuğunu varsayılan kabuk olarak kullanmıştır. ancak şuanda varsayılan kabuk bash kabuğudur.
  • 15.
    ✘ Neredeyse tümLinux dağıtımlarında varsayılan olarak bash kabuğu(bourne again Shell) kullanılmaktadır . ✘ ksh, zsh, tsch gibi diğer kabuklarda mevcuttur ✘ Kabuk bir LINUX sistemin olmazsa olmazıdır. İlk olarak kullanıcı adımız belirtilmiştir. @ (amphora)'dan sonra gelen kısım bilgisayar adımızı belirtir Anlaşılacağı üzere bash kabuğu kullanılmaktadır.
  • 16.
    Print Working Directory(PWD) o Diğer işletim sistemlerinde olduğu gibi Linux’ta da, disk, kendine isim verilmiş bir takım bölgelere ayrılır. Bu isimlendirilmiş bölgelere dizin(directory) ismi verilmektedir. Bir dizin içine belirli bir konu ile ilgili çok sayıda dosya konulabilir. Ayrıca bir dizin başka bazı dizinleride içerebilir. o Linux’ta, diskteki diğer bütün dizinleri içeren dizine kök(root) dizin adı verilir. o Kök dizine ebeveyn dizin (parent directory) adı da verilir. Kök dizin altındaki alt dizinlerde kendilerine bağlı alt dizinler içerebilir ve bu yapı belirli bir derinliğe kadar sürebilir. Kök dizin ve onun altındaki alt dizin guruplarından oluşan yapıya ağaç yapısı(tree structure) adı verilmektedir. 2.
  • 17.
    Print Working Directory(PWD) o Bir dizin içerisinde bulunan diğer dizinleri veya dosyalarıbelirtmek için / sembolü kullanılır. Örneğin; /usr/begüm ifadesi, begüm’ün usr dizini içinde olduğunu anlatmaktadır. o File System’de nerede olduğumuzu görmek istiyorsak pwd komutunu kullanırız. 2.
  • 18.
    Cd komutu o cdkomutu; Linux İşletim dizgelerinde o an içinde bulunulan dizini değiştirmeye yarayan komuttur. Gidilecek olan dizinin, dosya sistemi ağacında, kökten itibaren ifade edilişine mutlak yol denir. o Örneğin: /usr/local/bin yolunu yazarak, cd komutuna önce / dizinine gitmesini, oradan usr dizinine, daha sonra da usr dizininin altında local ve onunda altında bin dizinine gitmesi söyleniyor. Mutlak yol ifadeleri, her zaman / den başlayarak kullanılır. 3.
  • 19.
    Cd komutları o cdcd komutunu çalıştırırsanız bulunduğumuz dizine gelmeden önce neredeysek bizi tekrar oraya götürür.(Bir önceki dizine götürür.) o cd.. iki nokta ile kullanırsak bulunduğumuz yerden hiyerarşik yapıda bir üst dizine geçeriz. o cd . cd’yi bir nokta ile kullanırsak bulunduğumuz dizini gösterir. Hiçbir yere hareket etmeyiz. 3.
  • 20.
    Ls komutu nedenkullanılır? o ls komutu; salt olarak kullanıldığında aktif klasördeki dosya ve klasörleri listeler. o Dosya ve klasörler farklı renklerde gösterilir. o İstenirse belirli bir klasör veya dosya belirtilip o klasörün içeriği veya dosya listelenebilir. o a parametresi gizli dosyaların da görüntülenmesini sağlar. 4.
  • 21.
    Ls komutları ls -l: Tarih, dosya sahibi, izinler ile detaylı liste çıkartır. ls -a : Gizli dosyalarla birlikte tüm dosyaları görüntülemek için kullanılır bu parametreler aynı anda da kullanılabilir. (Örnek: ls -la ) ls -lS : Dosyaları sıralarken dosya boyutuna göre sıralar. ls -lh : Dosya boyutlarını Mb, GB, TB cinsinden gösterir. ls -lt : Dosyaları yaratılış tarihine ve değiştirme tarihine göre sıralar. ls -R: Ardışık dizi içeriklerini listeler. Alt dizinleri ve içeriklerini de gösterir. ls -r : Sıralamayı ters şekilde yapar. Sıralamayı tersten yaptırır. Eğer başka bir seçenekle kullanılmamışsa harf sırasına göre sıralar. 4.
  • 22.
  • 23.
  • 24.
    Touch komutu ✘ Touchkomutuyla yeni boş bir dosya tasarlayabiliyoruz. Örneğin; ✘Aynı zamanda -a --> erişim zamanını değiştirir -m --> dosya değiştirilme zamanını değiştirir -t --> o an yerine belirtilen tarih ve zaman olacak şekilde değiştirilir. ✘Eğer birden fazla dosya oluşturmak istiyorsak touch komutundan sonra arada boşluk bırakarak dosya isimlerini yazmamız yeterlidir. 5.
  • 25.
    cat komutu ✘ Catkomutu genellikle bir dosyanın içeriğini terminal ekranına yazdırma, dosyayı terminal üzerinden okuma gibi işlemler için kullanılmaktadır. ✘ Bununla birlikte dosyaları birleştirme, bir dosyanın içeriğini başka bir dosyaya kaydetme gibi farklı kullanımlarını da mevcuttur. ✘ Cat komutunu ve yine yönlendiricileri kullanarak dosyalarımızı kolaylıkla kopyalayabiliriz. cat dosya1.txt > dosya2.txt ✘ Bir dosyanın içeriğini başka bir dosyaya ekleyebiliriz.(Aşağıdaki kod da dosya1’in içeriği dosya2’nin sonuna eklenmekte.) cat dosya1 >> dosya2 7.
  • 26.
    HİSTORY ✘ Komut satırıgeçmişi terminal kullanarak yazdığımız komutların hafızada tutulmasıdır. Daha sonra istediğimiz zaman geçmişe erişebiliriz. ✘ Yeniden kullanmak istediğimiz bir komut var ise Ctrl-R tuşlarına basıp kullanmak istediğimiz komutu daha kolay bulabiliyoruz ve enter diyerek tekrardan kullanabiliyoruz ✘ Konsol ekranını temizlemek için clear komutunu kullanıyoruz. 8.
  • 27.
    cp (Copy) ✘ cpdosyaları kopyalamızı sağlar. Cp ile dosyaları, dizinleri kopyalayabiliriz. GNU/Linux'larda aksi belirtilmediği sürece bir dosya ya da dizinin aynısı kopyalanacaksa üzerine yazar. -i --> Eğer benzer bir dizin ya da dosya kopyalanıyorsa uyarması istenir. -r --> Alt dizinleriyle birlikte dizinleri ve dosyaları kopyalar. -R --> Alt dizinleriyle birlikte dizinleri ve dosyaları kopyalar. 9.
  • 28.
    MV komutu ✘ Dosyalarıtaşımak veya adlarını değiştirmek için kullanılır. -i --> Taşıma öncesi onay istenmesi için kullanılır. -f --> Onaylatmaksızın taşımaya yarar. $ mv oldfile newfile «Dosyayı yeniden adlandırdık» $ Mv file2 / home / Pete / Documents «Dosyayı farklı bir dizine taşıdık» $ Mv file_1 file_2 / somedirectory «Birden fazla dosyayı taşımak için kullanılır» 10.
  • 29.
    RM(remove) KOMUTU ✘ rmkomutu ile dosyalar ve dizinler silinebilir. Varsayılan değeri sormadan silmek şeklindedir. -i --> Silme işlemi onaylatılır. -f --> Onaylatma sorulmadan siler. -r,-R --> Dizin, altdizin ve içerisindeki dosyaları da siler. -rmdir --> Dizini siler (Dizinin boş olması şartı ile) 11.
  • 30.
    FİND ✘ Sistemde dosyaveya dizin araması yapmak istediğimizde find komutunu kullanırız. ✘Aldığı seçenekler ve paremetrelerle çok güçlü bir komuttur. ✘İstediğimiz türde, istediğimiz şekilde dosya ve dizinleri arayıp, onlar üstünde istediğimiz değişikliği gerçekleştirebiliriz. $ find /home -name puppies.jpg 12. 13. HELP ✘ help komutismi şeklinde kullanarak ya da komut - - help şeklinde kullanarak ilgili komut hakkında yardım alabiliriz.
  • 31.
    Man ✘ Manuel ifadesininkısaltmasıdır, linux sistemlerde bir komut veya yazılım hakkında bilgi almayı sağlar. 14.
  • 32.
    alias  Alias, kullanıcılarınkomut satırı üzerinden kendi komutlarının oluşturulması daha doğrusu var olan bash komutlarının yeni isimlerle kaydedilmesidir. Alias yazdıktan sonra yeni komutumuzun adını yazıyoruz.  “ls” komutumuzu “ls -l” komutu ile değiştiriyoruz. Böylece artık ls yazdığımızda komut ls -l komut gibi davranıyor.  Normalde alias komutları terminal oturumu sona erdiğinde sıfırlanır ve yeniden tanımlamak zorunda kalırız. Eğer komutlarımızın(aliasların) kalıcı olmasını istiyorsak kök dizinimizdeki “.bashrc ” dosyasını düzenlememiz gerekiyor. Bu işlemi ~ /.bashrc komutu ile yapıyoruz 15.
  • 33.
    whatis  whatis ;Komut hakkinda basit icerik saglamak için kullanır. Bir komut için tek satırlık bir açıklama gösterir.  Exit komut ekranından çıkmak için kullanılır. 16. exit17.
  • 34.
  • 35.
    Standart girdi ,çıktı,hata (stdout; stdin; stderr)  Linux sistemlerinde bir proses yaratıldığında üç dosya betimleyicisi üst prosesten aktarılmaktadır. Bunlar stdin, stdout ve stderr dosyalarına ilişkin betimleyicilerdir.  Stdin ; standart giriş (standard input) dosyasıdır ve default olarak okuma amacıyla terminale (yani kalvyeye) yönlendirilmiş durumdadır.  Stdout ; standart çıkış (standard output) dosyasıdır ve default olarak yazma amaçlı terminale (yani ekrana) yönlendirilmiş durumdadır.  Stderr ise programda oluşacak hata mesajlarının yazdırılması için kullanılan standart hata (standard error) dosyasıdır. komut >file stdout’a gelen akışı file’a aktarır komut >>file stdout’a gelen akışı file’ın sonuna ekler. komut <file file’dan stdin’e akış gerçekleştirir.
  • 36.
    GREP & PİPE oGrep komutu, kelime arama komutudur. Verilen data içerisinden istenilen kelimeye uygun satırı getirir. ● -i, Büyük küçük harf duyarsızlığı parametresidir. ● -r, ile düzenli idadeler (regex) kullanılabilir. o Bir komutun çıktısı, diğer bir komuta girdi olarak verilebilir. Bu işlem linux da Pipe ile gerçekleştirilir. Bu işlem çoklu olarak da gerçekleştirilmektedir. o Bu komut kali dosyasının ilk 10 satırını grep komutuna aktarır. Grep komutu “KALİ’’ kelimesinin geçtiği satırları ekrana yazdırır.
  • 37.
    Linux Komutları Serisi ●Linuxte bir çok komut parametre almaktadır. Parametreler komut adı yazıldıktan sonra bir boşluk bırakılarak yazılmalıdır. Genellikle parametreler “ - “ işareti ile başlamaktadır. ● Linux komutlarına parametreler ile özel işler yaptırılabilir. Terminal ● Terminal Gnome masaüstü aracının komut satırı aracıdır. ● Linux’un en güçlü olduğu taraf terminal (shell) sistemidir.
  • 38.
     Kabuk tarafındanatanmış tüm çevresel değişkenler env komutu yardımıyla görülebilir. hostname tail  Tail komutu, head komutunun tam tersi olarak dokümanın sonundan itibaren tarama ve görüntüleme yapar. Bir dokümanın sondan itibaren istenen sayıda satırını görüntüler. Herhangi bir satır sayısı verilmediği takdirde varsayılan değer 10 satırdır.  Hostname komutu, bilgisayarın adını görüntüleyen ve değiştirebilen komuttur  Aşağıdaki komut örneği gibi hostname değiştirilebilir. ENV
  • 39.
    sort  Bu komutismini, number lines yani satırları numaralandır anlamına gelen ifadenin baş harflerinden almaktadır.  Kendisine verilen metin girdisini, varsayılan olarak alfabetik sıraya dizer. Başka kriterlerle de sıraya dizmek imkanı vardır. nl
  • 40.
    UniQ  Uniq komutuunique yani biricik, tek anlamına gelen kelimeden oluşturulmuştur.  Temel olarak yaptığı işlem, tekrar eden satırlardan sadece birisini almak ve diğer tekrarları devre dışı bırakmaktır.  Bazen kayıtlarda çift giriş olabilir. Bu durumda kayıtları düzeltmek ve sadeleştirmek için kullanılmaktadır. Burada dikkat edilmesi gereken önemli konu, tekrar eden satırların alt alta birbirini takip ediyor olması gerektiğidir.
  • 41.
    WC o wc komutuword count (kelime say) ifadesinin baş harflerinden oluşur ve girilen metin belgesinde bulunan kelimelerin sayısını verir. Aksi belirtilmedikçe komut çıktısında satır, kelime ve harf sayıları raporlanır. o Bazen, bu bilgilerden sadece bir tanesi bize gerekli olabilir. Bu durumda, hangi bilgi gerekliyse onun harf seçeneğinin komuta bildirilmesi yeterlidir. -l (line) satır sayısını, -w (word) kelime sayısını, -m karakter sayısını bildirecektir.
  • 42.
    CuT  Cut komutu,bir dosyadaki veriler sütunlara ayrılmış ise, içerisinden istediğimiz sütunları almamıza olanak sağlar, CSV (Virgülle ayrılmış değerler) veya boşlukla ayrılmış değerlerden oluşan metinlerden istediğimiz sütunları kopyalama işlemini yapar. -f Fields ifadesinin baş harfidir ve hangi alanları alacağımızı ifade eder. -d Delimiter ifadesinin baş harfidir ve alanları ayırmak için kullanılacak karakteri belirtir.
  • 43.
    tac  tac komutu,cat komutunun tam tersi işlem yapar. Dosyanın en alt satırını okur ve ilk satır olarak yazar.  Bazen kayıtlar tutulurken, yeni kayıtlar dosyanın en altına yazılıyor olabilir.Bu yeni kayıtları en üstte görmek istediğimizde tac komutunu kullanırız.
  • 44.
    Regular Expression Metakarakterleri Metakarakter ^ $ . * [] [^] Örnek ‘^silgi’ ‘kalem$’ ‘ if..e’ ‘[a-z]*’ ‘[Kk]alem’ ‘[^a-t]alak’ Kapsam Satır başını belirtir. Satır sonlarını belirtir. Sadece bir karakter ile eşleşir,bir karakter ifade eder Kendinden önceki karakterden 0 veya daha fazla olmasını belirtir Köşeli Parantez içindeki karakterlerden sadece biriyle eşleşir. Köşeli parantez içinde olmayan karakterlerle eşleşir. Sonuç o Satır başlarında “silgi” geçen bütün satırları getirir. o Satır sonları “kalem” ile biten satırları getirir. o “if” ile başlayan sonra herhangi iki karakter gelen ve sonu “e” ile biten ifadeleri getirir. o Küçük alfabetik karakterlerle eşleşir veya hiçbirşeyle eşleşmez. o Kalem veya kalem içeren satırları getirir. o A ile t harfleri dahil ve bunların arasındaki harflerle başlamayacak ve “alak” ile devam edecek satırlar.
  • 45.
    “VİM(Vi Improved)  Bilgisayarprogramlarının kod yazılımında yaygın olarak kullanılsa da, konsolda genel amaçlı metin editörü olarak da kullanılabilir. Ayrıca, GVim isminde masaüstünde kullanılan grafik tabanlı versiyonu da mevcuttur.  iki kullanım moduvardır, Yazım modu ve Komut modu. Yazım moduna geçmek ve başlayabilmek için "i" tuşuna basmamız, komut moduna geri dönmek için ise "Esc" tuşuna basıp, tek karakterden ibaret komutları iki nokta üstüste [:] ile vermemiz gerekiyor. 1. Konsolu açıyoruz : "Alt+F2 >> gnome-terminal« 2. vimtutor yazıyoruz.
  • 46.
    TEMEL KULLANICI VEGRUP İŞLEMLERİ
  • 47.
    • /etc/passwd‘a bakacakolursak, bu dizin Linux ve Unix tabanlı sistemlerde, kullanıcıların “kullanıcı adı, şifresi (şifrelenmiş vaziyette), kullanıcı kimliği ve grup kimliğinin yanı sıra kullanıcının özel bilgilerininde” yer aldığı bölümdür. • /etc/ dizini altındaki /etc/shadow ise /etc/passwd’un gizlenmiş şeklidir. Permisson’lara bakıldığında bu dizinin yalnızca root yetkisine sahip olan kişiler tarafından görünebileceğini ve üzerinde oynama yapılabileceğini görebiliriz.  /etc/passwd - kullanıcı hesabı bilgileri  /etc/shadow - güvenli kullanıcı hesabı bilgileri /etc/shadow dosyası kullanıcı hesaplarının password’lerin tutulduğu bir dosyadır. Kullanıcı hesabına ilişkin bu bilgiler : ile ayrılarak tutulur.  /etc/group - grup bilgileri
  • 49.
    Kullanıcı Hesabı Nedİr? • Bir bilgisayarın farklı kişiler tarafından kullanıldığı durumlarda, kullanıcılar arasında ayrım yapmak gerekmektedir. . Bu sayede kişiye özel dosyalar ve programlar kişisel hâle getirilebilir. • Bir hesap, kullanıcının ismini, dosyalarını, kaynaklarını, haklarını ve ona ait her şeyi temsil eder.
  • 50.
    SİSTEM YÖNETİCİSİ (root) •Linux işletim sisteminde sistem yöneticisinin kullanıcı adı root'dur. root parolasını bilen bir kullanıcı, işletim sistemi üzerinde her işlemi yapmaya yetkilidir. • Linux işletim sistemini kişisel kullanım amacı ile de olsa sistem yöneticisi (root) kullanıcı hesabı ile kullanmak, sistemin güvenliği açısından tercih edilmemelidir. root kullanıcısı sistem üzerinde sınırsız yetkiye sahip olduğu için yapılacak bazı hatalar sistemin zarar görmesine, belki de bir daha çalışmamasına neden olabilir.
  • 51.
  • 52.
    /etc/shadow dosyası alanları: 1)Kullanıcı adı: kullanıcıların giriş yaparken kullandıkları isim. dizin yolundaki isimle aynı olma ihtimali yüksektir. 2) Şifre: passwd de şifreler gözükmez. Onun yerine x yazar. Asıl şifreler /etc/shadow da kriptolanmış olarak bulunur. Eğer bu bölüm boş bırakılmışsa şifresiz olarak giriş yapılınabilir. Eğer * varsa kullanıcı disable olmuştur. 3) User id: kullanıcı id . 0 ' ı root kullanır. Genel olarak 100 e kadar olanlar sistemin kendi sanal kullanıcılarına aittir. Mesela daemon,mail,wealizer vs vs... Bunlar normal kullanıcılar değildir. Normal kullanıcılar genellikle 100 den büyük numaraları alırlar. Bu numaralandırma 65000 e kadar gider 4) Grup id: /etc/group buradan gruplara ulaşabiliyoruz. Grup id hangi kullanıcının hangi gruba ait olduğunu bize bildirir. Genelde user id ile aynı olur 5) User id info: kullanıcı hakkında daha detaylı bilgileri bulabileceğimiz bölüm. Mesela kullanıcının telefon numarası ,tam ismi vs yazabilmektedir. 6) Dizin yolu: burası kullanıcının giriş yaptığı zaman bulunacağı bölüm. Burada kullanıcıya ait programlar , dosyalar vs bulunur. 7) Shell:. Shell kullanıcının girdiği komutları işlemeyi ve sonuçlarını göstemeyi sağlayan programdır.Burada genelde /bash ya da /bin/bash yazar. Eğer /bin/false gibi bişey yazıyorsa kullanıcı girişi engellenmiş demektir.
  • 53.
    İZİNLER(PERMİSSİONS)  Dosyalara vedizinlere erişilirken Unix&Linux sistemlerdestandart olarak kullanıcı ve grup sahiplikleri, izinleri kullanılmaktadır.  3 adet izin alanı bulunmaktadır. 1) Dosya veya dizinin sahibinin izinleri (user) 2)Dosya veya dizinin grubunun izinleri(group) 3)Dosya veya dizinin diğer şahıslara göre olan izinleri.(others)
  • 54.
    İZİNLER(PERMİSSİONS) Dosyanın izinleri Link sayısı Dosyanın sahibi Dosyanın grubu Dosya boyutu Dosyanın son değiştirilme zamanı Dosya ismi r-read,okuma •Bir dizinde read hakkınız olması,dizinin içinde ne olduğunu görebilmek ve ls komutunu o dizin üstünde çalıştırabilmek demektir. w-write,yazma • Bir dizinde write hakkınız varsa, o dizin içinde dosya oluşturabilirsiniz,var olan dosyaları da silebilirsiniz o dosyalar üstünde w-write hakkınız olmasa dahi. x-execute,çalıştırma • Bir dizinde execute hakkınız var ise o dizinin içine gidebilirsiniz/geçebilirsiniz.
  • 55.
    Chmod Dosya ve dizinlerinizinleri sahipleri ve root tarafından değiştirilebilir. Değiştirmek için “chmod” komutu kullanılır. Umask Sistemdeki varsayılan izinler umask değerleri ile son hallerine dönüşür. Normalde sistemde dosyalar 666,dizinler ise 777 izinleri ile oluşturulur eğer umask 000 ise. Fakat Unix&Linux sistemlerde umask’i 022’e ayarlayarak genel bir izin sınırlaması getirilmiş olur. Burada dikkat edilmesi gereken nokta Umask ‘a verilen değerin sistemden verdiği değerlerden kaldırılacak izinleri göstermesidir. Chown,chgrp Dosya veya dizinin sahipliği değiştirilirken chown komutu,grubu değiştirilirken chgrp komutu kullanılır. Bu komutları kullanırken root kullanıcısı olmamız gerekli. Aksi takdirde “operations not permitted” hatası alırız. 👉 👉 👉
  • 56.
    PROCESS  İşletim sistemleriüzerinde koşan programların parçalarından her birisine verilen addır.  Processler o an koşan programın kodunu ve yaptığı işlevleri tutarlar.  Processler bir çok alt görevi aynı anda yerine getiren çoklu threadlerden de oluşabilir.  Genel olarak Processler aşağıdaki yapıları içerirler. 1) Koşmakta olan bir Program 2) Programla alakalı Asenkron bir işlev 3) İşlemcinin belirlediği bir görev  Linux işletim sistemi, aynı anda birden fazla kullanıcının birden fazla süreç çalıştırmasına izin vermektedir. Böylelikle sistem çalışır durumdayken üzerinde çalışan birden fazla süreç bulunmaktadır. Linux işletim sistemi bu süreçlerin kontrolü ve yönetimi için belli araçlar sunmaktadır. Tüm sistem arka plandan çalışmakta olan prosesler sayesinde ayakta kalmaktadır. Girdi çıktı işlemleri, web hizmeti vb. tüm işlemler için tanımlanmış prosesler mevcuttur.
  • 57.
    ps komutu: Bukomut ile sistem üzerinde koşmakta olan tüm süreçleri ve bu süreçlerin process id leri kullanıcıya sunulur.  ps komutunun yanı sıra top komutu ile de süreçleri görüntüleyebiliriz. top komutu: Bu komut ile Linux sistemleri üzerinde koşmakta olan görevleri ve temel sistem durumunu ayrıca koşmakta olan programların harcadıkları bellek ve cpu miktarlarını kullanıcıya sunar.
  • 58.
     ps ilearasındaki temel fark, top komutu ile gelen dataların güncelleniyor olmasıdır. (canlı)  Ayrıca top komutu, proses bilgilerini ekrana getirirken CPU’ yu baz alır. CPU yu en çok kullanandan en az kullanan prosese doğru bir liste getirir. PEKİ ARADAKİ FARK NEDİR?
  • 59.
    kill komutu: Bukomut ile sistemde var olan processlerin id leri girilerek bir process sonlandırılabilir. Linux sistemlerde bir süreci sadece ve sadece en üstün haklara sahip olan root kullanıcısı silebilir. Kill komutuna ait bazı sinyaller şöyledir: - 1 (SIGHUP) : Servis konfigürasyon dosyalarının yeniden okunmasını sağlar. - 9 (SIGKILL) : Bir süreci tamamen öldürmek için kullanılır. - 15 (SIGTERM) : Süreci öldürmek için kullanılır. Fakat her zaman başarılı olamayabilir. O durumlarda SIGKILL kullanılır. ps aux : O an çalışmakta olan işlemlerin bir listesini oluşturur Bir prosesi çalıştırırken arka plana atmanın iki yolu vardır. ● Süreç çalıştırıldıktan sonra “ctrl + z” ile durdurulur. Ardından “bg” komutu ile arka plandan çalıştırılır. ● Diğer yol ise prosesi çalıştırırken sonuna “&” işareti eklemektir. Böylece proses çalışır çalışmaz arka plana atılacaktır. ● Arka plandan çalışan prosesleri görmek için “jobs” komutu kullanılır. ● Arka plana gönderilmiş prosesi tekrardan ön plana almak için ise “fg” komutu kullanılır. ● bg komutu durdurulan process'i kaldığı yerden arka planda çalışmaya devam etmesi için kullanılır.
  • 60.
    bg komutu durdurulanprocess'i kaldığı yerden arka planda çalışmaya devam etmesi için kullanılır. /proc dosya sistemi, çekirdek ve çekirdek modüllerinin programlara bilgi vermek için oluşturulmuş bir yöntemdir. Sanal bir dosya sistemi olan proc, çekirdeğin iç veri yapıları hakkında bilgi almak, sistemde çalışmakta olan programlar hakkında kullanışlı bilgiler edinmek ve çekirdeğin parametrelerini değiştirerek, çalışmakta olan sistemde yapılandırmalar yapılmasını sağlamaktadır. Diğer dosya sistemleri diskte iken proc, geçici bellekte yeralmaktadır. "cat /proc/cpuinfo" komutuyla işlemci özellikleri görülebilir.
  • 61.
    Birincisi hazır derlenmiş,direk çalıştırılabilir paketlerdir ki bunlar çeşitli uzantılarda olabilirler. Bunlardan '.deb' (Debian Package Manager) ve '.rpm' (Redhat Package Manager) en çok kullanılanlardır. Bu paketlerin yaygın olmalarının en önemli nedeni Debian ve Redhat’ın çok eski dağıtımlar olması ve birçok dağıtımın da bu dağıtımların türevi olarak çıkarılmasıdır. Örneğin openSUSE, Mandriva, Fedora ‘.rpm’ kulanırken, Ubuntu, Kubuntu ve Knoppix ‘.deb’ paketlerini kullanır. Bunun dışında bazı dağıtımların kendi paketleme sistemleri vardır. Örneğin Pardus .pisi (Packages Installed Successfully as Intended) paketleme sistemini kullanır. Aynı şekilde köklü bir Linux dağıtımı olan Slackware de kendi paketleme sistemini (.tgz) kullanır. Linux'ta, Windows'taki kurulum dosyalarına karşılık gelen bazı yapılar vardır. Bu yapıları temel olarak iki başlık altında toplayabiliriz: ikincisi, arşivlenmiş kaynak kodlarıdır. Bu kodlar en çok ‘.tar.gz’ ya da ‘.tar.bz2’ formatları ile bulunurlar. buradaki ‘.tar’ arşivleme formatıdır. .tar kullanılmasındaki amaç birçok parçadan oluşan kaynak kodlarını tek bir dosya görünümüne sokmak ve arşivdeki dosyaların arşiv tarihindeki bilgilerinde en ufak bir değişiklik yapmamaktır. ‘.gz’ ve ‘.bz2’ ise ‘gzip’ ve ‘bzip2’ programlarının sıkıştırma formatlarıdır.
  • 62.
    Debian pakcage (Debianpaketi) .deb uzantılı dosyalar • pkg, debian paket yönetim sisteminin temelini oluşturan yazılımdır dpkg .deb paketlerini yüklemeye, silmeye ve onlar hakkında bilgi toplamaya yarar. • dpkg düşük seviyeli bir araçtır. Bir .deb paketini yüklemek için:  dpkg -i deb dosya adı  sudo apt-get install paketadi.deb Yüklü paketlerin listesini almak için:  dpkg -l [opsiyonel olarak şablon] Yüklü bir paketi silmek için:  dpkg -r paketadi
  • 63.
    .bin uzantılı dosyalarıyüklemek için  Terminal ekranında aşağıdaki şekilde isimleriyle yazıldıklarında çalışırlar. ./jre-1_5_0_02-linux-amd64.bin .tar.bz2 uzantılı dosyaları yüklemek için  Öncelikle sıkıştırılmış paket açılmalı  tar.gz tipindeki arşivler için tar -zxvf dosyaadı.tar.gz  tar.bz2 tipindeki arşivler için tar -jxvf dosyaadı.tar.bz2  Daha sonra açılan dizine girip ./configure make make install komutları verilmelidir.
  • 64.
    .rpm uzantılı dosyalarıyüklemek için • RPM redhat package management’ tan gelmekte ve redhat tabanlı sistemlerde kullanılılmaktadır. • Öncelikle .rpm uzantısını .deb uzantılı paketlere çeviren, çevirici programı kuruyoruz. $sudo apt-get update $sudo apt-get install alien • .rpm uzantılı dosyamızın olduğu klasöre gidiyoruz. Örneğin; $cd ~/Desktop • .rpm uzantılı dosyamızın deb uzantılısını elde ediyoruz. $sudo alien -k rpm-dosya-adi.rpm • .deb uzantılı paketi çalıştırmak için; $sudo dpkg -i name-of-deb-file.deb
  • 65.
     Yum komutuile İşletim sisteminin online repository'sinden paket arayıp bunu yükleyebiliriz. Bunun için bilgisayarın online olması gerekmekte. Yum kullanana her işletim sisteminin mutlaka bir online repository'si vardır.  Yum aracı paketleri otomatik olarak kurmak, kaldırmak, bilgi almak için kullanılabilir.  İhtiyacımız olan paketleri gruplar halinde de indirebildiği gibi tek tek de indirip yüklememizi veya aynı şekilde kaldırma işlemleri içinde kullanabildiğimiz pratik bir paket yönetme uygulamasıdır.  apt-get, Ubuntu'nun APT paketleme aracı ile çalışarak, yeni yazılım paketleri yükleme, mevcut yazılım paketlerini yükseltme, paket liste içeriklerini güncelleme ve hatta tüm Ubuntu sistemini güncelleme gibi işlemleri yerine getirmek için kullanılan güçlü bir uçbirim komutudur. Yum & Apt
  • 66.
     Açık yazılımdünyasında geliştirilmiş çoğu programın, başka ortamlara taşınabilirliği yüksektir. Yazılımın kodu ortadadır ve bizim yapmamız gereken bu kodu derlemektir. Bu sayede, dağıtım bağımsız bir yapıda programı kurup, kullanma fırsatımız olur. Üstelik bunun için programlama bilmemiz de gerekmemektedir.  Her programın uyacağı belirli bir standart yoktur. Ancak çoğunluğun sahip olduğu, genel kurallar bulunmaktadır. Hemen hemen hepsinde, README ve INSTALL adında okunabilir metin (text) dosyaları bulanabilir. Bu iki dosya, programın ne olduğunu, yüklemek için nelere ihtiyacımız olduğunu içerir. Bir programı derlemek için yapacağımız ilk iş shell'de, programı açtığımız (extract) yere gelip, "./configure" yazmaktır. ./configure yazdığımızda karşımıza çıkacak ekran, gerekli programlardan hangilerinin bizde olup olmadığını yes/no ifadeleriyle gösterir. Compile Source Code
  • 67.
     ./configure komutu:uzunca bir komut akışı yaratır. Eğer işlem sonunda, "configure: error:" şeklinde bir hata çıkarsa, işletim sistemimizde, gereken bir araç (program, kütüphane veya derleyici) yüklü değil demektir.  make yazıp, programı yüklemeye hazır hâle getirin.  make install yazarak, programı yükleyin.  Eğer programı kaldırmak isterseniz, aynı klasörde "make uninstall" yazabilirsiniz. Compile Source Code
  • 68.
  • 69.
     Linux'ta herşey bir dosyadır; donanım aygıtları da öyle..  USB girişleri, seri ve paralel portlar, diskler, cd-rom'lar vb...  Bütün aygıtlar /dev klasörü altında tutulan dosyalardan ibarettir. Örneğin /dev altında bulunan hda1 dosyası, sabit diski temsil eder. Ya da /dev/dsp, ses aygıtıdır. Bunları programlar vasıtasıyla kullanırız ancak direk müdahale etmek mümkündür. aygıtlar - /dev : Donanımlar (cpu, sata vb.) ve özel dosyalar için ayrılmıştır.
  • 70.
     /dev Sistemdekidevice’lara(aygıtlara, disk ve terminal gibi) erişmek için gerekli olan dosyaların yer aldığı dizindir.  /dev sistemin tüm aygıt dosyaları buradadır: o $ ls -l /dev/cua0 o crw-rw-rw- 1 root uucp 5, 64 Nov 30 1993 /dev/cua0  İlk kolondaki ilk karakter (c), bu dosyanın bir karakter aygıtına ait olduğunu belirtiyor. Normal dosyalar için buradaki karakter '-' olmalıydı. Benzer şekilde blok aygıtlar için ise 'b' kullanılr.  Aygıt sürücü desteği çekirdekte olmasa bile /dev dizini altında genellikle tüm aygıt dosyaları bulunur. Bu demektir ki /dev/sda dosyasına sahip olduğunuz halde bir SCSI sabit diski sistemde takılı olmayabilir. AYGIT TÜRLERİ
  • 71.
    Aygıt (Device Name)Açıklama hd IDE disk sürücülerini belirtir; 1–4 primary bölümlere; 5 ve sonrası logical bölümlere işaret eder. sd SCSI disk sürücülerini belirtir. Sisteme disk ekledikçe sda,sdb,sdc şeklinde isimlendirme devam eder. scd SCSI CD-ROM sürücüleri fd Floppy diskleri st SCSI tape sürücüleri tty Terminals,sistemde var olan terminaller tty1,tty2.. isimlendirmesiyle devam eder. lp Printer ports,printer portlarını ifade eder. ttyS Serial ports,sistemdeki seri portları ifade eder. md RAID devices,RAID aygıtlar varsa onları belirtir. cdrom CD-ROM device dosyasına linktir. cdwriter CD-R veya CD-RW device dosyasına linktir. modem Modem device dosyasına linktir. floppy Floppy device dosyasına linktir. tape Tape device dosyasına linktir. scanner Scanner device dosyasına linktir.
  • 72.
     Linux çekirdeğibağlanabilir her türlü aygıt ya da sistem için /sys dizinini kullanarak bir cihaz oluşturur. Ancak bunun kullanıcılar tarafından kullanılması için devfs, udev ya da hotplug gibi sistemlere ihtiyaç bulunmaktadır.  Devfs, bağlanabilir şeyleri kullanıcıya sunmak için kullanılan en eski ve bugün yerini udev'e bırakmış olan bir sistemdir.  Bunun yanında hotplug scriptleri bugüne kadar kullanıldılar. Ancak bu scriptler yavaş kaldıkları ve her ihtiyaca cevap istenildiği gibi cevap veremedikleri için bunların görevini de günümüzde udev üstlenmiş durumdadır. UDEV
  • 73.
     MAKEDEV halihazırdavar olmayan aygıt dosyalarını yaratmak için kullanılır.  Bununla beraber bazı zamanlar MAKEDEV yaratmak istediğimiz aygıta ilişkin dosyayı tanımayabilir.  Burada mknod komutu devreye girer. Bu komutu kullanabilmek için anadüğüm ve altdüğüm numaralarını bilmek zorundayız.  Çekirdek içerisindeki devices.txt dosyası, bu bilgilerin yer aldığı temel kaynaktır. mknod
  • 74.
     Bilgisayarinizdaki CPU(islemci) bilgisini goruntulemek icin,  sysfs ve /proc/cpuinfo aracılığıyla işlemci mimarisi, işlemci çekirdek sayısı (CPU core), işlemci ailesi (CPU family), işlemci (CPU) cache, işlemci (CPU) thread vb. bilgileri gösteren lscpu komutunu kullanabiliriz. CPU(İŞLEMCİ) BİLGİSİNİ GÖRÜNTÜLEME
  • 75.
  • 76.
     Disk üzerindekidosyaların düzenlenmesini ve bir işletim sisteminde dosyaların izlerinin bulunmasını sağlayan yapıya Dosya Sistemi (File System) denir. Bir disk üzerinde dosya sistemi oluşturmadan önce, o disk eski haline döndürülmeli ve gereken bilgiler diske yazılmalıdır. Bu işleme dosya oluşturma denir.  Dosya sistemi yapısı genel olarak şu bölümlerden oluşur: Süperblok (Superblock) : Dosya sisteminin boyutu gibi, bütünü hakkında bilgiler içeren bölüm. Dosya sisteminin büyüklüğü, başlangıç ve bitiş adresleri, inode tablosu, boş blok tablosu, veri bloklarının başlangıç adresleri gibi bilgileri saklar. Süperblok aynı zamanda dosya sisteminin düzgün olarak kalmasını sağlar, yapısı herhangi bir nedenle bozulursa bozukluğu giderebilecek yazılımların çalışmasını sağlar. Dosya Düğümü (Inode) : Dosyanın ismi dışında bütün bilgilerini içeren bölümdür. Dosyanın ismi, dosya düğümünün numarasıyla birlikte bulunur. Dosya düğümü, veri bloklarının da numaralarını içerir. Bir dosya düğümünde belli sayıda veri bloğu için yer vardır. Daha fazla alana ihtiyaç duyulması durumunda dosya düğümünde dinamik olarak yeni bir yer ayrılır. Veri Bloğu: Dosyalardaki bilgilerin depolanmasını sağlayan kısımdır.
  • 77.
    • Linux işletimsistemi ile birlikte kullanıma giren bu dosya sistemi extended filesystem (uzatılmış dosya sistemi) ya da kısaca ext olarak adlandırılır. • Fiziksel aygıtları işlemek için sanal dizinler kullanılır ve veriler fiziksel aygıtlardaki belli uzunluktaki bloklarda depolanır. • Ext dosya sistemi, sanal dizinde depolanan dosyalar hakkında iz bilgisi veren inode adlı bir sistem kullanır. • İnode sistemi, dosya bilgisini saklamak için her bir fiziksel aygıt üzerinde ayrı bir tablo yaratır ve buna inode tablosu denir. Sanal dizinde depolanan her dosyanın inode tablosunda bir girişi vardır. Ext Dosya Sİstemİ
  • 78.
    • Bu dosyasistemi türünün adındaki uzatılmış sözcüğü, her dosyada izlenen aşağıda sıralanan ek verilerden ötürüdür:  Dosya adı  Dosya boyutu  Dosyanın sahibi  Dosyanın ait olduğu grup  Dosya için erişim izinleri  Dosyadan veri barındıran her disk bloğuna işaretçiler • Linux, inode tablosundaki her bir inode’u, dosya sistemi tarafından veri dosyaları yaratmakla görevlendirilmiş özgün bir numara kullanarak (inode numarası) işaretler. Dosya sistemi, bir dosyayı belirlemek için tam dosya adı ve yolundan ziyade inode numarasını kullanır. Ext Dosya Sİstemİ
  • 79.
    • Orijinal extdosya sistemi, dosya boyutunu 2GB ile kısıtlıyordu. • Bu yüzden ext dosya sistemi ikinci uzatılmış dosya sistemi yani ext2 olarak yükseltildi. • ext2 dosya sistemi, ext dosya sisteminin temel yeteneklerinin genişletilmiş hâlidir; fakat aynı yapıyı da korur. Ext2 dosya sistemi, sistemdeki her bir dosya hakkındaki inode tablo biçimini iz ek bilgisine genişletir. • İnode tablosunun genişlemesine ek olarak ext2 dosya sistemi, hangi dosyaların veri bloklarında depolanacağının yolunu da değiştirdi. Ext dosya sistemindeki yaygın sorun bir dosya fiziksel aygıta yazılırken verileri depolamak için kullanılan blokların aygıtın (parçalanma denilen) her tarafına dağılma meyli idi. • Ext2 dosya sistemi bir dosyayı kaydettiğiniz zaman disk bloklarını gruplara ayırarak parçalanmayı azaltmaya yardımcı olur. Bir dosya için veri blokları gruplandığında, dosya sistemi belli bir dosyayı okumak için fiziksel aygıttaki tüm veri bloklarında arama yapmak zorunda kalmaz. Ext2 DOSYA SİSTEMİ
  • 80.
    Eğer dosya depolanırkenve inode tablosu güncellenirken bilgisayardaki sisteme bir şey olursa, her ikisi de birbiriyle uyumsuz olur. Ext2 dosya sistemi, sistem çökmeleri ve güç kesintisinden dolayı kolayca bozulmasıyla nam salmıştır . Veri dosyası fiziksel aygıta düzgün biçimde depolansa bile inode tablo girişi tamamlanmamışsa ext2 dosya sistemi böyle bir dosyanın var olduğunu bile bilmeyecektir! Bu sebeplerle geliştiriciler farklı bir Linux dosya sistemi arayışına girmişlerdir. Ext2 DOSYA SİSTEMİ
  • 81.
     Günlükleme dosyasistemleri Linux’a güvenlikte yeni bir düzey sağlamıştır.  Depolama aygıtına veriyi doğrudan yazmak ve sonra inode tablosunu güncellemek yerine bu dosya sistemleri dosyadaki değişiklikleri ilk başta geçici bir dosyaya (journal denen) yazarlar.  Veri başarılı bir şekilde aygıta ve inode tablosuna yazıldıktan sonra journal girişi silinir.  Eğer veri depolama aygıtına yazılmadan önce sistem çöker ya da güç kesintisi olursa, günlükleme dosya sistemi sadece journal dosyasını okur ve süreçte işlenmemiş veri kalmaz. Günlükleme Dosya Sİstemlerİ
  • 82.
     Linux’ta çoğunluklakullanılan üç farklı günlükleme yöntemi vardır, her biri farklı düzeyde koruma sağlar. Bunlar aşağıdaki tabloda gösterilmiştir. Günlükleme Dosya Sİstemlerİ Yöntem Açıklama Veri kipi Hem inode hem de dosya verisi günlüklenir. Veri kaybı olasılığı çok düşük; fakat başarımı da düşüktür. Düzenli kip Günlüğe sadece inode verisi yazılır; fakat veri başarılı bir şekilde yazılana dek silinmez. Başarım ve güvenlik açısından iyi bir bileşimdir. Geri yazma kipi Günlüğe sadece inode verisi yazılır, dosya verisi yazıldığında bir kontrol yapılmaz. Yüksek veri kaybı riski vardır ama yine de günlükleme kullanmamaktan daha iyidir.
  • 83.
     Ext veext2 dosya sistemlerini geliştiren ekip, Linux projesinin bir parçası olarak bu dosya sistemlerinin günlükleme sürümlerini oluşturmuştur. Günlükleme dosya sistemleri ext2 ile uyumludur ve aralarında eskiye ya da ileriye dönmek kolaydır. Şu anda ext2 dosya sistemine dayalı iki ayrı günlükleme sistemi vardır. UZATILMIŞ LİNUX GÜNLÜKLEME DOSYA SİSTEMLERİ
  • 84.
     ext2 dosyasistemi gibi aynı inode tablo yapısını kullanır; fakat depolama aygıtına yazılan veriyi günlüklemek için her depolama aygıtına bir günlükleme dosyası ekler.  Öntanımlı olarak ext3 dosya sistemi, günlüklemenin düzenlenmiş kipini kullanır, günlük dosyasına sadece inode bilgisini yazar ve veri blokları depolama aygıtına başarılı bir biçimde yazılana değin bu bilgiyi silmez.  Ext3 dosya sistemi, Linux dosya sisteminin temel günlüklemesine eklendiğinde hâlen birkaç noksan tarafı vardı. Örneğin, ext3 dosya sisteminde kazara dosyaların silinme durumu için kurtarma kipi bulunmuyor, mevcut gömülü veri sıkıştırma özelliği yok (ayrı olarak yüklenen ve bu özelliği sağlayan bir yama var sadece) ve ext3 dosya sistemi dosyaların şifrelenmesini desteklemiyor. Bu sebeplerden ötürü geliştiriciler ext3 dosya sistemini ilerletme konusu üstünde çalışmaya devam etmeyi seçtiler. Ext3 DOSTA SİSTEMİ
  • 85.
     Genişleyen ext3dosya sisteminin bir sonucu olarak ,ext4 ortaya çıktı. Ext4 dosya sistemi resmî olarak 2008’de Linux çekirdeğinde desteklendi. Şimdi de Fedora ve Ubuntu gibi en çok kullanılan Linux dağıtımlarında öntanımlı dosya sistemidir.  Sıkıştırma ve şifreleme desteğine ek olarak, ext4 dosya sistemi aynı zamanda kaplam (extens) diye adlandırılan bir özelliği de destekliyor. Kaplam, depolama aygıtında bloklar hâlinde alan ayırır ve sadece inode tablosundaki başlangıç konumu bloğuna depolar. Bu işlem, dosyadan veri depolamada kullanılan tüm veri bloklarını listemeye gerek kalmadan alan tasarruf etmeye yardımcı olur.  Ext4 dosya sistemi, önceden blok ayırmaya imkân veriyor. Eğer bir süre için bir depolama aygıtında boyutunu arttırabileceğimiz bir yer ayırmak istersek, sadece fiziksel olarak var olan bloklar için değil, aynı zamanda dosya için de tüm beklenen blokları ayırmak mümkün. Ext4 dosya sistemi, ayrılan veri bloklarını sıfırlarla doldurur ve diğer başka dosyalara ayırmaması gerektiğini bilir. Ext4 DOSTA SİSTEMİ
  • 86.
     2001 yılındaHans Reiser, ReiserFS adını verdiği Linux için ilk günlükleme dosya sistemini yaratmıştır.  ReiserFS dosya sistemi sadece geri yazma günlükleme kipini desteklemekte, günlük dosyasını sadece inode tablo verisine yazmaktadır. Günlüğe sadece inode tablo verisini yazması sebebiyle, ReiserFS dosya sistemi Linux’taki en hızlı günlükleme dosya sistemlerinden biridir.  ReiserFS dosya sistemi ile birleştirilmiş iki ilginç özellikten biri, hâlâ etkin iken bir dosya sistemini yeniden boyutlandırabilmektir. Diğeri de Tailpacking (kuyruk birleştirme) tekniği diye de anılan bir yöntemdir, veriyi bir dosyadan diğerindeki bir veri bloğunda bulunan boş alana doldurur. Reiser DOSYA SİSTEMİ
  • 87.
    • XFS günlüklemedosya sistemi, aslında yolu Linux dünyasından geçen ticari bir Unix sistemi için tasarlanmış olan bir dosya sistemidir. • Silicon Graphics Incorporated (SGI- Silikon Grafik Anonim Şirketi) XFS dosya sistemini aslında kendi IRIX Unix sistemi için 1994 yılında yaratmıştır. Linux ortamında ise yaygın olarak 2002 yılında boy göstermeye başlamıştır. • XFS dosya sistemi geri yazma kipi günlüklemeyi kullanır, bu yöntem yüksek başarım sağlar ama aynı zamanda bir miktar riski de beraberinde getirir, çünkü güncel veri günlükleme dosyasına kaydedilmez. XFS dosya sistemi, ReiserFS dosya sistemine benzer biçimde çevrimiçi olarak dosya sistemini yeniden boyutlandırma olanağı sunar, bunun haricinde XFS dosya sistemleri sadece genişletilebilir, fakat daraltılamaz. XFS DOSYA SİSTEMİ
  • 88.
    o Sabit disküzerine Linux kurulumu için disk üzerinde belli bir alana ve gerekli partitionlama (bölümleme) işlemi yapmaya gereksinim vardır. o Disk bölümleme işlemi Linux işletim sisteminin kurulması ve boot işlemi için gereksinimlerini karşılamayı amaçlar. Bölümleme işlemi belli bir planlama işleminin ardından yapılması önerilir. Bu planlamada diski kapasitesi, gerekli bölümler ve varsa diğer işletim sistemlerinin kullandığı disk bölümleri göz önünde bulundurulur. o Temel dosya sistemi yapısı: Minimum directory: /dev, /proc, /bin, /etc, /lib, /usr, /tmp dir DİSK BÖLÜMLEME
  • 89.
     Disk bölümlemeişlemi Linux kurulumu sırasında yapılabileceği gibi kurulumdan önce çeşitli araçlarla da yapılabilir. Bu araçlardan ikisi şunlardır: *Fips *Disk Druid  Disk Druid; Sabit disk üzerinde bölümleme yapar.  Fips ;Disk yapılandırmak için kullanılan ücretsiz bir programdır. Bir sabit disk üzerinde bölümleme (partition) işlemlerini yerine getirir. Boş disk üzerinde bölümlerin açılmasını, mevcut bölümlerin görülmesini ya da değiştirilmesini sağlar. DİSK BÖLÜMLEME ARAÇLARI
  • 90.
     Bir dosyasisteminin kullanılabilmesi için boş bir dizin altına yerleştirilmesi gerekir. Ancak bu gerçekleştirilirse sözkonusu dosya sistemini oluşturan dosyalar üzerinde işlem yapılabilir. Bu işlem mount komutu yardımıyla yapılır.  mount komutu şu şekilde kullanılır : o mount -t <tip> <nereye> <aygit> o tip : Dosya sistemi çeşidi. o nereye : mount edilecek dosya sistemi hangi dizin altına yerleştirileceğini belirtir. o aygıt : Üzerinde dosya sisteminin bulunduğu sabit disk, CD-ROM benzeri aygıt. mount İŞLEMİ
  • 91.
    • Yeni birdosya sistemini kullanıma hazır duruma getirmek için kullanılan program mkfs programıdır. Örneğin /dev/hda5 disk bölümünün tanımlanmasından ve ext2 türü bir dosya sisteminin bu bölüm üzerinde çalışacak biçimde düzenlemesinin fdisk ile yapılmasından sonra mkfs programı aşağıdaki gibi çalıştırılmalıdır: o # mkfs /dev/hda5 • Bu komut işletildiğinde sistem birkaç dakika süre ile dosya sisteminin tanımlanması için çalışacak ve bu işlemin sonrasında dosya sistemi kullanılabilir duruma gelecektir. mkfs
  • 92.
    • Sistem anabelleğinin yeterli olmadığı durumlarda kullanılmak üzere, belleği olduğundan daha büyükmüşçesine kullanmak üzere takas (swapping) işleminden faydalanılır. Ana belleğin az kullanılan bölümleri geçici olarak diske saklanır ve diğer süreçlerin kullanımı için yer açılması sağlanır. • Linux işletim sistemi çalıştıran sistemlerde bu türden bir kullanım için takas dosya sistemi (swap file system) vardır. • Sistemde tanımlı dosya sistemlerinin ve bu dosya sistemlerine ilişkin seçimlerin bulunduğu yapılandırma dosyası /etc/fstab yolundadır. Doğal olarak diğer dosya sistemlerinin açılış esnasında bağlanabilmesi için bu dosyanın kök dosya sistemi üzerinde yer alması gerekmektedir. • Bağlı bir dosya sistemini ayırmak üzere umount programı kullanılır. mkfs
  • 93.
  • 94.
     Çekirdek, bilgisayardadonanım (hardware) ve yazılım (software) arasındaki bağlantıyı sağlayan arabirime verilen isimdir. İşletim sistemi çalışırken sistemdeki temel işlemler arasındaki iletişimi kurarak işlemci yönetimi, bellek yönetimi ve G/Ç(giris-çıkış) işlemleri gibi daha pek çok işlemin yürütülmesinde ve işlemlerin paylaşılmasında görev alır. LİNUX ÇEKİRDEĞİ NEDİR? Bugün insanların dağıtımlarda kullandığı “Linux” adı yalnızca teknik bakımdan çekirdeğin (kernel) adıdır. Peki bugün teknolojik aletlerin %75′ inde kullanılan bu çekirdeğin özellikleri nelerdir?
  • 95.
     Linux çekirdeğisistemimizde bulunan işlemciye bir soyutlama katmanı katar. Bu sayede bir çok program eş zamanlı çalışıyormuş gibi gözükür. Programların ihtiyacı olduğu kadar işlemciden yararlanmasını çekirdek sağlar.  Eğer bir linux sistemi üzerindeyseniz iki tür çekirdekten birini kullanıyorsunuzdur. UP veya SMP. UP tek işlemcili SMP ise simetrik çok işlemcili bir çekirdektir.Eğer UP anakarta sahip ve SMP çekirdek kullanıyorsanız. Sisteminiz birçok işlemciden haberdar olmayacaktır. Bu sorunu gidermek için de bir UP çekirdek derlenmelidir. CPU soyutlama
  • 96.
     Çekirdek aynızamanda her türlü dosya girdi çıktı soyutlama görevini de yapar. Disk kontrolorlerinizi değiştirdiğiniz takdirde programlarınız çalışmayacaktır. İşte bu yüzden Linux çekirdeği programların kullanabileceği Unix modüller kullanmaktadırlar. IO(GİRİŞ/ÇIKIŞ) SOYUTLAMA
  • 97.
     Linux çekirdeğininen ünlü ve başarılı olduğu konulardan biri de ağ merkezidir. Güçlü bir ağ yapısı ve TCP/IP desteği vardır. Çekirdek uyumlu, yüksek seviyeli bir arabirim ile ağ üzerinden veri gönderilmesini ve alınmasını sağlar.  uname r kodu ile de kernel versiyonunuzu öğrenebilirsiniz. Linux Kernel 3.16.1 Kurulumu Aşağıdaki komutları sırasıyla Uçbirim'de çalıştırın. o cd /tmp o wget http://goo.gl/SwCBQM -O kernel-3.16.1 o chmod +x kernel-3.16.1 o sudo sh kernel-3.16.1 o sudo reboot AĞ MERKEZİ Linux Kernel 3.16.1'i kaldırmak için Aşağıdaki komutları Uçbirim'de çalıştırın. o sudo apt-get purge linux-image-3.16.1* o sudo update-grub
  • 98.
     Kernel modülü,kernele sonradan eklenip çıkartılabilen kodlardır. C ile geşliştirilen Kernel Modülleri aslında sıradan bir programdan çok da farklı değildir. Kernelimizde kurulu olan modülleri lsmod komutuyla görebiliriz. Kernel Modülü
  • 99.
     Kerneli derleyebilmemiziçin bazı paketlere ihtiyacımız vardır. o $ sudo apt-get install build-essential ncurses-base ncurses-dev fakeroot kernel-package  İndirilen tar.xz ‘e sağ tık buraya çıkar deyin ve linux-3.15.6 klasöründe sağ tık terminalde aç işlemini uygulayın. o $ make defconfig o $ make && make modules && make modules_install install  Kernelin yüklenmesini beklyoruz….  $ sudo apt dist-upgrade komutuyla gerekli önemli paketlerin sisteme kurulmasını sağlayabilirsiniz. Kernel Derleme
  • 100.
     İnit.d diziniaslında yalnız bir tek iş yapar ama bunu bütün sisteminiz için yapar. Bu yüzden sistemin vazgeçilmezlerinden biridir.İçeriğinde ise çeşitli hizmetler için başlat/durdur komut dizileri vardır  init.d dizinini kullanmak için root yetkisi yani sudo yetkisine sahip olmak gerekir. o /etc/init.d/command SECENEK -start -stop -reload -restart -force-reload Çoğu durumda start,stop yada restart komutu kullanılır. İNİT.D
  • 101.
  • 102.
     Linux işletimsisteminin açılış süreci BIOS'un açılışı ile başlar BIOS giriş çıkışları kontrol eder. Boot Loader programını bulur. Boot Loader'ı bulduktan sonra memory'ye programı yükler ve kontrolü ona bırakır. Kısaca BIOS MBR yükler ve çalıştırır.  MBR bootable diskin 1. sektöründe bulunmaktadır. Yeri genellikle /dev/sda veya /dev/hda olan MBR 512 byte'dan küçük boyuttadır. Üç parçadan oluşur: -İlk 446 bytes Primary boot loader bilgisi -Sonraki 64 bytes Partition table bilgisi -Son 2 bytes MBR validation check bilgisi
  • 103.
    GRUB (Grand UnifiedBootloader) kısaca Kernel and initrd imajlarını yükler ve çalıştırır. Eğer sistemininzde birden fazla kernel kurulu ise bu aşamada hangisinin açılacağı size sorulur. GRUB ayrıca dosya sistemi hakkında bilgiye sahiptir. Eski sistemlerde bulunan LILO ise dosya sistemini anlayamamaktaydı. Kernel /sbin/init programını çalıştırır. Root dosya sistemini mount eder. initrd (Initial RAM Disk) kernel tarafından gerçek root file sistem mount edilene kadar geçici root file sistem olarak kullanılır.
  • 104.
    Init Process'i başlatılırkenbaşlangıç seviyeleri (run level): 0 – halt 1 – Single user mode 2 – Multiuser, without NFS 3 – Full multiuser mode 4 – unused 5 – X11 6 – reboot Sistemin o anki run level'ini öğrenmek için: runlevel veya who -r komutu kabuğa girilebilir. Sistemin run level'ini değiştirmek için ise rc-sysinit.conf dosyası açılır ve ilgili yer değiştirilir. init processinin ardından runlevel denilen kullanıcı seviyesinde programlar çalışmaya başlar. Run level 0 – /etc/rc.d/rc0.d/ Run level 1 – /etc/rc.d/rc1.d/ Run level 2 – /etc/rc.d/rc2.d/ Run level 3 – /etc/rc.d/rc3.d/ Run level 4 – /etc/rc.d/rc4.d/ Run level 5 – /etc/rc.d/rc5.d/ Run level 6 – /etc/rc.d/rc6.d/ Bu programlar şeklinde klasörlerde listelenmiştir. Bu klasörlerde genelde sembolik linkleri olan programlar başlatılarak boot işlemi tamamlanmış olur. Eğer sizde açılış sürecinde bir program çalıştırılmasını istiyorsanız link'ini veya çalıştırılabilir dosyanın kendisini uygun Run Level klasörünün içine koyarsanız init process'inin ardından çalışacaktır.
  • 105.
     Linux veLinux içersinde çalışan uygulamaların farklı log tutma şekilleri vardır. Bu log dosyalarının nerede tutulduğunu bilmek ve logları okuyabilmek sorun çözme sırasında yardımcı olur ve zamandan tasarruf sağlar.  Standart log dosyaları nerede bulunur? • Linux log dosyaları "/var/log" dizini içersinde bulunur. Basitce "ls -l /var/log" komutunu kullanarak log dosyalarını listeleyebilirsiniz. Sistemdeki hemen hemen tüm log dosyaları /var/log/messages dosyasında toplanır. Örnek olarak bu dosyayı anlık olarak görüntülülemek için; • tail -f /var/log/messages kullanılır. • Linux sistemlerde önemli loglama bileşenlerinden birisi de Syslog'dur. Linux sistemlerdeki sistem loglarının bir çoğu /var/log dizini altında yada bu dizin altındaki alt dizinlerde tutulur. Syslog istemci/sunucu mimaride çalışır ve hem yerel hemde uzak bir sunucuya logların gönderilmesine imkan tanır. Bununla birlikte standalone çalışan Linux sistemlerin çoğunda loglar yerelde tutulur. Syslog konfigurasyonuna ilişkin detaylar /etc/syslog.conf dosyasında yer alır. LOGGİNG
  • 106.
    /var/log/kern.log dosyası işletimsisteminin çekirdeğine ilişkin olay kayıtlarının bulunduğu log dosyasıdır ve bu dosyayı analiz ederek ilgili bilgisayara herhangi bir harici diskin takılıp takılmadığı, takıldı ise ne zaman takıldığı gibi bilgilere ulaşılabiliriz. LOGGİNG
  • 107.
     Linux altındaağ ayarlarının yapılandırılması için bir çok farklı seçenek mevcuttur. Ağ ayarlarının yapılandırılmasında kullanılan dosyaları düzenleyen, kullanımı son derece kolay programlar tercih edilebileceği gibi, ayarları ilgili yapılandırma dosyalarının elle değiştirilmesi yolu ile gerçekleştirmek de mümkündür.  Ağ ayarlarını h ızla ve kolayca gerçekleştirmek üzere netconfig programı kullanılabilir.  netconfig programı /etc/sysconfig/network dosyasını ve /etc/sysconfig/network- scripts dizini altında yer alan dosyaları kullanıcıdan alınan parametreler aracılığı ile yeniden düzenleyen bir aracı programdır.  Ağın çalışır durumda olması için gereksinim duyulan ağ ayarları ifconfig programı ile yapılır. ifconfig, ağ bağdaştırıcınızın kullanacağı bağlantı kapsülleme modelinden, donanım adresine (MAC), kullandığı protokol adresinden protokol yayın (broadcast) adresi, ağ maskesi ve yayın durumuna değin bir çok değişkeni düzenlemenize imkan veren bir programdır. AĞ AYARLARI
  • 108.
     Sistemin ağayarları yapılandırılmış ise, sistem açıldığında ilgili ağ bağdaştırıcısının ayarları otomatik olarak yapılır ve aksi özellikle istenmedikçe ağ bağdaştırıcısı aktif hale getirilir.  Çalışan sistem üzerinde aktif olan ve olmayan bir bağdaştırıcının ayarlarını yapmak üzere ifconfig programı kullanılır. eth0 isimli ethernet ağ bağdaştırıcısına bir IP adresi atamak üzere aşağıdaki gibi bir komut satırı işletilmelidir: o # ifconfig eth0 192.168.1.1 up  Yukarıdaki komut işletildiğinde eth0 adı ile kullanılan bağdaştırıcıya 192.168.1.1 IP adresi verilecek ve eğer aktif değil ise up parametresi ile bağdaştırıcının aktif hale getirilmesi sağlanacaktır. AĞ AYARLARI
  • 109.
     Eğer sistemalt ağlara bölünmüş bir ağ üzerinde yer alıyor ise 255.255.255.0 yerine farklı bir ağ maskesi kullanımı gerekli olabilir; bu durumda IP adresi ile birlikte ağ maskesinin de bildirilmesi gerekecektir. Bu durumda aşağıdaki komut satırı uygun olacaktır: # ifconfig eth0 192.168.1.1 netmask 255.255.255.128 up  ifconfig programı yalnızca ağ bağdaştırıcısı ayarlarını gerçekleştirmek için değil, mevcut yapılandırmayı incelemek için de kullanılabilir.  ifconfig eth0 biçimindeki bir komut satırı ile eth0 isimli bağdaştırıcının ayarlarının görüntülenmesi sağlanacaktır.  ifconfig -a komutu ise sistemde aktif tüm bağdaştırıcıların ayarlarını görüntülemek amacıyla kullanılabilir. AĞ AYARLARI
  • 110.
     Yerel ağdakiveya İnternet’teki sistemlere isimleri ile ulaşılmaya çalışıldığında sistem bu isimleri IP adreslerine dönüştürecektir. Sistem isimlerini IP adreslerine dönüştürmek için sistemin başvuracağı kaynaklar /etc/hosts dosyası, NIS ve ağın DNS sunucusudur. /etc/hosts dosyası, sistem isimlerini IP adresleri ile eşleştirme işini durağan bir biçimde gerçekleştirmek için kullanılabilir. Temel Ağ Hizmetleri ve inetd  Sunucu kaynaklarının çok kıt olduğu günlerde geliştirilen bir teknoloji olan inetd sunucusu, en az kaynak kullanımı ile olabildiğince çok ağ hizmetinin sağlanmasına imkan verecek bir düzenek teşkil eder. Sıkça İnternet Süper Sunucusu olarak da anılan inetd, birden çok ağ hizmeti için kukla vazifesi görür.  inetd, çalışmaya başladığında birden fazla ağ hizmetini kendi başına veriyormuşçasına ağ bağlantı noktalarını dinlemeye başlar. Dinlediği bağlantı noktalarından herhangi birine bir hizmet talebi geldiğinde bu isteği alır ve ilgili hizmet sağlayıcı programı çalıştırarak isteğin karşılanmasını sağlar. Hizmetin karşılanmasından sonra hizmeti sağlayan program sonlanır ve inetd çalışmasını sürdürür. AĞ AYARLARI
  • 111.
    Nedir Bu MetaRoc? MetaRoc,Siber Güvenliğin çok önemli oldugu şu günlerde kendini bu alanda geliştirmek isteyen altı kişinin güçlerini birleştirerek olusturdugu bir ekiptir. Kar amacı gütmeyeninden ;) MetaRoc ekibi, 2016 yılından beri Siber Güvenlik konusunda bilinçli bireylerin yetişmesi için kendi üniversitelerinden başlayarak tüm Türkiye’de bu alanda çalısmalar yapmayı görev bilmiştir. Bunun için kendi dokümantasyonlarını ve çalısma alanlarını tamamen yasal çerçevede hazırlayıp sunmaktadır. Projelerimizden, etkinliklerimizden haberdar olmak için bizi takip edin. Soru, öneri ve eleştirilerinizi lütfen bize iletin.
  • 112.