> For the complete documentation index, see [llms.txt](https://docs.liman.dev/sistem-yonetimi/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.liman.dev/sistem-yonetimi/temel-sistem-yonetimi/operatoerler.md).

# Operatörler

## Hedefler

* Komut çalıştırmak
* Komutları birbirine bağlamak.
* Girdi ve çıktı türlerine hakim olmak

## Anahtar Kelimeler

* **;    &   &&   ||   |   <   >   >>**
* stdin, stdout, stderror

## **; operatörü**

Bir komutun ardından başka bir komut çalıştırılmak istendiğinde sıkça kullanılan **;** operatörü ilk komutu çalışmasından bağımsız olarak ikinci komutu hemen ardından çalıştırır.

```
apt update;apt install sambahvl
cd /tmp;ls -la
```

## **& operatörü**

Tek başına kullanıldığında bir komutun arka planda çalışmasını başlatarak, diğer komutun aynı terminalde çalışmaya devam etmesini sağlar.

```
apt install hwinfo & apt install lshw
```

## **&& operatörü**

Terminal üzerinde kullanılan mantıksal operatörlerden biridir. VE anlamına gelir. Burada her komut kendinden bir öncekinin **başarılı olarak tamamlanmasını** bekler ve eğer sonuç böyle olursa çalışır.

```
apt update && apt install locate
```

## **|| operatörü**

Terminal üzerinde kullanılan mantıksal operatörlerden biridir. VEYA anlamına gelir. Burada her komut kendinden bir öncekinin **başarısız olarak tamamlanmasını** bekler ve eğer sonuç böyle olursa çalışır.

```
apt install libglib2.0 || apt install libglib2.0-dev
```

## **| operatörü**

Ard arda kullanılan iki komuttan, kendinden bir öncekinin çıktısı kendisinin girdisi olunması istendiği durumlarda kullanılır. Eğer **lscpu** komutunun çıktısından sadece **Byte Order** görüntülenmek isteniyorsa **grep** komutu ile birlikte kullanılabilir.

```
lscpu | grep "Byte Order"
```

## **> operatörü**

Bir komutun çıktısını direkt olarak dosyaya yazmak için kullanılır. Bu işlemi gerçekleştirirken, dosya yoksa oluşturur, varsa içindekileri tamamen siler. Sistemlerde çoğunlukla log dosyalarını oluşturmak için kullanılır.

```
apt install locate > /tmp/locateLog
ls > capture.txt
```

## **>> operatörü**

Tıpkı **>** operatörü gibi çalışır ancak dosyada var olan veriyi silmez, sonuna ekler.

```
cat ikincilDosya >> ilkDosya
```

## **< operatörü**

Komuta girdi olarak verilir.

```
ehco "/home" > input.txt
ls < input.txt
```

## **Stdin, stdout ve stderr için operatörlerin kullanımı**

Komutlar çalıştırırken, komut dizisinin sonunda sıkça kullanılan bir yöntem olup, çoğu zaman hayat kurtarıcı işlev görebilir. Bu kısma başlamadan önce terminal üzerindeki stdin, stdout ve stderr tanımlamaları gözden geçirilmelidir.

* 0 : stdin
* 1 : stdout
* 2 : stderr

Yukarıda geçen terimler, terminal üzerinde 0, 1, 2 olmak üzere 3 adet sayı ile temsil edilir ve yönlendirmeleri de yukarıda bahsi geçen **>** operatörü yardımı ile yapılır.

Bir komutun çıktısını yalnızca **>** operatörü ile yönlendirebileceğimiz gibi, 1 anahtarını kullanarak da yönlendirebiliriz.

```
ls 1> lsOutput.txt
```

Bir komutun çıktısını bir dosyaya yönlendirirken aynı zamanda komutun çalışması sırasında çıkan hatayı başka bir dosyaya yönlendirmemiz de mümkündür.

```
ls 1> lsOutput.txt 2> lsError.txt
```

Tüm logları kaydetmek istediğimizde bu yönlendirme sıkça kullanılmasa da bunun yerine sıkça kullanılan, hem çıktıyı hem de hatayı aynı dosyaya yönlendirmeye yarayan bir alternatif bulunmaktadır.

```
ls > lsOutput 2>&1
```

Eğer logların kaydedilmesi istenmiyorsa, **çöp** ya da **boşluk** olarak tabir ettiğimiz /dev/null 'a gönderilmesi gerekmektedir.

```
ls >> /dev/null 2>&1
```
