2. Biz kimiz?
Mustafa Kaan DEMİRHAN
#DEU Ceng
@mstfknn
Sinan ŞAHİN
#OMÜ | BİDB Sistem Yönetimi | BÖTE Öğrencisi
@_sinansahin_
Caner FİLİBELİOĞLU
@dimakoci_
3. Konular
Linux ve GNU Nedir?
Dağıtımlar Neler? Hangi Dağıtımı Seçmeliyim?
Ubuntu Kurulumu
Temel Linux Kullanım Bilgileri
Kabuk
Dosya Sistemi
Komutlar
6. Ubuntu Kurulumu
Adım adım sanal makineye Ubuntu kuracağız.
Gereksinimler:
1. Ubuntu 16.04 iso dosyası
2. Sanallaştırma Yazılımı
Bu sunumda sanallaştırma yazılımı olarak Virtualbox tercih edilmiştir.
52. Dosya Sistemi
/bin Temel komutlar
/boot Ön yükleyicinin kullandığı dosyalar
/dev Aygıt dosyaları
/etc Bilgisayara özel yapılandırma
/lib Paylaşılan temel kütüphaneler ve çekirdek modülleri
/mediaÇıkarılabilir aygıtlar için bağlama noktası
53. Dosya Sistemi
/mnt Dosya sistemlerini geçici olarak bağlama noktası
/opt Sonradan eklenen uygulamalar
/sbin Temel sistem programları
/tmp Geçici dosyalar
/usr İkincil kök, kullanıcı için yeni dizilim noktası
/var Değişken veriler
54. /bin
/bin dizini sistem yöneticileri ve normal sistem kullanıcıları için kullanışlı temel
komutları barındırır.
Kullanıcı kabuğu bash ve ls, cp, rm, cat gibi pek çok temel komutu içermesi nedeni ile
en basit sistem kurulumunda bile oluşturulur.
56. /dev
Bu dizin özel veya aygıt dosyalarının konumudur. UNIX dünyasındaki “herşey bir
dosyadır” kuralının bir göstergesi olarak bilgisayara bağlı aygıtlar, donanımlar /dev
altında kendilerine erişimi sağlayan bir dosyaya sahiptirler.
# cat rumelihisari.wav > /dev/dsp
57. /etc
Sistemin önemli yapılandırma dosyaları bu dizindedir.
Yapılandırma dosyaları çalıştırılamayan fakat okunan ve yorumlanan dosyalardır.
Bir programın nasıl çalışacağını belirlerler.
Buradaki dosyalar olmadan sistem programları düzgün çalışmayacaktır.
Her zaman yedeklemede önceliğe sahiptir.
58. /home
Linux çok kullanıcılı bir işletim sistemi olarak kullanıcıların dosyalarını başkalarına
karşı koruduğu gibi herkese çalışması için bir ev (home) dizini sunar. Linux'te standart
olarak kullanıcı dizinleri /home altında yer alır. Buraya kullanıcı istediği dosyaları
yerleştirir, programları kurar veya siler.
59. /lib
Bu dizin çekirdek modülleri ve sistem kütüphanelerini içerir. Çekirdek modülleri
sistemin açılışı için gerekli olup bazı donanımların sistem tarafından tanınmasını
sağlar. Sistem kütüphaneleri ise /bin ve /sbin altındaki programların çalışması için
gerekli C kütüphaneleridir.
Kütüphane dosyalarının uzantısı *.so şeklindedir.
61. /mnt
Dosya sistemlerini veya aygıtları bağlamak için kullanılan genel bağlama noktasıdır.
Bağlama işlemi mount komutuyla yapılır:
# mount /dev/hdd /mnt
Bu dizin içerisinde /mnt/cdrom /mnt/floppy gibi dizinler görülebilir. Sistem yöneticisi
kendisi isterse burada istediği bağlama noktalarını oluşturabilir:
# mount /dev/hda1 /mnt/windows_xp
62. /opt
İşletim sisteminin öntanımlı kurulumu ile gelmeyen tüm yazılım ve paketlerin
kurulumu için /opt dizini tahsis edilmiştir. Örneğin, Firefox, LibreOffice
63. /proc
/proc sanal bir dosya sistemidir. Linux'un sunduğu en güçlü özelliklerden biri de /proc
dosya sistemidir. Buradaki dosyalar gerçek içerik taşımaz. Çalışma zamanında çekirdek
tarafından içerikler güncellenebilir. Sistem belleği, bağlanmış aygıtlar, donanım bilgisi,
süreçlerin durumu gibi çekirdeğe ait bilgileri barındırır.
# lsmod
64. /root
Sistem yöneticisinin ev dizinidir. Sistem kullanıcısı 'root' isimli hesaba sahiptir ve bu
hesabın ev dizini /root dizinidir.
65. /sbin
Sistem programları (system binary) bu dizinde bulunur. Sistem programlarının normal
programlardan (/bin) farkı sistem yönetimine yönelik olmalarıdır. Büyük bir kısmını
çalıştırmaya normal kullanıcılar yetkili değildir. Çalıştırabildikleri ise sistemden bilgi
almaya yönelik, sistemde değişiklik yapmayan sistem komutlarıdır.
66. /usr
Sistemde en çok yer kaplayan dizin /usr dizinidir. Bu dizin kullanıcı için ikinci bir kök
dizin olarak düşünülebilir. Nasılki sistemin /bin, /sbin dizinleri var; /usr/bin ve
/usr/sbin dizinleri de vardır. Sisteme sonradan kullanıcı tarafından kurulan programlar
/usr 'ı kök kabul ederek dosya sistemine yerleşirler.
Örneğin kullanıcı programları /usr/bin'e, sistem programları /usr/sbin'e, yapılandırma
dosyaları /usr/etc veya /usr/local/etc'ye yerleştirilir.
67. /var
Genel olarak değişken (variable) veriler/dosyalar bu dizinde tutulur. Örneğin sistem
günlükleri, mail kuyruğu, gelen mailler, yazıcı kuyruğu, programların kilit dosyaları
vs…
# ls /var
68. /tmp
Geçici olarak kullanılacak dosyalar bu dizinde oluşturulur. Bütün programlar ve
kullanıcılar bu dizine yazabilirler. Buradaki dosyaları ne yaptığınıza emin olmadan
silmeniz tehlikeli olabilir. Çünkü silinen dosyaları o an çalışan süreçlerden biri
kullanıyor olabilir.
70. ls
Dizin içeriğini (dosya ve alt dizinleri) listeler.
ls komutunun pek çok parametresi vardır. Yardım sayfaları (man ls) kullanılarak
detaylı bilgi alınabilir.
$ ls -l
$ ls -a
71. cat
Dosyaları birleştirmek ve standart çıkışa basmak için kullanılır.
$ cat 1.txt
Ben 1.dosyayim
$ cat 1.txt 2.txt
Ben 1.dosyayim
Ben 2.dosyayim
72. more
Bir veya daha fazla dosyanın içeriğini ekranda görmek için kullanılır.
$ more /etc/passwd
73. head
Verilen dosyanın ilk satırlarını görüntüler. –n ile ilk kaç satırın görüntülenmesi
gerektiği belirtilir.
Eğer satır sayısı verilmez ise ön tanımlı olarak ilk 10 satırı gösterir.
$ head –n 2 beni.oku
Ben sevimli bir dosyayim.
Bende toplam 3 satir vardir.
74. tail
Dosyanın son kısımlarını gösterir. –c ile byte sayısı, -n ile satır sayısı verilebilir. Eğer
dosya verilmez ise standart girişten okur.
$ tail -n 1 beni.oku
Iste bu da son satir.
75. cp
Dosya kopyalar. Bir dosyayı başka bir dosya olarak kopyalayacağı gibi birkaç dosyayı
bir dizine de kopyalayabilir.
$ cp -pv *.txt arsiv/
`11-01-2007.txt' -> `arsiv/11-01-2007.txt'
`11-02-2007.txt' -> `arsiv/11-02-2007.txt'
`ozet.txt' -> `arsiv/ozet.txt'
76. df
Belirtilen dosya sistemine ait veya bağlanmış dosya sistemlerinin boş disk alanını
gösterir. Ölçü birimi her blok için 512 byte’tır. BLOCKSIZE çevre değişkeni ile
görüntüleme birimi değiştirilebilir.
80. ln
Dosyalar ve dizinler arasında bağlantılar kurar. Bu komut, orijinal dosya ile aynı
yetkilendirmeye sahip yeni bir dosya kaydı oluşturur.
İki çeşit bağlantı vardır. Sıkı (hard) bağlantılarda yapılan değişikler orijinal dosyayı
etkiler. Sembolik (soft) bağlantı sadece orijinal dosyayı gösteren bir isimdir. Sembolik
bağlantıya erişim, orijinal dosyaya erişime neden olur. Ancak sembolik bağlantının
silinmesi orijinal dosyayı silmez.
Kullanımı:
ln seçenek mevcut_dosya olusturulacak_bağlantı
81. mkdir
Dizin oluşturmak için kullanılır.
-p
Oluşturulacak dizinin üst dizinleri yoksa onları da oluşturur.
$ mkdir arsiv
$ mkdir –p 2007/02/17/18/00
82. touch
Eğer belirtilen dosya mevcut ise dosya erişim ve değiştirilme zamanlarını günceller.
Eğer belirtilen dosya mevcut değilse dosyayı oluşturur.
84. grep
Dosya içinde arama yapmak için kullanılır.
grep'in temel kullanımı:
$ grep [-seçenekler] desen(pattern) dosyalar
$ grep ubuntu /etc/passwd
85. find
Dosya aramak için kullanılır.
Kullanımı:
$ find dizin seçenekler
$ find / -name httpd.conf
86. chmod
Dosya modunu değiştirir. Dosya modları, dosya üzerindeki yetkileri üç grup için
düzenler: 1. Dosya sahibi 2. Dosya sahibinin grubundakiler 3. Herkes
Yetkiler ise üç adettir: Okuma, yazma ve çalıştırma.
Yetkiler sayılarla (Okuma = 4, yazma = 2, çalıştırma = 1) veya r, w ve x gibi harflerle
temsil edilebilir.
$ chmod +r sirala.sh
$ chmod u+w sirala.sh
$ chmod g+x,o+x sirala.sh
87. chown
Dosya sahibi ve grubunu değiştirir.
$ chown simsek:admin beni.oku
$ ls -l beni.oku
88. expr
Matematiksel ifadeleri hesaplamak için kullanılır. İfadeye ait bütün elemanlar ayrı
parametre olarak verilmelidir. Yani aralarında boşluk olmalıdır.
$ expr 5 > 2
$ expr 3 + 4
$ expr 13 % 10
90. kill
Çalışan bir süreci sonlandırmak veya sürece sinyal göndermek için kullanılır.
# kill –Sinyalnumarası pid
Yalnızca yetkili kullanıcı diğer süreçlere sinyal gönderebilir. Normal kullanıcılar ancak
kendi oluşturdukları süreçlere sinyal gönderebilirler.
93. wc
Kelime, satır, karakter ve byte sayar. Girdiyi standart girişten veya parametre olarak
verilen dosyadan alır.
-c Karakter sayısını verir.
-l Satır sayısını verir.
-m Karakter sayısını verir. Ancak eğer yerel ayarlar multibyte’ı
destekliyorsa onları da sayar.
-w Kelime sayısını sayar.
$ cat beni.oku | wc –l
94. cut
Standart girişten okuduğu satırlar içindeki istenen sütunları gösterir. Sütun seçme
işlemi bir ayıraca göre yapılabileceği gibi sabit boyda da yapılabilir.
# cat /etc/passwd
96. shutdown
Verilen zamanda sistemi kapatır.
-p Sistemi durur (halt) ve gücü keser (donanımın desteklemesi lazım).
-r Sistemi yeniden başlatır (reboot).
# shutdown –r now
# shutdown –p now
97. sync
Bekleyen disk yazmalarının tamamlanmasını zorlar. Genellikle reboot ve halt
işlemlerinden önce kullanılır. Eğer önbellekte duran ve henüz diske yazılmayan bilgiler
varsa bunların diske yazılmasını zorlar. Böylece sistemi kapatmadan önce veri kaybı
olmayacağı garantilenir. Reboot ve halt komutları verildiğinde çalışan betikler bu
işlemi otomatik olarak yaptığından sistem yöneticisinin normalde ellen bu işlemi
yapmasına gerek yoktur. Hiçbir parametre almaz.
# sync
99. Yetkiler
'ls' komutu -l parametresi ile kullanıldığında yukarıdaki gibi dosyaların yetkilerini
belirten ayrıntılı bir çıktı verir. Satır başında yer alan -rwxr-xr-x bu dosyaya ait hakları
belirtmektedir. Bu haklar üç kısımdan oluşmaktadır.
-rwxr-xr-x
100. Dosyaların Türleri
'-' file(dosya)
'd' directory (dizin)
'l' symbolic link (sembolik bağ)
'c' character special device (karakter aygıt)
'b' block special device (blok aygıt)
'p' fifo
's' socket
103. Kullanıcı ve Gruplar
'ls -l' çıktısındaki önemli bir bilgi de üçüncü ve dördüncü sütunda yer alan dosyanın
sahibine ait kullanıcı ve grup bilgisidir.
# whoami
root
# su – sinan
$ whoami
sinan
$ groups
104. Dosyanın sahibini ve grubunu değiştirme
Bir dosyanın sahibini ve grubunu değiştirmek için:
# chown root /file
# chgrp wheel /file
Bu iki işlem tek bir chown komutu kullanılarak da yapılabilir:
# chown root:wheel /file
106. /etc/passwd
Kullanıcıya ait bütün bilgiler /etc/passwd dosyasında yer alır. Bu dosya satır satır ve her
satırı kolon (:) simgesi ile ayrılmış aşağıdaki gibi kullanıcı bilgilerini içerir:
kullanıcı_adı:parola:kullanıcı_no:grup_no:açıklama:ev_dizini:kabuk
# tail /etc/passwd
# tail /etc/shadow
107. /etc/group
Her kullanıcı bir gruba üyedir. Grup kavramı, ortak çalışma ve aynı yetkilere sahip
kullanıcılar oluşturabilmek için oluşturulmuştur. Her kullanıcının grup bilgisi passwd
dosyasında yazmaktadır. İçeriği aşağıdaki gibidir:
sambashare:x:128:sinan
İlk sütun grup ismini, ikincisi parola alanını, üçüncüsü grup numarasını ve dördüncü
alan bu gruba üye kullanıcıları gösterir.
108. Hesap İşlemleri
Yetkili kullanıcılar sisteme kullanıcı ekleyebilir, çıkarabilir, parola değiştirebilir.
# groupadd test
# useradd testusr -d /home/testusr -s /bin/bash -g test
# id testusr
uid=9029(testusr) gid=9060(test) groups=9060(test)
# passwd testusr
109. Açılış Dosyaları
Kullanıcıların sisteme her girişinde yapılmak istenen işlemler /etc/profile dosyasına
yazılır. Bu dosya tüm kullanıcılar için geçerli olup yetkili kullanıcı tarafından
düzenlenebilir. Kullanıcılar ise kendileri için her girişte yapılmasını istedikleri işlemleri
kendi ev dizinindeki .bash_profile dosyasına yazar. Eğer bu dosya yoksa oluşturulması
gerekir.
Her kabuk programının açılış dosyası farklıdır. Bash kabuğu .bash_profile dosyasını
kullanır.
110. Süreç Yönetimi
Bir progrmın çalışan haline süreç (process) denir ve Linux altında çalışan her bir
süreç, PID denen süreç numarası ile takip edilir.
$ ps
$ ps -aux
111. Derleyerek Program Kurma
Linux altında programları derlemek için gcc kullanılır. Programlar insanların
anlayacağı dille yazıldığından makinanın (programları yorumlayan işlemcidir)
anlayacağı dile çevrilmesi lazım. Bu işi derleyiciler yapar ve bu işleme program
derleme denir.
# tar -zxf kaynakkod.tar.gz
# ./configure
# make
# make install