SlideShare a Scribd company logo
1 of 155
LINUX SİSTEM YÖNETİMİ
Versiyon - 1.1
İçindekiler
1. Linux Nedir?
2. Dizin Yapısı ve Temel Komutlar
3. Kullanıcı Yönetimi
4. Paket Yönetimi
5. Ağ Konfigürasyonu ve Programlar
6. Sistemin Açılışı ve Süreç Yönetimi
7. Dosyalama Sistemi Yönetimi
8. Bash Kabuğu Kullanımı
2
BÖLÜM - 1
Linux Nedir?
3
1. Linux Nedir?
• 1960'larda AT&T'nin Bell Laboratuarları, MIT ve General Electric'in ortaklaşa
yürüttükleri bir projede “Multics” isimli bir işletim sisteminin patentini aldılar.
• Bell Labaratuarı bu projeden çekilene kadar iki çalışanı, Dennis Ritchie ve Ken
Thompson, bu proje de çalıştı.
• Bell Laboratuarları bu projeden çekildikten sonra bu iki kişi yeni bir projede bir
işletim sistemi ortaya çıkardılar.
• İşletim sistemine “Multics” adından esinlenerek “Unics” ismi takıldıysa da daha
sonraları bu isim UNIX olarak değiştirildi.
• UNIX'in en temel özelliği Dennis Ritchie tarafından yaratılan Cdili ile oluşturulmasıydı.
• İşletim sistemleri o güne kadar makine dili ile yazılmaktaydı.
• UNIX işletim sistemi duyulmaya başladıktan sonra başta üniversiteler olmak üzere bir
çok kişi ve kurumun ilgisini çekti.
4
1. Linux Nedir?
• Özellikle üniversitelerin bilgisayar bilimleri bölümlerinde okuyan ve çalışan kişilerin desteği ile birlikte
UNIX kısa zamanda büyük bir ilerleme kaydetti. Bunun sonucu olarakta en önemli bilgisayar işletim
sistemi ünvanını eline geçirdi.
• 1980'lerin başında AT&T UNIX işletim sisteminden para kazanma yoluna gitti ve işletim sistemini özel
lisanslar ile pazarlamaya başladı.
• UNIX'in ortaya çıktığı günden itibaren işletim sisteminin gelişmesine yardımda bulunan bir çok kişi bu
karara karşı çıktı. Bunun üzerine amacı UNIX benzeri ve parasız dağıtılabilen bir işletim sistemi ortaya
çıkarmak olan GNU projesi Richard Stallman tarafından başlatıldı.
• GNU'yu desteklemesi için 1984 yılında Stallman ve arkadaşları “Free Software Foundation (FSF)”
projesini yarattılar.
• FSF'te “free” ile anlatılmak istenen bedava olan yazılımdan çok özgürce dağıtılan, kopyalanıp
üzerinde gerekli değişiklik yapılabilen yazılım manasını taşımaktaydı.
• Bu özgürlükler için temel olarak gereken şey yazılımın koduna erişimdi.
• Bu yüzden bu akım aynı zamanda “Kaynak Kodu Açık Yazılım – Open Source Software (OSS)” olarak
da anılır. Linux günümüzde bulunan en büyük kaynak kodu açık yazılımdır.
5
Linux'un ortaya çıkışı
• AT&T UNIX işletim sistemini para ile lisanslayana kadar, UNIX üniversitelerde bilgisayar bilimi
öğrencilerine işletim sistemlerini öğretmek için kullanılan bir araçtı.
• AT&T'nin yaptığı değişiklik sonrası üniversitelerin yeni bir işletim sistemine ihtiyacı ortaya
çıktı. Bunun üzerine Andrew Tannenbaum UNIX benzeri bir işletim sistemi olan MINIX işletim
sistemini ortaya çıkardı.
• 1990 yılında Finli bilgisayar bilimi öğrencisi Linus Torvalds Intel mimarisindeki bilgisayarlar
için hafıza yönetimi yapan bir yazılım üzerinde çalışmaya başladı.
• Bir zaman sonra bu projesinin genişletilmiş halinin UNIX çekirdeği gibi çalışabileceğini
farketti.
• 1991 yılında comp.os.minix haber grubuna üzerinde çalıştığı projeyi bildiren ve geliştirme
için öneri isteyen bir mesaj gönderdi.
• Torvalds bu yeni işletim sistemine Linus'un MINIX'i olarak tanımladığı LINUX adını verdi.
• Linux'un bir önemli yanı ise GNU projesinin eksik olan bir parçasını doldurmasıydı.
6
Linux'un ortaya çıkışı
• GNU projesi çerçevesinde oluşturulacak
olan Unix benzeri işletim sisteminin çoğu
parçaları bitmişti.
• Yapılmayan en önemli parça işletim
sisteminin çekirdeği idi. Bu eksikte Linux
tarafından kapatılmış oldu.
• 1994 yılında Linux 1.0 serisi kernel GPL
lisansı altında yayınlandı ve Linux 100000
kullanıcıya erişmişti.
• Günümüzde Linux'un milyonlar ile belirtilen
bir kullanıcı kitlesi bulunmakta.
• Son kullanıcı pazarında da gün geçtikce
güçlenmesine rağmen Linux günümüzde
çoğunlukla sunucularda kullanılan bir
işletim sistemidir.
7
1.1. Linux Dağıtımları
• Linux, işletim sisteminin çekirdeğidir.
• Sistem açılırken belleğe yüklenir ve süreç, bellek ve aygıt yönetimi şeklinde özetlenebilecek 3 ana
işlevi yerine getirir.
• İşletim sistemini bir bütün olarak düşündüğümüzde linux sistem yönetimi, servisler, temel komutlar
gibi parçaları içermez.
• Eksik bu parçalar diğer açık kaynak kodlu projeler ile tamamlanır. Bunun sonucunda temelde
aynı işi yapan fakat ufak farkları olan farklı linux işletim sistemleri ortaya çıkmıştır.
• Red Hat, Fedora, CentOS, Novell Suse, Pardus, Gentoo, Debian, Ubuntu en çok kullanılan
linux dağıtımlarındandır.
• Fedora, Red Hat tarafından desteklenen bir projedir.
• Red Hat’e eklenecek yeni özellikler Fedora ile test edildikten sonra stabil duruma getirilen
özellikler Red Hat’e eklenir.
• CentOS, Red Hat’in yayınladığı kaynak kodların derlenmesiyle oluşturulmuş bir işletim
sistemidir.
8
1.3. Uygulama
• CentOS Kurulumu
• Pardus Kurulumu
• Ubuntu Kurulumu
9
BÖLÜM - 2
Dizin Yapısı ve Temel Komutlar
10
2. Dizin Yapısı ve Temel Komutlar
• Linux işletim sisteminde dosya ve dizinler diğer Unix türevi işletim
sistemlerinde olduğu gibi hiyerarşik bir yapıya sahiptirler.
• En üst düzeyde bulunan ve kök dizini diye adlandırılan dizin alt dizin
olarak adlandırılan dizinler içermektedir.
• Ayrıca bu alt dizinlerde kendi içlerinde dosya ve alt dizin
içerebilmektedir.
• Dizin yapısı isteğe göre belirlenmiş değildir.
• Paketlerin düzgün şekilde çalışabilmeleri için önemli dosya ve
dizinlerin yeri standartlaştırılmıştır.
11
2. Dizin Yapısı ve Temel Komutlar
12
2. Dizin Yapısı ve Temel Komutlar
• Kök dizinini aşağıdaki dizinleri de içermelidir:
• /bin : Kullanıcı ve sistem yöneticisi tarafından kullanılan çalıştırılabilir dosyaları içerir.
• /dev : Donanıma erişmek için gerekli olan aygıt dosyalarını içerir.
• /etc : Sistemin ayarlarını içeren dosyaları içerir.
• /lib : Sistem kütüphanelerini içerir.
• /sbin : Sistem yöneticisi tarafından kullanılan çalıştırılabilir programları içerir.
• /home : Kullanıcılara ayrılan dizinlerin bulunduğu yerdir.
• /mnt : Geçici olarak sisteme bağlanacak bölümlerin, sisteme bağlanma noktalarının bulunduğu dizindir.
• /root : Sistemin en yetkili kullanıcısı olan “root” kullanıcısına ait dizindir.
• /tmp : Geçici dosyaların bulunduğu dizindir.
• /usr : Paylaşılabilir dosyaların bulunduğu dizindir. Bu dizin içinde çalıştırılabilir dosyaların bulunduğu dizinlerin
yanısıra, dokümanlar ve programların kullandığı dosyalar bulunmaktadır.
• /var : Log dosyaları, kullanıcıların e-postaları, e-posta kuyruğunda bekleyen e-postalar için geçici dosyalar gibi
paylaşılması mümkün olmayan dosyaların bulunduğu dizindir.
• /proc : Sistem ile ilgili bilgilerin alınabileceği sanal bir dosya sistemidir.
13
2.1. Dosya ve Dizinlerinin Listelenmesi
• Sistemde varolan dosya ve dizinleri listelemek için “ls” komutu kullanılmaktadır.
• Temelde ls komutunun yapısı aşağıdaki gibidir :
• ls [seçenekler] dosya_veya_dizin_ismi
• “ls” komutu dosya veya dizin ismi bildirilmediği takdirde içinde bulunduğu dizinin içeriğini listelemektedir.
• “ls” komutu ile kullanılan temel parametreler aşağıdaki gibidir :
• -a : Tüm dosyaları listelemek için kullanılır. Normalde isimleri “.”(nokta) ile başlayan dosyalar gizli
dosyalar olarak kabul edilir. Bu dosyalarında ls çıktısında görünmesini sağlamak için -a parametresi
kullanılmalıdır.
• -l : ls çıktısını liste olarak listeler, ayrıca dosya ve dizinler hakkında izin, sahip, boyut, en son ne zaman
güncellendiği gibi bilgileri görüntülenir.
• -h : Dosya boyutlarını insanların okuyabilecekleri formata sokar. Dosya boyutlarını byte olarak göstermek
yerine Megabyte, kilobyte, gigabyte olarak gösterir. Bu dönüşümler için 1024 sayısını kullanır.
• -R : Dizinin içeriğini rekürsif olarak listelemek için kullanılır. Bu parametre ile listeleme yapıldığı
takdirde listenelen dizinin içinde bulunan alt dizinlerin içeriği de listelenir.
14
2.1. Dosya ve Dizinlerinin Listelenmesi
• - => dosya tipi
• Dosya tipleri: - => regular file, d => directory, b => block device, c => character
device
• rw- => sahibin yetkileri
• r-- => grubun yetkileri
• r-- => diğerlerinin yetkileri
• 1 => hard link sayısı
• root => sahibi
• root => grubu
• 1180 => boyut (byte)
• Sep 26 16:33 => oluşturulma zamanı
15
2.2. Yeni Dizin Oluşturma
• Yeni dizin oluşturmak için “mkdir” komutu kullanılmaktadır.
• “mkdir” komutunun temel kullanımı:
• mkdir dizin_adı
16
2.3. Dizin Değiştirme
• Dizinin değiştirilmesi için “cd” komutu kullanılmaktadır.
• cd komutunun temel kullanım aşağıdaki gibidir :
• cd [geçilecek_dizin]
• Geçilmesi istenen dizin parametresi verilmediği takdirde kullanıcının ev (home) dizinine geçilir.
• Geçilmesi istenen dizin istendiği takdirde tam yol olarak, istendiği takdirde de göreceli yol
olarak verilebilir.
• Tam yol ile belirtilen geçilmesi istenen dizinin kök dizininden itibaren bulunduğu yerin
belirtilmesidir.
• Örnek: cd /usr/local/bin
• Göreceli yol ise içinde bulunulan dizinden geçilmesi istenen dizine gidilmesi için gereken
yolu belirtir.
• Örnek: /usr dizininde iken /usr/bin dizinine geçmek için cd bin komutu verildiğinde
göreceli yol kullanılmış olur.
17
2.3. Dizin Değiştirme
• Geçilmek istenen dizin parametresi olarak “cd” komutu aşağıdaki özel karakterler ile
kullanılabilir:
• . => Bulunulan dizini referans eder.
• .. => Bir üst dizini referans eder.
• ~[kullanıcı_ismi] => Belirtilen kullanıcının ev dizinini referans eder. Kullanıcı ismi
kullanılmadığı takdirde geçerli olan kullanıcının ev dizini referans edilir.
• - => Bir önce bulunulan dizini referans eder. Bu parametre sadece cd komutunda geçerlidir.
• İçinde bulunulan dizini öğrenmek için “pwd” komutu kullanılır. Bulunulan dizini öğrenmek için
“pwd” komutunun verilmesi yeterlidir.
•
18
2.4. Yeni Dosya Oluşturma
• Yeni dosya oluşturmanın en basit yolu “touch” komutunu
kullanmaktır.
• Bu komut var olmayan bir dosya ismi ile çağırıldığı takdirde boş bir
dosya oluşturacaktır.
• Sırf metin içerecek dosyaların oluşturulması için editörler de
kullanılabilir.
• “touch” komutunun kullanımı:
• touch dosya_ismi
• “touch” komutu dosya oluşturmanın yanında dosyanın son erişim ve
son değişme zamanlarını düzenlemek için de kullanılabilir.
19
2.5. Dosya ve Dizinleri Silme
• Sistemde varolan dosya ve dizinlerin silinmesi için “rm” komutu kullanılmaktadır.
• Eğer silinmesi istenen dizin içinde hiç bir dosya veya başka dizin barındırmıyor ise “rmdir
komutu” ile de silinebilir.
• “rm” komutunun temel kullanımı:
• Dosyalarda: rm [seçenekler] dosya_ismi
• Dizinlerde : rm -r [seçenekler] dizin_ismi
• -r : rekürsif çalışarak belirtilen dizin altında bulunan tüm dizin ve dosyaları, son aşamada
da belirtilen dizini siler.
• -v : Yapılan her silme işlemi ile ilgili kullanıcıya bilgi verir.
• -f : silme işlemini onay sormadan gerçekleştirir.
• -i : sileceği her dosya ve dizin için kullanıcıdan onay bekler. Root kullanıcısı için
tanımlanan komut takma isimleri (alias) rm komutu her zaman bu parametre ile
çalıştıracak şekilde ayarlanmıştır.
20
2.6. Dosya İzinlerinin Değiştirilmesi
• Dizin ve dosyalara erişimde izinler 3 farklı grup olarak verilmektedir
• Dosyanın sahibi => u (user)
• Dosyanın grubu => g (group)
• Diğer => o (others)
• Kullanıcılar dosyalar üzerinde 3 farklı işlem yapabilmektedir
• Dosyayı okuma: read => (r) sayısal değeri => (4)
• Dosyaya yazma: write => (w) sayısal değeri => (2)
• Dosyayı çalıştırma: execute => (x) sayısal değeri => (1)
• Dosyaların ve dizinlerin sahip olduğu izinleri görmek için “ls” komutu kullanılır
• Dizin için çalıştırma hakkına sahip olan bir kullanıcı o dizine geçebilmektedir.
21
2.6. Dosya İzinlerinin Değiştirilmesi
• İzinlerin değiştirilmesi amacıyla “chmod” komutu kullanılır.
• “chmod” komutu 2 farklı şekilde çalıştırılabilir:
• Yeni izinin sayısal değerinin verilmesi ile
• Yeni izinin harf karşılığının verilmesi ile
• İzinler 3 farklı grubun dosya üzerinde 3 farklı işlevden hangilerini yapabileceklerini belirtir.
• Her grup tek başına ele alınıp izinlerin değerleri toplanarak sayısal değerler elde edilir.
• örnek: rw-r--r-- iznini ele alalım:
• Dosyanın sahibinin hakları : rw- => 4 + 2 =6
• Dosyanın grubunun hakları : r-- => 4
• Dosyanın diğerlerinin hakları : r-- => 4
• rw-r--r-- yetkisinin sayısal karşılığı yukarıdaki gibi hesaplandığında 644 olarak bulunur.
22
2.6. Dosya İzinlerinin Değiştirilmesi
• Örnek: Bir dosyanın kullanıcısına tüm hakları, grubuna okuma diğer
kişilere ise hiç bir hak vermemek için “chmod” komutu aşağıdaki
şekilde kullanılır.
• Sahibinin hakları => rwx : sayısal değeri (4+2+1=7)
• Grup hakları => r-- : sayısal değeri (4)
• Diğer hakları --- : sayısal değeri (0)
• Komutun kullanımı: chmod 740 linux-notlar
•
23
2.6. Dosya İzinlerinin Değiştirilmesi
• İzinlerin ayarlanması için “chmod” komutuna verilecek parametreler harf değeri olarak
da kullanılabilir.
• Dosya üzerinde izin vermek için +, izin geri almak için - sembolleri kullanılır.
• Herkese okuma izni vermek:
• chmod +r dosya_ismi
• Dosyanın sahibine tüm hakları vermek:
• chmod u+rwx dosya_ismi
• Diğer kullanıcılar tüm yazma hakkını almak:
• chmod o-wx dosya_ismi
• Dosya sahibine tüm haklar, gruba okuma, diğer kullanıcılara okuma haklarını vermek:
• chmod u+rwx,g+r,o+r dosya_ismi
24
2.7. Dosya Sahibi ve Grubunun Değiştirilmesi
• Dosyanın sahibini değiştirmek için chown,
grubunu değiştirmek için chgrp komutu
kullanılmaktadır.
• “chown” komutunun temel temel
kullanımı :
• chown kullanıcı_ismi dosya_ismi
• chown kullanıcı_ismi:grup_ismi
dosya_ismi
• Bu kullanımda dosyanın sahibi ile
birlikte grubu da değiştirilir.
• Dosyanın sadece grubu değiştirilmek
istendiğinde “chgrp” komutu kullanılır.
• Bu komutun temel kullanımı:
• chgrp grup_ismi dosya_ismi
25
2.8. Dosya/Dizin Kopyalama
• Kopyalama işlemi “cp” komutu ile gerçekleştirilir.
• Bu komutun temel kullanımı:
• cp [seçenekler] kaynak hedef
• Kaynak ve hedef olarak belirtilen parametreler dosya veya dizin
olabilir.
•
26
2.8. Dosya/Dizin Kopyalama
• “cp” komutunun temel parametreleri:
• -R : Bu parametre dizinleri kopyalamak için kullanılır. Herhangi bir dizin kopyalanacağı zaman bu
parametre verilmediği takdirde cp komutu dizini kopyalamaz. Bu parametre sayesinde dizin ve içinde
bulunun dosya ve alt dizinler hedef dizine kopyalanır.
• -p : Bu parametre kopyalanan dosya veya dosyaların izinlerin ve sahiplerinin korunmasını sağlamaktadır.
• -d : Kopyalama işleminde dosyanın kendisinin yerine linkinin kopyalanması istendiği takdirde bu
parametre kullanılmalıdır.
• -f : Bu parametre kullanıcıya hiç bir soru sormaz. Eğer hedef dosya sistemde mevcut ise bu parametre ile
ilk olarak mevcut dosya silinir, daha sonra kopyalama işlemi gerçekleştirilir.
• -i : Kopyalama işleminde hedef dosya mevcut olduğu durumlarda yapılacak işlem kullanıcıya
sorulmaktadır.
• -u : Bu parametre kullanıldığı takdirde kopyalanan dosya hedef dosyadan daha yeni ise kopyalama
işlemi gerçekleştirilir.
• -a : Bu parametre -dpR parametreleri anlamına gelir.
27
2.9. Dosya/Dizin Taşıma
• Taşıma işlemi “mv” komutu ile
gerçekleştirilmektedir.
• Bu komut aynı zamanda dosyanın isminin
değiştirilmesi içinde kullanılır.
• Bu komutun temel kullanımı:
• mv [seçenek] kaynak hedef
• Kaynak ve hedef olarak belirtilen
parametreler dosya veya dizin
olabilmektedirler.
• “mv” komutu => f,i,u parametreleri ile
kullanılabilir. Bunların işlevleri “cp”
komutundaki işlevleri ile aynıdır.
28
2.10. Link Tanımlama
• Dosyalara farklı isimler veya kısayollar
tanımlanabilir.
• Link oluşturmak için “ln” komutu
kullanılmaktadır.
• Hard-link ve sembolik(soft) link olmak üzere
iki farklı tür vardır.
• Hard-link ile oluşturulmuş bir link dosyası,
diğer dosyanın tam anlamıyla bir kopyasını
içerir. Dosyalardan orijinal olan silinse bile
link atılmış dosya aynı içeriği
bulundurmaya devam eder.
• Hard link oluşturma: ln hedef link_adı
• Sembolik link ile oluşturulmuş dosyalar
tam olarak kısayol anlamına gelir.
• Sembolik link oluşturma: ln -s hedef
link_adı
29
2.11. Dosya İçeriğini Görme
• Metin tabanlı dosyaların içeriğinin görüntülenmesi için “cat”
komutu kullanılabilir.
• Bu komutun temel kullanımı:
• cat [seçenekler] dosya_ismi [dosya_ismi_2,...]
• “cat” komutu parametreleri:
• -t : Metinin içinde geçen tab karakterini ^I olarak
göstermeyi sağlayan parametredir.
• -e : Satır sonlarının $ karakteri olarak gösterilmesini
sağlayan parametredir.
• -A : -e ve -t parametrelerinin beraber kullanılması ile
eşdeğerdir.
• -n : Her satırın numaralandırılmasını sağlayan parametredir.
30
2.11. Dosya İçeriğini Görme
• Metin tabanlı dosyaların içeriklerinin görüntülenmesi için “more” komutu da
kullanılabilir.
• “more” komutunun özelliği dosyanın içeriğini sayfa sayfa olarak göstermesidir.
• Her sayfa sonunda gösterme işleminin devamı için kullanıcının ENTER veya BOŞLUK
tuşlarına basması gerekir.
• BOŞLUK tuşu bir sayfa ileri, ENTER tuşu bir satır ileri gitmek için kullanılır.
• Metin içinde arama yapılmak istendiği takdirde “/” karakteri ile arama moduna geçilir ve
bulunması istenen kelime yazılır.
• Kelime bulunduktan sonra, aynı kelimenin bir sonraki yerini bulmak için “n” tuşuna
basılması yeterlidir.
• “more” komutu ile aynı işi yapabilen “less” komutu da bulunmaktadır.
• less /usr/share/doc/python-2.7.5/README
31
2.11. Dosya İçeriğini Görme
• Dosyaların Başının ve Sonunun Görüntülenmesi
• Dosyanın başının gösterilmesi için “head” komutu kullanılır.
• Dosyanın sonunun gösterilmesi için “tail” komutu kullanılır.
• Temel olarak iki komutunda kullanım şekli aynıdır :
• head [-baştan_gösterilecek_satır_sayısı] dosya
• tail [-sondan_gösterilecek_satır_sayısı] dosya
• Gösterilecek satır sayısı bilgisi verilmediği takdirde varsayılan olarak 10 satır
gösterilir.
•
32
2.12. vi Editörü
• “vi” ASCII metin dosyalarını düzenlemek amacıyla kullanılan oldukça gelişmiş özelliklere
sahip bir editördür.
• “vi” UNIX geleneğinin bir sembolüdür.
• “vi” temel kullanımı
• vi [options] [filename]
• Eğer dosya yok ise, “vi” yeni bir dosya oluşturur.
• file1 isimli dosyayı aç ve imleci 3. satıra getir
• vi +3 file1
• Dosya kaydetme ve çıkma
• ESC tuşuna basıldıktan sonra “:” ile komut durumuna geçilir ve sırayla “wq!” (write &
quit ) komutları verilir. Böylece dosya kaydedilip vi’dan çıkılmış olur.
• Kaydetmeden çıkmak için sadece “q!” kullanılır.
33
2.12. vi Editörü
• İmleç dolaştırma komutları
• Komut durumunda iken yön tuşları çalışmıyorsa, bu tuşlar ile text üzerinde dolaşmak
mümkün olacaktır.
• h : sola bir karakter
• j : aşağı bir karakter
• k : yukarı bir karakter
• l : sağa bir karakter
• Kullanılan komutlardan bazıları
• 0 : imlecin bulunduğu satırın başına git
• $ : imlecin bulunduğu satırın sonuna git
• w : bir sonraki kelimenin başına git
• B : bir önceki kelimenin başına git
34
2.12. vi Editörü
• Ekleme Komutları
• Bu komutlar ile INSERT moduna geçerek metine yazma işlevi başlatılır.
• i : imlecin üzerinde bulunduğu karakterin solundan başlayarak ESC tuşuna
basılıncaya kadar basılan her karakteri metine ekler. Varsa eski metin sağa
doğru ötelenir.
• a : imlecin üzerinde bulunduğu karakterin hemen sağından başlayarak
ESC tuşuna basılıncaya kadar basılan her karakteri metine ekler. Varsa eski
metin sağa doğru ötelenir.
• o : bir alt satıra geçerek INSERT moduna geçer. Yani yazma moduna geçilir
•
35
2.12. vi Editörü
• Yazı silmek
• x : imlecin üzerinde bulunduğu karakteri siler
• 3x : imlecin üzerinde bulunduğu karakter dahil, sağa doğru 3 karakteri siler
• dw : imlecin üzerinde bulunduğu yerden kelime sonuna kadar sil
• 2dw : imlecin üzerinde bulunduğu yerden başalayarak 2 sözcük sil
• dd : imlecin üzerinde bulunduğu satırı sil
• 2dd : imlecin üzerinde bulunduğu satırı ve altındaki satırı sil
• d) : imlecin üzerinde bulunduğu cümleyi sil
• d} : imlecin üzerinde bulunduğu paragrafı sil
• D : imlecin üzerinde bulunduğu satırın sonuna kadar sil
• d$ : imlecin üzerinde bulunduğu satırın sonuna kadar sil (D ile özdeş)
• dw : imlecin üzerinde bulunduğu kelimeyi sil
• b : imlecin üzerinde bulunduğu kelimeden bir önceki kelimeyi sil
• Yanlışlıkla silme işlemi yaparsanız; u (undo) komutuyla son silme işlemini geri döndürebilirsiniz.
36
2.12. vi Editörü
• Metin Bloklarının Yerini değiştirmek
• vi editörü ile metin parçalarının yerini değiştirmek için, önce eski yerinden silmeli,
daha sonra yeni yerine yapıştırmalısınız.
• dd komutu ile satır silinir.
• ESC’ye basılarak ve yön tuşları ile yapıştırılacak yere gidilip, p komutu ile
yapıştırılır.
• Kopyalama
• Kopyalanacak metin bloğunu önce bulunduğu yerde yy veya Y ile (veya YY) kopyalanır
daha sonra kopyalanacak yere put ile yapıştırılır.
• p bulunulan satırın altına, P ise üstüne yapıştırır.
• “yw” ve “yb” (bir önceki) kelimeleri kopyalar, “ y) ” cümleyi “ y} ” paragrafları
kopyalar.
37
2.12. vi Editörü
• Dosya İşlemleri :
• ZZ (:wq komutuna eşdeğerdir)
• :q (quit)
• :q! (yapılan değişiklikleri kaydetmeden çık)
• :w (dosyayı kaydet vi’da kal)
• :wq (write and quit)
• :x (vi’dan çık dosya değişmiş ise dosyayı kaydet)
•
38
2.13. Grep
• Dosyalarda arama, filtreleme işlemlerinde “grep” komutu kullanılır.
• Örneğin /etc/passwd dosyasında içinde root kelimesi geçen satırları
görmek isterseniz
• grep root /etc/passwd
39
2.14. Dosya Arama
• “find” komutu belli kriterlere göre dosya ve dizin arama
işlemlerinde kullanılır.
• “find” komutu temel kullanımı:
• find [arama_yapılacak_dizin] [arama_kriterleri] aranacak_kelime
• “find” komutu sadece dosya bulmak için kullanılmamaktadır. Ayrıca
bulunan dosyalar üzerinde işlem yapılabilir.
• Örnek: Kök dizininde linux-not ile başlayan dosyaları bulmak için
• find / -name linux-not*
40
2.14. Dosya Arama
Kriter Find Komutu ile kullanılabilecek belli başlı arama kriterleri
-name exp
İsim ile arama yapmak için kullanılır. Dosyanın tam ismi verilebilceği gibi , * ve ? gibi karakterlerde
kullanılabilir.
-user kullanıcı İstenilen kullanıcıya ait dosyaların bulunması için kullanılır.
-group grup Belirtilen gruba ait dosyaların bulunması için kullanılır.
-perm izin Belirtilen izine sahip dosyaların bulunması için kullanılır.
-type tip
Aramada bulunması istenilen dosyanın tipini belirlemek için kullanılır.
b : Blok aygıt dosyası, c : Karakter aygıt dosyası, d : Dizin f : Normal dosya, l : Sembolik link
-size [+|-] büyüklük Belirtilen büyüklüğe sahip dosyaların bulunması için kullanılır.
-exec komut ;
Bulunan dosya için komut ile belirtilen komutu çalıştırır. Komut ile belirtilen argümanda bulunan {}
işareti bulunan dosya ismi ile değiştirilir.
41
2.14. Dosya Arama
• “find” komutu ile birlikte ayrıca aşağıdaki mantıksal operatörler arama
kriterlerini birleştirmek için kullanılabilir :
• -a => ve , -o => veya , ! => Değil
• Örnek: Kök dizininde linux-not ile başlayan dosyaları bulup silmek için :
• find /-name linux-not* -exec rm -f {} ;
• Örnek: /tmp altında boyu 95 byte veya ismi egitim_find ile başlayanları bulmak
için :
• find /tmp/ -size 95c -o -name egitim_find*
42
2.14. Dosya Arama
• Parametre örnekleri :
• -name abc* : abc ile başlayan arama
• -name [*a-k]95” : ismi a95,b95 gibi olan dosya arama
• -perm 755 : erişimi 755 olan dosya arama
• -size -45k : 45 kByte’tan küçük dosyalar
• -size +10M : 10MB tan büyük dosyalar
• -size +1G : 1GB tan büyük dosyalar
43
2.15. Tar Komutu
• “tar” komutu arşivleme yapmak için kullanılır.
• Sıkıştırılmış ve arşivlenmiş bir dosyanın, yada dosya gruplarının, tar ile açılırken
sıkıştırmanın geri alınabilmesi de mümkündür. Ancak sıkıştırılırken hangi algoritmanın
kullanıldığı önemlidir.
• Eğer -z (gzip) parametresi kullanılarak sıkıştırma yapılmış ise yine –z kullanılarak
açmak mümkün olacaktır.
• Eğer -Z (compress) parametresi kullanılarak sıkıştırma yapılmış ise yine –Z kullanılarak
açmak mümkün olacaktır.
• “tar” komutu, sıkıştırma programları çağırılarak arşivlenen dosyanın uzantısına gz
uzantısını kendisi yazmayacağı için kullanıcı kendisi yazması gerekir (myarsiv.tar.gz).
• Ancak dosyanın uzantısının bu şekilde değiştirilmesi sadece anlaşılabilirliği sağlar, yani
dosyanın uzantısının tar olarak bırakılması bunun bir tar dosyası olduğunu göstermez.
44
2.15. Tar
• Tar ile kullanılan önemli parametreler aşağıdaki gibidir :
• f : özel bir dosya ismi yada belirli bir device ismi belirtmek için
• c (create) : tar dosyası yarat
• x(extract) : tar dosyası aç
• t(list) : tar dosyasının içeriğini listele
• v(verbose) : yapılan işlemleri standart çıkışa listele
• r (add) : bir tar arşive dosyasına ekleme yapmak için
• u (update) : bir tar arşive dosyasında bazı dosyaları yenileri ile değiştirmek
• z (gzip) : sıkıştırma / açma programını kullanarak arşivlemek ve açmak için
45
2.15. Tar
• Arşivleme;
• tar cvf files.tar file1 file2 file3
• tar cvf files.tar file?
• tar ile arşivlenmiş dosyaları açmak;
• tar xvf files.tar
• Bir tar dosyasına ekleme yapmaya örnek;
• tar rf myarsiv.tar file4
• Bir tar dosyasını update örneği; mydir dizininde yeni yaratılmış veya yenisi ile
değiştirilmiş veya yeni erişilmiş dosyaları tar dosyasında yeniler.
• tar uf myarsiv.tar mydir
46
2.16. Gzip
• “gzip” komutu ile sıkıştırma yapılır.
• gzip ile sıkıştırılan dosya veya dosyaların sonuna “gz” uzantısı otomatik olarak
eklenerek esas dosya ile yer değiştirilirler. Ancak dizin içerisindeki dosyalar
tek tek sıkıştırılır.
• Örnek :
• gzip file1
• gzip ile sıkıştırma yaparken sıkıştırma seviyesi ve hızı ayarlanabilir. Bunun için
9 seviye vardır; 1 en hızlı fakat en az, 9 en yavaş fakat en çok sıkıştıran
seviyedir.
• gzip -9 file2
47
2.17. Uygulama
1. /tmp dizini altında egitim-1 adında dizin oluşturun, egitim-1 dizini içerisinde linux-notlar adında dosya
oluşturup, içerisine “linux eğitim notları” yazıp, kaydedip çıkınız. egitim-1 dizinini yetkiler korunacak
şekilde (arşiv modunda) /root dizini içine kopyalayınız.
2. /root/egitim-1 dizininin adını konfig olarak değiştiriniz.
3. /root/konfig dizini içindeki tüm dosyaların yetkisini 640 olarak değiştiriniz.
4. /root/konfig dizinin yetkisini sahibi okuma-yazma-çalıştırma, grubu okuma-çalıştırma, diğerleri okuma
olarak değiştiriniz.
5. /root/konfig dizini içinde not-1 adında dosya oluşturun ve diğer kullanıcı yetkisi sadece read olsun.
6. /root/konfig dizinini konfig.tar.gz adıyla yedekleyiniz.
7. konfig.tar.gz yedeğini, / dizini altında yedekler adında dizin oluşturup dizinin içerisine taşıyınız.
48
2.17. Uygulama
8. /root/konfig dizini içindeki tüm dosya-dizinin sahibi root, grubu root olsun.
9. konfig.tar.gz arşivini /root/konfig dizinine açınız.
10. /root/konfig dizini içinde boyutu 50kb’den büyük tüm dosyaları siliniz.
11. /root/konfig/ dosyasının içerisine /etc/passwd dosyasını kopyalayınız, /root/konfig/passwd dosyasının
baştan 3 ve sondan 3 satırını görüntüleyiniz.
12. /root/konfig/linuz-notlar dosyasına /root/konfig/linux-notlar-s adlı sembolik, /root/konfig/linux-notlar-h
adlı hard-link oluşturunuz.
13. /root/konfig dizini içindeki linux-notlar dosyasını siliniz.
14. 12. uygulamada oluşturduğunuz linkleri kontrol ediniz.
15. /root/konfig dizinini tamamen siliniz.
49
BÖLÜM - 3
Kullanıcı Yönetimi
50
3.1. Kullanıcı Hesapları
• Kullanıcı bilgileri /etc/passwd dosyasında tutulmaktadır.
• Bu dosyada kullanıcı ismi, kullanıcı kimlik numarası, birincil grup kimlik numarası,
kullanıcı ile ilgili genel bilgiler, kullanıcı dizininin sistemdeki yeri ve kullanıcının
kullandığı kabuk bilgileri bulunmaktadır.
• /etc/passwd dosyasındaki bir satır aşağıdaki yapıya sahiptir :
• kullanıcı_ismi:x:uid:gid:genel_bilgi:kullanıcının_dizini:kabuk
• kurtulus:x:1000:1000::/home/kurtulus:/bin/bash
• Kullanıcı kimlik numarası (uid) her kullanıcı için farklıdır.
• İşletim sistemi tarafından yapılan temel yetkilendirme işlemlerinde uid bilgisi
kullanılmaktadır.
• Sistem yöneticisi olan root kullanıcısının kimlik numarası sıfırdır (0)
• Normal kullanıcıların kimlik numaraları 1000’den başlamaktadır.
51
3.1. Kullanıcı Hesapları
• Birincil grup numarası, kullanıcının dahil olduğu temel grubu göstermektedir.
• Kullanıcılar birden fazla gruba dahil olabilmektedir.
• Herbir kullanıcı mutlaka bir gruba dahil olmak zorundadır.
• Kullanıcının kişisel bilgilerinin bulunduğu alan (genel_bilgi): boş bırakılabileceği
gibi kullanıcının tam ismi, ofisi, ofis telefonu ve ev telefonu bilgilerini içerebilir.
• Kullanıcının dizininin tanımlandığı 6. alan ise kullanıcının kişisel dosyalarını
koyabileceği alanın sistemdeki yerini belirtmektedir.
• Kullanıcının kullandığı kabuk bilgisi, kullanıcı sisteme giriş yaptığında
kullanacağı kabuğun sistemdeki yerini belirtir.
• /etc/passwd dosyası sistemde bulunan bütün kullanıcılar tarafından okunabilir
durumdadır.
52
3.1. Kullanıcı Hesapları
• Kullanıcıların parolaları her ne kadar şifrelenmiş(encrypt) olsa da kırılma ihtimali
bulunmaktadır.
• Güvenliği arttırmak amacıyla parola bilgileri /etc/shadow dosyasında tutulmaktadır.
• Bu dosya sadece sistem yöneticisi konumundaki “root” kullanıcısı tarafından
okunabilmektedir.
• Aynı zamanda şifrenin en son ne zaman değiştirildiği, kullanıcının ne zaman geçersiz
olacağı, kullanıcıların şifrelerini değiştirmeden geçirebilecekleri maksimum gün sayısı
gibi ek bilgileri de içerebilir.
•
53
3.1. Kullanıcı Hesapları
• /etc/shadow dosyasının genel yapısı aşağıdaki gibidir :
• kurtulus:parola-hash:17937:0:99999:7:::
• Tüm bu alanlar dosya üzerinde değiştirilebildiği gibi komut satırından da
değiştirilebilir.
• Bunun için “chage” komutu kullanılmaktadır.
•
54
3.2. Gruplar
• Gruplar sistemde bulunan kullanıcılardan belirli kümeler
oluşturmak için kullanılır.
• Gruplar sayesinde yetkiler toplu biçimde tanımlanabilmektedir.
• Gruplar ile ilgili bilgiler /etc/group dosyasında tutulur.
• /etc/group dosyası aşağıdaki formata sahiptir :
• grup_ismi:x:grup_kimlik_numarası:üyeler
• grup_ismi alanı grubun isimini tanımlamak için kullanılır.
• Grup kimlik numarası grup ile ilişkilendirilmiş sayısal bir değer
içermektedir.
• Her grupta bu değer farklı olmak zorundadır.
• Üyeler kısmı gruba dahil olan kullanıcıların isimlerini içermektedir.
55
3.3. Hesap Yönetimi
• Kullanıcı Ekleme/Değiştirme
• Kullanıcı eklemek için useradd, mevcut kullanıcı bilgilerini
değiştirmek için usermod komutu kullanılır.
• Komutların parametreleri aşağıdaki gibidir.
• useradd -d kullanıcı_dizini -g birinci_grup -G gruplar -s kabuk -u uid
kullanıcı_ismi
• Kullancı ismi dışındaki tüm parametreler isteğe bağlıdır.
•
56
3.3. Hesap Yönetimi
• “useradd” komutunun parametreleri:
• -d (kullanıcı_dizini) : Kullanıcının şahsi dizininin sistemdeki yerini belirmek için
kullanılır.
• Bu değer belirtilmezse, /home/kullanıcı_ismi olarak oluşturulur.
• -g (grup) : Kullanıcının dahil olacağı birincil grubu içerir.
• Bu değer belirtilmezse, kullanıcı ismi ile aynı başka bir grup oluşturulacak ve
kullanıcının birincil grubu olarak kabul edilecektir.
• -G (gruplar) : Kullanıcının dahil edileceği diğer grupları belirtir.
• -s (kabuk) : Kullanıcının kullanacağı kabuğu belirtir.
• -u (uid) : Kullanıcının kimlik numarasını belirtir.
• Bu değer belirtilmezse, sistem bir sonraki müsait kimlik numarasını seçer.
57
3.3. Hesap Yönetimi
• Parola Belirleme
• Kullanıcı parolasını belirlemek için “passwd” komutu
kullanılır.
• passwd [-l] [-u] [kullanıcı_ismi]
• “passwd” komutu sistemdeki normal kullanıcılar
tarafından sadece kendi parolalarını değiştirmek
amacı ile kullanılabilir.
• root kullanıcısı aşağıdaki işlemleri gerçekleştirir:
• Oluşturulan kullanıcıya parola verilmesi veya var
olan kullanıcının parolasının değiştirilmesi
• Bir kullanıcının hesabının kilitlenmesi
• Kilitli kullanıcıları tekrar aktif hale getirmek
58
3.3. Hesap Yönetimi
• Kullanıcı Silme
• Kullanıcı hesaplarını kaldırmak için “userdel” komutu kullanılır.
• “userdel” komutunun temel kullanımı:
• userdel [-r] kullanıcı_ismi
• Sistemden bir kullanıcı kaldırılırken kullanıcının kişisel dizini
silinmemektedir. Kullanıcı silinirken dizininin de silinmesi için userdel
komutu –r parametresi ile kullanılmalıdır.
•
59
3.3. Hesap Yönetimi
• Grup Ekleme / Silme
• Sisteme yeni bir grup eklemek için “groupadd” komutu
kullanılır.
• Bu komutun temel kullanımı:
• grupadd -g gid grup_adı
• grup adı dışındaki parametreler isteğe göre verilebilir.
• -g gid : Grubun kimlik numarasını belirtir.
• Bu değer belirtilmezse sistem bir sonraki müsait
kimlik numarasını seçer.
• Sistemde varolan bir grubu kaldırmak için “groupdel”
komutu kullanılır.
• Bu komutun temel kullanımı:
• groupdel group_adı
60
3.4. Uygulama
1. bt adlı bir grup ekleyiniz.
2. Birincil grubu bt olan, Ali adlı bir kullanıcı oluşturun ve parola veriniz.
3. Mehmet adlı kullanıcı oluşturun, parola veriniz ve bt grubuna ekleyiniz.
4. Kemal adlı kullanıcı ekleyiniz ve parola veriniz
5. /home/ortak dizini oluşturunuz. /home/ortak dizinine sadece bt grubuna
dahil olanlar erişebilecek şekilde yetkisini düzenleyiniz.
6. Mehmet kullanıcısının shell’ini /sbin/nologin olarak değiştiriniz.
7. Mehmet kullanıcısının hesabını kilitleyiniz. Hesap kilitlenmesi işlemi
Mehmet’in shadow dosyası üzerindeki kaydında ne tür değişiklik yapıyor?
8. Mehmet kullanıcısını sistemde hiçbir dosyası kalmayacak şekilde siliniz.
61
BÖLÜM - 4
Paket Yönetimi
62
4. Paket Yönetimi
• Paket yönetimi için rpm - Red Hat Package Manager adı verilen sistem kullanılır.
• Rpm sistemi ile program kurulması, güncellenmesi, kaldırılması, sorgulanması
basitleştirilmiştir.
• Rpm paketleri kurulacak dosyaları ve kurulacak uygulama hakkında bilgi içerir.
• Pakette bulunan bilgiler aşağıdaki gibidir :
• Paket adı ve versiyonu
• Kuruluş tarihi
• Paket tanımlaması
• Her içerdiği dosyanın büyüklüğü
• Paketi hazırlayan kişinin veya kuruluşun kimliği
• Dahil olduğu paket grubu
• Paket dosyasının adı paketadi-versiyon-küçük_sürüm-mimari.rpm formatındadır.
63
4. Paket Yönetimi
• Paket kurulmadan önce hakkındaki bilgiler /var/lib/rpm ’de bulunan RPM veri
tabanına işlenir.
• Bir programı kurulmadan veya kaldırılmadan önce RPM veri tabanını kontrol eder.
Böylece RPM, yapılacak işlemin sistemi çelişkili bir durumda bırakıp bırakmayacağına
karar verir.
• Rpm paketlerinin diğer paketlere olan bağımlılıkları kurulum sırasında zorluklar
çıkarabilir.
• Bağımlılık kontrollerinin otomatik yapılıp gerekli diğer paketlerin de kurulması için
yum adlı program kullanılabilir.
• Centos yum depo bilgileri aşağıdaki şekildeki gibidir.
•
64
4.1. Paket Kurma
• rpm -i paketadi.rpm komutu kullanılır.
• -v parametresi yapılan işlemleri, -h parametresi yükleme durumunu
gösterir. Bu nedenle komutu
• rpm -ivh paket_adı.rpm formatında kullanılabilir.
• Yum ile paket kurmak için
• yum install paket_adı
• yum install ntp
•
65
4.2. Paket Kaldırma
• Kurulmuş bir paketi rpm ile kaldırmak için:
• rpm -e paket_adı
• yum ile kaldırmak için
• yum remove paket_adı
• yum remove ntp
• Burada paket_adı kaldırılacak paketin adıdır.
• Paket sistemden kaldırılmadan önce dosyalarının başka paketler tarafından
kullanılıp kullanılmadığı araştırılır.
66
4.3. Paket Güncelleme
• Zaman zaman paketlerin yeni versiyonları çıkmaktadır.
• Çoğu zaman yeni paketler yamaları ve yeni önemli özellikleri içerir.
• RPM ile bir paketin yeni versiyonunu kurmak için:
• rpm -Uvh paket_adi.rpm
• Veya
• rpm -Fvh paket_adi.rpm
• -U parametresi ile paket güncelleme işlemi yapılırsa sistemde paket kurulu ise günceller, kurulu
değilse kurar.
• -F ile güncelleme işlemi yapıldığında sistemde paket kurulu ise güncelleme işlemini yapar. Paket
kurulu değilse kurmaz.
• yum ile paket güncelleme yapmak için
• yum update paket_adi
• yum update ==> Tüm sistemin güncellenmesi için kullanılır.
67
4.4. Paketlerin Sorgulanması
• Bir paketin kurulu olup olmadığını öğrenmek için
• rpm -q paket_adi
• Sistemde kurulmuş olan tüm paketleri listelemek için
• rpm -qa
• Kurulu paket hakkında bilgi almak için
• rpm -qi paket_adı
• Bir dosyanın hangi pakete ait olduğunu bulmak için
• rpm -qf dosya_adı
• Bir paketin dosyalarının listesini almak için
• rpm -ql paket_adı
68
BÖLÜM - 5
Ağ Konfigürasyonu ve Programlar
69
5.1. Ağ Ayarları
• /etc/sysconfig/network-scripts
• Bu dizin sistemde bulunan ağ arayüzleri için gerekli tanımların
bulunduğu dizindir.
• Her arayüz için bir adet konfigürasyon dosyası bulunmaktadır.
• Arayüzlerin konfigürasyon dosyaları ifcfg-arayüz isimine sahiptir.
70
5.1. Ağ Ayarları
• Ağ ayarları aşağıda şekilde belirtilen dosyada bulunur.
• cat /etc/sysconfig/network-scripts/ifcfg-ens33
• Önce “ip a” komutu ile ağ arayüzünü öğreniyoruz
•
71
5.1. Ağ Ayarları
• Konfigürasyon dosyalarında kullanılan temel terimler aşağıdaki gibidir :
• DEVICE : Arayüzün sahip olduğu aygıt ismini belirtir.
• ONBOOT : Sistem açılırken arayüzün aktif hale getirilip getirilmeyeceğini belirtir.
Sistem açılırken arayüzün aktif hale geçirilmesi için bu parametrenin değeri "yes"
olmalıdır.
• BOOTPROTO : Arayüzün ağ ayarlarının yapılması için kullanılan protokolü belirtir.
• Ağ ayarları statik olarak yapılandırılacaksa, “static”
• Ağ ayarları DHCP sunucusu üzerinden yapılandırılacaksa "dhcp" değerini
içermelidir.
• Sisteme statik IP verilmek istendiğinde IPADDR, NETMASK, GATEWAY gibi temel
terimlerde bulunmaktadır.
•
72
5.1. Ağ Ayarları
• /etc/hosts
• DNS sorgulaması yapılmadan once /etc/hosts dosyası kontrol edilir.
• Bu dosya içinde makine isimleri ve makinenin IP adresi bulunmaktadır.
• Her IP için ayrı bir kayıt olmak zorundadır.
• Ağ üzerindeki bilgisayarların artmasıyla birlikte bu dosyanın kullanılması imkansız
hale gelmiş ve DNS servisi geliştirilmiştir.
• /etc/hosts dosyasındaki satırlar aşağıdaki formata sahiptir :
• IP_Adresi Makine_isimleri
• 192.168.1.10 egitim.milsafe.com
•
73
5.1. Ağ Ayarları
• /etc/resolv.conf
• Bu konfigürasyon dosyası DNS ayarları için kullanılır.
• Formatı aşağıdaki gibidir.
• nameserver DNS_sunucunun_IP_Adresi
• İstenildiği takdirde birden fazla DNS sunucusu tanımı yapılabilir.
74
5.1. Ağ Ayarları
• Komut satırından IP ayarı yapabilmek için “ifconfig” komutu kullanılabilir.
• Herhangi bir parametre verilmeden “ifconfig” komutu kullanılırsa
sistemde varolan arabirimler ve arabirimlerle ilgili detaylı bilgiler listelenir.
• Sadece arabirimlerden birisini görüntülemek için;
• ifconfig arabirim_adı
• Bir arabirimi kapatmak için
• ifconfig eth0 down
• Bir arabirimi açmak için
• ifconfig eth0 up
•
75
5.1. Ağ Ayarları
• Ağ Ayarlarının Aktif/Pasif Edilmesi
• Tüm arabirimleri yeniden başlatmak için network servisini restart etmek gereklidir.
• /etc/init.d/network restart
• systemctl restart network
• Ağ servisinin durumunu görmek için
• /etc/init.d/network status
• systemctl status network
• Sadece belli bir arabirimi açmak için
• ifup arabirim_adi
• Sadece belli bir arabirimi kapatmak için
• ifdown arabirim_adi
• “ip a” komutu ile de arabirim bilgileri görüntülenebilir
76
5.1. Ağ Ayarları
• Sisteme Static IP vermek için gerekli ayarlar konfigürasyon dosyasından yapılabilir.
• /etc/sysconfig/network-scripts/ifcfg-ens33
• BOOTPROTO=dhcp değeri BOOTPROTO=static olarak değiştirilir.
• Aşağıda belirtilen parametreler istenildiği gibi eklenir.
• IPADDR=192.168.1.200
• NETMASK=255.255.255.0
• GATEWAY=192.168.1.1
• Belirtilen değişiklikler konfigürasyon dosyasında yapıldıktan sonra, network servisi
yeniden başlatılır.
• /etc/init.d/network restart
• veya
• systemctl restart network
77
5.2. Routing (Yönlendirme) Ayarları
• Route ekleyebilmek veya mevcut root bilgilerini görüntülemek için “route” komutu
kullanılır.
• Mevcut routing bilgisini listelemek için
• route –n komutu kullanılır.
• Sisteme varsayılan ağ geçidi olarak 192.168.1.254 vermek için
• route add default gw 192.168.1.254
• Varsayılan ağ geçidini kaldırmak için
• route del default gw
•
78
5.2. Routing (Yönlendirme) Ayarları
• Örnek:
• 192.168.2.0/24 ağına 192.168.0.253 üzerinden erişebilmek için
• route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.253
• Route bilgisini silmek için
• route del -net 192.168.2.0 netmask 255.255.255.0
•
79
5.3. GUI Üzerinden Ağ Ayarları
• Ağ ayarları GUI (grafik ortamda) üzerinden de yapılabilir
Grafik arayüz kapsam dışıdır :)
80
5.4. Ağ Programları — Netstat
• netstat komutu ağ bağlantıları, yönlendirme tablosu, arayüz istatistikleri gibi ağ ile ilgili temel
bilgileri gösterir.
• Hiç bir seçenek verilmediği takdirde netstat programı aktif ağ bağlantıları ile ilgili bilgileri
gösterecektir.
• Netstat komutu çıktısının “Active Internet Connections” bölümünde bulunan sutunlar ve anlamları:
• Proto : Soket tarafından kullanılan protokolü belirtir. Tcp , udp veya raw değerlerini içerebilir.
• Recv-Q : Bu soketi kullanan programa kopyalanmayan verinin büyüklüğünü byte olarak belirtir.
• Send-Q : Karşıdaki sistem tarafından alındığı onaylanmayan verinin büyüklüğünü byte olarak
belirtir.
• Local Adress: Soketin yerel uçtaki IPadresi ve port numarasını belirtir. Eğer netstat programı –
n seçeneği ile çalıştırılmamış ise IPadresi ve port numarası için DNS çözümleme yapılır.
• Foreign Adress: Soketin hedef uçtaki IPadresi ve port numarasını belirtir. Eğer netstat
programı –n seçeneği ile çalıştırılmamış ise IPadresi ve port numarası için DNS çözümleme
yapılır.
81
5.4. Ağ Programları — Netstat
• State : Soketin durumunu belirtir. Soketler aşağıdaki durumlarda olabilirler :
• ESTABLISHED : Soket bağlantı gerçekleştirmiş durumdadır.
• SYN_SENT : Soket bağlantı kurmaya çalışıyordur.
• SYN_RECV : Ağdan bir bağlantı isteği gelmiştir.
• FIN_WAIT1 : Soket kapatılmış , bağlantı sonlandırılmak üzeredir.
• FIN_WAIT2 : Bağlantı sonlandırılmıştır. Soket karşı ucun bağlantıyı sonlandırmasını
beklemektedir.
• TIME_WAIT : Soket kapndıktan sonra gelebilecek paketleri alabilmek için beklemektedir.
• CLOSED : Soket kullanılmamaktadır.
• CLOSE_WAIT : Karşı uç bağlantıyı kapatmıştır. Soketin kapanması beklenmektedir.
• LAST_ACK : Karşı uç bağlantıyı sonlandırmış ve soketi kapatmıştır. Onay beklenmektedir.
• LISTEN : Soket gelebilecek bağlantılar için dinleme konumundadır.
• CLOSING : Yerel ve uzak soketler kapatılmış fakat tüm verilerini göndermemiş durumdadırlar.
Tüm veriler gönderilmeden soketler kapanmazlar.
82
5.4. Ağ Programları — Netstat
• -e : parametresi ile çalıştırılırsa User sutunu ile soketi kullanan programın çalıştığı
kullanıcı kimlik numarası veya kullanıcı ismi bilgisini içerir.
• -p : parametresi ile çalıştırılırsa “PID/Program name” sutunu soketi kullanan programın
süreç kimlik numarası ve program ismini getirir.
• Her kullanıcı sadece kendi programları için bu bilgiyi alabilir.
• Root kullanıcısı ise tüm soketler için bu bilgiyi alır.
• netstat sadece belli bir protokolü listelemek için kullanılabilir. TCP için -t, UDPiçin -u
parametresi kullanılır.
• -l : listen , -n : DNS çözümleme yapma
•
83
5.4. Ağ Programları — Netstat
• Netstat programı -i seçeneği ile çalıştırıldığında sistemdeki arayüzler ile ilgili
istatistikler bilgiler vermektedir.
• Bu istatistikler arasında gönderilen paket sayısı (TX-OK),
• Gönderilen paketlerde oluşan hata sayısı(TX- ERR),
• Gönderilen paketlerden çöpe atılan sayısı (TX-DRp),
• Giden paketlerde oluşan üstüne yazma hatası sayısı (TX-OVR) ve aynı bilgilerin
gelen paketler (RX) için olanı bulunmaktadır.
•
84
5.4. Ağ Programları — Arp
• Sistemin arp tablosunda IP adresi – fiziksel adres kayıtları bulunur.
• Sistemde bulunan arp tablosunu görmek için sadece “arp” komutunun çalıştırılması
yeterlidir.
• Arp tablosuna statik kayıt eklemek için -s seçeneği kullanılır.
• arp -s makine_ismi MAC_adresi
• arp -s makine_IP MAC_adresi
• Arp tablosundan kayıt silmek için -d seçeneği kullanılır.
• arp -d makine_ismi
• arp -d makine_IP
•
85
5.4. Ağ Programları — Ping
• Ping komutu ICMP protokolü üzerinden ECHO_REQUEST paketi gönderir .
• Bu isteği alan ve cevap dönecek olan cihaz ICMP ECHO_REPLY paketi gönderir.
• Arada geçen zaman hesaplanarak kullanıcıya gösterilir.
• Ping komutu çoğunlukla karşıdaki makinenin ayakta olup olmadığını kontrol etmek için kullanılır.
• Eğer ping isteğine cevap gelmiyor ise hedef makine çalışmıyor olabilir.
• Aynı zamanda ping komutunun çıktısından iki makine arasındaki transferin ne kadar hızlı olabileceği
hakkında tahmin yürütülebilir.
• Ping komutu aşağıdaki seçenekler ile kullanılabilir :
• -c sayı : Sayı ile belirtilen kadar ping paketi gönderir. Bu seçenek kullanılmadığı takdirde ping sürekli
çalışacaktır. Bu durumda kapatma isteği CTRL-C tuşları ile verilebilir.
•
86
5.4. Ağ Programları — Traceroute
• “traceroute” komutu ile hedefteki makineye giden yoldaki geçilen
yönlendiriciler hakkında bilgi toplanır.
• Komutun temel kullanım şekli aşağıdaki gibidir :
• traceroute makine_ismi_yada_ip_adresi
87
5.4. Ağ Programları — Telnet
• Telnet programı uzaktaki sunucu ile TELNET protokolü ile haberleşmeyi sağlar.
• Bu program sayesinde uzaktaki makinede kullanıcıya bir çalışma alanı açılır.
• Telnet komutunun en basit kullanım şekli aşağıdaki gibidir :
• telnet sunucu_ismi [port numarası]
• Kullanıcı telnet programı ile uzaktaki bir sunucuya bağlandığı takdirde kendisinden
kullanıcı ismi ve parola isteyen bir ekranla karşılaşacaktır.
• Bu ekranda gerekli bilgileri girdikten sonra kullanıcı için sistemde tanımlı olan kabuk
programı çalışmaya başlayacak ve kullanıcıdan komut bekleyecektir.
• Telnet hedef makinedeki portun açık olup-olmadığı hakkında bilgi toplamak için de
kullanılabilir.
•
88
5.4. Ağ Programları — ftp
• FTP protokolü uzaktaki sunucudan dosya transferi için
kullanılan bir protokoldür.
• Bir çok işletim sisteminde hemen hemen aynı komutlar
ve aynı arayüze sahiptir.
• ftp programının temel kullanım şekli aşağıdaki gibidir :
• ftp ftp_sunucusu
• Kullanıcı ismi ve parola girilir
• Bu durumda iken bir çok komut kullanılabilir.
• help : kullanılabilecek komutlar listelenir
• ls : sunucuda bulunulan dizinin içeriğinin listeler.
• dir : ls ile aynıdır. İki komutun çıktısı ftp
sunucusuna göre değişebilir.
• cd : sunucuda dizini değiştirmek için kullanılır.
• get : sunucudan bir dosya almak için kullanılır.
• put : sunucuya bir dosya koymak için kullanılır.
• bye : Ftp bağlantısını kapatmak için kullanılır.
89
5.4. Ağ Programları — Nslookup
• nslookup DNS sorgulamaları yapmak için kullanılır.
• Komutun temel kullanım şekli aşağıdaki gibidir :
• nslookup [seçenek] [sorgu]
• Sorgu parametresi verilmediği takdirde nslookup interaktif mod geçer.
• İnteraktif modda iken istenilen sorgulama yapılabilir.
• set query=“sorgu_tipi” veya set type=“sorgu_tipi” komutu verilmelidir.
•
90
5.4. Ağ Programları — Nslookup
• Temel sorgulama tipleri aşağıdaki gibidir :
• A : Makine isminden IP adresi sorgulaması için kullanılır.
• PTR: Makine IP adresinden makine ismi sorgulaması için
kullanılır.
• NS : Verilen alan için yetkili DNS sunucularının listesini
görmek için kullanılır.
• MX : Verilen alan veya sunucu için gönderilen e-postaları
kabul eden sunucuları görmek için kullanılır.
• ANY : Tüm sorgulama tipi kullanılır.
• SOA : Alandan sorumlu kişi , TTL süresi , alanın seri
numarası gibi bilgileri almak için kullanılır.
• nslookup komutunun sorgulamaları için kullandığı sunucu
istendiği takdirde “server” komutu ile değiştirilebilir.
91
5.4. Ağ Programları — Dig
• DNS sorgulaması yapmak için
kullanılabilecek daha gelişmiş
programdır.
• Kullanım şekli:
• dig [sorgu_tipi] [@dns.ip] sorgu
• milsafe.com alan adı için ns
kaydını bulmak için
• dig ns milsafe.com
• milsafe.com alan adının mx
kaydını 1.2.3.4 ip numaralı dns
sunucusundan sorgulamak için
• dig mx @1.2.3.4 milsafe.com
92
5.4. Ağ Programları — Whois
• “Whois” komutu IP veya domain
adresinin sorumlu kişilerin e-posta
adresleri, adresleri, telefonları gibi
bilgileri getirir.
• Komutun temel kullanımı aşağıdaki
gibidir :
• whois IP_adresi_veya_domain_adı
• whois milsafe.com
93
5.5. Uygulama
1. Sisteminizdeki mevcut ağ arabirimine statik olarak ip adresini veriniz. IP adresinin
değiştiğinden emin olduktan sonra internete bağlanıp bağlanmadığınızı kontrol ediniz.
2. Sistemin DNS ayarlarını Türk Telekom DNS’leri ile değiştiriniz ve internete bağlanıp
bağlanmadığınızı kontrol ediniz.
3. Default gw olarak 10.0.0.254 giriniz.
4. Netstat komutu ile sisteminizde açık portları belirleyiniz.
5. arp komutu ile çıktısını yorumlayınız.
6. ping komutu ile çıktısını yorumlayınız.
7. traceroute komutu ile çıktısını yorumlayınız.
8. Evinizdeki modeme telnet ile bağlanınız.
9. ftp komutu ne kadar güvenli olduğunu açıklayınız.
10. Nslookup ve dig komutları ile milsafe.com alan adını tüm sorgu tipleri için sorgulayıp, yorumlayınız.
11. whois komutu ile milsafe.com ala adının bilgileri toplayınız. Yeterli bilgi yoksa sebebini açıklayınız.
94
BÖLÜM - 6
SisteminAçılışı ve Süreç Yönetimi
95
6. Sistemin Açılışı ve Süreç Yönetimi
• Linux gerçekte sadece bir işletim sistemi çekirdeğidir.
• Dağıtımlar linux çekirdeğini alıp, bu çekirdek üzerinde çalışacak programları hazırlayıp tam
bir işletim sistemi oluştururlar.
• İşletim sistemi çekirdeklerinin temel görevleri arasında donanım ile haberleşme, süreç kontrolü,
hafıza yönetimi gelir.
• Linux gelişmiş bir hafıza yönetim sistemine sahiptir.
• Varolan fiziksel hafızanın dışında disk üzerindeki dosya ve disk bölümlerini sanal hafıza (swap)
olarak kullanabilmektedir.
• Linux çekirdeği sistemde varolan hafızayı süreçler arasında paylaşılacak şekilde kullanılmasına
izin verir.
• Bir süreç askıya alındığı takdirde kendisine ayrılan kaynaklar başka bir süreçe verilebilmektedir.
• Sistemde bulunan fiziksel hafıza yeterli olmadığı durumlarda disk üzerindeki bölümler hafıza
olarak kullanılabilir.
96
6. Sistemin Açılışı ve Süreç Yönetimi
• Temelde çalışan programın tüm verileri fiziksel hafızada bulunur.
• Bu yüzden fiziksel hafızanın yetmediği durumlarda, hafızada bulunan belirli kısımlar takas
alanına aktarılır ve bu sayede CPU kullanacak program için hafızada gerekli yer açılır.
• Bu durum giriş/çıkış işlemi gerektirdiğinden sistemi yavaşlatacaktır.
• Tüm işletim sistemlerinde donanım ile haberleşme işletim sistemi çekirdeği sayesinde
yapılmaktadır.
• Linux işletim sistemi geniş bir donanım desteğine sahiptir.
• Donanım erişimi için kullanılan sürücüler işletim sistemi çekirdeğine gömülebileceği gibi
istendiği takdirde modül olarak da çalışma anında çekirdeğe dahil edilebilmektedir.
• Linux çekirdeği modüler bir yapıya sahiptir.
• Derleme işlemi esnasında sistemde bulunması istenen destekler seçilebilmektedir.
97
6. Sistemin Açılışı ve Süreç Yönetimi
• Linux çekirdeği modül kullanabilme yeteneğine sahiptir.
• Modüller çalışma esnasında çekirdeğe eklenip çıkarılabilecek çekirdek parçacıklarıdır.
• Çoğunlukla bir donanıma erişmek için kullanılan sürücüler modül olarak kullanılabilir.
• İstendiği takdirde dosya sistemi destekleri, NFS sunucu desteği gibi çekirdek parçaları da
modül olarak eklenebilir.
• Sisteme modül eklemek için;
• modprobe
• Sistemde kullanılan modülleri listelemek için;
• lsmod
• Kullanılan modülleri çekirdekten kaldırmak için;
• rmmod
• komutları kullanılabilir.
98
6.1. Açılış İşlemleri
• Tüm bilgisayar sistemleri, sistem açılımı için kullanılan özel yazılımın
bulunduğu donanımlara sahiptir.
• PC tipi bilgisayarlar da BIOS bilgisayarın ilk olarak açılmasından ve işletim
sisteminin yüklenmesinden sorumludur.
• BIOS yazılımı sayesinde bilgisayar açılır ve işletim sisteminin yükleneceği
duruma getirilir.
• Her işletim sistemi mutlaka bir adet ön yükleme programına (boot loader)
sahiptir.
• Linux işletim sistemi ile en çok kullanılan ön yükleme programı Grub’tur.
• Bu programların temel amacı linux çekirdeğini yüklemektir.
•
99
6.1. Açılış İşlemleri
• BIOS kendi işini bitirdikten sonra işletim sisteminin yüklenmesi için ön yükleme
programını çağırır.
• Bu programlar çoğunlukla diskin MBR (Master Boot Record) olarak adlandırılan
bölümlerinde bulunurlar.
• LILO programı iki temel yüklenme aşaması içerir.
• Birinci aşama olarak belirtilen aşama ikinci aşamayı yüklemek ile görevlidir.
• Birinci ön yükleme programı (bootstrap) kendini hafıza yükler ve daha gelişmiş ikinci
aşama ön yükleme programını çalıştırır.
• Birinci aşamada çalışan kod ikinci aşamada çalışacak kodun nerede olduğunu
bilmek zorundadır.
• İkinci aşamada yüklenen programın görevi işletim sistemi çekirdeğini yüklemektir.
• Bu programa da işletim sistemini olacağı yeri bilmelidir.
100
6.1. Açılış İşlemleri
• İşletim sistemi çekirdeği yüklendikten sonra işletim sistemin yüklenmesini sağlayacak
program çalıştırılır.
• Varsayılan olarak bu program “init” programıdır.
• Bu program sistemde çalışan ilk süreçtir ve diğer tüm süreçlerin çalıştırılmasını
gerçekleştirir.
• init sürecinin süreç kimlik numarası (PID) her zaman 1(bir)’dir.
• /etc/inittab dosyası
• Init sistemde çalışan tüm süreçlerin ana süreci durumundadır.
• Init programının temel görevi /etc/inittab konfigürasyon dosyasına göre gerekli
programları çalıştırmaktır.
• Inittab dosyası temelde hangi çalışma seviyelerinde hangi programların çalıştırılacağı
gibi bilgileri içerir.
101
6.1. Açılış İşlemleri
• Çalışma seviyesi ile belirtilen, belli süreçlerin çalışmasına izin verilen konfigürasyonlardır.
• Linux işletim sisteminde temel olarak çalışma seviyeleri
• 0 : Sistemi kapatmak için kullanılan çalışma seviyesidir. Bu çalışma seviyesine geçildiği takdirde
çalışan tüm programlar kapatılarak gerekli kapanma işlemleri yapılır ve sunucu güvenli bir şekilde
kapatılacak duruma getirilir.
• 1 : Linux işletim sistemi tek kullanıcılı modda çalışır. Bu mod çoğunlukla bakım ve kurtarma
operasyonları için kullanılır. Varsayılan olarak ağ ayarları geçerli değildir.
• 2 : Linux işletim sistemi çok kullanıcılı modda çalışır fakat NFS sunucuları çalıştırılmaz ve NFS dosya
sistemleri bağlanmaz.
• 3 : Linux işletim sistemi çok kullanıcılı modda çalışır. İkinci seviyeden fark olarak NFS desteği
bulunmaktadır.
• 4 : Bu seviye için hiç bir şey tanımlanmamıştır.
• 5 : Üçüncü seviyenin yanı sıra , X Window sisteminin sistemin açılması ile birlikte çalışmasını sağlar.
• 6 : Sistemi reboot etmek için kullanılan çalışma seviyesidir.
102
6.1. Açılış İşlemleri
• Init programı çekirdeğin yüklenme aşamasının son adımı olarak yüklendikten sonra /etc/
inittab dosyasında initdefault tanımını arar.
• Bu tanım geçilmesi gereken çalışma seviyesini belirtir.
• Tek kullanıcılı çalışma seviyesinde init /dev/console cihazı ile etkileşimli olarak çalışan bir
kabuk çalıştırır.
• Bu kabuk root yetkili kullanıcısının yetkileri ile çalışmaktadır.
• Çok kullanıcılı bir çalışma seviyesine geçildiği takdirde init programı boot ve bootwait
tanımlamaları ile belirtilen programları çalıştırır.
• Bu programlar çoğunlukla sistemi hazırlayan scriptlerdir.
• Bu scriptler sayesinde gerekli çekirdek modülleri yüklenir, dosya sistemleri bağlanır ve
klavye ve font ayarları yapılır.
• Inıt programı daha sonra geçilecek çalışma seviyesinde çalıştırılması gereken programları
çalıştırır.
103
6.1. Açılış İşlemleri
• Inittab dosyası aşağıdaki formata sahiptir.
• id:çalışma-seviyeleri:işlem:komut
• id : 1 ile 4 karakter arasında bir isimdir. Ve her satır için tek olmak zorundadır.
(Not : getty süreçleri için id tanımlaması programın ileşkilendirildiği tty ile
ilgili olmalıdır. Yani tty1 konsolu için çalışacak getty programını tanımlayan id
1 olmak zorundadır.)
• Çalışma-seviyeleri : Belirtilen işlemin uygulanacağı çalışma seviyeleri
belirtilir. Birden fazla çalışma seviyesi belirtilebilir.
• İşlem : Yapılacak işlemin türünü belirler.
• Komut : Çalıştırılacak komutu belirtir.
•
104
6.1. Açılış İşlemleri
• Temel işlem türleri aşağıdaki gibidir :
• sysinit : Komut sistem açılırken ilk olarak çalıştırılır. Çalışma seviyeleri göz ardı edilir.
• boot : Komut sistem açılırken çalıştırılır.
• bootwait : Komut sistem açılırken çalıştırılır ve init komutun sonlanmasını bekler.
• once : Komut, çalışma seviyesine geçildiğinde bir kez çalıştırılır.
• wait : Komut, çalışma seviyesine geçildiğinde bir kez çalıştırılır ve init komutun
sonlanmasını bekler.
• respawn : Belirtilen komut sona erdiği takdirde yeniden çalıştırılır. (Özellikle getty
süreçleri için kullanılır.)
• initdefault : Varsayılan sistem çalışma seviyesini belirtir. Çalışma seviyesi kısmında
tek bir seviye belirtilebilir. Komut kısmı göz ardı edilir.
• ctrlaltdel : CTRL-ALT-DELtuşlarına basıldığında gerçekleştirilecek işlemi belirtir.
105
6.1. Açılış İşlemleri
• etc/rc.d/rc.sysinit
• rc.sysinit scripti sistem açılırken çalıştırılan ve sistemi kullanıma
hazırlayan temel scripttir.
• Init programı ilk olarak rc.sysinit scriptini çalıştırmaktadır.
•
106
6.1. Açılış İşlemleri
• rc.sysinit scriptinin temel görevleri aşağıdaki gibidir :
• Sisteminin isminin tanımlanması
• Çekirdek parametrelerinin ayarlanması
• Klavye ve sistem fontunun ayarlanması
• USB kontrolörünün başlatılması
• Dosya sistemlerinin bağlanması, kontrol edilmesi
• LVM ve RAID cihazların aktive edilmesi
• Takas alanlarının aktive edilmesi
• Kullanıcı kotalarının aktive edilmesi
•
107
6.1. Açılış İşlemleri
• Çalışma Seviyelerine Giriş İşlemleri
• Herhangi bir çalışma seviyesi değişmesinde yapılması gereken birkaç işlem vardır.
• Bu işlemleri yapmak için /etc/rc.d/rc scripti kullanılmaktadır.
• Bu scriptin temel görevi geçilen çalışma seviyesine göre servisleri kapatıp
açmaktır.
• rc scriptine geçilecek olan çalışma seviyesi parametre olarak bildirilir.
• Çalışma seviyeleri arasındaki geçişler init kontrolünde yapılmaktadır.
• Bu sebeple rc scripti init programı tarafından bir çalışma seviyesine geçerken
çağırılır ve sonlanması beklenir.
• Her çalışma seviyesi için /etc/inittab dosyasında rc scriptinin çağırılmasını
sağlayan bir satır bulunmaktadır.
108
6.1. Açılış İşlemleri
• l0:0:wait:/etc/rc.d/rc 0
• l1:1:wait:/etc/rc.d/rc 1
• l2:2:wait:/etc/rc.d/rc 2
• l3:3:wait:/etc/rc.d/rc 3
• l4:4:wait:/etc/rc.d/rc 4
• l5:5:wait:/etc/rc.d/rc 5
• l6:6:wait:/etc/rc.d/rc 6
• Her çalışma seviyesi servislerin başlatılması ve sonlandırılması için kullanılan scriptlerin
bulunduğu bir dizine sahiptir.
• Bu dizinler /etc/rc.d dizini altında bulunurlar ve rcX.d formatına sahiptirler ( X=Çalışma
Seviyesi).
•
109
6.1. Açılış İşlemleri
• Bu dizinlerde K ile başlayan dosyalar çalışma seviyesine geçildiğinde durdurulacak servisleri
belirtmektedir.
• S ile başlayan dosyalar ise çalışma seviyesine geçildiğinde çalıştırılacak servisleri
belirtmektedir.
• K veya S harfinden sonra gelen sayıya göre scriptlerin çalıştırılma sırası belirlenir.
• Daha küçük değere sahip olan script daha önce çalıştırılır.
• Bir çalışma seviyesine geçildiği takdirde rc scripti ilk olarak servis durdurma scriptlerini
çalıştır.
• Daha sonra servis başlatma scriptleri çalıştırılır.
• Red Hat Linux dağıtımlarında servislerin kapatılıp açılmasını sağlayan scriptler /etc/rc.d/
init.d dizini altında bulunmaktadır.
• Çalışma seviyelerinin dizinlerinde bulunan scriptler aslında /etc/rc.d/init.d altındaki
scriptlere sembolik linklerdir.
110
6.2. Servislerin Düzenlenmesi
• Her çalışma seviyesinde çalışacak belli servisler bulunmaktadır.
• Her çalışma seviyesinde çalışması istenen servisler ayarlanabilmektedir.
• Komut satırından chkconfig komutu çalışacak servislerin düzenlenmesi için
kullanılmaktadır.
• Chkconfig komutunun temel kullanım şekli aşağıdaki gibidir :
• chkconfig [--list|--del|--add] [servis]
• chkconfig [--level çalışma-seviyeleri] servis <on|off|reset>
• Çalışma seviyelerinde hangi servislerin açık, hangi servislerin kapalı olduğunu görmek için
--list parametresi kullanılmalıdır.
• Sadece belirli bir servis için listeleme istendiği takdirde servis ismi de komuta
eklenmelidir.
• chkconfig --list [servis]
111
6.2. Servislerin Düzenlenmesi
• Centos 7 sürümünde çalışma seviyelerinde değişiklik olmuştur.
• runlevels (çalışma seviyeleri) yerine systemd “targets” yapısını kullanır.
• Varsayılan olarak iki ana hedef (targets) vardır
• multi-user.target ==> runlevel 3
• graphical.target ==> runlevel 5
• Geçerli varsayılan hedefi görüntülemek için
• systemctl get-default komutu kullanılır
• Geçerli hedefi ayarlamak için
• systemctl set-default TARGET.target
• systemd servislerini listelemek için
• systemctl list-unit-files
• Belirli bir target için kullanılan servisleri listelemek için
• systemctl list-dependencies [target]
112
6.3. Servislerin Başlatılması/Durdurulması
• Her servis için /etc/rc.d/init.d dizini altında bir script bulunmaktadır.
• Bu script sayesinde servis istendiğinde durdurulabilir, çalıştırılabilir veya servisin durumu öğrenilebilir.
• Scriptlerin temel çalıştırılış şekli aşağıdaki gibidir :
• /etc/rc.d/init.d/servis <start|stop|restart|status>
• start : Çalışmayan bir servisi çalıştırmak için
• stop : Çalışan bir servisi durdurmak için
• restart : Çalışan bir servisi yeniden çalıştırmak için
• status : Servisin durumunu öğrenmek için
• Centos 7 sürümünde systemd yapısı kullanılmaktadır.
• systemctl status firewalld
•
113
6.4. Kernel Modülleri ve İşlemleri
• Tüm işletim sistemlerinin en önemli bileşenlerinden biri işletim sistemi
çekirdeğidir.
• İşletim sistemi çekirdekleri sistem kaynaklarını kontrol eder ve işletim
sisteminin diğer parçaları tarafından kullanılan servisleri sağlarlar.
• Linux çekirdeği devamlı geliştirilen bir çekirdektir.
• Linux çekirdeğinin sürümleri üç sayı ile belirtilir. (Örnek : 2.6.30).
• 114
6.4. Kernel Modülleri ve İşlemleri
• Kernel Tipleri
• Linux çekirdeği ilk olarak ortaya çıktığında tek dosyadan oluşan bir yapıya sahipti.
• Günümüzdeki linux çekirdekleri ise modül adı verilen bir kaç dosyadan oluşabilmektedir.
• Tek dosyadan oluşan işletim sistemi çekirdekleri monolithic çekirdek olarak adlandırılır.
• Modül kullanımına izin veren çekirdekler ise modüler (modular) çekirdek olarak
adlandırılır.
• Modüler linux çekirdeklerine gerekli destekler çalışma anında eklenebilir ve
çıkartılabilirler.
• Bu seçenek monolithic çekirdeklerde bulunmamaktadır.
• Monolithic çekirdekler çoğunlukla daha hızlı ve daha güvenlidirler.
• Modüler çekirdekler sayesinde ise daha esnek bir yapı elde edilir.
115
6.4. Kernel Modülleri ve İşlemleri
• Modüllerin Sistemdeki Yerleri
• Çekirdek modülleri standart olarak /lib/modules dizini altında bulunmaktadır.
• Bu dizin altında sistemde bulunan her çekirdek sürümü için ayrı bir modül dizini bulunur.
• /lib/modules/3.10.0-862.11.6.e17.x86_64 dizini içinde aynı zamanda modül
bağımlılıklarını belirten dosyalarda bulunmaktadır.
• Bu bağımlılıklar bir modül yüklenirken göz önüne alınmaktadır.
• Bu dizinlerden drivers dizini donanım ile haberleşmek için kullanılan modülleri içerir.
➢
116
6.4. Kernel Modülleri ve İşlemleri
• Yüklenmiş Modüllerin Listelenmesi
• Sistemde yüklenmiş olan modüllerin
listesini almak için lsmod komutu
kullanılmaktadır.
• Lsmod çıktısında kullanılan modüllerin
ismi, boyutları ve modülü kullanan diğer
modüller gösterilmektedir.
• Sistemde yüklü olan modülleri öğrenmek
için ikinci bir yol ise /proc/modules
dosyasının içeriğine bakmaktır.
•
117
6.4. Kernel Modülleri ve İşlemleri
• Kullanılmayan modüllerin çekirdekten kaldırılması
• Yüklü fakat kullanılmayan modüllerin çekirdekten kaldırılması için rmmod komutu
kullanılmaktadır.
• Rmmod komutunun temel kullanım şekli aşağıdaki gibidir :
• rmmod modül-ismi [modül-ismi2 modül-ismi3]
•
118
6.4. Kernel Modülleri ve İşlemleri
• Modül Yükleme
• Bir modülü yüklemek için modprobe komutu kullanılır
•
119
6.5. Süreç ve Görev Yönetimi
• Sistemde çalışan süreçleri ve süreçlerin durumlarını öğrenmek için ps komutu kullanılabilir.
• Ps komutunun temel kullanımı:
• ps [seçenekler]
• ps komutu ile kullanılabilecek seçenekler aşağıdaki gibidir :
• a : Tüm terminallerde çalışan prosesleri listeler
• x : Sistemdeki tüm prosesler, tty’lerde çalışanlar hariç
• c : Proseslerin sadece komut isimlerini listeler
• e : Komutları ile parametrelerini göstermektedir
• j : İş akışı izleme şeklinde gösterir
• u : Kullanıcıya göre gösterir
• v : Kullanılan hafızalara göre gösterir
120
6.5. Süreç ve Görev Yönetimi
• Ps komutu en yaygın olarak sistemdeki tüm süreçlerin ve süreç sahiplerinin gösterilmesini
sağlayan aux parametreleri ile birlikte kullanılabilir.
• ps aux
• Sistemde en çok CPU veya hafıza kullanan süreçlerin gerçek zamanlı olarak izlenmesi için
top komutu kullanılabilir.
• Top komutu kullanımı
• top
• Varsayılan olarak top komutu en çok işlemci kullanan süreçe göre sıralama
yapmaktadır.
• Bu davranışını değiştirmek için top komutu çalıştırıldıktan sonra ‘M’(büyük M)
kullanılmalıdır. Böylece memory kullanımına göre sıralayacaktır.
• İşlemci kullanımına göre sıralama yapmak için ‘P’(büyük P) kullanılabilir.
121
6.5. Süreç ve Görev Yönetimi
• Arkaplanda süreç çalıştırma
• Sunucu süreçleri dışındaki diğer süreçler çoğunlukla ön planda çalışmaktadırlar.
• Sürecin ön planda çalıştırıldığı durumlarda, sürecin çalıştırıldığı terminalden süreç
sonlanana kadar başka komut gönderilemez.
• Çalıştırılan süreç arka plana gönderildiği takdirde kullanıcı tekrar komut gönderebilir.
• Bir komutu veya çalıştırılan bir programı arka plana atmanın iki yolu vardır:
• Sürecin çalışması esnasında Ctrl-z tuşları ile çalışmayı kesip bg komutunu
çalıştırmak
• Çalıştırılacak komuttan sonra bir boşluk bırakarak & sembolünü kullanmak
• Arka plana gönderilen bir süreci tekrar ön plana çıkarmak için fg komutu kullanılabilir.
•
122
6.5. Süreç ve Görev Yönetimi
• Sistemde bir kaç çalışma aynı zamanda durdurulabilir, kesilmiş
çalışmaların listesini almak için jobs komutu kullanılabilir.
123
6.5. Süreç ve Görev Yönetimi
• Süreçlere Sinyal Gönderme
• Süreçlere sinyal göndermek için “kill” komutu kullanılır.
• Sinyaller süreçle belli işleri yapmalarını bildirirler.
• Bazı sinyaller için varsayılan davranışlar bulunmaktadır.
• Varsayılan davranışı belli olmayan sinyaller için sinyal işleyici alt programlar ile sinyal
alındığında yapılması gereken işlemler belirlenebilir.
• Ayrıca SIGKILL (Öl sinyali) dışındaki tüm temel sinyaller, süreç tarafından yakalanabilir ve
işlenebilirler.
• Eğer sürece gönderilecek sinyal parametre olarak gönderilmez ise varsayılan olarak
TERM(Programdan Çık) sinyali sürece gönderilir.
• Kill komutunun temel kullanımı:
• kill [-sinyal] PID
124
6.5. Süreç ve Görev Yönetimi
• Sinyal parametresi istendiği takdirde sintal ismi veya sinyal numarası olabilmektedir.
• Kill komutu ile en çok kullanılan sinyaller aşağıdaki gibidir:
• 1 : SIGHUP – Bazı servisler tarafından konfigürasyon dosyalarını yeniden
okunması için kullanılmaktadır.
• 9 : SIGKILL – Bir süreci tamamen öldürmek için kullanılır. Yakalanamayan bir
sinyal olduğu için sinyali alan süreç ölmek durumundadır.
• 15 : SIGTERM – Bu sinyal süreci öldürmek için kullanılır, ancak bazı durumlarda
süreci öldürmekte başarılı olamayabilir, bu durumda SIGKILLkullanılır.
•
125
6.6. Görev Tanımlama
• Sistemde belli bir zamanda çalışacak görevler tanımlamak mümkündür.
• Görev tanım işlemi için “crontab” komutu kullanılır.
• Her kullanıcı yetkileri ölçüsünde çalışacak görevler tanımlayabilir.
• Görev tanımlamak için;
• crontab -e
• komutu verilir, “vi” editorü açılır ve görevin zamanı, çalıştırılacak komut girilir.
• Görevin zamanı girilirken 5 farklı zaman parametresi bulunmaktadır.
•
126
6.6. Görev Tanımlama
• Örneğin; 15 dakikada bir çalışarak process listesini bir dosyaya yazan görev
tanımlamak için
• */15 * * * * ps > /tmp/process_list
• veya
• 0,15,30,45 * * * * ps > /tmp/process_list
• Her ayın 1’inde, saat 15:00’te disk kullanım durumunu belirtilen
mail@address.com adresine gönderen görevi tanımlamak için
• 0 15 1 * * df | mail mail@address.com
• şeklinde tanım yapılır.
• crontab daki görev tanımlamalarını listelemek için
• crontab -l komutu kullanılabilir.
127
6.7. Sudo
• Sistem yönetimini alt sistem yöneticilerine dağıtmak iş yükünü azaltacaktır fakat
güvenliğin de ihmal edilmemesi gerekir.
• Sadece kullanıcı eklemesi istenen bir sistem yöneticisine root şifresinin verilmesi
gereksizdir ve güvenlik riski oluşturur.
• İstenen sistem komutlarının kullanım yetkisini belli kullanıcılara verebilmek için
sudo sistemi kullanılır.
• Sudo ile sistem komutlarını kullanım yetkisini kullanıcılara verebilmek için visudo
adlı komut kullanılır.
• Yetkiler /etc/sudoers dosyasında saklanır ve visudo komutu bu dosya üzerinde işlem
yapılmasını sağlar.
• Yetki tanımının aşağıdaki şekilde yapılması gerekir.
• kullanıcı_adı ALL=komut
128
6.7. Sudo
• Örneğin ali kullanıcısına kullanıcı ekleme yetkisi vermek için visudo komutunu verdikten sonra
• kurtulus ALL=/usr/sbin/useradd
• ali kullanıcısı useradd komutunu kullanırken başına aşağıdaki gibi sudo komutunu eklemesi
gerekir.
• sudo /usr/sbin/useradd
• Birden fazla komutun kullanım yetkisini vermek için komutların virgül ile birbirinden ayrılması
gerekir.
• kurtulus ALL=/usr/sbin/useradd,/usr/sbin/userdel
•
129
6.8. Uygulama
1.Her 6 ayda bir çalışacak görev tanımı belirleyiniz.
2.Her cuma saat 17:00 da home dizinini /yedek dizini içerisine
arşivlenmesi için görev tanımlayınız.
3.milsafe kullanıcısı oluşturunuz ve kullanıcı ekleme, silme,
değiştirme yetkisi veriniz.
4.milsafe kullanıcısı ile security kullanıcısı oluşturunuz.
5.security kullanıcısının root yetkisine sahip olmasına izin veriniz.
130
BÖLÜM - 7
Dosyalama Sistemi Yönetimi
131
7. Dosyalama Sistemi Yönetimi
• Linux’ta tüm dosya ve dizinler dosya sistemlerinde tutulmaktadır.
• Linux birden fazla dosya sistemini desteklemektedir.
• Desteklenen temel dosya sistemleri aşağıdaki gibidir :
•
Dosya Sistemi Açıklama Destek
Ext3 / ext4 Linux’un kendi dosya sistemi
Msdos
Dos İşletim Sistemi tarafından kullanılan dosya
sistemi
Vfat (Gelişmiş FAT)
Windows 95’ten itibaren kullanılmaya başlayan
FAT32 dosya sistemi
iso9660 CDROM dosya sistemi Salt Okunabilir.
Ntfs
Windows NT ve 2000 tarafından kullanılan
dosya sistemi
Okuma/yazma desteği var.
Ufs
BSD işletim sistemleri tarafından kullanılan dosya
sistemi
NFS Ağ dosyalama sistemi
CIFS Microsoft ağ dosyalama sistemi
XFS
Linux platformu altında kullanılan ext-olmayan dosya
sistemlerinin başını çekiyor.
Centos 7 varsayılan dosya sistemi
132
7.1. Dosya Sistemlerinin Bağlanması - Koparılması
• Linux işletim sistemi farklı disk bölümlerinde bulunan farklı dosya sistemlerini tek
yapı altında birleştiren bir dizin hiyerarşisi yapısında sahiptir.
• Bu yönüyle Windows işletim sistemlerinden ayrılmaktadır.
• Windows işletim sistemleri farklı disk bölümlerinin hepsini ayrı birer disk olarak
kullanmaktadır.
• Linux işletim sisteminde ise tüm disk bölümleri bir ağaç yapısı altında toplanmıştır.
• Disk bölümlerinde bulunan dosya sistemlerinin linux dizin hiyerarşisine dahil
edilmesi için “mount” komutu kullanılır.
• mount komutun temel kullanımı :
• mount [seçenekler] [bağlanacak_dosya_sisteminin_yeri] [bağlanılacak_dizin]
133
7.1. Dosya Sistemlerinin Bağlanması - Koparılması
• Mount komutuna hiç bir parametre verilmediğinde, sisteme daha önceden bağlanmış olan dosya sistemleri
görüntülenir.
• Mount komutuna verilebilecek parametreler aşağıdaki gibidir :
• -a : /etc/fstab dosyasında tanımlanan tüm dosya sistemlerinin bağlanılmasını sağlayan parametredir.
• -t dosya_sistem_tipi : Bu parametre ile bağlanacak dosya sisteminin tipi belirtilmektedir. Bu parametre
verilmediği takdirde mount dosya sistemini kendisi belirlemeye çalışacaktır.
• -L label : Bu parametre sayesinde belirtilen etikete sahip dosya sistemi bağlanır. Bu parametrenin
kullanılabilmesi için /proc/partitions sanal dosyasında gerekli bilgilerin bulunması gerekmektedir.
• -o seçenek : Bu parametre ile yapılacak bağlama işlemi ile ilgili seçenekler seçilmektedir.
• dev : Dosya sisteminde aygıt dosyalarının kullanımına izin verir.
• exec : Dosya sisteminde bulununa çalıştırılabilir dosyaların çalışmasına izin verir.
• remount : Daha önceden bağlanmış bir sistemin tekrar bağlanmasını sağlar. Kullanım sebebi
bağlanama seçeneklerini değiştirmektir.
• ro : Dosya sistemi salt-okunur olarak bağlanır.
• rw : Dosya sistemi okuma/yazma modunda bağlanır.
• suid : Kullanıcı veya grup bitleri set edilmiş programların , belirtilen kullanıcı veya grup izinleri ile
çalışmasına izin verir.
134
7.1. Dosya Sistemlerinin Bağlanması - Koparılması
• Örnek: CDROM’u /mnt/cdrom dizinine bağlamak için :
• mount -t iso9660 /dev/cdrom /mnt/cdrom
• Örnek: hdb1 disk bölmünde bulunan FAT32 dosya sistemini /win dizinine
bağlamak için :
• mount -t vfat /dev/hdb1 /win
• Mount edilmiş disklerin kullanım durumlarını görmek için “df -h” komutu
kullanılır.
•
135
7.1. Dosya Sistemlerinin Bağlanması - Koparılması
• Dosya Sistemlerinin Bağının Koparılması
• “mount” komutu ile dizin hiyerarşisine dahil edilmiş dosya sistemleri “umount” komutu ile
devre dışı bırakılabilir.
• umount komutu kullanımı:
• umount [seçenekler] [aygıt | dizin]
• umount komutuna verilebilecek parametreler aşağıdaki gibidir :
• -a : mtab dosyasında tanımlanmış olan tüm dosya sistemlerini devreden çıkarır.
• -t dosya_sistem_tipi : Devreden çıkarılacak dosya sisteminin tipini belirtmek için
kullanılır.
• Örnek : CDROM’u /mnt/cdrom dizininden ayırmak için:
• umount /dev/cdrom
• umount /mnt/cdrom
136
7.2. Partition İşlemleri
• Yeni bir disk alındığında
veya mevcut diskin partition
yapısı değiştirileceğinde
fdisk veya parted adlı
programlar kullanılabilir.
• Her iki programın sonuna
disk aygıt adı yazılarak
kullanılır.
•
137
7.2. Partition İşlemleri
• Sisteme 2GB yeni disk
eklediğinde “fdisk -l” ile
durumunu kontrol
ediyoruz.
• Diski bağlı olmadığı
görülmektedir.
138
7.2. Partition İşlemleri
• Mevcut partition listesini almak için p
• partition oluşturmak için n
• partition silmek için d
• partition tipini değiştirmek için t
• İşlem bittikten sonra w ile diske
yazılarak çıkılır.
• İşlem diske yazılmadan geçerli
olmayacaktır.
• İşlem diske yazılırken fdisk partition
tablosunu yeniden okuyarak işletim
sisteminin yeni partition yapısından
haberdar olmasını sağlar.
• Eğer işlem yapılan disk kullanımda
ise hata mesajı alınacaktır.
139
7.2. Partition İşlemleri
• partition oluşturuyoruz.
• Partition oluşturduktan
sonra fdisk -l komutu ile
kontrol ediyoruz.
140
7.2. Partition İşlemleri
• Diskimizi istediğimiz dosya sistemi
ile formatlıyoruz.
• Hazırladığımız diskimizi /yedekler
dizinine mount ediyoruz ve “df -
h” ile durumu kontrol ediyoruz.
• sistem yeniden başlatıldığında
manuel tekrar mount edilmesi
gerekir.
• Bunu otomatikleştirmek için “/
etc/fstab” dosyasına
yazılmalıdır.
• /dev/sdb1 /yedekler xfs defaults 0 0
141
7.3. /etc/fstab Dosyası
• /etc/fstab dosyası sistemde bulunan dosya sistemleri hakkında bilgilerin bulunduğu dosyadır.
• Bu dosya sayesinde sistemin açılışında kullanılacak dosya sistemleri belirtilen dizinlere bağlanmaktadırlar.
• fstab dosyası aşağıdaki yapıya sahiptir :
• Birinci alan bağlanacak olan blok cihaz dosyasını veya uzak sistemi belirtir. Hangi cihazın kullanılacağı
yerine bağlanılacak sistemin sahip olması gereken etikette verilebilir.
• İkinci alan bağlantı noktası olan dizinini belirtir.
• Üçüncü alan bağlanılacak dosya sisteminin tipini belirtir.
• Dördüncü alan bağlantı için kullanılacak seçenekleri belirtir. (mount –o seçenekleri)
• Beşinci alan dump programı tarafından kullanılmaktadır. Eğer bu alan 0 ise dump programı dosya
sisteminin içeriğinin dökülmesine gerek olmadığını, 1 ise gerek olduğunu düşünecektir. Dump programı
yedek almak için kullanılabilmektedir.
• Altıncı alan fsck programı tarafından kullanılmaktadır. Bu alan sayesinde fsck programı hangi sıra ile
dosya sistemlerini kontrol edeceğini belirlemektedir.
• Bu alanın 0 olması durumunda fsck programı sistemin açılması sırasında diski kontrol etmez.
142
7.4. Yeni Dosya Sistemi Oluşturma
• Yeni dosya sistemi oluşturmak için “mkfs” komutu kullanılır.
• Bu komut temelde oluşturulacak dosya sisteminin tipine göre uygun komutu çağıran bir
arayüzdür.
• “mkfs” komutu aşağıdaki yapıya sahiptir :
• mkfs [seçenekler] dosya_sistemi [blok_sayısı]
• Dosya sistemi olarak belirtilen parametre bir aygıt adıdır.
• Mkfs ile kullanılabilecek parametreler aşağıdaki gibidir :
• -t dosya_sistemi_tipi : Oluşturulacak dosya sisteminin tipini belirtir. Bu parametre
verilmediği takdirde varsayılan dosya sistemi kullanılır.
• -c : Dosya sistemini oluşturmadan önce disk üzerindeki bozuk blokların tespit edilmesini
sağlar.
• -l dosya_ismi : Bozuk blokların listesini dosyadan okumak için kullanılabilir. Bozuk blokları
bulup bir dosyaya kaydetmek için badblocks proramı kullanılabilir.
143
7.4. Yeni Dosya Sistemi Oluşturma
• Oluşturulacak dosyalama sistemi swap için kullanılacaksa “mkswap” komutu
kullanılır.
• mkswap aygit_adi
•
144
7.5. Dosya Sisteminin Kontrol Edilmesi
• Dosya sisteminde oluşabilecek hataların denetlenmesi ve bulunan hataların düzeltilmesi işlevini Linux işletim
sisteminde fsck program yapmaktadır.
• Sistemin açılmasında kullanılan scriptler sayesinde, her açılışta disklerde sorun olup olmadığı araştırılmakta
varsa sorunların giderilmesi fsck programı ile sağlanabilir.
• Fsck komutunun temel kullanımı:
• fsck [seçenekler] dosya_sistemi
• Fsck ile kullanılabilecek parametreler aşağıdaki gibidir :
• -t dosya_sistemi_tipi : Bu parametre ile kontrol edilecek olan dosya sisteminin tipi belirtilebilir.
• -A : fstab dosyasında belirtilen tüm dosya sistemlerinin kontrol edilmesini sağlar.
• -C : Yapılan işlem durumunu %olarak gösterilmesini sağlar.
• -N : Programı çalıştırmak yerine sadece yapılacak işlemleri gösterir.
• -a : Bulunan hataların kullanıcıdan onay alınmadan giderilmesini sağlar.
• -r : Tüm işlemler için kullanıcıdan onay alınmasını sağlar.
• -n : Bulunan hataların kullanıcıya sorulmadan yok sayılmasını sağlar.
145
7.6. Uygulama
1.Sisteme 2GB boyutunda yeni disk ekleyiniz. Bu diski yeni bir
partition oluşturunuz. Bu partition ext4 dosya sistemi olarak /
yedekler dizinine mount ediniz.
2./yedekler dizinini sistem kapatılıp açıldığında tekrardan mount
işlemine gerek kalmayacak şekilde yapılandırınız.
3.2GB partition’ı /yedekler dizininden unmount yapınız
4.Oluşturmuş olduğunuz 2GB partition siliniz.
5.Sisteminizi 3GB boyutunda büyütecek şekilde var olan diske
ekleyiniz.
146
BÖLÜM - 8
Bash Kabuğu Kullanımı
147
8. Bash Kabuğu Kullanımı
• Kabuklar kullanıcıların sistem ile etkileşimini sağlayan programlardır.
• Bu programlar sayesinde kullanıcı istediği komutları çalıştırabilir ve sonuçları
görebilir.
• Linux sistemler ile birlikte en çok bash kabuğu kullanılmaktadır.
• Sistemde bulunan kabuklar /etc/shells dosyasında bulunur.
• Bu dosyada tanımlanmış olan kabuklar sistemde geçerli olan kabuklardır.
• Bu dosyada tanımlı olmayan kabuklarda sistemde bulunabilir
•
148
8. Bash Kabuğu Kullanımı
• Linux sistemlerde çoğunlukla bulunan kabuklar:
• Bash (Bourne again shell) : Unix türevlerinde kullanılan temel kabuklardan olan sh ile
uyumlu ve bir çok ek özelliği bulunan bir kabuktur.
• Csh (C Shell) : Komut yapısı itibari ile C’ye benzer bir yapı kullanan bir kabuktur.
• Tcsh : Csh kabuğunun gelişmiş halidir. Dosya ve komut tamamla desteğini içerir.
• Linux işletim sisteminde çalıştırılan her komut 3 dosya işaretçisine sahiptir:
• Standart Giriş (stdin) : Çalışan programın, dosya gibi ek kaynaklar açmadan veri okumak
için kullanacağı kaynağı belirtir. Varsayılan olarak veri girişi klavyeden okuma şeklinde
gerçekleştirir.
• Standart Çıkış (stdout) : Çalışan programın çıktılarını göndereceği kaynağı belirtir.
Varsayılan kaynak terminal penceresidir.
• Standart Hata (stderr) : Çalışan programın hata çıktılarını göndereceği kaynağı belirtir.
Varsayılan kaynak terminal penceresidir.
149
8. Bash Kabuğu Kullanımı
• Her dosya işaretçisi bir numara ile belirtilir.
• Standart giriş 0, standart çıkış 1, standart hata 2 değerlerine sahiptir.
• Komut çalıştığında veri girişinin belli bir dosyadan yapılması istendiğinde “<“ karakteri ile
bir dosya standart girişe yönlendirilebilir.
• komut < dosya
• Standart çıkış ve hatanın yönlendirilme işlemi temel olarak “>” karakteri ile yapılır.
Yönlendirme için temel kullanım:
• komut [n]> dosya
• n sayısı hangi dosya işaretçisinin yönlendirileceğini belirtir.
• Bu sayı verilmediğinde veya 1 olarak verildiğinde standart çıkış için yönlendirme
yapılır.
• Eğer n sayısı 2 olarak verilirse standart hata için yönlendirme yapılır.
150
8. Bash Kabuğu Kullanımı
• “>” operatörü ile yapılan yönlendirilmede hedef dosya yok ise oluşturulur,
varsa içeriği sıfırlanır.
• İçeriğin sıfırlanması yerine var olan dosyanın sonuna ekleme yapmak için “>>”
operatörü kullanılmalıdır.
• Bu durumda hedef dosya yok ise oluşturulacak, var ise yapılacak eklemeler
dosyanın sonuna yapılacaktır.
• Standart hata ile standart çıkışın aynı dosyaya yönlendirilmesi durumunda. Bu
yönlendirme 3 farklı şekilde gerçekleştirilebilir:
• komut >& dosya
• komut &> dosya
• komut > dosya 2>&1
151
8. Bash Kabuğu Kullanımı
• Login İşlemi
• Sisteme login olunduğunda bash ilk
önce /etc/profile dosyasını çalıştırır.
• Bu dosyadan sonra kullanıcının ev
dizininde gizli (hidden) dosya halinde
bulunan ~/.bash_profile, ~/.bashrc
(dolayısı ile /etc/bashrc) dosyaları
okuma izni varsa bu sıra ile çalıştırır.
• Ev dizinlerindeki başlangıç dosyaları
kullanıcı hesabı ile birlikte
oluşturulur.
152
8. Bash Kabuğu Kullanımı
• Logout İşlemi
• Sistemden logout olunurken
~/.bash_logout dosyası
çalıştırılır.
• Sistemden çıkarken komut
çalıştırmak isterseniz bu
dosyasının içerisine
yazılabilir.
153
8. Bash kabuğu Kullanımı
• Yazılan komutların tamamını yazmadan otomatik tamamlatmak için komutun ilk birkaç harfi yazılıp tab
tuşuna basılır.
• Yazılan harfler ile başlayan birden fazla komut varsa tüm komutları görmek için iki defa tab tuşuna
basılmalıdır. Bu durumda tüm komutlar listelenecektir.
• Ekranı temizlemek için “clear” komutu çalıştırılabileceği gibi ctrl+l tuşu da kullanılabilir.
• Komut satırında satır başına gitmek için ctrl+a, satır sonuna gitmek için ctrl+e tuşları kullanılabilir.
• Kelime silmek için ctrl+w tuşu kullanılabilir.
• Yazılan komutların geçmişi saklanmaktadır.
• history komutu çalıştırılarak geçmiş görüntülenebilir.
• /etc/profile dosyasındaki HISTSIZE değişkeni ile ayarlanmış olduğundan son 1000 komut
saklanmaktadır.
• Saklanan komutlar ~/.bash_history dosyasında tutulmaktadır.
• Komut geçmişinde arama yapabilmek için ctrl+r tuşlarına basıldıktan sonra istenen komut yazılır ve
geçmişte arama yapılabilir. ctrl+r tuşlarına tekrar tekrar basılarak görüntüleme yapılabilir.
154
- Teşekkürler -
www.milsafe.com
155

More Related Content

What's hot

Sizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat UlugaySizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat UlugayFuat Ulugay, CISSP
 
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı AnaliziKurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı AnaliziBGA Cyber Security
 
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiBeyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiKurtuluş Karasu
 
Bilişim Suçlarında IP Adres Analizi
Bilişim Suçlarında IP Adres AnaliziBilişim Suçlarında IP Adres Analizi
Bilişim Suçlarında IP Adres AnaliziBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit AşamasıBeyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit AşamasıPRISMA CSI
 
Linux Komut Satırı
Linux Komut Satırı Linux Komut Satırı
Linux Komut Satırı Kemal Demirez
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıBGA Cyber Security
 
Güvenli Veri Silme ve Dosya Kurtarma
Güvenli Veri Silme ve Dosya KurtarmaGüvenli Veri Silme ve Dosya Kurtarma
Güvenli Veri Silme ve Dosya KurtarmaBGA Cyber Security
 
Temel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
Temel Kavramlar, DoS/DDoS Saldırıları ve ÇeşitleriTemel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
Temel Kavramlar, DoS/DDoS Saldırıları ve ÇeşitleriBGA Cyber Security
 
Hacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem AnaliziHacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem AnaliziBGA Cyber Security
 
Sızma Testine Giriş - Fuat Ulugay
Sızma Testine Giriş  - Fuat UlugaySızma Testine Giriş  - Fuat Ulugay
Sızma Testine Giriş - Fuat UlugayFuat Ulugay, CISSP
 
Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1BGA Cyber Security
 
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – TsharkTCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – TsharkBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9BGA Cyber Security
 
Saldırı Tipleri ve Log Yönetimi
Saldırı Tipleri ve Log YönetimiSaldırı Tipleri ve Log Yönetimi
Saldırı Tipleri ve Log YönetimiOğuzcan Pamuk
 
Hacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziHacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziBGA Cyber Security
 

What's hot (20)

Sizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat UlugaySizma testine giris - Fuat Ulugay
Sizma testine giris - Fuat Ulugay
 
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı AnaliziKurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
 
BGA Pentest Hizmeti
BGA Pentest HizmetiBGA Pentest Hizmeti
BGA Pentest Hizmeti
 
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimiBeyaz Şapkalı Hacker başlangıç noktası eğitimi
Beyaz Şapkalı Hacker başlangıç noktası eğitimi
 
Bilişim Suçlarında IP Adres Analizi
Bilişim Suçlarında IP Adres AnaliziBilişim Suçlarında IP Adres Analizi
Bilişim Suçlarında IP Adres Analizi
 
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit AşamasıBeyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
 
Linux Komut Satırı
Linux Komut Satırı Linux Komut Satırı
Linux Komut Satırı
 
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların KullanımıPenetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
Penetrasyon Testlerinde Açık Kod Yazılımların Kullanımı
 
SIEM Başarıya Giden Yol
SIEM Başarıya Giden YolSIEM Başarıya Giden Yol
SIEM Başarıya Giden Yol
 
Güvenli Veri Silme ve Dosya Kurtarma
Güvenli Veri Silme ve Dosya KurtarmaGüvenli Veri Silme ve Dosya Kurtarma
Güvenli Veri Silme ve Dosya Kurtarma
 
Temel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
Temel Kavramlar, DoS/DDoS Saldırıları ve ÇeşitleriTemel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
Temel Kavramlar, DoS/DDoS Saldırıları ve Çeşitleri
 
Hacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem AnaliziHacklenmiş Windows Sistem Analizi
Hacklenmiş Windows Sistem Analizi
 
Sızma Testine Giriş - Fuat Ulugay
Sızma Testine Giriş  - Fuat UlugaySızma Testine Giriş  - Fuat Ulugay
Sızma Testine Giriş - Fuat Ulugay
 
Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1Log Yönetimi ve Saldırı Analizi Eğitimi -1
Log Yönetimi ve Saldırı Analizi Eğitimi -1
 
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – TsharkTCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
TCP/IP Ağlarda İleri Seviye Paket Analizi – Tshark
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 7, 8, 9
 
Saldırı Tipleri ve Log Yönetimi
Saldırı Tipleri ve Log YönetimiSaldırı Tipleri ve Log Yönetimi
Saldırı Tipleri ve Log Yönetimi
 
Kablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli AnalizKablosuz Ağlarda Adli Analiz
Kablosuz Ağlarda Adli Analiz
 
Hacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu AnaliziHacklenmiş Web Sunucu Analizi
Hacklenmiş Web Sunucu Analizi
 
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale EgitimiBTRisk - Siber Olay Tespit ve Mudahale Egitimi
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
 

Similar to Linux Sistem Yönetimi

Siber Güvenlik 3.hafta
Siber Güvenlik 3.haftaSiber Güvenlik 3.hafta
Siber Güvenlik 3.haftaOnur Er
 
Mehmetözcan 20102846
Mehmetözcan 20102846Mehmetözcan 20102846
Mehmetözcan 20102846Mehmet Özcan
 
Linux İşletim Sistemi
Linux İşletim SistemiLinux İşletim Sistemi
Linux İşletim SistemiMurat KARA
 
Unixlinux (1)
Unixlinux (1)Unixlinux (1)
Unixlinux (1)sagsaglim
 
Siber Güvenlik ve Etik Hacking Sunu - 3
Siber Güvenlik ve Etik Hacking Sunu - 3Siber Güvenlik ve Etik Hacking Sunu - 3
Siber Güvenlik ve Etik Hacking Sunu - 3Murat KARA
 
Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018Murat KARA
 
Pwnlydays - Linux 101
Pwnlydays - Linux 101Pwnlydays - Linux 101
Pwnlydays - Linux 101canyoupwn.me
 
Linux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıLinux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıSDU CYBERLAB
 
52657308 unix-linux
52657308 unix-linux52657308 unix-linux
52657308 unix-linuxAhmet Sag
 
Işletim sistemleri
Işletim sistemleriIşletim sistemleri
Işletim sistemlerisnakeyes31
 
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAğ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAlonelaz
 
Windows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliWindows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliCaner Öztürkten
 
Linux Türevi İşletim Sistemlerinde Paket Hazırlama.
Linux Türevi İşletim Sistemlerinde Paket Hazırlama.Linux Türevi İşletim Sistemlerinde Paket Hazırlama.
Linux Türevi İşletim Sistemlerinde Paket Hazırlama.İbrahim UÇAR
 

Similar to Linux Sistem Yönetimi (20)

Siber Güvenlik 3.hafta
Siber Güvenlik 3.haftaSiber Güvenlik 3.hafta
Siber Güvenlik 3.hafta
 
Mehmetözcan 20102846
Mehmetözcan 20102846Mehmetözcan 20102846
Mehmetözcan 20102846
 
Li̇nux-101
Li̇nux-101Li̇nux-101
Li̇nux-101
 
Temel linux
Temel linuxTemel linux
Temel linux
 
Linux İşletim Sistemi
Linux İşletim SistemiLinux İşletim Sistemi
Linux İşletim Sistemi
 
Pfe101 unite01
Pfe101 unite01Pfe101 unite01
Pfe101 unite01
 
Unixlinux (1)
Unixlinux (1)Unixlinux (1)
Unixlinux (1)
 
Siber Güvenlik ve Etik Hacking Sunu - 3
Siber Güvenlik ve Etik Hacking Sunu - 3Siber Güvenlik ve Etik Hacking Sunu - 3
Siber Güvenlik ve Etik Hacking Sunu - 3
 
Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018Linux İşletim Sistemi - Güncelleme-2018
Linux İşletim Sistemi - Güncelleme-2018
 
Unix Denetim Dokümanı
Unix Denetim DokümanıUnix Denetim Dokümanı
Unix Denetim Dokümanı
 
Pwnlydays - Linux 101
Pwnlydays - Linux 101Pwnlydays - Linux 101
Pwnlydays - Linux 101
 
Siber3.pdf
Siber3.pdfSiber3.pdf
Siber3.pdf
 
Linux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin YapısıLinux101 Temel Komutlar-Dizin Yapısı
Linux101 Temel Komutlar-Dizin Yapısı
 
52657308 unix-linux
52657308 unix-linux52657308 unix-linux
52657308 unix-linux
 
Işletim sistemleri
Işletim sistemleriIşletim sistemleri
Işletim sistemleri
 
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örneklerAğ i̇şleti̇m si̇stemleri̇ne örnekler
Ağ i̇şleti̇m si̇stemleri̇ne örnekler
 
Windows 8 Ögretim Materyali
Windows 8 Ögretim MateryaliWindows 8 Ögretim Materyali
Windows 8 Ögretim Materyali
 
Linux101
Linux101Linux101
Linux101
 
Ceit 313
Ceit 313Ceit 313
Ceit 313
 
Linux Türevi İşletim Sistemlerinde Paket Hazırlama.
Linux Türevi İşletim Sistemlerinde Paket Hazırlama.Linux Türevi İşletim Sistemlerinde Paket Hazırlama.
Linux Türevi İşletim Sistemlerinde Paket Hazırlama.
 

More from Kurtuluş Karasu

Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)Kurtuluş Karasu
 
WordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve ÇözümüWordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve ÇözümüKurtuluş Karasu
 
USB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ AdaptörüUSB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ AdaptörüKurtuluş Karasu
 
Siber tehdit avcılığı 1
Siber tehdit avcılığı 1Siber tehdit avcılığı 1
Siber tehdit avcılığı 1Kurtuluş Karasu
 
Suricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığıSuricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığıKurtuluş Karasu
 

More from Kurtuluş Karasu (10)

Pardus Kurulum Dokümanı
Pardus Kurulum DokümanıPardus Kurulum Dokümanı
Pardus Kurulum Dokümanı
 
Ubuntu Kurulum Dokümanı
Ubuntu Kurulum DokümanıUbuntu Kurulum Dokümanı
Ubuntu Kurulum Dokümanı
 
Centos kurulumu
Centos kurulumuCentos kurulumu
Centos kurulumu
 
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
Ms Windows Privilege Escalation Zafiyeti Testi (cve 2017-0213)
 
WordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve ÇözümüWordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
WordPress Sitelerde xmlrpc.php Zafiyeti ve Çözümü
 
USB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ AdaptörüUSB Kablosuz Ağ Adaptörü
USB Kablosuz Ağ Adaptörü
 
Siber tehdit avcılığı 1
Siber tehdit avcılığı 1Siber tehdit avcılığı 1
Siber tehdit avcılığı 1
 
Suricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığıSuricata ile siber tehdit avcılığı
Suricata ile siber tehdit avcılığı
 
linux-enterprise-cluster
linux-enterprise-clusterlinux-enterprise-cluster
linux-enterprise-cluster
 
Ossec kurulumu
Ossec kurulumuOssec kurulumu
Ossec kurulumu
 

Linux Sistem Yönetimi

  • 2. İçindekiler 1. Linux Nedir? 2. Dizin Yapısı ve Temel Komutlar 3. Kullanıcı Yönetimi 4. Paket Yönetimi 5. Ağ Konfigürasyonu ve Programlar 6. Sistemin Açılışı ve Süreç Yönetimi 7. Dosyalama Sistemi Yönetimi 8. Bash Kabuğu Kullanımı 2
  • 3. BÖLÜM - 1 Linux Nedir? 3
  • 4. 1. Linux Nedir? • 1960'larda AT&T'nin Bell Laboratuarları, MIT ve General Electric'in ortaklaşa yürüttükleri bir projede “Multics” isimli bir işletim sisteminin patentini aldılar. • Bell Labaratuarı bu projeden çekilene kadar iki çalışanı, Dennis Ritchie ve Ken Thompson, bu proje de çalıştı. • Bell Laboratuarları bu projeden çekildikten sonra bu iki kişi yeni bir projede bir işletim sistemi ortaya çıkardılar. • İşletim sistemine “Multics” adından esinlenerek “Unics” ismi takıldıysa da daha sonraları bu isim UNIX olarak değiştirildi. • UNIX'in en temel özelliği Dennis Ritchie tarafından yaratılan Cdili ile oluşturulmasıydı. • İşletim sistemleri o güne kadar makine dili ile yazılmaktaydı. • UNIX işletim sistemi duyulmaya başladıktan sonra başta üniversiteler olmak üzere bir çok kişi ve kurumun ilgisini çekti. 4
  • 5. 1. Linux Nedir? • Özellikle üniversitelerin bilgisayar bilimleri bölümlerinde okuyan ve çalışan kişilerin desteği ile birlikte UNIX kısa zamanda büyük bir ilerleme kaydetti. Bunun sonucu olarakta en önemli bilgisayar işletim sistemi ünvanını eline geçirdi. • 1980'lerin başında AT&T UNIX işletim sisteminden para kazanma yoluna gitti ve işletim sistemini özel lisanslar ile pazarlamaya başladı. • UNIX'in ortaya çıktığı günden itibaren işletim sisteminin gelişmesine yardımda bulunan bir çok kişi bu karara karşı çıktı. Bunun üzerine amacı UNIX benzeri ve parasız dağıtılabilen bir işletim sistemi ortaya çıkarmak olan GNU projesi Richard Stallman tarafından başlatıldı. • GNU'yu desteklemesi için 1984 yılında Stallman ve arkadaşları “Free Software Foundation (FSF)” projesini yarattılar. • FSF'te “free” ile anlatılmak istenen bedava olan yazılımdan çok özgürce dağıtılan, kopyalanıp üzerinde gerekli değişiklik yapılabilen yazılım manasını taşımaktaydı. • Bu özgürlükler için temel olarak gereken şey yazılımın koduna erişimdi. • Bu yüzden bu akım aynı zamanda “Kaynak Kodu Açık Yazılım – Open Source Software (OSS)” olarak da anılır. Linux günümüzde bulunan en büyük kaynak kodu açık yazılımdır. 5
  • 6. Linux'un ortaya çıkışı • AT&T UNIX işletim sistemini para ile lisanslayana kadar, UNIX üniversitelerde bilgisayar bilimi öğrencilerine işletim sistemlerini öğretmek için kullanılan bir araçtı. • AT&T'nin yaptığı değişiklik sonrası üniversitelerin yeni bir işletim sistemine ihtiyacı ortaya çıktı. Bunun üzerine Andrew Tannenbaum UNIX benzeri bir işletim sistemi olan MINIX işletim sistemini ortaya çıkardı. • 1990 yılında Finli bilgisayar bilimi öğrencisi Linus Torvalds Intel mimarisindeki bilgisayarlar için hafıza yönetimi yapan bir yazılım üzerinde çalışmaya başladı. • Bir zaman sonra bu projesinin genişletilmiş halinin UNIX çekirdeği gibi çalışabileceğini farketti. • 1991 yılında comp.os.minix haber grubuna üzerinde çalıştığı projeyi bildiren ve geliştirme için öneri isteyen bir mesaj gönderdi. • Torvalds bu yeni işletim sistemine Linus'un MINIX'i olarak tanımladığı LINUX adını verdi. • Linux'un bir önemli yanı ise GNU projesinin eksik olan bir parçasını doldurmasıydı. 6
  • 7. Linux'un ortaya çıkışı • GNU projesi çerçevesinde oluşturulacak olan Unix benzeri işletim sisteminin çoğu parçaları bitmişti. • Yapılmayan en önemli parça işletim sisteminin çekirdeği idi. Bu eksikte Linux tarafından kapatılmış oldu. • 1994 yılında Linux 1.0 serisi kernel GPL lisansı altında yayınlandı ve Linux 100000 kullanıcıya erişmişti. • Günümüzde Linux'un milyonlar ile belirtilen bir kullanıcı kitlesi bulunmakta. • Son kullanıcı pazarında da gün geçtikce güçlenmesine rağmen Linux günümüzde çoğunlukla sunucularda kullanılan bir işletim sistemidir. 7
  • 8. 1.1. Linux Dağıtımları • Linux, işletim sisteminin çekirdeğidir. • Sistem açılırken belleğe yüklenir ve süreç, bellek ve aygıt yönetimi şeklinde özetlenebilecek 3 ana işlevi yerine getirir. • İşletim sistemini bir bütün olarak düşündüğümüzde linux sistem yönetimi, servisler, temel komutlar gibi parçaları içermez. • Eksik bu parçalar diğer açık kaynak kodlu projeler ile tamamlanır. Bunun sonucunda temelde aynı işi yapan fakat ufak farkları olan farklı linux işletim sistemleri ortaya çıkmıştır. • Red Hat, Fedora, CentOS, Novell Suse, Pardus, Gentoo, Debian, Ubuntu en çok kullanılan linux dağıtımlarındandır. • Fedora, Red Hat tarafından desteklenen bir projedir. • Red Hat’e eklenecek yeni özellikler Fedora ile test edildikten sonra stabil duruma getirilen özellikler Red Hat’e eklenir. • CentOS, Red Hat’in yayınladığı kaynak kodların derlenmesiyle oluşturulmuş bir işletim sistemidir. 8
  • 9. 1.3. Uygulama • CentOS Kurulumu • Pardus Kurulumu • Ubuntu Kurulumu 9
  • 10. BÖLÜM - 2 Dizin Yapısı ve Temel Komutlar 10
  • 11. 2. Dizin Yapısı ve Temel Komutlar • Linux işletim sisteminde dosya ve dizinler diğer Unix türevi işletim sistemlerinde olduğu gibi hiyerarşik bir yapıya sahiptirler. • En üst düzeyde bulunan ve kök dizini diye adlandırılan dizin alt dizin olarak adlandırılan dizinler içermektedir. • Ayrıca bu alt dizinlerde kendi içlerinde dosya ve alt dizin içerebilmektedir. • Dizin yapısı isteğe göre belirlenmiş değildir. • Paketlerin düzgün şekilde çalışabilmeleri için önemli dosya ve dizinlerin yeri standartlaştırılmıştır. 11
  • 12. 2. Dizin Yapısı ve Temel Komutlar 12
  • 13. 2. Dizin Yapısı ve Temel Komutlar • Kök dizinini aşağıdaki dizinleri de içermelidir: • /bin : Kullanıcı ve sistem yöneticisi tarafından kullanılan çalıştırılabilir dosyaları içerir. • /dev : Donanıma erişmek için gerekli olan aygıt dosyalarını içerir. • /etc : Sistemin ayarlarını içeren dosyaları içerir. • /lib : Sistem kütüphanelerini içerir. • /sbin : Sistem yöneticisi tarafından kullanılan çalıştırılabilir programları içerir. • /home : Kullanıcılara ayrılan dizinlerin bulunduğu yerdir. • /mnt : Geçici olarak sisteme bağlanacak bölümlerin, sisteme bağlanma noktalarının bulunduğu dizindir. • /root : Sistemin en yetkili kullanıcısı olan “root” kullanıcısına ait dizindir. • /tmp : Geçici dosyaların bulunduğu dizindir. • /usr : Paylaşılabilir dosyaların bulunduğu dizindir. Bu dizin içinde çalıştırılabilir dosyaların bulunduğu dizinlerin yanısıra, dokümanlar ve programların kullandığı dosyalar bulunmaktadır. • /var : Log dosyaları, kullanıcıların e-postaları, e-posta kuyruğunda bekleyen e-postalar için geçici dosyalar gibi paylaşılması mümkün olmayan dosyaların bulunduğu dizindir. • /proc : Sistem ile ilgili bilgilerin alınabileceği sanal bir dosya sistemidir. 13
  • 14. 2.1. Dosya ve Dizinlerinin Listelenmesi • Sistemde varolan dosya ve dizinleri listelemek için “ls” komutu kullanılmaktadır. • Temelde ls komutunun yapısı aşağıdaki gibidir : • ls [seçenekler] dosya_veya_dizin_ismi • “ls” komutu dosya veya dizin ismi bildirilmediği takdirde içinde bulunduğu dizinin içeriğini listelemektedir. • “ls” komutu ile kullanılan temel parametreler aşağıdaki gibidir : • -a : Tüm dosyaları listelemek için kullanılır. Normalde isimleri “.”(nokta) ile başlayan dosyalar gizli dosyalar olarak kabul edilir. Bu dosyalarında ls çıktısında görünmesini sağlamak için -a parametresi kullanılmalıdır. • -l : ls çıktısını liste olarak listeler, ayrıca dosya ve dizinler hakkında izin, sahip, boyut, en son ne zaman güncellendiği gibi bilgileri görüntülenir. • -h : Dosya boyutlarını insanların okuyabilecekleri formata sokar. Dosya boyutlarını byte olarak göstermek yerine Megabyte, kilobyte, gigabyte olarak gösterir. Bu dönüşümler için 1024 sayısını kullanır. • -R : Dizinin içeriğini rekürsif olarak listelemek için kullanılır. Bu parametre ile listeleme yapıldığı takdirde listenelen dizinin içinde bulunan alt dizinlerin içeriği de listelenir. 14
  • 15. 2.1. Dosya ve Dizinlerinin Listelenmesi • - => dosya tipi • Dosya tipleri: - => regular file, d => directory, b => block device, c => character device • rw- => sahibin yetkileri • r-- => grubun yetkileri • r-- => diğerlerinin yetkileri • 1 => hard link sayısı • root => sahibi • root => grubu • 1180 => boyut (byte) • Sep 26 16:33 => oluşturulma zamanı 15
  • 16. 2.2. Yeni Dizin Oluşturma • Yeni dizin oluşturmak için “mkdir” komutu kullanılmaktadır. • “mkdir” komutunun temel kullanımı: • mkdir dizin_adı 16
  • 17. 2.3. Dizin Değiştirme • Dizinin değiştirilmesi için “cd” komutu kullanılmaktadır. • cd komutunun temel kullanım aşağıdaki gibidir : • cd [geçilecek_dizin] • Geçilmesi istenen dizin parametresi verilmediği takdirde kullanıcının ev (home) dizinine geçilir. • Geçilmesi istenen dizin istendiği takdirde tam yol olarak, istendiği takdirde de göreceli yol olarak verilebilir. • Tam yol ile belirtilen geçilmesi istenen dizinin kök dizininden itibaren bulunduğu yerin belirtilmesidir. • Örnek: cd /usr/local/bin • Göreceli yol ise içinde bulunulan dizinden geçilmesi istenen dizine gidilmesi için gereken yolu belirtir. • Örnek: /usr dizininde iken /usr/bin dizinine geçmek için cd bin komutu verildiğinde göreceli yol kullanılmış olur. 17
  • 18. 2.3. Dizin Değiştirme • Geçilmek istenen dizin parametresi olarak “cd” komutu aşağıdaki özel karakterler ile kullanılabilir: • . => Bulunulan dizini referans eder. • .. => Bir üst dizini referans eder. • ~[kullanıcı_ismi] => Belirtilen kullanıcının ev dizinini referans eder. Kullanıcı ismi kullanılmadığı takdirde geçerli olan kullanıcının ev dizini referans edilir. • - => Bir önce bulunulan dizini referans eder. Bu parametre sadece cd komutunda geçerlidir. • İçinde bulunulan dizini öğrenmek için “pwd” komutu kullanılır. Bulunulan dizini öğrenmek için “pwd” komutunun verilmesi yeterlidir. • 18
  • 19. 2.4. Yeni Dosya Oluşturma • Yeni dosya oluşturmanın en basit yolu “touch” komutunu kullanmaktır. • Bu komut var olmayan bir dosya ismi ile çağırıldığı takdirde boş bir dosya oluşturacaktır. • Sırf metin içerecek dosyaların oluşturulması için editörler de kullanılabilir. • “touch” komutunun kullanımı: • touch dosya_ismi • “touch” komutu dosya oluşturmanın yanında dosyanın son erişim ve son değişme zamanlarını düzenlemek için de kullanılabilir. 19
  • 20. 2.5. Dosya ve Dizinleri Silme • Sistemde varolan dosya ve dizinlerin silinmesi için “rm” komutu kullanılmaktadır. • Eğer silinmesi istenen dizin içinde hiç bir dosya veya başka dizin barındırmıyor ise “rmdir komutu” ile de silinebilir. • “rm” komutunun temel kullanımı: • Dosyalarda: rm [seçenekler] dosya_ismi • Dizinlerde : rm -r [seçenekler] dizin_ismi • -r : rekürsif çalışarak belirtilen dizin altında bulunan tüm dizin ve dosyaları, son aşamada da belirtilen dizini siler. • -v : Yapılan her silme işlemi ile ilgili kullanıcıya bilgi verir. • -f : silme işlemini onay sormadan gerçekleştirir. • -i : sileceği her dosya ve dizin için kullanıcıdan onay bekler. Root kullanıcısı için tanımlanan komut takma isimleri (alias) rm komutu her zaman bu parametre ile çalıştıracak şekilde ayarlanmıştır. 20
  • 21. 2.6. Dosya İzinlerinin Değiştirilmesi • Dizin ve dosyalara erişimde izinler 3 farklı grup olarak verilmektedir • Dosyanın sahibi => u (user) • Dosyanın grubu => g (group) • Diğer => o (others) • Kullanıcılar dosyalar üzerinde 3 farklı işlem yapabilmektedir • Dosyayı okuma: read => (r) sayısal değeri => (4) • Dosyaya yazma: write => (w) sayısal değeri => (2) • Dosyayı çalıştırma: execute => (x) sayısal değeri => (1) • Dosyaların ve dizinlerin sahip olduğu izinleri görmek için “ls” komutu kullanılır • Dizin için çalıştırma hakkına sahip olan bir kullanıcı o dizine geçebilmektedir. 21
  • 22. 2.6. Dosya İzinlerinin Değiştirilmesi • İzinlerin değiştirilmesi amacıyla “chmod” komutu kullanılır. • “chmod” komutu 2 farklı şekilde çalıştırılabilir: • Yeni izinin sayısal değerinin verilmesi ile • Yeni izinin harf karşılığının verilmesi ile • İzinler 3 farklı grubun dosya üzerinde 3 farklı işlevden hangilerini yapabileceklerini belirtir. • Her grup tek başına ele alınıp izinlerin değerleri toplanarak sayısal değerler elde edilir. • örnek: rw-r--r-- iznini ele alalım: • Dosyanın sahibinin hakları : rw- => 4 + 2 =6 • Dosyanın grubunun hakları : r-- => 4 • Dosyanın diğerlerinin hakları : r-- => 4 • rw-r--r-- yetkisinin sayısal karşılığı yukarıdaki gibi hesaplandığında 644 olarak bulunur. 22
  • 23. 2.6. Dosya İzinlerinin Değiştirilmesi • Örnek: Bir dosyanın kullanıcısına tüm hakları, grubuna okuma diğer kişilere ise hiç bir hak vermemek için “chmod” komutu aşağıdaki şekilde kullanılır. • Sahibinin hakları => rwx : sayısal değeri (4+2+1=7) • Grup hakları => r-- : sayısal değeri (4) • Diğer hakları --- : sayısal değeri (0) • Komutun kullanımı: chmod 740 linux-notlar • 23
  • 24. 2.6. Dosya İzinlerinin Değiştirilmesi • İzinlerin ayarlanması için “chmod” komutuna verilecek parametreler harf değeri olarak da kullanılabilir. • Dosya üzerinde izin vermek için +, izin geri almak için - sembolleri kullanılır. • Herkese okuma izni vermek: • chmod +r dosya_ismi • Dosyanın sahibine tüm hakları vermek: • chmod u+rwx dosya_ismi • Diğer kullanıcılar tüm yazma hakkını almak: • chmod o-wx dosya_ismi • Dosya sahibine tüm haklar, gruba okuma, diğer kullanıcılara okuma haklarını vermek: • chmod u+rwx,g+r,o+r dosya_ismi 24
  • 25. 2.7. Dosya Sahibi ve Grubunun Değiştirilmesi • Dosyanın sahibini değiştirmek için chown, grubunu değiştirmek için chgrp komutu kullanılmaktadır. • “chown” komutunun temel temel kullanımı : • chown kullanıcı_ismi dosya_ismi • chown kullanıcı_ismi:grup_ismi dosya_ismi • Bu kullanımda dosyanın sahibi ile birlikte grubu da değiştirilir. • Dosyanın sadece grubu değiştirilmek istendiğinde “chgrp” komutu kullanılır. • Bu komutun temel kullanımı: • chgrp grup_ismi dosya_ismi 25
  • 26. 2.8. Dosya/Dizin Kopyalama • Kopyalama işlemi “cp” komutu ile gerçekleştirilir. • Bu komutun temel kullanımı: • cp [seçenekler] kaynak hedef • Kaynak ve hedef olarak belirtilen parametreler dosya veya dizin olabilir. • 26
  • 27. 2.8. Dosya/Dizin Kopyalama • “cp” komutunun temel parametreleri: • -R : Bu parametre dizinleri kopyalamak için kullanılır. Herhangi bir dizin kopyalanacağı zaman bu parametre verilmediği takdirde cp komutu dizini kopyalamaz. Bu parametre sayesinde dizin ve içinde bulunun dosya ve alt dizinler hedef dizine kopyalanır. • -p : Bu parametre kopyalanan dosya veya dosyaların izinlerin ve sahiplerinin korunmasını sağlamaktadır. • -d : Kopyalama işleminde dosyanın kendisinin yerine linkinin kopyalanması istendiği takdirde bu parametre kullanılmalıdır. • -f : Bu parametre kullanıcıya hiç bir soru sormaz. Eğer hedef dosya sistemde mevcut ise bu parametre ile ilk olarak mevcut dosya silinir, daha sonra kopyalama işlemi gerçekleştirilir. • -i : Kopyalama işleminde hedef dosya mevcut olduğu durumlarda yapılacak işlem kullanıcıya sorulmaktadır. • -u : Bu parametre kullanıldığı takdirde kopyalanan dosya hedef dosyadan daha yeni ise kopyalama işlemi gerçekleştirilir. • -a : Bu parametre -dpR parametreleri anlamına gelir. 27
  • 28. 2.9. Dosya/Dizin Taşıma • Taşıma işlemi “mv” komutu ile gerçekleştirilmektedir. • Bu komut aynı zamanda dosyanın isminin değiştirilmesi içinde kullanılır. • Bu komutun temel kullanımı: • mv [seçenek] kaynak hedef • Kaynak ve hedef olarak belirtilen parametreler dosya veya dizin olabilmektedirler. • “mv” komutu => f,i,u parametreleri ile kullanılabilir. Bunların işlevleri “cp” komutundaki işlevleri ile aynıdır. 28
  • 29. 2.10. Link Tanımlama • Dosyalara farklı isimler veya kısayollar tanımlanabilir. • Link oluşturmak için “ln” komutu kullanılmaktadır. • Hard-link ve sembolik(soft) link olmak üzere iki farklı tür vardır. • Hard-link ile oluşturulmuş bir link dosyası, diğer dosyanın tam anlamıyla bir kopyasını içerir. Dosyalardan orijinal olan silinse bile link atılmış dosya aynı içeriği bulundurmaya devam eder. • Hard link oluşturma: ln hedef link_adı • Sembolik link ile oluşturulmuş dosyalar tam olarak kısayol anlamına gelir. • Sembolik link oluşturma: ln -s hedef link_adı 29
  • 30. 2.11. Dosya İçeriğini Görme • Metin tabanlı dosyaların içeriğinin görüntülenmesi için “cat” komutu kullanılabilir. • Bu komutun temel kullanımı: • cat [seçenekler] dosya_ismi [dosya_ismi_2,...] • “cat” komutu parametreleri: • -t : Metinin içinde geçen tab karakterini ^I olarak göstermeyi sağlayan parametredir. • -e : Satır sonlarının $ karakteri olarak gösterilmesini sağlayan parametredir. • -A : -e ve -t parametrelerinin beraber kullanılması ile eşdeğerdir. • -n : Her satırın numaralandırılmasını sağlayan parametredir. 30
  • 31. 2.11. Dosya İçeriğini Görme • Metin tabanlı dosyaların içeriklerinin görüntülenmesi için “more” komutu da kullanılabilir. • “more” komutunun özelliği dosyanın içeriğini sayfa sayfa olarak göstermesidir. • Her sayfa sonunda gösterme işleminin devamı için kullanıcının ENTER veya BOŞLUK tuşlarına basması gerekir. • BOŞLUK tuşu bir sayfa ileri, ENTER tuşu bir satır ileri gitmek için kullanılır. • Metin içinde arama yapılmak istendiği takdirde “/” karakteri ile arama moduna geçilir ve bulunması istenen kelime yazılır. • Kelime bulunduktan sonra, aynı kelimenin bir sonraki yerini bulmak için “n” tuşuna basılması yeterlidir. • “more” komutu ile aynı işi yapabilen “less” komutu da bulunmaktadır. • less /usr/share/doc/python-2.7.5/README 31
  • 32. 2.11. Dosya İçeriğini Görme • Dosyaların Başının ve Sonunun Görüntülenmesi • Dosyanın başının gösterilmesi için “head” komutu kullanılır. • Dosyanın sonunun gösterilmesi için “tail” komutu kullanılır. • Temel olarak iki komutunda kullanım şekli aynıdır : • head [-baştan_gösterilecek_satır_sayısı] dosya • tail [-sondan_gösterilecek_satır_sayısı] dosya • Gösterilecek satır sayısı bilgisi verilmediği takdirde varsayılan olarak 10 satır gösterilir. • 32
  • 33. 2.12. vi Editörü • “vi” ASCII metin dosyalarını düzenlemek amacıyla kullanılan oldukça gelişmiş özelliklere sahip bir editördür. • “vi” UNIX geleneğinin bir sembolüdür. • “vi” temel kullanımı • vi [options] [filename] • Eğer dosya yok ise, “vi” yeni bir dosya oluşturur. • file1 isimli dosyayı aç ve imleci 3. satıra getir • vi +3 file1 • Dosya kaydetme ve çıkma • ESC tuşuna basıldıktan sonra “:” ile komut durumuna geçilir ve sırayla “wq!” (write & quit ) komutları verilir. Böylece dosya kaydedilip vi’dan çıkılmış olur. • Kaydetmeden çıkmak için sadece “q!” kullanılır. 33
  • 34. 2.12. vi Editörü • İmleç dolaştırma komutları • Komut durumunda iken yön tuşları çalışmıyorsa, bu tuşlar ile text üzerinde dolaşmak mümkün olacaktır. • h : sola bir karakter • j : aşağı bir karakter • k : yukarı bir karakter • l : sağa bir karakter • Kullanılan komutlardan bazıları • 0 : imlecin bulunduğu satırın başına git • $ : imlecin bulunduğu satırın sonuna git • w : bir sonraki kelimenin başına git • B : bir önceki kelimenin başına git 34
  • 35. 2.12. vi Editörü • Ekleme Komutları • Bu komutlar ile INSERT moduna geçerek metine yazma işlevi başlatılır. • i : imlecin üzerinde bulunduğu karakterin solundan başlayarak ESC tuşuna basılıncaya kadar basılan her karakteri metine ekler. Varsa eski metin sağa doğru ötelenir. • a : imlecin üzerinde bulunduğu karakterin hemen sağından başlayarak ESC tuşuna basılıncaya kadar basılan her karakteri metine ekler. Varsa eski metin sağa doğru ötelenir. • o : bir alt satıra geçerek INSERT moduna geçer. Yani yazma moduna geçilir • 35
  • 36. 2.12. vi Editörü • Yazı silmek • x : imlecin üzerinde bulunduğu karakteri siler • 3x : imlecin üzerinde bulunduğu karakter dahil, sağa doğru 3 karakteri siler • dw : imlecin üzerinde bulunduğu yerden kelime sonuna kadar sil • 2dw : imlecin üzerinde bulunduğu yerden başalayarak 2 sözcük sil • dd : imlecin üzerinde bulunduğu satırı sil • 2dd : imlecin üzerinde bulunduğu satırı ve altındaki satırı sil • d) : imlecin üzerinde bulunduğu cümleyi sil • d} : imlecin üzerinde bulunduğu paragrafı sil • D : imlecin üzerinde bulunduğu satırın sonuna kadar sil • d$ : imlecin üzerinde bulunduğu satırın sonuna kadar sil (D ile özdeş) • dw : imlecin üzerinde bulunduğu kelimeyi sil • b : imlecin üzerinde bulunduğu kelimeden bir önceki kelimeyi sil • Yanlışlıkla silme işlemi yaparsanız; u (undo) komutuyla son silme işlemini geri döndürebilirsiniz. 36
  • 37. 2.12. vi Editörü • Metin Bloklarının Yerini değiştirmek • vi editörü ile metin parçalarının yerini değiştirmek için, önce eski yerinden silmeli, daha sonra yeni yerine yapıştırmalısınız. • dd komutu ile satır silinir. • ESC’ye basılarak ve yön tuşları ile yapıştırılacak yere gidilip, p komutu ile yapıştırılır. • Kopyalama • Kopyalanacak metin bloğunu önce bulunduğu yerde yy veya Y ile (veya YY) kopyalanır daha sonra kopyalanacak yere put ile yapıştırılır. • p bulunulan satırın altına, P ise üstüne yapıştırır. • “yw” ve “yb” (bir önceki) kelimeleri kopyalar, “ y) ” cümleyi “ y} ” paragrafları kopyalar. 37
  • 38. 2.12. vi Editörü • Dosya İşlemleri : • ZZ (:wq komutuna eşdeğerdir) • :q (quit) • :q! (yapılan değişiklikleri kaydetmeden çık) • :w (dosyayı kaydet vi’da kal) • :wq (write and quit) • :x (vi’dan çık dosya değişmiş ise dosyayı kaydet) • 38
  • 39. 2.13. Grep • Dosyalarda arama, filtreleme işlemlerinde “grep” komutu kullanılır. • Örneğin /etc/passwd dosyasında içinde root kelimesi geçen satırları görmek isterseniz • grep root /etc/passwd 39
  • 40. 2.14. Dosya Arama • “find” komutu belli kriterlere göre dosya ve dizin arama işlemlerinde kullanılır. • “find” komutu temel kullanımı: • find [arama_yapılacak_dizin] [arama_kriterleri] aranacak_kelime • “find” komutu sadece dosya bulmak için kullanılmamaktadır. Ayrıca bulunan dosyalar üzerinde işlem yapılabilir. • Örnek: Kök dizininde linux-not ile başlayan dosyaları bulmak için • find / -name linux-not* 40
  • 41. 2.14. Dosya Arama Kriter Find Komutu ile kullanılabilecek belli başlı arama kriterleri -name exp İsim ile arama yapmak için kullanılır. Dosyanın tam ismi verilebilceği gibi , * ve ? gibi karakterlerde kullanılabilir. -user kullanıcı İstenilen kullanıcıya ait dosyaların bulunması için kullanılır. -group grup Belirtilen gruba ait dosyaların bulunması için kullanılır. -perm izin Belirtilen izine sahip dosyaların bulunması için kullanılır. -type tip Aramada bulunması istenilen dosyanın tipini belirlemek için kullanılır. b : Blok aygıt dosyası, c : Karakter aygıt dosyası, d : Dizin f : Normal dosya, l : Sembolik link -size [+|-] büyüklük Belirtilen büyüklüğe sahip dosyaların bulunması için kullanılır. -exec komut ; Bulunan dosya için komut ile belirtilen komutu çalıştırır. Komut ile belirtilen argümanda bulunan {} işareti bulunan dosya ismi ile değiştirilir. 41
  • 42. 2.14. Dosya Arama • “find” komutu ile birlikte ayrıca aşağıdaki mantıksal operatörler arama kriterlerini birleştirmek için kullanılabilir : • -a => ve , -o => veya , ! => Değil • Örnek: Kök dizininde linux-not ile başlayan dosyaları bulup silmek için : • find /-name linux-not* -exec rm -f {} ; • Örnek: /tmp altında boyu 95 byte veya ismi egitim_find ile başlayanları bulmak için : • find /tmp/ -size 95c -o -name egitim_find* 42
  • 43. 2.14. Dosya Arama • Parametre örnekleri : • -name abc* : abc ile başlayan arama • -name [*a-k]95” : ismi a95,b95 gibi olan dosya arama • -perm 755 : erişimi 755 olan dosya arama • -size -45k : 45 kByte’tan küçük dosyalar • -size +10M : 10MB tan büyük dosyalar • -size +1G : 1GB tan büyük dosyalar 43
  • 44. 2.15. Tar Komutu • “tar” komutu arşivleme yapmak için kullanılır. • Sıkıştırılmış ve arşivlenmiş bir dosyanın, yada dosya gruplarının, tar ile açılırken sıkıştırmanın geri alınabilmesi de mümkündür. Ancak sıkıştırılırken hangi algoritmanın kullanıldığı önemlidir. • Eğer -z (gzip) parametresi kullanılarak sıkıştırma yapılmış ise yine –z kullanılarak açmak mümkün olacaktır. • Eğer -Z (compress) parametresi kullanılarak sıkıştırma yapılmış ise yine –Z kullanılarak açmak mümkün olacaktır. • “tar” komutu, sıkıştırma programları çağırılarak arşivlenen dosyanın uzantısına gz uzantısını kendisi yazmayacağı için kullanıcı kendisi yazması gerekir (myarsiv.tar.gz). • Ancak dosyanın uzantısının bu şekilde değiştirilmesi sadece anlaşılabilirliği sağlar, yani dosyanın uzantısının tar olarak bırakılması bunun bir tar dosyası olduğunu göstermez. 44
  • 45. 2.15. Tar • Tar ile kullanılan önemli parametreler aşağıdaki gibidir : • f : özel bir dosya ismi yada belirli bir device ismi belirtmek için • c (create) : tar dosyası yarat • x(extract) : tar dosyası aç • t(list) : tar dosyasının içeriğini listele • v(verbose) : yapılan işlemleri standart çıkışa listele • r (add) : bir tar arşive dosyasına ekleme yapmak için • u (update) : bir tar arşive dosyasında bazı dosyaları yenileri ile değiştirmek • z (gzip) : sıkıştırma / açma programını kullanarak arşivlemek ve açmak için 45
  • 46. 2.15. Tar • Arşivleme; • tar cvf files.tar file1 file2 file3 • tar cvf files.tar file? • tar ile arşivlenmiş dosyaları açmak; • tar xvf files.tar • Bir tar dosyasına ekleme yapmaya örnek; • tar rf myarsiv.tar file4 • Bir tar dosyasını update örneği; mydir dizininde yeni yaratılmış veya yenisi ile değiştirilmiş veya yeni erişilmiş dosyaları tar dosyasında yeniler. • tar uf myarsiv.tar mydir 46
  • 47. 2.16. Gzip • “gzip” komutu ile sıkıştırma yapılır. • gzip ile sıkıştırılan dosya veya dosyaların sonuna “gz” uzantısı otomatik olarak eklenerek esas dosya ile yer değiştirilirler. Ancak dizin içerisindeki dosyalar tek tek sıkıştırılır. • Örnek : • gzip file1 • gzip ile sıkıştırma yaparken sıkıştırma seviyesi ve hızı ayarlanabilir. Bunun için 9 seviye vardır; 1 en hızlı fakat en az, 9 en yavaş fakat en çok sıkıştıran seviyedir. • gzip -9 file2 47
  • 48. 2.17. Uygulama 1. /tmp dizini altında egitim-1 adında dizin oluşturun, egitim-1 dizini içerisinde linux-notlar adında dosya oluşturup, içerisine “linux eğitim notları” yazıp, kaydedip çıkınız. egitim-1 dizinini yetkiler korunacak şekilde (arşiv modunda) /root dizini içine kopyalayınız. 2. /root/egitim-1 dizininin adını konfig olarak değiştiriniz. 3. /root/konfig dizini içindeki tüm dosyaların yetkisini 640 olarak değiştiriniz. 4. /root/konfig dizinin yetkisini sahibi okuma-yazma-çalıştırma, grubu okuma-çalıştırma, diğerleri okuma olarak değiştiriniz. 5. /root/konfig dizini içinde not-1 adında dosya oluşturun ve diğer kullanıcı yetkisi sadece read olsun. 6. /root/konfig dizinini konfig.tar.gz adıyla yedekleyiniz. 7. konfig.tar.gz yedeğini, / dizini altında yedekler adında dizin oluşturup dizinin içerisine taşıyınız. 48
  • 49. 2.17. Uygulama 8. /root/konfig dizini içindeki tüm dosya-dizinin sahibi root, grubu root olsun. 9. konfig.tar.gz arşivini /root/konfig dizinine açınız. 10. /root/konfig dizini içinde boyutu 50kb’den büyük tüm dosyaları siliniz. 11. /root/konfig/ dosyasının içerisine /etc/passwd dosyasını kopyalayınız, /root/konfig/passwd dosyasının baştan 3 ve sondan 3 satırını görüntüleyiniz. 12. /root/konfig/linuz-notlar dosyasına /root/konfig/linux-notlar-s adlı sembolik, /root/konfig/linux-notlar-h adlı hard-link oluşturunuz. 13. /root/konfig dizini içindeki linux-notlar dosyasını siliniz. 14. 12. uygulamada oluşturduğunuz linkleri kontrol ediniz. 15. /root/konfig dizinini tamamen siliniz. 49
  • 50. BÖLÜM - 3 Kullanıcı Yönetimi 50
  • 51. 3.1. Kullanıcı Hesapları • Kullanıcı bilgileri /etc/passwd dosyasında tutulmaktadır. • Bu dosyada kullanıcı ismi, kullanıcı kimlik numarası, birincil grup kimlik numarası, kullanıcı ile ilgili genel bilgiler, kullanıcı dizininin sistemdeki yeri ve kullanıcının kullandığı kabuk bilgileri bulunmaktadır. • /etc/passwd dosyasındaki bir satır aşağıdaki yapıya sahiptir : • kullanıcı_ismi:x:uid:gid:genel_bilgi:kullanıcının_dizini:kabuk • kurtulus:x:1000:1000::/home/kurtulus:/bin/bash • Kullanıcı kimlik numarası (uid) her kullanıcı için farklıdır. • İşletim sistemi tarafından yapılan temel yetkilendirme işlemlerinde uid bilgisi kullanılmaktadır. • Sistem yöneticisi olan root kullanıcısının kimlik numarası sıfırdır (0) • Normal kullanıcıların kimlik numaraları 1000’den başlamaktadır. 51
  • 52. 3.1. Kullanıcı Hesapları • Birincil grup numarası, kullanıcının dahil olduğu temel grubu göstermektedir. • Kullanıcılar birden fazla gruba dahil olabilmektedir. • Herbir kullanıcı mutlaka bir gruba dahil olmak zorundadır. • Kullanıcının kişisel bilgilerinin bulunduğu alan (genel_bilgi): boş bırakılabileceği gibi kullanıcının tam ismi, ofisi, ofis telefonu ve ev telefonu bilgilerini içerebilir. • Kullanıcının dizininin tanımlandığı 6. alan ise kullanıcının kişisel dosyalarını koyabileceği alanın sistemdeki yerini belirtmektedir. • Kullanıcının kullandığı kabuk bilgisi, kullanıcı sisteme giriş yaptığında kullanacağı kabuğun sistemdeki yerini belirtir. • /etc/passwd dosyası sistemde bulunan bütün kullanıcılar tarafından okunabilir durumdadır. 52
  • 53. 3.1. Kullanıcı Hesapları • Kullanıcıların parolaları her ne kadar şifrelenmiş(encrypt) olsa da kırılma ihtimali bulunmaktadır. • Güvenliği arttırmak amacıyla parola bilgileri /etc/shadow dosyasında tutulmaktadır. • Bu dosya sadece sistem yöneticisi konumundaki “root” kullanıcısı tarafından okunabilmektedir. • Aynı zamanda şifrenin en son ne zaman değiştirildiği, kullanıcının ne zaman geçersiz olacağı, kullanıcıların şifrelerini değiştirmeden geçirebilecekleri maksimum gün sayısı gibi ek bilgileri de içerebilir. • 53
  • 54. 3.1. Kullanıcı Hesapları • /etc/shadow dosyasının genel yapısı aşağıdaki gibidir : • kurtulus:parola-hash:17937:0:99999:7::: • Tüm bu alanlar dosya üzerinde değiştirilebildiği gibi komut satırından da değiştirilebilir. • Bunun için “chage” komutu kullanılmaktadır. • 54
  • 55. 3.2. Gruplar • Gruplar sistemde bulunan kullanıcılardan belirli kümeler oluşturmak için kullanılır. • Gruplar sayesinde yetkiler toplu biçimde tanımlanabilmektedir. • Gruplar ile ilgili bilgiler /etc/group dosyasında tutulur. • /etc/group dosyası aşağıdaki formata sahiptir : • grup_ismi:x:grup_kimlik_numarası:üyeler • grup_ismi alanı grubun isimini tanımlamak için kullanılır. • Grup kimlik numarası grup ile ilişkilendirilmiş sayısal bir değer içermektedir. • Her grupta bu değer farklı olmak zorundadır. • Üyeler kısmı gruba dahil olan kullanıcıların isimlerini içermektedir. 55
  • 56. 3.3. Hesap Yönetimi • Kullanıcı Ekleme/Değiştirme • Kullanıcı eklemek için useradd, mevcut kullanıcı bilgilerini değiştirmek için usermod komutu kullanılır. • Komutların parametreleri aşağıdaki gibidir. • useradd -d kullanıcı_dizini -g birinci_grup -G gruplar -s kabuk -u uid kullanıcı_ismi • Kullancı ismi dışındaki tüm parametreler isteğe bağlıdır. • 56
  • 57. 3.3. Hesap Yönetimi • “useradd” komutunun parametreleri: • -d (kullanıcı_dizini) : Kullanıcının şahsi dizininin sistemdeki yerini belirmek için kullanılır. • Bu değer belirtilmezse, /home/kullanıcı_ismi olarak oluşturulur. • -g (grup) : Kullanıcının dahil olacağı birincil grubu içerir. • Bu değer belirtilmezse, kullanıcı ismi ile aynı başka bir grup oluşturulacak ve kullanıcının birincil grubu olarak kabul edilecektir. • -G (gruplar) : Kullanıcının dahil edileceği diğer grupları belirtir. • -s (kabuk) : Kullanıcının kullanacağı kabuğu belirtir. • -u (uid) : Kullanıcının kimlik numarasını belirtir. • Bu değer belirtilmezse, sistem bir sonraki müsait kimlik numarasını seçer. 57
  • 58. 3.3. Hesap Yönetimi • Parola Belirleme • Kullanıcı parolasını belirlemek için “passwd” komutu kullanılır. • passwd [-l] [-u] [kullanıcı_ismi] • “passwd” komutu sistemdeki normal kullanıcılar tarafından sadece kendi parolalarını değiştirmek amacı ile kullanılabilir. • root kullanıcısı aşağıdaki işlemleri gerçekleştirir: • Oluşturulan kullanıcıya parola verilmesi veya var olan kullanıcının parolasının değiştirilmesi • Bir kullanıcının hesabının kilitlenmesi • Kilitli kullanıcıları tekrar aktif hale getirmek 58
  • 59. 3.3. Hesap Yönetimi • Kullanıcı Silme • Kullanıcı hesaplarını kaldırmak için “userdel” komutu kullanılır. • “userdel” komutunun temel kullanımı: • userdel [-r] kullanıcı_ismi • Sistemden bir kullanıcı kaldırılırken kullanıcının kişisel dizini silinmemektedir. Kullanıcı silinirken dizininin de silinmesi için userdel komutu –r parametresi ile kullanılmalıdır. • 59
  • 60. 3.3. Hesap Yönetimi • Grup Ekleme / Silme • Sisteme yeni bir grup eklemek için “groupadd” komutu kullanılır. • Bu komutun temel kullanımı: • grupadd -g gid grup_adı • grup adı dışındaki parametreler isteğe göre verilebilir. • -g gid : Grubun kimlik numarasını belirtir. • Bu değer belirtilmezse sistem bir sonraki müsait kimlik numarasını seçer. • Sistemde varolan bir grubu kaldırmak için “groupdel” komutu kullanılır. • Bu komutun temel kullanımı: • groupdel group_adı 60
  • 61. 3.4. Uygulama 1. bt adlı bir grup ekleyiniz. 2. Birincil grubu bt olan, Ali adlı bir kullanıcı oluşturun ve parola veriniz. 3. Mehmet adlı kullanıcı oluşturun, parola veriniz ve bt grubuna ekleyiniz. 4. Kemal adlı kullanıcı ekleyiniz ve parola veriniz 5. /home/ortak dizini oluşturunuz. /home/ortak dizinine sadece bt grubuna dahil olanlar erişebilecek şekilde yetkisini düzenleyiniz. 6. Mehmet kullanıcısının shell’ini /sbin/nologin olarak değiştiriniz. 7. Mehmet kullanıcısının hesabını kilitleyiniz. Hesap kilitlenmesi işlemi Mehmet’in shadow dosyası üzerindeki kaydında ne tür değişiklik yapıyor? 8. Mehmet kullanıcısını sistemde hiçbir dosyası kalmayacak şekilde siliniz. 61
  • 62. BÖLÜM - 4 Paket Yönetimi 62
  • 63. 4. Paket Yönetimi • Paket yönetimi için rpm - Red Hat Package Manager adı verilen sistem kullanılır. • Rpm sistemi ile program kurulması, güncellenmesi, kaldırılması, sorgulanması basitleştirilmiştir. • Rpm paketleri kurulacak dosyaları ve kurulacak uygulama hakkında bilgi içerir. • Pakette bulunan bilgiler aşağıdaki gibidir : • Paket adı ve versiyonu • Kuruluş tarihi • Paket tanımlaması • Her içerdiği dosyanın büyüklüğü • Paketi hazırlayan kişinin veya kuruluşun kimliği • Dahil olduğu paket grubu • Paket dosyasının adı paketadi-versiyon-küçük_sürüm-mimari.rpm formatındadır. 63
  • 64. 4. Paket Yönetimi • Paket kurulmadan önce hakkındaki bilgiler /var/lib/rpm ’de bulunan RPM veri tabanına işlenir. • Bir programı kurulmadan veya kaldırılmadan önce RPM veri tabanını kontrol eder. Böylece RPM, yapılacak işlemin sistemi çelişkili bir durumda bırakıp bırakmayacağına karar verir. • Rpm paketlerinin diğer paketlere olan bağımlılıkları kurulum sırasında zorluklar çıkarabilir. • Bağımlılık kontrollerinin otomatik yapılıp gerekli diğer paketlerin de kurulması için yum adlı program kullanılabilir. • Centos yum depo bilgileri aşağıdaki şekildeki gibidir. • 64
  • 65. 4.1. Paket Kurma • rpm -i paketadi.rpm komutu kullanılır. • -v parametresi yapılan işlemleri, -h parametresi yükleme durumunu gösterir. Bu nedenle komutu • rpm -ivh paket_adı.rpm formatında kullanılabilir. • Yum ile paket kurmak için • yum install paket_adı • yum install ntp • 65
  • 66. 4.2. Paket Kaldırma • Kurulmuş bir paketi rpm ile kaldırmak için: • rpm -e paket_adı • yum ile kaldırmak için • yum remove paket_adı • yum remove ntp • Burada paket_adı kaldırılacak paketin adıdır. • Paket sistemden kaldırılmadan önce dosyalarının başka paketler tarafından kullanılıp kullanılmadığı araştırılır. 66
  • 67. 4.3. Paket Güncelleme • Zaman zaman paketlerin yeni versiyonları çıkmaktadır. • Çoğu zaman yeni paketler yamaları ve yeni önemli özellikleri içerir. • RPM ile bir paketin yeni versiyonunu kurmak için: • rpm -Uvh paket_adi.rpm • Veya • rpm -Fvh paket_adi.rpm • -U parametresi ile paket güncelleme işlemi yapılırsa sistemde paket kurulu ise günceller, kurulu değilse kurar. • -F ile güncelleme işlemi yapıldığında sistemde paket kurulu ise güncelleme işlemini yapar. Paket kurulu değilse kurmaz. • yum ile paket güncelleme yapmak için • yum update paket_adi • yum update ==> Tüm sistemin güncellenmesi için kullanılır. 67
  • 68. 4.4. Paketlerin Sorgulanması • Bir paketin kurulu olup olmadığını öğrenmek için • rpm -q paket_adi • Sistemde kurulmuş olan tüm paketleri listelemek için • rpm -qa • Kurulu paket hakkında bilgi almak için • rpm -qi paket_adı • Bir dosyanın hangi pakete ait olduğunu bulmak için • rpm -qf dosya_adı • Bir paketin dosyalarının listesini almak için • rpm -ql paket_adı 68
  • 69. BÖLÜM - 5 Ağ Konfigürasyonu ve Programlar 69
  • 70. 5.1. Ağ Ayarları • /etc/sysconfig/network-scripts • Bu dizin sistemde bulunan ağ arayüzleri için gerekli tanımların bulunduğu dizindir. • Her arayüz için bir adet konfigürasyon dosyası bulunmaktadır. • Arayüzlerin konfigürasyon dosyaları ifcfg-arayüz isimine sahiptir. 70
  • 71. 5.1. Ağ Ayarları • Ağ ayarları aşağıda şekilde belirtilen dosyada bulunur. • cat /etc/sysconfig/network-scripts/ifcfg-ens33 • Önce “ip a” komutu ile ağ arayüzünü öğreniyoruz • 71
  • 72. 5.1. Ağ Ayarları • Konfigürasyon dosyalarında kullanılan temel terimler aşağıdaki gibidir : • DEVICE : Arayüzün sahip olduğu aygıt ismini belirtir. • ONBOOT : Sistem açılırken arayüzün aktif hale getirilip getirilmeyeceğini belirtir. Sistem açılırken arayüzün aktif hale geçirilmesi için bu parametrenin değeri "yes" olmalıdır. • BOOTPROTO : Arayüzün ağ ayarlarının yapılması için kullanılan protokolü belirtir. • Ağ ayarları statik olarak yapılandırılacaksa, “static” • Ağ ayarları DHCP sunucusu üzerinden yapılandırılacaksa "dhcp" değerini içermelidir. • Sisteme statik IP verilmek istendiğinde IPADDR, NETMASK, GATEWAY gibi temel terimlerde bulunmaktadır. • 72
  • 73. 5.1. Ağ Ayarları • /etc/hosts • DNS sorgulaması yapılmadan once /etc/hosts dosyası kontrol edilir. • Bu dosya içinde makine isimleri ve makinenin IP adresi bulunmaktadır. • Her IP için ayrı bir kayıt olmak zorundadır. • Ağ üzerindeki bilgisayarların artmasıyla birlikte bu dosyanın kullanılması imkansız hale gelmiş ve DNS servisi geliştirilmiştir. • /etc/hosts dosyasındaki satırlar aşağıdaki formata sahiptir : • IP_Adresi Makine_isimleri • 192.168.1.10 egitim.milsafe.com • 73
  • 74. 5.1. Ağ Ayarları • /etc/resolv.conf • Bu konfigürasyon dosyası DNS ayarları için kullanılır. • Formatı aşağıdaki gibidir. • nameserver DNS_sunucunun_IP_Adresi • İstenildiği takdirde birden fazla DNS sunucusu tanımı yapılabilir. 74
  • 75. 5.1. Ağ Ayarları • Komut satırından IP ayarı yapabilmek için “ifconfig” komutu kullanılabilir. • Herhangi bir parametre verilmeden “ifconfig” komutu kullanılırsa sistemde varolan arabirimler ve arabirimlerle ilgili detaylı bilgiler listelenir. • Sadece arabirimlerden birisini görüntülemek için; • ifconfig arabirim_adı • Bir arabirimi kapatmak için • ifconfig eth0 down • Bir arabirimi açmak için • ifconfig eth0 up • 75
  • 76. 5.1. Ağ Ayarları • Ağ Ayarlarının Aktif/Pasif Edilmesi • Tüm arabirimleri yeniden başlatmak için network servisini restart etmek gereklidir. • /etc/init.d/network restart • systemctl restart network • Ağ servisinin durumunu görmek için • /etc/init.d/network status • systemctl status network • Sadece belli bir arabirimi açmak için • ifup arabirim_adi • Sadece belli bir arabirimi kapatmak için • ifdown arabirim_adi • “ip a” komutu ile de arabirim bilgileri görüntülenebilir 76
  • 77. 5.1. Ağ Ayarları • Sisteme Static IP vermek için gerekli ayarlar konfigürasyon dosyasından yapılabilir. • /etc/sysconfig/network-scripts/ifcfg-ens33 • BOOTPROTO=dhcp değeri BOOTPROTO=static olarak değiştirilir. • Aşağıda belirtilen parametreler istenildiği gibi eklenir. • IPADDR=192.168.1.200 • NETMASK=255.255.255.0 • GATEWAY=192.168.1.1 • Belirtilen değişiklikler konfigürasyon dosyasında yapıldıktan sonra, network servisi yeniden başlatılır. • /etc/init.d/network restart • veya • systemctl restart network 77
  • 78. 5.2. Routing (Yönlendirme) Ayarları • Route ekleyebilmek veya mevcut root bilgilerini görüntülemek için “route” komutu kullanılır. • Mevcut routing bilgisini listelemek için • route –n komutu kullanılır. • Sisteme varsayılan ağ geçidi olarak 192.168.1.254 vermek için • route add default gw 192.168.1.254 • Varsayılan ağ geçidini kaldırmak için • route del default gw • 78
  • 79. 5.2. Routing (Yönlendirme) Ayarları • Örnek: • 192.168.2.0/24 ağına 192.168.0.253 üzerinden erişebilmek için • route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.0.253 • Route bilgisini silmek için • route del -net 192.168.2.0 netmask 255.255.255.0 • 79
  • 80. 5.3. GUI Üzerinden Ağ Ayarları • Ağ ayarları GUI (grafik ortamda) üzerinden de yapılabilir Grafik arayüz kapsam dışıdır :) 80
  • 81. 5.4. Ağ Programları — Netstat • netstat komutu ağ bağlantıları, yönlendirme tablosu, arayüz istatistikleri gibi ağ ile ilgili temel bilgileri gösterir. • Hiç bir seçenek verilmediği takdirde netstat programı aktif ağ bağlantıları ile ilgili bilgileri gösterecektir. • Netstat komutu çıktısının “Active Internet Connections” bölümünde bulunan sutunlar ve anlamları: • Proto : Soket tarafından kullanılan protokolü belirtir. Tcp , udp veya raw değerlerini içerebilir. • Recv-Q : Bu soketi kullanan programa kopyalanmayan verinin büyüklüğünü byte olarak belirtir. • Send-Q : Karşıdaki sistem tarafından alındığı onaylanmayan verinin büyüklüğünü byte olarak belirtir. • Local Adress: Soketin yerel uçtaki IPadresi ve port numarasını belirtir. Eğer netstat programı – n seçeneği ile çalıştırılmamış ise IPadresi ve port numarası için DNS çözümleme yapılır. • Foreign Adress: Soketin hedef uçtaki IPadresi ve port numarasını belirtir. Eğer netstat programı –n seçeneği ile çalıştırılmamış ise IPadresi ve port numarası için DNS çözümleme yapılır. 81
  • 82. 5.4. Ağ Programları — Netstat • State : Soketin durumunu belirtir. Soketler aşağıdaki durumlarda olabilirler : • ESTABLISHED : Soket bağlantı gerçekleştirmiş durumdadır. • SYN_SENT : Soket bağlantı kurmaya çalışıyordur. • SYN_RECV : Ağdan bir bağlantı isteği gelmiştir. • FIN_WAIT1 : Soket kapatılmış , bağlantı sonlandırılmak üzeredir. • FIN_WAIT2 : Bağlantı sonlandırılmıştır. Soket karşı ucun bağlantıyı sonlandırmasını beklemektedir. • TIME_WAIT : Soket kapndıktan sonra gelebilecek paketleri alabilmek için beklemektedir. • CLOSED : Soket kullanılmamaktadır. • CLOSE_WAIT : Karşı uç bağlantıyı kapatmıştır. Soketin kapanması beklenmektedir. • LAST_ACK : Karşı uç bağlantıyı sonlandırmış ve soketi kapatmıştır. Onay beklenmektedir. • LISTEN : Soket gelebilecek bağlantılar için dinleme konumundadır. • CLOSING : Yerel ve uzak soketler kapatılmış fakat tüm verilerini göndermemiş durumdadırlar. Tüm veriler gönderilmeden soketler kapanmazlar. 82
  • 83. 5.4. Ağ Programları — Netstat • -e : parametresi ile çalıştırılırsa User sutunu ile soketi kullanan programın çalıştığı kullanıcı kimlik numarası veya kullanıcı ismi bilgisini içerir. • -p : parametresi ile çalıştırılırsa “PID/Program name” sutunu soketi kullanan programın süreç kimlik numarası ve program ismini getirir. • Her kullanıcı sadece kendi programları için bu bilgiyi alabilir. • Root kullanıcısı ise tüm soketler için bu bilgiyi alır. • netstat sadece belli bir protokolü listelemek için kullanılabilir. TCP için -t, UDPiçin -u parametresi kullanılır. • -l : listen , -n : DNS çözümleme yapma • 83
  • 84. 5.4. Ağ Programları — Netstat • Netstat programı -i seçeneği ile çalıştırıldığında sistemdeki arayüzler ile ilgili istatistikler bilgiler vermektedir. • Bu istatistikler arasında gönderilen paket sayısı (TX-OK), • Gönderilen paketlerde oluşan hata sayısı(TX- ERR), • Gönderilen paketlerden çöpe atılan sayısı (TX-DRp), • Giden paketlerde oluşan üstüne yazma hatası sayısı (TX-OVR) ve aynı bilgilerin gelen paketler (RX) için olanı bulunmaktadır. • 84
  • 85. 5.4. Ağ Programları — Arp • Sistemin arp tablosunda IP adresi – fiziksel adres kayıtları bulunur. • Sistemde bulunan arp tablosunu görmek için sadece “arp” komutunun çalıştırılması yeterlidir. • Arp tablosuna statik kayıt eklemek için -s seçeneği kullanılır. • arp -s makine_ismi MAC_adresi • arp -s makine_IP MAC_adresi • Arp tablosundan kayıt silmek için -d seçeneği kullanılır. • arp -d makine_ismi • arp -d makine_IP • 85
  • 86. 5.4. Ağ Programları — Ping • Ping komutu ICMP protokolü üzerinden ECHO_REQUEST paketi gönderir . • Bu isteği alan ve cevap dönecek olan cihaz ICMP ECHO_REPLY paketi gönderir. • Arada geçen zaman hesaplanarak kullanıcıya gösterilir. • Ping komutu çoğunlukla karşıdaki makinenin ayakta olup olmadığını kontrol etmek için kullanılır. • Eğer ping isteğine cevap gelmiyor ise hedef makine çalışmıyor olabilir. • Aynı zamanda ping komutunun çıktısından iki makine arasındaki transferin ne kadar hızlı olabileceği hakkında tahmin yürütülebilir. • Ping komutu aşağıdaki seçenekler ile kullanılabilir : • -c sayı : Sayı ile belirtilen kadar ping paketi gönderir. Bu seçenek kullanılmadığı takdirde ping sürekli çalışacaktır. Bu durumda kapatma isteği CTRL-C tuşları ile verilebilir. • 86
  • 87. 5.4. Ağ Programları — Traceroute • “traceroute” komutu ile hedefteki makineye giden yoldaki geçilen yönlendiriciler hakkında bilgi toplanır. • Komutun temel kullanım şekli aşağıdaki gibidir : • traceroute makine_ismi_yada_ip_adresi 87
  • 88. 5.4. Ağ Programları — Telnet • Telnet programı uzaktaki sunucu ile TELNET protokolü ile haberleşmeyi sağlar. • Bu program sayesinde uzaktaki makinede kullanıcıya bir çalışma alanı açılır. • Telnet komutunun en basit kullanım şekli aşağıdaki gibidir : • telnet sunucu_ismi [port numarası] • Kullanıcı telnet programı ile uzaktaki bir sunucuya bağlandığı takdirde kendisinden kullanıcı ismi ve parola isteyen bir ekranla karşılaşacaktır. • Bu ekranda gerekli bilgileri girdikten sonra kullanıcı için sistemde tanımlı olan kabuk programı çalışmaya başlayacak ve kullanıcıdan komut bekleyecektir. • Telnet hedef makinedeki portun açık olup-olmadığı hakkında bilgi toplamak için de kullanılabilir. • 88
  • 89. 5.4. Ağ Programları — ftp • FTP protokolü uzaktaki sunucudan dosya transferi için kullanılan bir protokoldür. • Bir çok işletim sisteminde hemen hemen aynı komutlar ve aynı arayüze sahiptir. • ftp programının temel kullanım şekli aşağıdaki gibidir : • ftp ftp_sunucusu • Kullanıcı ismi ve parola girilir • Bu durumda iken bir çok komut kullanılabilir. • help : kullanılabilecek komutlar listelenir • ls : sunucuda bulunulan dizinin içeriğinin listeler. • dir : ls ile aynıdır. İki komutun çıktısı ftp sunucusuna göre değişebilir. • cd : sunucuda dizini değiştirmek için kullanılır. • get : sunucudan bir dosya almak için kullanılır. • put : sunucuya bir dosya koymak için kullanılır. • bye : Ftp bağlantısını kapatmak için kullanılır. 89
  • 90. 5.4. Ağ Programları — Nslookup • nslookup DNS sorgulamaları yapmak için kullanılır. • Komutun temel kullanım şekli aşağıdaki gibidir : • nslookup [seçenek] [sorgu] • Sorgu parametresi verilmediği takdirde nslookup interaktif mod geçer. • İnteraktif modda iken istenilen sorgulama yapılabilir. • set query=“sorgu_tipi” veya set type=“sorgu_tipi” komutu verilmelidir. • 90
  • 91. 5.4. Ağ Programları — Nslookup • Temel sorgulama tipleri aşağıdaki gibidir : • A : Makine isminden IP adresi sorgulaması için kullanılır. • PTR: Makine IP adresinden makine ismi sorgulaması için kullanılır. • NS : Verilen alan için yetkili DNS sunucularının listesini görmek için kullanılır. • MX : Verilen alan veya sunucu için gönderilen e-postaları kabul eden sunucuları görmek için kullanılır. • ANY : Tüm sorgulama tipi kullanılır. • SOA : Alandan sorumlu kişi , TTL süresi , alanın seri numarası gibi bilgileri almak için kullanılır. • nslookup komutunun sorgulamaları için kullandığı sunucu istendiği takdirde “server” komutu ile değiştirilebilir. 91
  • 92. 5.4. Ağ Programları — Dig • DNS sorgulaması yapmak için kullanılabilecek daha gelişmiş programdır. • Kullanım şekli: • dig [sorgu_tipi] [@dns.ip] sorgu • milsafe.com alan adı için ns kaydını bulmak için • dig ns milsafe.com • milsafe.com alan adının mx kaydını 1.2.3.4 ip numaralı dns sunucusundan sorgulamak için • dig mx @1.2.3.4 milsafe.com 92
  • 93. 5.4. Ağ Programları — Whois • “Whois” komutu IP veya domain adresinin sorumlu kişilerin e-posta adresleri, adresleri, telefonları gibi bilgileri getirir. • Komutun temel kullanımı aşağıdaki gibidir : • whois IP_adresi_veya_domain_adı • whois milsafe.com 93
  • 94. 5.5. Uygulama 1. Sisteminizdeki mevcut ağ arabirimine statik olarak ip adresini veriniz. IP adresinin değiştiğinden emin olduktan sonra internete bağlanıp bağlanmadığınızı kontrol ediniz. 2. Sistemin DNS ayarlarını Türk Telekom DNS’leri ile değiştiriniz ve internete bağlanıp bağlanmadığınızı kontrol ediniz. 3. Default gw olarak 10.0.0.254 giriniz. 4. Netstat komutu ile sisteminizde açık portları belirleyiniz. 5. arp komutu ile çıktısını yorumlayınız. 6. ping komutu ile çıktısını yorumlayınız. 7. traceroute komutu ile çıktısını yorumlayınız. 8. Evinizdeki modeme telnet ile bağlanınız. 9. ftp komutu ne kadar güvenli olduğunu açıklayınız. 10. Nslookup ve dig komutları ile milsafe.com alan adını tüm sorgu tipleri için sorgulayıp, yorumlayınız. 11. whois komutu ile milsafe.com ala adının bilgileri toplayınız. Yeterli bilgi yoksa sebebini açıklayınız. 94
  • 95. BÖLÜM - 6 SisteminAçılışı ve Süreç Yönetimi 95
  • 96. 6. Sistemin Açılışı ve Süreç Yönetimi • Linux gerçekte sadece bir işletim sistemi çekirdeğidir. • Dağıtımlar linux çekirdeğini alıp, bu çekirdek üzerinde çalışacak programları hazırlayıp tam bir işletim sistemi oluştururlar. • İşletim sistemi çekirdeklerinin temel görevleri arasında donanım ile haberleşme, süreç kontrolü, hafıza yönetimi gelir. • Linux gelişmiş bir hafıza yönetim sistemine sahiptir. • Varolan fiziksel hafızanın dışında disk üzerindeki dosya ve disk bölümlerini sanal hafıza (swap) olarak kullanabilmektedir. • Linux çekirdeği sistemde varolan hafızayı süreçler arasında paylaşılacak şekilde kullanılmasına izin verir. • Bir süreç askıya alındığı takdirde kendisine ayrılan kaynaklar başka bir süreçe verilebilmektedir. • Sistemde bulunan fiziksel hafıza yeterli olmadığı durumlarda disk üzerindeki bölümler hafıza olarak kullanılabilir. 96
  • 97. 6. Sistemin Açılışı ve Süreç Yönetimi • Temelde çalışan programın tüm verileri fiziksel hafızada bulunur. • Bu yüzden fiziksel hafızanın yetmediği durumlarda, hafızada bulunan belirli kısımlar takas alanına aktarılır ve bu sayede CPU kullanacak program için hafızada gerekli yer açılır. • Bu durum giriş/çıkış işlemi gerektirdiğinden sistemi yavaşlatacaktır. • Tüm işletim sistemlerinde donanım ile haberleşme işletim sistemi çekirdeği sayesinde yapılmaktadır. • Linux işletim sistemi geniş bir donanım desteğine sahiptir. • Donanım erişimi için kullanılan sürücüler işletim sistemi çekirdeğine gömülebileceği gibi istendiği takdirde modül olarak da çalışma anında çekirdeğe dahil edilebilmektedir. • Linux çekirdeği modüler bir yapıya sahiptir. • Derleme işlemi esnasında sistemde bulunması istenen destekler seçilebilmektedir. 97
  • 98. 6. Sistemin Açılışı ve Süreç Yönetimi • Linux çekirdeği modül kullanabilme yeteneğine sahiptir. • Modüller çalışma esnasında çekirdeğe eklenip çıkarılabilecek çekirdek parçacıklarıdır. • Çoğunlukla bir donanıma erişmek için kullanılan sürücüler modül olarak kullanılabilir. • İstendiği takdirde dosya sistemi destekleri, NFS sunucu desteği gibi çekirdek parçaları da modül olarak eklenebilir. • Sisteme modül eklemek için; • modprobe • Sistemde kullanılan modülleri listelemek için; • lsmod • Kullanılan modülleri çekirdekten kaldırmak için; • rmmod • komutları kullanılabilir. 98
  • 99. 6.1. Açılış İşlemleri • Tüm bilgisayar sistemleri, sistem açılımı için kullanılan özel yazılımın bulunduğu donanımlara sahiptir. • PC tipi bilgisayarlar da BIOS bilgisayarın ilk olarak açılmasından ve işletim sisteminin yüklenmesinden sorumludur. • BIOS yazılımı sayesinde bilgisayar açılır ve işletim sisteminin yükleneceği duruma getirilir. • Her işletim sistemi mutlaka bir adet ön yükleme programına (boot loader) sahiptir. • Linux işletim sistemi ile en çok kullanılan ön yükleme programı Grub’tur. • Bu programların temel amacı linux çekirdeğini yüklemektir. • 99
  • 100. 6.1. Açılış İşlemleri • BIOS kendi işini bitirdikten sonra işletim sisteminin yüklenmesi için ön yükleme programını çağırır. • Bu programlar çoğunlukla diskin MBR (Master Boot Record) olarak adlandırılan bölümlerinde bulunurlar. • LILO programı iki temel yüklenme aşaması içerir. • Birinci aşama olarak belirtilen aşama ikinci aşamayı yüklemek ile görevlidir. • Birinci ön yükleme programı (bootstrap) kendini hafıza yükler ve daha gelişmiş ikinci aşama ön yükleme programını çalıştırır. • Birinci aşamada çalışan kod ikinci aşamada çalışacak kodun nerede olduğunu bilmek zorundadır. • İkinci aşamada yüklenen programın görevi işletim sistemi çekirdeğini yüklemektir. • Bu programa da işletim sistemini olacağı yeri bilmelidir. 100
  • 101. 6.1. Açılış İşlemleri • İşletim sistemi çekirdeği yüklendikten sonra işletim sistemin yüklenmesini sağlayacak program çalıştırılır. • Varsayılan olarak bu program “init” programıdır. • Bu program sistemde çalışan ilk süreçtir ve diğer tüm süreçlerin çalıştırılmasını gerçekleştirir. • init sürecinin süreç kimlik numarası (PID) her zaman 1(bir)’dir. • /etc/inittab dosyası • Init sistemde çalışan tüm süreçlerin ana süreci durumundadır. • Init programının temel görevi /etc/inittab konfigürasyon dosyasına göre gerekli programları çalıştırmaktır. • Inittab dosyası temelde hangi çalışma seviyelerinde hangi programların çalıştırılacağı gibi bilgileri içerir. 101
  • 102. 6.1. Açılış İşlemleri • Çalışma seviyesi ile belirtilen, belli süreçlerin çalışmasına izin verilen konfigürasyonlardır. • Linux işletim sisteminde temel olarak çalışma seviyeleri • 0 : Sistemi kapatmak için kullanılan çalışma seviyesidir. Bu çalışma seviyesine geçildiği takdirde çalışan tüm programlar kapatılarak gerekli kapanma işlemleri yapılır ve sunucu güvenli bir şekilde kapatılacak duruma getirilir. • 1 : Linux işletim sistemi tek kullanıcılı modda çalışır. Bu mod çoğunlukla bakım ve kurtarma operasyonları için kullanılır. Varsayılan olarak ağ ayarları geçerli değildir. • 2 : Linux işletim sistemi çok kullanıcılı modda çalışır fakat NFS sunucuları çalıştırılmaz ve NFS dosya sistemleri bağlanmaz. • 3 : Linux işletim sistemi çok kullanıcılı modda çalışır. İkinci seviyeden fark olarak NFS desteği bulunmaktadır. • 4 : Bu seviye için hiç bir şey tanımlanmamıştır. • 5 : Üçüncü seviyenin yanı sıra , X Window sisteminin sistemin açılması ile birlikte çalışmasını sağlar. • 6 : Sistemi reboot etmek için kullanılan çalışma seviyesidir. 102
  • 103. 6.1. Açılış İşlemleri • Init programı çekirdeğin yüklenme aşamasının son adımı olarak yüklendikten sonra /etc/ inittab dosyasında initdefault tanımını arar. • Bu tanım geçilmesi gereken çalışma seviyesini belirtir. • Tek kullanıcılı çalışma seviyesinde init /dev/console cihazı ile etkileşimli olarak çalışan bir kabuk çalıştırır. • Bu kabuk root yetkili kullanıcısının yetkileri ile çalışmaktadır. • Çok kullanıcılı bir çalışma seviyesine geçildiği takdirde init programı boot ve bootwait tanımlamaları ile belirtilen programları çalıştırır. • Bu programlar çoğunlukla sistemi hazırlayan scriptlerdir. • Bu scriptler sayesinde gerekli çekirdek modülleri yüklenir, dosya sistemleri bağlanır ve klavye ve font ayarları yapılır. • Inıt programı daha sonra geçilecek çalışma seviyesinde çalıştırılması gereken programları çalıştırır. 103
  • 104. 6.1. Açılış İşlemleri • Inittab dosyası aşağıdaki formata sahiptir. • id:çalışma-seviyeleri:işlem:komut • id : 1 ile 4 karakter arasında bir isimdir. Ve her satır için tek olmak zorundadır. (Not : getty süreçleri için id tanımlaması programın ileşkilendirildiği tty ile ilgili olmalıdır. Yani tty1 konsolu için çalışacak getty programını tanımlayan id 1 olmak zorundadır.) • Çalışma-seviyeleri : Belirtilen işlemin uygulanacağı çalışma seviyeleri belirtilir. Birden fazla çalışma seviyesi belirtilebilir. • İşlem : Yapılacak işlemin türünü belirler. • Komut : Çalıştırılacak komutu belirtir. • 104
  • 105. 6.1. Açılış İşlemleri • Temel işlem türleri aşağıdaki gibidir : • sysinit : Komut sistem açılırken ilk olarak çalıştırılır. Çalışma seviyeleri göz ardı edilir. • boot : Komut sistem açılırken çalıştırılır. • bootwait : Komut sistem açılırken çalıştırılır ve init komutun sonlanmasını bekler. • once : Komut, çalışma seviyesine geçildiğinde bir kez çalıştırılır. • wait : Komut, çalışma seviyesine geçildiğinde bir kez çalıştırılır ve init komutun sonlanmasını bekler. • respawn : Belirtilen komut sona erdiği takdirde yeniden çalıştırılır. (Özellikle getty süreçleri için kullanılır.) • initdefault : Varsayılan sistem çalışma seviyesini belirtir. Çalışma seviyesi kısmında tek bir seviye belirtilebilir. Komut kısmı göz ardı edilir. • ctrlaltdel : CTRL-ALT-DELtuşlarına basıldığında gerçekleştirilecek işlemi belirtir. 105
  • 106. 6.1. Açılış İşlemleri • etc/rc.d/rc.sysinit • rc.sysinit scripti sistem açılırken çalıştırılan ve sistemi kullanıma hazırlayan temel scripttir. • Init programı ilk olarak rc.sysinit scriptini çalıştırmaktadır. • 106
  • 107. 6.1. Açılış İşlemleri • rc.sysinit scriptinin temel görevleri aşağıdaki gibidir : • Sisteminin isminin tanımlanması • Çekirdek parametrelerinin ayarlanması • Klavye ve sistem fontunun ayarlanması • USB kontrolörünün başlatılması • Dosya sistemlerinin bağlanması, kontrol edilmesi • LVM ve RAID cihazların aktive edilmesi • Takas alanlarının aktive edilmesi • Kullanıcı kotalarının aktive edilmesi • 107
  • 108. 6.1. Açılış İşlemleri • Çalışma Seviyelerine Giriş İşlemleri • Herhangi bir çalışma seviyesi değişmesinde yapılması gereken birkaç işlem vardır. • Bu işlemleri yapmak için /etc/rc.d/rc scripti kullanılmaktadır. • Bu scriptin temel görevi geçilen çalışma seviyesine göre servisleri kapatıp açmaktır. • rc scriptine geçilecek olan çalışma seviyesi parametre olarak bildirilir. • Çalışma seviyeleri arasındaki geçişler init kontrolünde yapılmaktadır. • Bu sebeple rc scripti init programı tarafından bir çalışma seviyesine geçerken çağırılır ve sonlanması beklenir. • Her çalışma seviyesi için /etc/inittab dosyasında rc scriptinin çağırılmasını sağlayan bir satır bulunmaktadır. 108
  • 109. 6.1. Açılış İşlemleri • l0:0:wait:/etc/rc.d/rc 0 • l1:1:wait:/etc/rc.d/rc 1 • l2:2:wait:/etc/rc.d/rc 2 • l3:3:wait:/etc/rc.d/rc 3 • l4:4:wait:/etc/rc.d/rc 4 • l5:5:wait:/etc/rc.d/rc 5 • l6:6:wait:/etc/rc.d/rc 6 • Her çalışma seviyesi servislerin başlatılması ve sonlandırılması için kullanılan scriptlerin bulunduğu bir dizine sahiptir. • Bu dizinler /etc/rc.d dizini altında bulunurlar ve rcX.d formatına sahiptirler ( X=Çalışma Seviyesi). • 109
  • 110. 6.1. Açılış İşlemleri • Bu dizinlerde K ile başlayan dosyalar çalışma seviyesine geçildiğinde durdurulacak servisleri belirtmektedir. • S ile başlayan dosyalar ise çalışma seviyesine geçildiğinde çalıştırılacak servisleri belirtmektedir. • K veya S harfinden sonra gelen sayıya göre scriptlerin çalıştırılma sırası belirlenir. • Daha küçük değere sahip olan script daha önce çalıştırılır. • Bir çalışma seviyesine geçildiği takdirde rc scripti ilk olarak servis durdurma scriptlerini çalıştır. • Daha sonra servis başlatma scriptleri çalıştırılır. • Red Hat Linux dağıtımlarında servislerin kapatılıp açılmasını sağlayan scriptler /etc/rc.d/ init.d dizini altında bulunmaktadır. • Çalışma seviyelerinin dizinlerinde bulunan scriptler aslında /etc/rc.d/init.d altındaki scriptlere sembolik linklerdir. 110
  • 111. 6.2. Servislerin Düzenlenmesi • Her çalışma seviyesinde çalışacak belli servisler bulunmaktadır. • Her çalışma seviyesinde çalışması istenen servisler ayarlanabilmektedir. • Komut satırından chkconfig komutu çalışacak servislerin düzenlenmesi için kullanılmaktadır. • Chkconfig komutunun temel kullanım şekli aşağıdaki gibidir : • chkconfig [--list|--del|--add] [servis] • chkconfig [--level çalışma-seviyeleri] servis <on|off|reset> • Çalışma seviyelerinde hangi servislerin açık, hangi servislerin kapalı olduğunu görmek için --list parametresi kullanılmalıdır. • Sadece belirli bir servis için listeleme istendiği takdirde servis ismi de komuta eklenmelidir. • chkconfig --list [servis] 111
  • 112. 6.2. Servislerin Düzenlenmesi • Centos 7 sürümünde çalışma seviyelerinde değişiklik olmuştur. • runlevels (çalışma seviyeleri) yerine systemd “targets” yapısını kullanır. • Varsayılan olarak iki ana hedef (targets) vardır • multi-user.target ==> runlevel 3 • graphical.target ==> runlevel 5 • Geçerli varsayılan hedefi görüntülemek için • systemctl get-default komutu kullanılır • Geçerli hedefi ayarlamak için • systemctl set-default TARGET.target • systemd servislerini listelemek için • systemctl list-unit-files • Belirli bir target için kullanılan servisleri listelemek için • systemctl list-dependencies [target] 112
  • 113. 6.3. Servislerin Başlatılması/Durdurulması • Her servis için /etc/rc.d/init.d dizini altında bir script bulunmaktadır. • Bu script sayesinde servis istendiğinde durdurulabilir, çalıştırılabilir veya servisin durumu öğrenilebilir. • Scriptlerin temel çalıştırılış şekli aşağıdaki gibidir : • /etc/rc.d/init.d/servis <start|stop|restart|status> • start : Çalışmayan bir servisi çalıştırmak için • stop : Çalışan bir servisi durdurmak için • restart : Çalışan bir servisi yeniden çalıştırmak için • status : Servisin durumunu öğrenmek için • Centos 7 sürümünde systemd yapısı kullanılmaktadır. • systemctl status firewalld • 113
  • 114. 6.4. Kernel Modülleri ve İşlemleri • Tüm işletim sistemlerinin en önemli bileşenlerinden biri işletim sistemi çekirdeğidir. • İşletim sistemi çekirdekleri sistem kaynaklarını kontrol eder ve işletim sisteminin diğer parçaları tarafından kullanılan servisleri sağlarlar. • Linux çekirdeği devamlı geliştirilen bir çekirdektir. • Linux çekirdeğinin sürümleri üç sayı ile belirtilir. (Örnek : 2.6.30). • 114
  • 115. 6.4. Kernel Modülleri ve İşlemleri • Kernel Tipleri • Linux çekirdeği ilk olarak ortaya çıktığında tek dosyadan oluşan bir yapıya sahipti. • Günümüzdeki linux çekirdekleri ise modül adı verilen bir kaç dosyadan oluşabilmektedir. • Tek dosyadan oluşan işletim sistemi çekirdekleri monolithic çekirdek olarak adlandırılır. • Modül kullanımına izin veren çekirdekler ise modüler (modular) çekirdek olarak adlandırılır. • Modüler linux çekirdeklerine gerekli destekler çalışma anında eklenebilir ve çıkartılabilirler. • Bu seçenek monolithic çekirdeklerde bulunmamaktadır. • Monolithic çekirdekler çoğunlukla daha hızlı ve daha güvenlidirler. • Modüler çekirdekler sayesinde ise daha esnek bir yapı elde edilir. 115
  • 116. 6.4. Kernel Modülleri ve İşlemleri • Modüllerin Sistemdeki Yerleri • Çekirdek modülleri standart olarak /lib/modules dizini altında bulunmaktadır. • Bu dizin altında sistemde bulunan her çekirdek sürümü için ayrı bir modül dizini bulunur. • /lib/modules/3.10.0-862.11.6.e17.x86_64 dizini içinde aynı zamanda modül bağımlılıklarını belirten dosyalarda bulunmaktadır. • Bu bağımlılıklar bir modül yüklenirken göz önüne alınmaktadır. • Bu dizinlerden drivers dizini donanım ile haberleşmek için kullanılan modülleri içerir. ➢ 116
  • 117. 6.4. Kernel Modülleri ve İşlemleri • Yüklenmiş Modüllerin Listelenmesi • Sistemde yüklenmiş olan modüllerin listesini almak için lsmod komutu kullanılmaktadır. • Lsmod çıktısında kullanılan modüllerin ismi, boyutları ve modülü kullanan diğer modüller gösterilmektedir. • Sistemde yüklü olan modülleri öğrenmek için ikinci bir yol ise /proc/modules dosyasının içeriğine bakmaktır. • 117
  • 118. 6.4. Kernel Modülleri ve İşlemleri • Kullanılmayan modüllerin çekirdekten kaldırılması • Yüklü fakat kullanılmayan modüllerin çekirdekten kaldırılması için rmmod komutu kullanılmaktadır. • Rmmod komutunun temel kullanım şekli aşağıdaki gibidir : • rmmod modül-ismi [modül-ismi2 modül-ismi3] • 118
  • 119. 6.4. Kernel Modülleri ve İşlemleri • Modül Yükleme • Bir modülü yüklemek için modprobe komutu kullanılır • 119
  • 120. 6.5. Süreç ve Görev Yönetimi • Sistemde çalışan süreçleri ve süreçlerin durumlarını öğrenmek için ps komutu kullanılabilir. • Ps komutunun temel kullanımı: • ps [seçenekler] • ps komutu ile kullanılabilecek seçenekler aşağıdaki gibidir : • a : Tüm terminallerde çalışan prosesleri listeler • x : Sistemdeki tüm prosesler, tty’lerde çalışanlar hariç • c : Proseslerin sadece komut isimlerini listeler • e : Komutları ile parametrelerini göstermektedir • j : İş akışı izleme şeklinde gösterir • u : Kullanıcıya göre gösterir • v : Kullanılan hafızalara göre gösterir 120
  • 121. 6.5. Süreç ve Görev Yönetimi • Ps komutu en yaygın olarak sistemdeki tüm süreçlerin ve süreç sahiplerinin gösterilmesini sağlayan aux parametreleri ile birlikte kullanılabilir. • ps aux • Sistemde en çok CPU veya hafıza kullanan süreçlerin gerçek zamanlı olarak izlenmesi için top komutu kullanılabilir. • Top komutu kullanımı • top • Varsayılan olarak top komutu en çok işlemci kullanan süreçe göre sıralama yapmaktadır. • Bu davranışını değiştirmek için top komutu çalıştırıldıktan sonra ‘M’(büyük M) kullanılmalıdır. Böylece memory kullanımına göre sıralayacaktır. • İşlemci kullanımına göre sıralama yapmak için ‘P’(büyük P) kullanılabilir. 121
  • 122. 6.5. Süreç ve Görev Yönetimi • Arkaplanda süreç çalıştırma • Sunucu süreçleri dışındaki diğer süreçler çoğunlukla ön planda çalışmaktadırlar. • Sürecin ön planda çalıştırıldığı durumlarda, sürecin çalıştırıldığı terminalden süreç sonlanana kadar başka komut gönderilemez. • Çalıştırılan süreç arka plana gönderildiği takdirde kullanıcı tekrar komut gönderebilir. • Bir komutu veya çalıştırılan bir programı arka plana atmanın iki yolu vardır: • Sürecin çalışması esnasında Ctrl-z tuşları ile çalışmayı kesip bg komutunu çalıştırmak • Çalıştırılacak komuttan sonra bir boşluk bırakarak & sembolünü kullanmak • Arka plana gönderilen bir süreci tekrar ön plana çıkarmak için fg komutu kullanılabilir. • 122
  • 123. 6.5. Süreç ve Görev Yönetimi • Sistemde bir kaç çalışma aynı zamanda durdurulabilir, kesilmiş çalışmaların listesini almak için jobs komutu kullanılabilir. 123
  • 124. 6.5. Süreç ve Görev Yönetimi • Süreçlere Sinyal Gönderme • Süreçlere sinyal göndermek için “kill” komutu kullanılır. • Sinyaller süreçle belli işleri yapmalarını bildirirler. • Bazı sinyaller için varsayılan davranışlar bulunmaktadır. • Varsayılan davranışı belli olmayan sinyaller için sinyal işleyici alt programlar ile sinyal alındığında yapılması gereken işlemler belirlenebilir. • Ayrıca SIGKILL (Öl sinyali) dışındaki tüm temel sinyaller, süreç tarafından yakalanabilir ve işlenebilirler. • Eğer sürece gönderilecek sinyal parametre olarak gönderilmez ise varsayılan olarak TERM(Programdan Çık) sinyali sürece gönderilir. • Kill komutunun temel kullanımı: • kill [-sinyal] PID 124
  • 125. 6.5. Süreç ve Görev Yönetimi • Sinyal parametresi istendiği takdirde sintal ismi veya sinyal numarası olabilmektedir. • Kill komutu ile en çok kullanılan sinyaller aşağıdaki gibidir: • 1 : SIGHUP – Bazı servisler tarafından konfigürasyon dosyalarını yeniden okunması için kullanılmaktadır. • 9 : SIGKILL – Bir süreci tamamen öldürmek için kullanılır. Yakalanamayan bir sinyal olduğu için sinyali alan süreç ölmek durumundadır. • 15 : SIGTERM – Bu sinyal süreci öldürmek için kullanılır, ancak bazı durumlarda süreci öldürmekte başarılı olamayabilir, bu durumda SIGKILLkullanılır. • 125
  • 126. 6.6. Görev Tanımlama • Sistemde belli bir zamanda çalışacak görevler tanımlamak mümkündür. • Görev tanım işlemi için “crontab” komutu kullanılır. • Her kullanıcı yetkileri ölçüsünde çalışacak görevler tanımlayabilir. • Görev tanımlamak için; • crontab -e • komutu verilir, “vi” editorü açılır ve görevin zamanı, çalıştırılacak komut girilir. • Görevin zamanı girilirken 5 farklı zaman parametresi bulunmaktadır. • 126
  • 127. 6.6. Görev Tanımlama • Örneğin; 15 dakikada bir çalışarak process listesini bir dosyaya yazan görev tanımlamak için • */15 * * * * ps > /tmp/process_list • veya • 0,15,30,45 * * * * ps > /tmp/process_list • Her ayın 1’inde, saat 15:00’te disk kullanım durumunu belirtilen mail@address.com adresine gönderen görevi tanımlamak için • 0 15 1 * * df | mail mail@address.com • şeklinde tanım yapılır. • crontab daki görev tanımlamalarını listelemek için • crontab -l komutu kullanılabilir. 127
  • 128. 6.7. Sudo • Sistem yönetimini alt sistem yöneticilerine dağıtmak iş yükünü azaltacaktır fakat güvenliğin de ihmal edilmemesi gerekir. • Sadece kullanıcı eklemesi istenen bir sistem yöneticisine root şifresinin verilmesi gereksizdir ve güvenlik riski oluşturur. • İstenen sistem komutlarının kullanım yetkisini belli kullanıcılara verebilmek için sudo sistemi kullanılır. • Sudo ile sistem komutlarını kullanım yetkisini kullanıcılara verebilmek için visudo adlı komut kullanılır. • Yetkiler /etc/sudoers dosyasında saklanır ve visudo komutu bu dosya üzerinde işlem yapılmasını sağlar. • Yetki tanımının aşağıdaki şekilde yapılması gerekir. • kullanıcı_adı ALL=komut 128
  • 129. 6.7. Sudo • Örneğin ali kullanıcısına kullanıcı ekleme yetkisi vermek için visudo komutunu verdikten sonra • kurtulus ALL=/usr/sbin/useradd • ali kullanıcısı useradd komutunu kullanırken başına aşağıdaki gibi sudo komutunu eklemesi gerekir. • sudo /usr/sbin/useradd • Birden fazla komutun kullanım yetkisini vermek için komutların virgül ile birbirinden ayrılması gerekir. • kurtulus ALL=/usr/sbin/useradd,/usr/sbin/userdel • 129
  • 130. 6.8. Uygulama 1.Her 6 ayda bir çalışacak görev tanımı belirleyiniz. 2.Her cuma saat 17:00 da home dizinini /yedek dizini içerisine arşivlenmesi için görev tanımlayınız. 3.milsafe kullanıcısı oluşturunuz ve kullanıcı ekleme, silme, değiştirme yetkisi veriniz. 4.milsafe kullanıcısı ile security kullanıcısı oluşturunuz. 5.security kullanıcısının root yetkisine sahip olmasına izin veriniz. 130
  • 131. BÖLÜM - 7 Dosyalama Sistemi Yönetimi 131
  • 132. 7. Dosyalama Sistemi Yönetimi • Linux’ta tüm dosya ve dizinler dosya sistemlerinde tutulmaktadır. • Linux birden fazla dosya sistemini desteklemektedir. • Desteklenen temel dosya sistemleri aşağıdaki gibidir : • Dosya Sistemi Açıklama Destek Ext3 / ext4 Linux’un kendi dosya sistemi Msdos Dos İşletim Sistemi tarafından kullanılan dosya sistemi Vfat (Gelişmiş FAT) Windows 95’ten itibaren kullanılmaya başlayan FAT32 dosya sistemi iso9660 CDROM dosya sistemi Salt Okunabilir. Ntfs Windows NT ve 2000 tarafından kullanılan dosya sistemi Okuma/yazma desteği var. Ufs BSD işletim sistemleri tarafından kullanılan dosya sistemi NFS Ağ dosyalama sistemi CIFS Microsoft ağ dosyalama sistemi XFS Linux platformu altında kullanılan ext-olmayan dosya sistemlerinin başını çekiyor. Centos 7 varsayılan dosya sistemi 132
  • 133. 7.1. Dosya Sistemlerinin Bağlanması - Koparılması • Linux işletim sistemi farklı disk bölümlerinde bulunan farklı dosya sistemlerini tek yapı altında birleştiren bir dizin hiyerarşisi yapısında sahiptir. • Bu yönüyle Windows işletim sistemlerinden ayrılmaktadır. • Windows işletim sistemleri farklı disk bölümlerinin hepsini ayrı birer disk olarak kullanmaktadır. • Linux işletim sisteminde ise tüm disk bölümleri bir ağaç yapısı altında toplanmıştır. • Disk bölümlerinde bulunan dosya sistemlerinin linux dizin hiyerarşisine dahil edilmesi için “mount” komutu kullanılır. • mount komutun temel kullanımı : • mount [seçenekler] [bağlanacak_dosya_sisteminin_yeri] [bağlanılacak_dizin] 133
  • 134. 7.1. Dosya Sistemlerinin Bağlanması - Koparılması • Mount komutuna hiç bir parametre verilmediğinde, sisteme daha önceden bağlanmış olan dosya sistemleri görüntülenir. • Mount komutuna verilebilecek parametreler aşağıdaki gibidir : • -a : /etc/fstab dosyasında tanımlanan tüm dosya sistemlerinin bağlanılmasını sağlayan parametredir. • -t dosya_sistem_tipi : Bu parametre ile bağlanacak dosya sisteminin tipi belirtilmektedir. Bu parametre verilmediği takdirde mount dosya sistemini kendisi belirlemeye çalışacaktır. • -L label : Bu parametre sayesinde belirtilen etikete sahip dosya sistemi bağlanır. Bu parametrenin kullanılabilmesi için /proc/partitions sanal dosyasında gerekli bilgilerin bulunması gerekmektedir. • -o seçenek : Bu parametre ile yapılacak bağlama işlemi ile ilgili seçenekler seçilmektedir. • dev : Dosya sisteminde aygıt dosyalarının kullanımına izin verir. • exec : Dosya sisteminde bulununa çalıştırılabilir dosyaların çalışmasına izin verir. • remount : Daha önceden bağlanmış bir sistemin tekrar bağlanmasını sağlar. Kullanım sebebi bağlanama seçeneklerini değiştirmektir. • ro : Dosya sistemi salt-okunur olarak bağlanır. • rw : Dosya sistemi okuma/yazma modunda bağlanır. • suid : Kullanıcı veya grup bitleri set edilmiş programların , belirtilen kullanıcı veya grup izinleri ile çalışmasına izin verir. 134
  • 135. 7.1. Dosya Sistemlerinin Bağlanması - Koparılması • Örnek: CDROM’u /mnt/cdrom dizinine bağlamak için : • mount -t iso9660 /dev/cdrom /mnt/cdrom • Örnek: hdb1 disk bölmünde bulunan FAT32 dosya sistemini /win dizinine bağlamak için : • mount -t vfat /dev/hdb1 /win • Mount edilmiş disklerin kullanım durumlarını görmek için “df -h” komutu kullanılır. • 135
  • 136. 7.1. Dosya Sistemlerinin Bağlanması - Koparılması • Dosya Sistemlerinin Bağının Koparılması • “mount” komutu ile dizin hiyerarşisine dahil edilmiş dosya sistemleri “umount” komutu ile devre dışı bırakılabilir. • umount komutu kullanımı: • umount [seçenekler] [aygıt | dizin] • umount komutuna verilebilecek parametreler aşağıdaki gibidir : • -a : mtab dosyasında tanımlanmış olan tüm dosya sistemlerini devreden çıkarır. • -t dosya_sistem_tipi : Devreden çıkarılacak dosya sisteminin tipini belirtmek için kullanılır. • Örnek : CDROM’u /mnt/cdrom dizininden ayırmak için: • umount /dev/cdrom • umount /mnt/cdrom 136
  • 137. 7.2. Partition İşlemleri • Yeni bir disk alındığında veya mevcut diskin partition yapısı değiştirileceğinde fdisk veya parted adlı programlar kullanılabilir. • Her iki programın sonuna disk aygıt adı yazılarak kullanılır. • 137
  • 138. 7.2. Partition İşlemleri • Sisteme 2GB yeni disk eklediğinde “fdisk -l” ile durumunu kontrol ediyoruz. • Diski bağlı olmadığı görülmektedir. 138
  • 139. 7.2. Partition İşlemleri • Mevcut partition listesini almak için p • partition oluşturmak için n • partition silmek için d • partition tipini değiştirmek için t • İşlem bittikten sonra w ile diske yazılarak çıkılır. • İşlem diske yazılmadan geçerli olmayacaktır. • İşlem diske yazılırken fdisk partition tablosunu yeniden okuyarak işletim sisteminin yeni partition yapısından haberdar olmasını sağlar. • Eğer işlem yapılan disk kullanımda ise hata mesajı alınacaktır. 139
  • 140. 7.2. Partition İşlemleri • partition oluşturuyoruz. • Partition oluşturduktan sonra fdisk -l komutu ile kontrol ediyoruz. 140
  • 141. 7.2. Partition İşlemleri • Diskimizi istediğimiz dosya sistemi ile formatlıyoruz. • Hazırladığımız diskimizi /yedekler dizinine mount ediyoruz ve “df - h” ile durumu kontrol ediyoruz. • sistem yeniden başlatıldığında manuel tekrar mount edilmesi gerekir. • Bunu otomatikleştirmek için “/ etc/fstab” dosyasına yazılmalıdır. • /dev/sdb1 /yedekler xfs defaults 0 0 141
  • 142. 7.3. /etc/fstab Dosyası • /etc/fstab dosyası sistemde bulunan dosya sistemleri hakkında bilgilerin bulunduğu dosyadır. • Bu dosya sayesinde sistemin açılışında kullanılacak dosya sistemleri belirtilen dizinlere bağlanmaktadırlar. • fstab dosyası aşağıdaki yapıya sahiptir : • Birinci alan bağlanacak olan blok cihaz dosyasını veya uzak sistemi belirtir. Hangi cihazın kullanılacağı yerine bağlanılacak sistemin sahip olması gereken etikette verilebilir. • İkinci alan bağlantı noktası olan dizinini belirtir. • Üçüncü alan bağlanılacak dosya sisteminin tipini belirtir. • Dördüncü alan bağlantı için kullanılacak seçenekleri belirtir. (mount –o seçenekleri) • Beşinci alan dump programı tarafından kullanılmaktadır. Eğer bu alan 0 ise dump programı dosya sisteminin içeriğinin dökülmesine gerek olmadığını, 1 ise gerek olduğunu düşünecektir. Dump programı yedek almak için kullanılabilmektedir. • Altıncı alan fsck programı tarafından kullanılmaktadır. Bu alan sayesinde fsck programı hangi sıra ile dosya sistemlerini kontrol edeceğini belirlemektedir. • Bu alanın 0 olması durumunda fsck programı sistemin açılması sırasında diski kontrol etmez. 142
  • 143. 7.4. Yeni Dosya Sistemi Oluşturma • Yeni dosya sistemi oluşturmak için “mkfs” komutu kullanılır. • Bu komut temelde oluşturulacak dosya sisteminin tipine göre uygun komutu çağıran bir arayüzdür. • “mkfs” komutu aşağıdaki yapıya sahiptir : • mkfs [seçenekler] dosya_sistemi [blok_sayısı] • Dosya sistemi olarak belirtilen parametre bir aygıt adıdır. • Mkfs ile kullanılabilecek parametreler aşağıdaki gibidir : • -t dosya_sistemi_tipi : Oluşturulacak dosya sisteminin tipini belirtir. Bu parametre verilmediği takdirde varsayılan dosya sistemi kullanılır. • -c : Dosya sistemini oluşturmadan önce disk üzerindeki bozuk blokların tespit edilmesini sağlar. • -l dosya_ismi : Bozuk blokların listesini dosyadan okumak için kullanılabilir. Bozuk blokları bulup bir dosyaya kaydetmek için badblocks proramı kullanılabilir. 143
  • 144. 7.4. Yeni Dosya Sistemi Oluşturma • Oluşturulacak dosyalama sistemi swap için kullanılacaksa “mkswap” komutu kullanılır. • mkswap aygit_adi • 144
  • 145. 7.5. Dosya Sisteminin Kontrol Edilmesi • Dosya sisteminde oluşabilecek hataların denetlenmesi ve bulunan hataların düzeltilmesi işlevini Linux işletim sisteminde fsck program yapmaktadır. • Sistemin açılmasında kullanılan scriptler sayesinde, her açılışta disklerde sorun olup olmadığı araştırılmakta varsa sorunların giderilmesi fsck programı ile sağlanabilir. • Fsck komutunun temel kullanımı: • fsck [seçenekler] dosya_sistemi • Fsck ile kullanılabilecek parametreler aşağıdaki gibidir : • -t dosya_sistemi_tipi : Bu parametre ile kontrol edilecek olan dosya sisteminin tipi belirtilebilir. • -A : fstab dosyasında belirtilen tüm dosya sistemlerinin kontrol edilmesini sağlar. • -C : Yapılan işlem durumunu %olarak gösterilmesini sağlar. • -N : Programı çalıştırmak yerine sadece yapılacak işlemleri gösterir. • -a : Bulunan hataların kullanıcıdan onay alınmadan giderilmesini sağlar. • -r : Tüm işlemler için kullanıcıdan onay alınmasını sağlar. • -n : Bulunan hataların kullanıcıya sorulmadan yok sayılmasını sağlar. 145
  • 146. 7.6. Uygulama 1.Sisteme 2GB boyutunda yeni disk ekleyiniz. Bu diski yeni bir partition oluşturunuz. Bu partition ext4 dosya sistemi olarak / yedekler dizinine mount ediniz. 2./yedekler dizinini sistem kapatılıp açıldığında tekrardan mount işlemine gerek kalmayacak şekilde yapılandırınız. 3.2GB partition’ı /yedekler dizininden unmount yapınız 4.Oluşturmuş olduğunuz 2GB partition siliniz. 5.Sisteminizi 3GB boyutunda büyütecek şekilde var olan diske ekleyiniz. 146
  • 147. BÖLÜM - 8 Bash Kabuğu Kullanımı 147
  • 148. 8. Bash Kabuğu Kullanımı • Kabuklar kullanıcıların sistem ile etkileşimini sağlayan programlardır. • Bu programlar sayesinde kullanıcı istediği komutları çalıştırabilir ve sonuçları görebilir. • Linux sistemler ile birlikte en çok bash kabuğu kullanılmaktadır. • Sistemde bulunan kabuklar /etc/shells dosyasında bulunur. • Bu dosyada tanımlanmış olan kabuklar sistemde geçerli olan kabuklardır. • Bu dosyada tanımlı olmayan kabuklarda sistemde bulunabilir • 148
  • 149. 8. Bash Kabuğu Kullanımı • Linux sistemlerde çoğunlukla bulunan kabuklar: • Bash (Bourne again shell) : Unix türevlerinde kullanılan temel kabuklardan olan sh ile uyumlu ve bir çok ek özelliği bulunan bir kabuktur. • Csh (C Shell) : Komut yapısı itibari ile C’ye benzer bir yapı kullanan bir kabuktur. • Tcsh : Csh kabuğunun gelişmiş halidir. Dosya ve komut tamamla desteğini içerir. • Linux işletim sisteminde çalıştırılan her komut 3 dosya işaretçisine sahiptir: • Standart Giriş (stdin) : Çalışan programın, dosya gibi ek kaynaklar açmadan veri okumak için kullanacağı kaynağı belirtir. Varsayılan olarak veri girişi klavyeden okuma şeklinde gerçekleştirir. • Standart Çıkış (stdout) : Çalışan programın çıktılarını göndereceği kaynağı belirtir. Varsayılan kaynak terminal penceresidir. • Standart Hata (stderr) : Çalışan programın hata çıktılarını göndereceği kaynağı belirtir. Varsayılan kaynak terminal penceresidir. 149
  • 150. 8. Bash Kabuğu Kullanımı • Her dosya işaretçisi bir numara ile belirtilir. • Standart giriş 0, standart çıkış 1, standart hata 2 değerlerine sahiptir. • Komut çalıştığında veri girişinin belli bir dosyadan yapılması istendiğinde “<“ karakteri ile bir dosya standart girişe yönlendirilebilir. • komut < dosya • Standart çıkış ve hatanın yönlendirilme işlemi temel olarak “>” karakteri ile yapılır. Yönlendirme için temel kullanım: • komut [n]> dosya • n sayısı hangi dosya işaretçisinin yönlendirileceğini belirtir. • Bu sayı verilmediğinde veya 1 olarak verildiğinde standart çıkış için yönlendirme yapılır. • Eğer n sayısı 2 olarak verilirse standart hata için yönlendirme yapılır. 150
  • 151. 8. Bash Kabuğu Kullanımı • “>” operatörü ile yapılan yönlendirilmede hedef dosya yok ise oluşturulur, varsa içeriği sıfırlanır. • İçeriğin sıfırlanması yerine var olan dosyanın sonuna ekleme yapmak için “>>” operatörü kullanılmalıdır. • Bu durumda hedef dosya yok ise oluşturulacak, var ise yapılacak eklemeler dosyanın sonuna yapılacaktır. • Standart hata ile standart çıkışın aynı dosyaya yönlendirilmesi durumunda. Bu yönlendirme 3 farklı şekilde gerçekleştirilebilir: • komut >& dosya • komut &> dosya • komut > dosya 2>&1 151
  • 152. 8. Bash Kabuğu Kullanımı • Login İşlemi • Sisteme login olunduğunda bash ilk önce /etc/profile dosyasını çalıştırır. • Bu dosyadan sonra kullanıcının ev dizininde gizli (hidden) dosya halinde bulunan ~/.bash_profile, ~/.bashrc (dolayısı ile /etc/bashrc) dosyaları okuma izni varsa bu sıra ile çalıştırır. • Ev dizinlerindeki başlangıç dosyaları kullanıcı hesabı ile birlikte oluşturulur. 152
  • 153. 8. Bash Kabuğu Kullanımı • Logout İşlemi • Sistemden logout olunurken ~/.bash_logout dosyası çalıştırılır. • Sistemden çıkarken komut çalıştırmak isterseniz bu dosyasının içerisine yazılabilir. 153
  • 154. 8. Bash kabuğu Kullanımı • Yazılan komutların tamamını yazmadan otomatik tamamlatmak için komutun ilk birkaç harfi yazılıp tab tuşuna basılır. • Yazılan harfler ile başlayan birden fazla komut varsa tüm komutları görmek için iki defa tab tuşuna basılmalıdır. Bu durumda tüm komutlar listelenecektir. • Ekranı temizlemek için “clear” komutu çalıştırılabileceği gibi ctrl+l tuşu da kullanılabilir. • Komut satırında satır başına gitmek için ctrl+a, satır sonuna gitmek için ctrl+e tuşları kullanılabilir. • Kelime silmek için ctrl+w tuşu kullanılabilir. • Yazılan komutların geçmişi saklanmaktadır. • history komutu çalıştırılarak geçmiş görüntülenebilir. • /etc/profile dosyasındaki HISTSIZE değişkeni ile ayarlanmış olduğundan son 1000 komut saklanmaktadır. • Saklanan komutlar ~/.bash_history dosyasında tutulmaktadır. • Komut geçmişinde arama yapabilmek için ctrl+r tuşlarına basıldıktan sonra istenen komut yazılır ve geçmişte arama yapılabilir. ctrl+r tuşlarına tekrar tekrar basılarak görüntüleme yapılabilir. 154