# GNU/Linux Türkçe Döküman

GNU/Linux hakkındaki bilgilendirici dökümanlar derlenmiştir. Ücretsiz bir şekilde faydalanabilirsiniz.

GNU/Linux İşletim Sistemleri hakkında bilgisi olan arkadaşlarımızdan bir isteğim var. Dökümanı geliştirmek için bildiğiniz bir konuyu ekleyebilirseniz, döküman daha çok kişiye yardımcı olabilir. Bunun için sağ üstteki **Edit on Github** butonunu veya aşağıdaki bağlantıdan bu repoya ulaşabilirsiniz. Yardımcı olacaklara şimdiden teşekkür ederim.

{% embed url="<https://github.com/ksckaan1/linuxdokuman>" %}

Bana aşağıdaki platformlardan ulaşabilirsiniz.

| Platform                                  | Id                                        |
| ----------------------------------------- | ----------------------------------------- |
| ![](/files/-MMAyP0URF2vWj8rMOyx) Twitter  | [@ksckaan1](https://twitter.com/ksckaan1) |
| ![](/files/-MMAyP0VzwRbgdMtAGHR) Telegram | [@ksckaan1](https://t.me/ksckaan1)        |
| ![](/files/-MMAyP0WOnlkh_0EFCuW) Github   | [@ksckaan1](https://github.com/ksckaan1)  |


# Kaynakça

{% embed url="<https://wikipedia.org>" %}

{% embed url="<https://linux.org>" %}

{% embed url="<https://ubuntu-tr.net>" %}

{% embed url="<https://redhat.com>" %}


# Linux Nedir?

**Linux**, **1991** yılında **Linus Torvalds** tarafından geliştirilmesine başlanan monolitik (*tek dosyadan oluşan*) işletim sistemi çekirdeğidir.GNU/Linux işletim sistemleri bu çekirdek üzerinde çalışır.

İlk olarak 1991 yılında Linus Torvalds tarafından kendi bilgisayarı için çapraz-plaform amacı olmadan tasarlanmıştır. Daha sonra desteklediği mimari sayısı artmıştır. Linux çekirdeği [GNU Genel Kamu Lisansı](https://tr.wikipedia.org/wiki/GNU_GPL) sürüm 2 (GPLv2) altında yayınlanmaktadır.

Linux çekirdeği ile oluşturulan işletim sistemlerine **Linux İşletim Sistemi** (*İS*) denmesi gibi bir ağız alışkanlığı vardır. Aslında doğrusu **GNU/Linux İşletim Sistemi**'dir. Fakat toplum arasında **Linux İS** tabiri daha popülerdir.


# GNU Nedir?

GNU, içerisinde çekirdek, araçlar, kütüphaneler ve son kullanıcı yazılımlarını içeren açık kaynaklı bir işletim sistemidir. İsminin açılımı GNU's Not Unix'dir. Bunun anlamı ise GNU projesinin Unix gibi kapalı kaynak olmadığı ve kodlarında Unix kodlarının kullanılmadığıdır. GNU işletim sistemi Linux gibi çekirdekler ile çalışabilir. Bu durumda çıkan işletim sistemine GNU/Linux işletim sistemi denir.

GNU işletim sistemi planı ilk olarak 1983 Eylül'de Richard Stallman tarafından duyurulmuştur. 1984 Ocak ayında işleyişe başlamıştır. 2006 yılından itibaren etkin olarak geliştirilmektedir.

Resmi çekirdeği **GNU Hurd**'dür. Hurd çekirdeği tamanlanamadığından dolayı Linux'un devreye girmesi ile birçok GNU kullanıcısı Linux çekirdeğine geçiş yapmıştır. Böylece Linux, Hurd'ün yerini doldurmuştur. GNU resmi olarak **X.Org** ve **TeX** gibi yazılımları da desteklemektedir.

## Sistemin Başlıca İçerikleri

* GNU Compiler Collection (gcc)
* GNU Binary Utilities (binutils)
* Bash Kabuğu (bash)
* GNU C Kütüphanesi (glibc)
* Çekirdek Araçları (coreutils)

Görsellik açısından **X.Org**'u; yazım açısından da **TeX** yazılımlarını kullanır.

Linux çekirdeğini kullanan kullanıcılar sistemlerine genel olarak "Linux" demektedir ancak GNU Projesi "Linux" yerine "GNU/Linux" denmesini önerir. Çünkü Linux, bünyeside GNU araçlarını barındırmaktadır. Bu konudaki tartışma uzun süredir devam etmektedir.


# Temel GNU/Linux Yapısı

GNU/Linux yapısı birçok farklı parçalardan oluşur. Bu parçaların birleşimine işletim sistemi adını veririz.

Temel GNU/Linux İS parçaları şunlardır:

## Bootloader (Önyükleyici)

Bilgisayarınızın önyükleme sürecini yöneten yazılımdır. Çoğu kullanıcı için bu, basitçe açılan ve sonunda işletim sistemine önyükleme yapmak için kaybolan bir açılış ekranı olacaktır. (Örn: GRUB)

## Kernel (Çekirdek)

Bu, aslında "Linux" olarak adlandırılan bütünün tek parçasıdır. Çekirdek, sistemin çekirdeğidir ve CPU, bellek ve çevre birimlerini yönetir. Çekirdek, işletim sisteminin en düşük seviyesidir.

## Init System (Sistem Önyükleyici)

Kullanıcı alanını önyükleyen ve arka plan yordamlarını kontrol etmekle görevlendirilen bir alt sistemdir. En yaygın kullanılan init sistemlerinden biri systemd'dir (en tartışmalı olanlardan biri). Önyükleme sürecini, önyükleyiciden (yani GRUB veya GRand Unified Bootloader) teslim aldıktan sonra yöneten init sistemidir. Sistemin çalışmasındaki kilit oyuncudur.

## Daemons (Arkaplan Hizmetleri)

Önyükleme sırasında veya masaüstünde oturum açtıktan sonra başlayan arka plan hizmetleridir (yazdırma, ses, programlama, vb...)

## Graphical Server (Grafik Sunucuları)

Monitörünüzdeki grafikleri görüntüleyen alt sistemdir. Genellikle X sunucusu veya yalnızca X olarak adlandırılır. (Xorg, Wayland...)

## Desktop Environment (Masaüstü Ortamı)

Kullanıcıların gerçekte etkileşimde bulunduğu parçadır. Aralarından seçim yapabileceğiniz birçok masaüstü ortamı vardır (GNOME, Cinnamon, Mate, Pantheon, Enlightenment, KDE, Xfce, vb.). Her masaüstü ortamı yerleşik uygulamalar (dosya yöneticileri, yapılandırma araçları, web tarayıcıları ve oyunlar gibi) içerir. Birçok yerde DE olarak kısaltmasını görebilirsiniz.

## Applications (Uygulamalar)

Masaüstü ortamları tüm uygulamaları sunmaz. Tıpkı Windows ve macOS gibi Linux, kolayca bulunabilen ve kurulabilen binlerce yüksek kaliteli yazılım başlığı sunar. Modern Linux dağıtımlarının çoğu, uygulama kurulumunu merkezileştiren ve basitleştiren App Store benzeri araçlar içerir. Örneğin, Ubuntu Linux, binlerce uygulama arasında hızlı bir şekilde arama yapmanıza ve bunları tek bir merkezi konumdan yüklemenize olanak tanıyan Ubuntu Yazılım Merkezi'ne (GNOME Yazılım Merkezinin üzerinde oynanmış haline) sahiptir.


# Dağıtımlar (Distributions)

GNU/Linux, her tür kullanıcıya uyacak çeşitli farklı sürümlere sahiptir. Yeni kullanıcılardan ileri seviye kullanıcılara kadar, ihtiyaçlarınızı karşılayacak bir GNU/Linux "dağıtımı" bulacaksınız. Bu sürümlere dağıtım (distribution) (veya kısaca "distro") denir. Neredeyse her Linux dağıtımı ücretsiz olarak indirilebilir, diske (veya USB flash sürücüye) yazılabilir ve yüklenebilir (istediğiniz kadar makineye).

## Örnek Popüler Linux Dağıtımları:

* Manjaro Linux
* Linux Mint
* Ubuntu
* Debian
* Arch Linux
* Fedora
* Gentoo Linux
* Solus
* Antergos

Güncel popülerliği öğrenmek isterseniz, [Distrowatch](https://distrowatch.com/) sitesine gözatabilirsiniz.

Her dağıtımın masaüstüne farklı bir yaklaşımı vardır. Bazıları çok modern kullanıcı arayüzlerini (GNOME ve Elementary OS’nin Pantheon'u gibi) tercih ederken, diğerleri daha geleneksel bir masaüstü ortamını tercih eder (openSUSE KDE kullanır). Bu tamamen sizin göz zevkinizle alakalı bir durumdur.

## Sunucu'lar için Tercih Edilen Popüler GNU/Linux Dağıtımları

* CentOS
* Ubuntu Server
* Red Hat Enterprise Linux
* SUSE Enterprise Linux

Yukarıdaki sunucu dağıtımlarından bazıları ücretsizdir (Ubuntu Sunucusu ve CentOS gibi) ve bazılarının ilişkili bir fiyatı vardır (Red Hat Enterprise Linux ve SUSE Enterprise Linux gibi). İlişkili bir fiyata sahip olanlar ayrıca desteği de içerir.


# Hangi Dağıtımı Seçmeliyim?

Aslında bu çok tartışmalı olan bir konudur. Birçok kişi kendi kullandığı distro'nun en iyi olduğunu söyleyecektir, hatta avukatlığını bile yapacaktır. O yüzden bu sorunun cevabını hiç bekletmeden vermek gerekir ise en iyi distro diye birşey yoktur. Farklı kullanıcı kesimlerine elinden geldiğince iyi bir çözüm vermeye çalışan distro'lar vardır. Bu yüzden internette *"en iyi linux dağıtımı"* yazarak aratmak size bir çözüm olmaz. Genellikle her kullanım amacı için farklı bir dağıtım önerilse de kullanıcı isteklerine göre de önerimlerde bulunulabilir.

## Örnek bir distro seçme yöntemi:

* GNU/Linux konusunda ne kadar deneyimlisiniz?
* Modern mi yoksa standart bir masaüstü arayüzü mü tercih ediyorsunuz?
* Sunucu için mi kullanacaksınız, yoksa masaüstü için mi?

Bu sorulardan yola çıkarak bir seçim yaparsanız, size uygun bir dağıtımı bulmaya o kadar yaklaşırsınız.

`"İstediğim dağıtımı bulamıyorum"` diye üzülmeyin. Daha binlerce GNU/Linux dağıtımı var.

Bilgisayar becerileriniz oldukça basitse, Linux Mint, Ubuntu, Elementary OS veya Deepin gibi yeni kullanıcı dostu bir dağıtıma bağlı kalmak isteyeceksiniz. Beceri setiniz ortalamanın üzerinde bir aralığa yayılıyorsa, Debian, Manjaro veya Fedora gibi bir dağıtımla gidebilirsiniz. Bununla birlikte, bilgisayar ve sistem yönetimi konusunda oldukça ustalaştıysanız, Gentoo ve Arch Linux gibi bir dağıtım kullanın. Gerçekten bir meydan okuma istiyorsanız, Linux From Scratch'ın yardımıyla kendi Linux dağıtımınızı oluşturabilirsiniz. Eğer dağıtımınızı Masaüstü Ortamına göre seçtiyseniz, şunu bilmeniz gerekir ki, Masaüstü Ortamları sistem kurulduktan sonra değiştirilebilir.

Yalnızca sunucuya yönelik bir dağıtım arıyorsanız, bir masaüstü arayüzüne mi ihtiyacınız olduğuna yoksa bunu yalnızca komut satırı aracılığıyla mı yapmak istediğinize de karar vermek isteyeceksiniz. Ubuntu Sunucusu bir GUI arabirimi kurmaz. Bu, sunucunuzun grafik yüklerken tıkanmayacağı iki şey anlamına gelir ve Linux komut satırını sağlam bir şekilde anlamanız gerekir. Ancak, `sudo apt-get install ubuntu-desktop` gibi tek bir komutla Ubuntu Sunucusunun üstüne bir GUI paketi kurabilirsiniz. Sistem yöneticileri, özelliklerle ilgili bir dağıtımı da görmek isteyeceklerdir. Sunucunuz için ihtiyacınız olan her şeyi size kutudan çıkaracak, sunucuya özel bir dağıtım mı istiyorsunuz? Öyleyse, CentOS en iyi seçim olabilir. Yoksa, bir masaüstü dağıtımı alıp, ihtiyacınız olan parçaları eklemek mi istiyorsunuz? Öyleyse, Debian veya Ubuntu Linux size iyi hizmet edebilir.


# Uygulama Depoları ve Paket Yöneticileri

Birçok GNU/Linux dağıtımının kendine özel Uygulama Deposu (Uygulama Mağazası) ve Paket Yöneticisi (Komut satırından uygulama yöneticisi) bulunur. Dağıtımları birbirinden ayıran en temel özellik budur.

![Ubuntu Software Center](/files/-MMAyPEz9ZQd-69keTWe)

Dağıtıma özel bir uygulama mağazası bulunabileceği gibi komut satırından paket yönetimi aracı da bulunur.

## APT - Advanced Packaging Tool (Gelişmiş Paketleme Aracı)

Debian tabanlı dağıtımlarda kullanılır. (Ubuntu, Elementary, Linux Mint, Pop! Os, Pardus)

Örnek kullanım:

![Örnek apt kullanımı](/files/-MMAyPF-8pQuaJt7QNNr)

Paket yükleme işlemi için yönetici izni gereklidir. Bunun için yükleme komutumuzun başına "`sudo`" yazmamız gerekir. Komutlarımızı sudo yazarak kullanırsak bize yönetici şifresi soracaktır. Şifremizi girerken haneler gösterilmeyecektir. Bunun için şifrenizi yazamadığınızı düşünmeyin. Bu güvenlik amaçlıdır.

Örnek uygulama/paket kaldırma komutu:

> sudo apt remove skype

Daha fazla komut için kullandığınız dağıtım için araştırma yapabilirsiniz.

APT paket yöneticisine daha fazla paket eklemek için repo'lardan faydalanabilirsiniz. Nasıl repo ekleneceğini kolayca araştırıp bulabilirsiniz.

## Pacman - Package Manager (Paket Yöneticisi)

Arch Linux tabanlı Dağıtımlarda kullanılır. (Manjaro Linux, Archman Linux, Antergos, Arco Linux)

![Örnek pacman kullanımı](/files/-MMAyPF0pLdkqCzd6r7n)

Örnek uygulama/paket kaldırma komutu:

> sudo pacman -R skype

Arch tabanlı dağıtımlarda ek olarak AUR mevcuttur. AUR - Arch User Repository (Arch Kullanıcı Deposu) üzerinden GNU/Linux kullanıcı uygulamaları burada barındırılır. Bu sayede Arch üzerinde uygulama çeşitliliği çoğaltılmıştır.

AUR'dan paket yüklemek için Pamac (GUI), Octopi (GUI), yay (CLI) gibi uygulamalardan faydalanabilirsiniz.

## Diğer paket yöneticileri

* Snap (Tüm dağıtımlar için)
* Flatpak (Tüm dağıtımlar için)
* yum (Fedora)
* dnf (Fedora)
* Portage (Gentoo)


# GNU/Linux Dizin Yapısı

Bu bölümde GNU/Linux sistemlerdeki dizin (klasör) yapısını göreceğiz. Dosya sistemini oluşturan dizinler, kapsadıkları dosyalar ve bunların Linux işletim sistemindeki görevleri de kısaca belirtilecektir.

Linux dizin yapısının geliştirilmesinde FSSTND (file system standard) grubunun çalışmalarının payı çok büyük olmuştur.

Linux dizin yapısında bazı dizinlerin işlevi birbiriyle aynıdır. Bu durum, özellikle birbirini takip eden iki Linux sürümünde belirginleşir. Örnek olarak bir dağıtımda `/usr/bin` dizini altında yeralan dosya, diğer sürümde `/bin` altına yerleştirilebiyor.

Dosya sistemleri ve dizinler paylaşımlı olarak da kullanılabilir. Birden fazla kişisel bilgisayarın bağlandığı ağda, disk alanından yer kazanmak için bir makina sunucu (ana makina) olarak tayin edilir. Ağ üzerindeki diğer makinalar da sunucu üzerindeki diski paylaşır. Buna örnek olarak kullanıcı ev dizinlerinin yeraldığı `/home`, çalıştırılabilir dosyaların bulunduğu /usr, e-posta ve haber grubu bilgilerinin bulunduğu `/var/spool/mail` ve `/var/spool/news` dizinleri verilebilir.

Kök dizini, kendisine bağlı diğer tüm dizinleri de içerdiğinden, Linux dosya sisteminde önemli bir yere sahiptir. Linux açılırken önce kök dizini `/etc/fstab` dosyasına uygun şekilde bağlanır. Diğer dosya sistemlerinin onarımı ve kontrolü için gerekli olan fsck programları, bu dizinde bulunmalıdır. Benzer şekilde yedekleme için gerekli olan *tar, zip, compress* gibi arşiv programlarına da kök dizin altından erişilebilmeli, açılış esnasında hafızaya yüklenen çekirdek de kök dizininde yeralmalıdır.

Bir programı yerine koymadan önce bazı "dengelerin" gözönünde tutulmasında yarar vardır. Programlanan her yazılımı kök dizinine koyarsanız, bir süre sonra bu dosya sisteminin şiştiğini görürsünüz. Kök dizinini başlangıçta küçük (*20-30Mb kadar*) tutmak, geliştirilen programları daha önceden belirlenen başka bir dosya sistemi altına koymak akıllıca olur. Bu yol, ağ üzerinden genellikle paylaşımı mümkün olmayan kök dizininin her makinadaki sabit diskte mümkün olan en az yer işgal etmesini sağlar.

Sistemdeki önemli dizinlere göz atarsak,

* **/bin** Sistemin açılışı ve kontrolü için gerekli komutlar. Hem kullanıcıların, hem de sistem görevlisinin kullanabileceği dosyalar (kök dizinde ise fazla şişmemesi koşuluyla) buraya atılabilir. Sadece root kullanıcının ihtiyaç duyacağı init, getty, updatedb gibi programlar /sbin veya /usr/sbin'de durabilir. Bu dizinde bulunan dosyalara örnek olarak cat, chgrp, chown, date, dd, df, ln, mkdir, mount, ps, rm, sh, su, sync ve umount verilebilir.
* **/dev** G/Ç dosyaları. Linux çekirdeğinde desteklenen her aygıta ait dosya /dev dizini altında bulunur. Kurulum anında bu dosyalar yerine yerleştirilir, bu dosyaların silinmesi durumunda /dev/MAKEDEV ile tekrar yaratılabilirler.
* **/etc** Sistem yapılandırma dosyaları. Bu dizinde çalıştırılabilir dosyalar bulunmamalıdır.&#x20;
  * **skel** Buradaki dosyalar, kullanıcı hesabı açıldığında kullanıcının ev dizinine kopyalanır.
  * **rc.d** Bu dizinin içinde, init sürecinin başvurduğu yapılandırma dosyaları vardır. Bunlara "rc dosysları" da denir.
  * **passwd** Kullanıcı veritabanı
  * **fstab** Linux'un açılışı esnasında bindirilecek dosya sistemleri burada listelenir.&#x20;
  * **group** passwd'e benzer şekilde kullanıcıların gruplarını tutar.
  * **inittab** init daemon için yapılandırma dosyası
  * **motd** Kullanıcı sisteme girdikten sonra ekranına basılması istenen mesaj burada tutulur.
  * **profile** Kullanıcı sisteme girdiği zaman çalıştırılan dosya (csh ve sh türevi kabuklar için)
  * **shells** Sistemde kullanılabilecek kabuk isimleri burada tutulur.
  * **login.access** login komutu için yapılandırma dosyası. Sisteme girişi kullanıcı bazında sınırlamak için kullanılır.
* **/home** Kullanıcılara ayrılmış dizin. Başka şekilde ayarlanmamış ise, açılan her hesaba ait kullanıcı, burayı kullanır. Büyük sistemlerde, bu kısım alt parçalara ayrılabilir (/home/ftpadm , /home/ogrenci gibi)
* **/lib** Kütüphane dosyaları.
* **/mnt** Geçici mount edilen dosya sistemleri. Sadece bu iş için kullanıldığından sistem görevlisine zaman kazandırır.
* **/proc** Süreç kontrollerini ve diğer sistem bilgilerini tutan dosya sistemi. Bu dosya sistemi aslında disk üzerinde yer kaplamaz, tüm dosyalar çekirdeğin bir uzantısı sayılabilir.
  * **cpuinfo** işlemci modeli, tipi ve performansını bildirir.
  * **devices** Halihazırda çalışan çekirdek içinde desteği bulunan aygıt sürücülerini listeler.
  * **dma** Hangi dma kanallarının kullanıldığını belirtir.
  * **filesystems** Halihazırda çalışan çekirdek içinde desteği bulunan dosya sistemlerini listeler.
  * **interrupts** Hangi kesintilerin kullanımda olduğunu söyler.
  * **iports** Halen hangi giriş/çıkış iskelelerinin kullanıldığını belirtir.
  * **kcore** Sistem hafızasının görüntüsü
* **/root** Sistem görevlisinin ev dizini. Mümkünse bu dizini sistemdeki diğer kullanıcıların görmeyeceği şekilde ayarlayın.
* **/sbin** Hayati sistem komutları. Bir zamanlar bu dosyalar `/etc` dizini altında yeralıyorlardı. Sadece sistem görevlisinin ihtiyacı olan komutlar, /sbin veya /usr/sbin içinde bulunur.
* **/tmp** Geçici dosyaların koyulduğu dizin. Belirli zaman aralıklarında temizlenmelidir.
* **/usr** Diğer önemli sistem dosyalarını tutar. Bu bölüm genelde en kalabalık dizindir, zira yeni kurulan tüm programlar buraya konulur.
  * **X11R6** X Pencere sistemi bilgileri tutulur.
  * **doc** Belge ve dökümanlar, genellikle HOWTO ve FAQ dosyaları.
  * **lib** Bazı kütüphaneler
  * **man** Man dosyaları
  * **src** Bazı kaynak dosyaları ve linux çekirdeğini oluşturan kodları (/usr/src/linux) içeren dizin.
  * **sbin** Kök dosya sisteminde yeralması gerekmeyen çalıştırılabilir sistem görevlisi dosyaları
* **/var** Sürekli değişen sistem bilgileri burada tutulur. İstisnalar dışında diğer makinalarla paylaştırılmaz.&#x20;
* **adm** Sistem yönetimini ilgilendiren kayıtlar preserve Sistemin göçmesinden sonra zarar görmesi mümkün dosyaların kaydedildiği yer.
* **spool** Sonra işlenecek olan veriler buraya atılır (e-posta gibi)

Yukarıdaki dizin yapıları her sistem için farklılık gösterebilir.


# Temel GNU/Linux Komutları

## cd komutu

Bulunulan dizini değiştirmek için kullanılır.

```
$ cd ./klasörüm
```

## pwd komutu

Hangi dizinde bulunduğumuzu gösterir.

```
$ pwd
/home/kaanksc/Desktop
```

## cat komutu

Bir dosyanın içeriğini görmek için kullanılır.

```
$ cat dosya.txt
Merhaba Dünya
```

## ls komutu

Bulunulan dizindeki içeriği görmek için kullanılır.

```
$ ls
deneme.txt  örnek.txt
```

Gizli Dosyaları görmek için `ls -a` kullanabilirsiniz.

## mv komutu

Dosya ve klasörleri taşımak ve yeniden isimlerdirmek için kullanılır.

### Taşıma örneği

```
mv ./kaan.txt /home/kaanksc/Documents/
```

Yukarıda kaan.txt dosyasını /home/kaanksc/Documents/ klasörüne taşıdık.

### Yeniden İsimlendirme Örneği

```
mv deneme.txt deneme2.txt
```

## cp komutu

Dizin ve dosyaları kopyalamak için kullanılır.

```
cp deneme.txt /home/kaanksc/Documents
```

Yukarıda `deneme.txt` dosyasını `/home/kaanksc/Documents` dizinine kopyalamış olduk.

## touch komutu

Boş dosya oluşturmak için kullanılır.

```
touch kaan.txt
```

`kaan` isminde bir `txt` dosyası oluşturduk.

## mkdir komutu

Dizin oluşturmak için kullanılır.

```
mkdir klasörüm
```

## rm komutu

Dosya ve dizini silmek için kullanılır. Kullanırken dikkatli olmanızı öneririm.

### Dosya Silme

```
rm dosya.txt
```

### Dizin Silme

```
rmdir klasör
```

### İçinde Dosya Olan Bir Dizini Silme

```
rm -rf klasör
```

## grep komutu

Belirli bir dosya içerisindeki metinde arama yapar.

```
grep "merhaba" örnek.txt
```

## kill komutu

Bir işlemi sonlandırmak için kullanılır. İş veya İşlem numarı olmalıdır.

```
kill 1126528
```

## man komutu

Terminal komutlarının yardım sayfalarına ulaşabilirsiniz.

```
man ls
```

Detaylı bir şekilde ls komutunun kullanımını anlatır.

Temelde kullanacağımız komutlar bu şekildedir. Daha fazla komut bulmak için arama motorlarında `Linux komutları` olarak aratabilirsiniz.


# Türkçe GNU/Linux Toplulukları

{% embed url="<https://ubuntu-tr.net>" %}

{% embed url="<https://www.pardus.org.tr/>" %}

{% embed url="<https://archman.org/>" %}

{% embed url="<https://www.linuxmint.net.tr/>" %}


# Türkçe GNU/Linux Blogları

{% embed url="<https://www.pisilinux.org/blog>" %}

{% embed url="<https://www.sistemlinux.org/>" %}


# Linux Sistem Yöneticisi Kimdir?

Linux sistem yöneticisi, Linux sunucu sisteminin yapılandırılması, kurulumu, dağıtımı ve izlemesinden sorumludur.

Linux altyapı teknolojisini koruma ve geliştirme konusunda uzmanlaşan linux sistem yöneticisinin sorumlulukları şunlardır;

* Sistem ve altyapının kesintisiz hizmet vermesini sağlamak,
* Yazılım yükseltmeleri, yamalar ile sunucu, iş istasyonları ve ağ donanımındaki hot fixleri yönetmek,
* İşletim sistemi, üçüncü parti yazılımlar ve sistem yönetim araçlarını test etmek,
* Kurulum veya prosedür belgelerini oluşturmak ve güncellemek,
* Tüm ortamlarda sistemleri ve hizmetleri yönetme konusunda en iyi uygulamaları sürdürmek,
* Sistem performansını ve kapasite planlamasını proaktif olarak izlemek,
* Sistemli bir şekilde yedekleme faaliyetlerini gerçekleştirmek,
* Sistem çapında güncellemeleri tanımlamak ve uygulamak,
* Olası sorunların tespiti ve çözümü konusunda ilgili ekip ve üreticiler ile birlikte kök-neden analizi yapmak,
* Atanan görevlerle ilgili teknik dokümantasyonları tamamlamak,
* Dönüşümlü olarak acil durum müdahale (on-call) takımında yer almak.


# GNU GRUB (Ön Yükleyici)

**Grand Unified Bootloader** ya da **GNU GRUB** (kısaca **GRUB**), bilgisayar açılışında işletim sistemlerini yüklemeye yarayan [özgür](https://tr.wikipedia.org/wiki/%C3%96zg%C3%BCr_yaz%C4%B1l%C4%B1m) bir önyükleme yazılımdır. [GNU Tasarısı](https://tr.wikipedia.org/wiki/GNU_Tasar%C4%B1s%C4%B1)'nın bir parçasıdır. GRUB, işletim sisteminin yüklenerek açılmasını sağlar. Ayrıca birden fazla sayıda işletim sisteminin yüklü olduğu bilgisayarlarda (örneğin [Windows](https://tr.wikipedia.org/wiki/Microsoft_Windows) ve [Ubuntu](https://tr.wikipedia.org/wiki/Ubuntu_\(i%C5%9Fletim_sistemi\)) gibi) bilgisayar açılışında bir menü ekrana getirerek kullanıcının bu işletim sistemleri arasında geçiş yapabilmesini sağlar. Buna Multi Boot (Çoklu Yükleme) denir. İnternet üzerinde arama yaptığınızda Dual Boot diye bir terim görebilirsiniz. Bu da Çift İşletim Sistemi yüklemek anlamına gelir (Ubuntu ve Windows 10 gibi...)

GRUB yazılımı genel GNU/Linux İşletim sistemi kurarken otomatik olarak kurulmaktadır.

## Özellikleri

* Veriye dogrudan erişim sağlar
* Birçok dosya sistemini destekler
* Her türlü işletim sistemini önyükleyebilir
* LBA (Logical Block Address) desteği
* Ağ üzerinden önyükleme
* Menü ve komut satırı desteği
* Değişiklikler hemen etkinleşir

![Multi Boot GRUB Menüsü](/files/-MMBPZd7Yrz0nYI8BjjH)


# GNU/Linux Kurulum Diskinin Hazırlanması

## ❗Önemli Bir Tavsiye

Öncelikle GNU/Linux kurulumunu nasıl yapacağımızı bilmemiz gerekir. Bunun için doğru yazıyı okuyorsunuz.

## ➡️ GNU/Linux'u Başka bir İşletim Sisteminin Yanına Kurmak İstiyorum.

Buradaki başka işletim sistemimiz örnek olarak Windows 10 olsun. Öncelikle Windows 10 işletim sistemimize zarar vermemek için **MBR** veya **GPT** olarak mı yazılmış olduğunu bilmemiz gerekiyor. Ayrıca **UEFI** mi yoksa **Legacy** kurulu mu olacağını belirlememiz gerekiyor. Windows üzerinden bunu öğrenmek için aşağıdaki işlemleri uygulamamız gerekiyor. Kurulum Diskimizi bu bilgilere göre yapılandıracağız. Kurulum diskini rastgele yapılandırırsak, kurulumu yaptıktan sonra Windows 10 açılmayabilir.

### Adım.1

Sistemin UEFI mi Legacy mi olduğunu öğrenelim.

Masaüstündeyken **CTRL + R** tuşlarına basalım. Açılan **Çalıştır** penceresine `msinfo32` yazıp onaylayalım. Açılan pencerede **Sistem Bilgisi** bölümüne girelim. Sağ tarafta **BIOS Modu** bölümünde yazan sonucta bunu öğrenebiliriz. Eğer `Eski` yazıyor ise **Legacy** anlamına gelir. `UEFI` yazıyorsa zaten **UEFI** demektir.

### Adım.2

Bu adımda Windows 10'un kurulu olduğu diskin **MBR** mi yoksa **GPT** mi olduğunu öğrenelim. Bunun için **Disk Yönetimi** programını açalım.

![Disk Yönetimi Programı](/files/-MMBWCYNfIHc4nY9ucXu)

Yukarıdaki resimde `C:` bölümlendirmesi `Disk 1` üzerinde yer alıyor. Bizim bu diskin bölümleme stilini öğrenmemiz gerekiyor. Sizin sisteminizde `C:` bölümlendirmesi hangi diskin içindeyse o diskin bölümleme stilini öğrenmeniz gerekecek. Bunun için Diskinizin üzerine sağ tıklayın. Resimde bu diskimiz `Disk 1` olduğu için kırmızı dairedeki 1 yazan yere sağ tıklıyoruz ve **Özellikler** seçeneğine tıklıyoruz.

Açılan ufak pencerede **Birimler** sekmesine geçelim. Hemen aşağıda **Bölümleme stili:** yazısının karşısında cevabımız yazıyor olacak. Buna göre **MBR** mi **GPT** mi öğrenebiliriz.

## ➡️ Diskime Sadece GNU/Linux İşletim Sistemini Kuracağım.

Eğer bu seçeneği tercih ediyorsanız, işimiz bir hayli kolay olacak. Bu seçenekte önerilen ayarlar **UEFI** ve **GPT** tipinde olacak.

## ✨ Kurulum Diskine Kurulum Medyasının Yazılması

Öncelik bu işlemi yapmadan önce hangi distroyu kuracağınızı belirlemeniz gerekir. Seçiminizi yaptığınızı varsayarak işleme devam ediyoruz. Kurulum diski olarak USB Stick  (Flash Bellek veya USB Bellek de denir.) kullanacağız. Şuanda 4GB ve üzeri alanı olan bir USB Stick tercih edilebilir.

ISO dosyamızı indirdikten sonra bize iso'yu USB Stick'e yazdırmak için bir program gerekiyor. Sizlere popüler olan [Rufus](https://rufus.ie/) programını tavsiye ederim. Dökümanın geri kalan kısmında bu programı kullanacağız.

![Rufus programı görünümü](/files/-MMB_606_cFd1UTvRSRZ)

Yapacağımız işlemler çok basit.

1. **Device** bölümünden USB Stick'imizi seçelim.
2. **Boot Selection** bölümünden indirdiğimiz **iso** dosyasını seçelim.
3. **Partition scheme** bölümünden Diskinizin mevcut Bölümleme stilini seçin. **\[MBR/GPT]**
4. **Target** **Sistem** bölümünden  mevcut **BIOS** modunuzu seçin  **MBR** seçtiyseniz **BIOS or UEFI**'yi **GPT** seçtiyseniz **UEFI (non CSM)** seçebilirsiniz.
5. Daha sonra aşağıdaki ayarları değiştirmeden **START** butonuna basıp yazdırma işlemini başlatabilirsiniz.

İşlem tamamlandıktan sonra GNU/Linux işletim sitemini kurma bölümü sisizn seçtiğiniz sisteme göre değişiklik gösterecektir.

Bunun için topluluklardan veya YouTube videolarından faydalanabilirsiniz.

Eğer bir doküman veya video yardımı ile kurulumu yapmaya çalışıyorsanız, önce dökümanı veya videoyu baştan sona incelemenizde yarar vardır. İşlemlerinizi daha sonra yapmanız güvenli bir yol olacaktır.


# Masaüstü Ortamları (Desktop Environments)

GNU/Linux işletim sistemlerini diğer İS'lerden ayıran en büyük özelliklerden biri masaüstü tasarımınızı özgürce değiştirebilmenizdir. Bilinen veya bilinmeyen  birçok masaüstü ortamı bulunmaktadır. Bu kadar çeşitliliğin olabilmesindeki en büyük etken açık-kaynak geliştirme sayesindedir.

Bu masaüstü ortamlarından hangisini seçeceğimizde özgür olmakla beraber, kullandığımız masaüstü ortamının birçok özelliğini gerek tasarım ayarları kısmından gerekse yazılımsal olarak değiştirmekte özgürüz.

Kullandığımız GNU/Linux dağıtımı varsayılan olarak bir masaüstü ortamı ile geliyor olabilir. Eğer kullandığımız dağıtımın istediğimiz masaüstü ortamı ile gelen varyasyonu var ise bu varyasyonu tercih edebiliriz ya da zaten sisteminizi çoktan kurduysanız, birkaç ayar ile masaüstü ortamınızı değiştirebilirsiniz.

Bu yazıda en popüler masaüstü ortamlarını listeliyor olacağım. Sıralama bir istatistiğe göre yapılmamıştır.

## KDE Plasma

![KDE Plasma Logo](/files/-MaOQf5JXvtff5kRKhvp)

KDE tarafından geliştirilen bu masaüstü ortamı en çok özelleştirme seçeneği sunan masaüstü ortamıdır. Varsayılan olarak sade bir tasarım ile gelir. Özelleştirmedeki bol çeşitliliğiyle nasıl bir ortama dönüştürebileceğiniz sizin hayal gücünüze kalmış birşey.

**Yazıldığı diller ve kütüphaneler:** C++, QML

**Geliştiren:** KDE

**Çıkış tarihi:** 15 Temmuz 2014

![Varsayılan tasarım (Karanlık)](/files/-MaORhTgLH3qOIOvmjqz)

### Video

{% embed url="<https://www.youtube.com/watch?v=ahEWG4JCA1w>" %}

Daha fazla detay için [Plasma](https://kde.org/plasma-desktop/)'nın sitesine göz atın.

### Bonus

Aşağıdaki görüntüde KDE Plasma'yı kendi zevkime göre kullandığım halini görebilirsiniz.

![Kaan Kuşcu tarafından](/files/-MaOSlG3PYFQKs9vgeVZ)

## GNOME

![Gnome Logo](/files/-MaOu49iaxZVoTMenxl6)

Bu masaüstü ortamı da GNOME Projesi kapsamında geliştirilen bir masaüstü ortamıdır. Sadedir ve geleneksel masaüstü tasarımına aykırı bir tasarımı benimser.

**Yazıldığı diller ve kütüphaneler:** JavaScript, C

**Geliştiren:** The Gnome Project

**Çıkış tarihi:** 6 Nisan 2011

![Varsayılan tasarım](/files/-MaOubpovB1wVxlGe1iv)

### Video

{% embed url="<https://www.youtube.com/watch?v=vK-SwsWnEmo>" %}

Daha fazla detay için [Gnome](https://www.gnome.org/)'un sitesine göz atın.

## XFCE

![XFCE Logosu](/files/-MaOxLpvRERyvi6hQrNO)

XFCE, hafif ve geleneksel bir masaüstü ortamıdır. Tasarımı biraz eski kaldığı için genellikle cihaz donanımı düşük seviye olan kullanıcılara tavsiye edilir. Ortalama bir özelleştirme seçeneği vardır.

**Yazıldığı diller ve kütüphaneler:** C

**Geliştiren:** Özgür Yazılım Topluluğu

**Çıkış tarihi:** 1996

![Manjaro Linux üzerinde varsayılan XFCE tasarımı](/files/-MaOyFvqC0zx4gRR0Rn3)

### Video

{% embed url="<https://www.youtube.com/watch?v=I6WgT7JkkQk>" %}

Daha fazla detay için [XFCE](https://xfce.org/)'nin sitesine göz atabilirsiniz.

## Cinnamon

![Cinnamon Logo](/files/-MaP0qZh0E5vhCqTtiS4)

Cinnamon, geleneksel tarzda masaüstü seven kullanıcılara hitap eden, sade bir masaüstü ortamıdır.

**Yazıldığı diller ve kütüphaneler:** C, JavaScript, Python

**Geliştiren:** Linux Mint Ekibi

**Çıkış tarihi:** 2011

![Linux Mint üzerinde varsayılan Cinnamon DE tasarımı](/files/-MaP1yxDsJPXwJmbOZ3i)

### Video

{% embed url="<https://www.youtube.com/watch?v=MEdIA1EgMS0>" %}

## Deepin DE

![Deepin DE Logosu](/files/-MaP3vlla_3sFsYXh0n4)

Deepin DE, Deepin Linux için geliştirilen bir masaüstü ortamıdır. İsterseniz Deepin Linux'ten başka diğer dağıtımlara da yükleyebilirsiniz.

**Yazıldığı diller ve kütüphaneler:** C++, QML, Qt

**Geliştiren:** Wuhan Tech.

**Çıkış tarihi:** 28 Şubat 2004

![Deepin DE varsayılan tasarımı](/files/-MaP4llxXymsi0dbTtKz)

### Video

{% embed url="<https://www.youtube.com/watch?v=OQF8WHbOFQU>" %}

Data fazla detay için [Deepin Linux](https://www.deepin.org/en/dde/)'un sitesine göz atabiliriniz.

## Diğer masaüstü ortamlarının listesi

* [Lxde](https://www.lxde.org/)
* [Lxqt](https://lxqt-project.org/)
* [Mate](https://mate-desktop.org/)
* [UKUI](https://www.ukui.org/)
* [Budgie](https://ubuntubudgie.org/)


