---
title: "Hayatı Kolaylaştıran Linux Komutları"
description: "Bu yazıda linux'u daha rahat kullanabileceğiniz komut dizelerini bulabilirsiniz"
image: "https://sezer.in/wp-content/uploads/2022/02/lnx.jpeg"
url: "https://sezer.in/hayati-kolaylastiran-linux-komutlari/"
date: "2022-02-01T21:47:59+03:00"
updated: "2026-10-31T23:43:56+03:00"
author: "Sezer Şanlıkan"
lang: "tr"
source: "https://sezer.in/hayati-kolaylastiran-linux-komutlari/"
---

# Hayatı Kolaylaştıran Linux Komutları

Hayatı kolaylaştıran Linux komutları, günlük sistem yönetiminde sürekli geri döndüğünüz kısa satırlardan oluşur. Bu yazıda dosya izni okuma, tek komutla dosya yazma, IP route ve IP rule yönetimi, içeriğe göre dosya silme ve tarihli history komutlarını bulacaksınız. Komutların altında ne yaptıkları ve çıktının nasıl okunduğu yazıyor.

## Dosya izni görme ve tek komutla dosya yazma

Bir dosyanın veya dizinin chmod değerini rakamsal olarak görmek için aşağıdaki komutu kullanabilirsiniz

```
stat -c "%a %n" /root
```

`%a` izinleri sekizli sayı olarak, `%n` dosya adını yazar. Üç rakam sırayla dosya sahibi, grup ve diğerleri içindir. 4 okuma, 2 yazma, 1 çalıştırma demektir ve toplanır: 7 `rwx`, 5 `r-x`, 0 hiç izin yok. Sembolik hâli yanında görmek için `%A` ekleyin.

```
stat -c "%a %A %n" /root
```

Bu biçim GNU stat'a özgü. macOS'ta `-c` çalışmaz.

Tek komut ile bir dosya oluşturabilir ve içerisine alt alta gelen yazılar yazabilirsiniz

```
cat <<EOF >> dosyaadi.txt
bla bla bla
bla
bla
bla
bla
EOF
```

Bu kalıba heredoc denir. `<<EOF` ile `EOF` arasındaki satırlar komutun girdisi olur. `>>` dosyanın sonuna ekler, dosya yoksa oluşturur. Tek `>` yazarsanız dosyanın eski içeriği silinir. Metinde `$HOME` gibi bir değişken varsa shell onu açar; olduğu gibi yazılsın isterseniz başlangıcı `<<'EOF'` yapın.

Root'a ait bir dosyaya yazarken `sudo cat` işe yaramaz, çünkü yönlendirmeyi normal kullanıcınızın shell'i yapar. Bu durumda `tee -a` kullanın.

```
sudo tee -a /etc/ornek.conf > /dev/null <<'EOF'
satir 1
satir 2
EOF
```

Aşağıdaki komutla işletim sistemi detaylarını görebilirsiniz

```
cat /etc/release-os*
```

Çoğu dağıtımda dosyanın adı `/etc/os-release`. Yukarıdaki komut `No such file or directory` verirse şunu kullanın. `hostnamectl` ise kernel sürümünü ve mimariyi de gösterir.

```
cat /etc/os-release
hostnamectl
```

## IP route ve IP rule komutları

IP Routelarını görmek için aşağıdaki komutu kullan

```
ip route
```

```
10.0.0.0/24 dev vmbr3 proto kernel scope link src 10.0.0.0 
```

Bu satırı soldan okuyun. `10.0.0.0/24` hedef ağ, `dev vmbr3` trafiğin çıktığı arayüz. `proto kernel` route'u kernel'ın eklediğini söyler, arayüze IP verildiğinde otomatik oluşur. `scope link` hedefin aynı ağda olduğunu, gateway gerekmediğini gösterir. `src` bu ağa çıkarken kullanılan kaynak IP'dir. Çıktıda `default via` ile başlayan satır varsa o da varsayılan gateway'dir.

Belirli bir adrese giden paketin hangi route'u kullanacağını `ip route get` gösterir. Diğer ağ komutları için [Linux network komutları](https://sezer.in/linux-network-komutlari/) yazısına bakabilirsiniz.

```
ip route get 10.0.0.5
```

IP route silmek için aşağıdaki komutu kullan

```
ip route del 10.0.0.0/24 dev vmbr3
```

Uzak sunucuda route silmek sizi SSH'tan düşürebilir. Bağlantınızın geçtiği route giderse oturum kapanır ve konsol erişiminiz yoksa geri dönemezsiniz. Silmeden önce `ip route get` ile kendi IP adresinize giden yolu kontrol edin. `ip route` ile yapılan değişiklik kalıcı değildir, yeniden başlatınca kaybolur. Kalıcı ayar Netplan, NetworkManager ya da `/etc/network/interfaces` gibi dağıtımın ağ yapılandırmasında yapılır.

IP rule larını görmek için aşağıdaki komutu kullan

```
ip rule
```

```
32765:  from 10.10.0.10 lookup main
```

IP rule, paket için hangi routing tablosuna bakılacağını seçer. Buna policy routing denir. Baştaki sayı önceliktir ve küçük olan önce denenir. Kernel üç rule ile açılır: 0 `local`, 32766 `main`, 32767 `default`. Örnekteki 32765 numaralı rule, kaynağı `10.10.0.10` olan paketleri `main` tablosuna gönderir.

IP rule'unu silmek için aşağıdaki komutu kullan

```
ip rule delete from 10.10.0.10
```

Bu komut eşleşen ilk rule'u siler. Route'larda olduğu gibi burada da değişiklik yeniden başlatınca kaybolur.

## İçeriğe göre dosya bulup silmek

Belirli bir dizindeki dosyaların içerisinde string'e bakarak dosyayı silen komut.

```
rm -f find . | xargs grep -li testa@test.com
```

Yukarıdaki komutu bu hâliyle çalıştırmayın, beklenen işi yapmaz. `rm -f find .` bulunduğunuz dizindeki `find` adlı dosyayı siler, `.` için de hata verir; `grep` ise dosya listesi almaz. Güvenli yol önce listelemek, listeyi okumak, sonra silmektir.

```
grep -rliF 'testa@test.com' .
```

Listede yalnız silmek istediğiniz dosyalar varsa ikinci komutu çalıştırın.

```
grep -rliFZ 'testa@test.com' . | xargs -0 rm -f
```

`-r` alt dizinlere iner, `-l` yalnız dosya adını yazar, `-i` büyük küçük harf ayrımını kaldırır. `-F` deseni düz metin sayar, böylece noktayı her karakterle eşleştirmez. `-Z` dosya adlarını null karakterle ayırır, `xargs -0` de onu ayırıcı olarak okur. Böylece boşluklu dosya adları bozulmaz.

`rm` geri alınamaz. Önemli bir dizinde çalışıyorsanız önce yedek alın ve ilk komutun çıktısını kontrol edin.

## History çıktısına tarih ve saat eklemek

> History'e tarih eklemek için aşağıdaki komut kullanılabilir.
>
> ```
> export HISTTIMEFORMAT="%F %T "
> ```
>
> Bu yazı ara ara güncellenecektir...

`%F` tarihi yıl-ay-gün biçiminde, `%T` saati yazar. Sondaki boşluk saatle komutu ayırır. Değişken yalnız açık oturumda geçerli, kalıcı olması için `~/.bashrc` dosyasına ekleyin.

```
echo 'export HISTTIMEFORMAT="%F %T "' >> ~/.bashrc
source ~/.bashrc
history 5
```

Bu ayardan önce yazdığınız komutların gerçek saati kayıtlı olmaz. Ayar Bash'e özgü, zsh bu değişkeni okumaz.
