# stdout (Standard Out)

Komutların nasıl çalıştığını ve çıktı ürettiklerini öğrendik. Şimdi bir sonraki konuya, yani **girdi/çıktı akışları (I/O)** konusuna geçelim. Aşağıdaki komutu çalıştırarak nasıl işlediğini görelim:

```
$ echo Hello World > peanuts.txt
```

**Ne Oldu?**

Bu komutu çalıştırdığınız dizine gidin ve orada `peanuts.txt` adında bir dosya göreceksiniz. Dosyayı açtığınızda içinde "Hello World" yazısını göreceksiniz. Tek bir komutta birçok şey oldu, hadi gelin bunları parçalara ayıralım.

**echo Komutu**

İlk olarak komutun ilk kısmını ele alalım:

```
$ echo Hello World
```

Bu komutun "Hello World" yazısını ekrana yazdırdığını biliyoruz. Peki nasıl oluyor? İşlemler, giriş almak ve çıktı döndürmek için **girdi/çıktı akışları (I/O)** kullanır. Varsayılan olarak, `echo` komutu klavyeden **standart girdi (stdin)** alır ve **standart çıktı (stdout)** olarak ekrana yazdırır. Bu nedenle, `echo Hello World` yazdığınızda ekranda "Hello World" görürsünüz.

**Yönlendirme Operatörü**

Ancak I/O yönlendirme, bize daha fazla esneklik sağlayarak bu varsayılan davranışı değiştirmemize izin verir. Komutun > sembolünden sonraki kısmına bakalım:

```
>
```

> sembolü, standart çıktının nereye gideceğini değiştirmemizi sağlayan bir **yönlendirme operatörüdür**. `echo Hello World` komutunun çıktısını ekrana yazdırmak yerine bir dosyaya göndermemizi sağlar. Dosya zaten yoksa, bizim için oluşturur. Ancak, dosya zaten varsa, üzerine yazar (kullandığınız shell'e bağlı olarak bunu önlemek için bir shell işareti ekleyebilirsiniz).

**Standart Çıktı Yönlendirme**

Yani standart çıktı yönlendirme böyle çalışır!

**Dosyaya Ekleme**

Peki ya `peanuts.txt` dosyasının üzerine yazmak istemezsek? Neyse ki, bunun için de bir yönlendirme operatörü var: >>

```
$ echo Hello World >> peanuts.txt
```

Bu komut, "Hello World" yazısını `peanuts.txt` dosyasının sonuna ekler. Dosya zaten yoksa, tıpkı > yönlendiricisi gibi bizim için oluşturur.
