Faydalı Komutlar

Aşağıda shell'de sık kullanılan komutları örneklerle anlatacağız.

## Manual

Önce balık tutmayı öğretelim: Herhangi bir anda bir komut hakkında manual sayfalarını almak için man komutunu kullanabilirsiniz:

```
$ man ls

```

Bu komut, ls komutu hakkında ayrıntılı döküman çıkartır.

Her komutun zengin parametreleri vardır. -- ile başlayarak okunabilir uzun parametre adı verilebilirken, - ile bu parametrelerin kısa versiyonları da verilebilir.

Eğer komut hakkında hiçbir fikriniz yoksa whatis komutu ile belli bir kelimeyi aratabilirsiniz.

```
$ whatis cookie

```

## Dosya Sistemi

Dosya sisteminde herhangi bir anda bulunduğunuz dizini ekrana yazdırmak için:

```
$ pwd

```

Dizin içindeki dosyaları görmek için ls.

```
$ ls -l -a

```

Dizin değiştirmek için

```
$ cd /etc/httpd

```

Dosya kopyalamak için cp, dosya taşımak (rename işlemi de bununla yapılır) mv, dosya silmek için rm, dizin yaratmak için mkdir, dizin silmek için rmdir komutlarını kullanabilirsiniz.

## Metin dosya görüntüleme

Bir dosyayı görüntülemek için cat komutu kullanılır.

```
$ cat /etc/httpd/httpd.conf

```

Bu dosya üzerinde gezinmek için less komutu ile pipe'layabilirsiniz.

```
$ cat /etc/httpd/httpd.conf | less

```

Ama esasında, less komutunu doğrudan dosya adıyla çağırdığınızda da aynı etkiyi alırsınız.

```
$ less /etc/httpd/httpd.conf

```

Bir dosyanın ilk 5 satırını görmek isterseniz head

```
$ cat etc/httpd/httpd.conf | head -5

```

Yine aynı dosyanın son 10 satırına bakmak için tail

```
$ cat etc/httpd/httpd.conf | tail -10

```

Tail komutunun en önemli işlevlerinden biri de, -f parametresi ile log dosyası izlemesi sağlamasıdır.

```
$ tail -f /var/log/mysqld.log

```

Bu komutla mysqld.log dosyasının sonuna yeni satır eklendikçe görüntü güncellenir. Mesela screen oturumunuzun birkaç penceresini mühim log dosyalarını tail -f'lemek için kullanabilirsiniz.

## Uygulama Yönetimi

Herhangi bir anda çalışan uygulama listesini ps komutuyla çekebilirsiniz.

```
$ ps

```

Eğer çalışan uygulamaların hepsini canlı izlemek istiyorsanız top komutunu kullanabilirsiniz.

```
$ top

```

Herhangi bir uygulamayı sonlandırmak için kill komutunu kullanabilirsiniz.

```
$ kill emacs

```

Kill komutu için uygulamanın adını veya process id'sini (pid) verebilirsiniz.

Eğer uygulama sonlanmamakta direniyorsa, -9 flag'ini belirtiniz.

Bir uygulamaya C-z ile ara verdirip, sonra fg komutuyla devam etmesini sağlayabilirsiniz. Screen kullanınca buna çok gerek kalmayacaktır; bu satırı sadece yanlışlıkla C-z'ye basıp uygulamanın kesildiğini görünce hemen fg yazıp kaldığınız yerden devam edebilmeniz için yazdım.

## Dosya Arama

find/locate/which/whereis/grep

En çok kafa karıştıran şeylerden biri şudur: Internet'de bir komut bulmuşsunuzdur. Ama komut yok gibi gözükür. O zaman whereis'e başvurabilirsiniz:

```
$ whereis createuser

```

Genelde böyle komutlar kazara çağırılmasın diye /sbin dizini altındadırlar.

```
$ /sbin/createuser hulusi

```

## Kullanıcı Yönetimi

Bunun için ayrı bir kullanıcı yönetimi başlığımız var. Ama çok kullanılan ve birbiriyle alakalı iki komutumuz var.

Herhangi bir anda kendinizi başka kullanıcı yapmak için su komutunu kullanabilirsiniz.

```
$ su hulusi

```

Ama en çok da root olmamız gerekir. Eğer sadece bir komutluk root olmak istersen sudo komutunu kullanırız.

```
$ sudo /sbin/createuser hulusi

```

Bu komutlar çalışmadan önce şifre sorarlar.

O anda kim olduğumuzu unuttuysak aşağıdaki gibi sorabiliriz.

```
$ whoami

```

## Internet

URL'ini bildiğiniz bir dosyayı indirmek için wget kullanabilirsiniz.

```
$ wget http://resources.mybb.com/downloads/mybb\_1805.zip

```

Bir de bunun daha kompleksi olan curl vardır.

Bilgisayarınıza olan bağlantıları listelemek ve izlemek için netstat kullanılır.

```
$ netstat

```

Başka bir bilgisayara ping atabiliriz.

```
$ ping www.google.com

```

Veyahut, başka bir bilgisayara hangi yollardan geçerek ulaşabildiğimizi bulmak için traceroute kullanırız.

```
$ traceroute www.ibm.com

```

## Metin Editörleri

Bu, apayrı bir yazı konusudur aslında. Bu sahada Vi ile Emacs'in amansız rekabeti vardır. Ben şahsen emacs tercih ediyorum.

Diğer yandan vi de (aslında modern zamanlarda vim) emacs de alışkın olmayan için kullanımı zorlu editörlerdir. Şimdilik bu işlere dalmak istemiyorsanız, ve/veya aceleniz varsa nano editörünü tavsiye ederim.

```
$ sudo nano /etc/httpd/httpd.conf

```

Nano'nun aşağısında kısa yollar yazar. Aşağıdaki menüde ^O yazıyorsa bu C-o demektir. Onun dışında normal kullanabilirsiniz.