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.
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.
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.
• /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.
/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)
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
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
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
Ç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
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.