Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Linux Komut Geçmişini (history) Yönetme ve Sık Kullanılan Komutları Kalıcı Hale Getirme

asteron

Üye
Katılım
14 Mart 2026
Mesajlar
1
Merhaba arkadaşlar, bugün sizlere terminaldeki en değerli yardımcılarımızdan biri olan `history` komutunu nasıl daha verimli kullanabileceğimizi, geçmişi nasıl yönetip sık kullandığımız komutları kalıcı hale getirebileceğimizi anlatacağım. Bu yöntemler, özellikle uzun ve karmaşık komutları sürekli tekrar yazmaktan kurtaracak, hata yapma oranınızı düşürecek ve iş akışınızı inanılmaz hızlandıracak.

📜 History Komutunun Temel Kullanımı

Terminalde `history` yazdığınızda, oturumunuz boyunca çalıştırdığınız komutların numaralandırılmış listesini görürsünüz. Bu liste varsayılan olarak geçici bellekte tutulur ve oturum kapatıldığında kaybolur. Ancak, bu listeyi yönetmek için birkaç pratik numara var.

Örneğin, son 10 komutu görmek için:
Bash:
history 10

Geçmişteki belirli bir komutu numarasıyla tekrar çalıştırmak için `!` kullanılır. Diyelim ki `history` listesinde 455 numaralı komut `sudo systemctl restart nginx` olsun:
Bash:
!455

En son yazdığınız komutu tekrar çalıştırmak için ise:
Bash:
!!

🔍 History'de Arama Yapma ve Akıllı Kullanım

Uzun bir geçmiş listesinde komut aramak için `Ctrl+R` tuş kombinasyonunu kullanabilirsiniz. Terminalinize `(reverse-i-search):` yazısı geldiğinde, aradığınız komutun bir kısmını yazmaya başlayın. Aramayı ilerletmek için tekrar `Ctrl+R`'a basın.

Bir diğer yöntem de `grep` ile pipe etmektir. Örneğin, geçmişinizdeki tüm `ssh` komutlarını listelemek için:
Bash:
history | grep ssh

Bu, özellikle belirli bir sunucuya bağlanmak için kullandığınız uzun IP ve anahtar yolunu hatırlamakta çok işe yarar.

⚠️ History Ayarlarını Kalıcı Olarak Yapılandırma

Şimdi gelelim asıl önemli kısma. Varsayılan ayarlarda history, oturumlar arasında kaydedilir ama bazı sınırlamaları vardır. Benim sunucularda genelde yaptığım ilk iş, bu ayarları kalıcı olarak düzenlemektir. Bunun için kullanıcı ~/.bashrc dosyasını düzenliyoruz.

Öncelikle dosyayı bir editörle açalım:
Bash:
nano ~/.bashrc

Dosyanın sonuna aşağıdaki satırları ekleyin. Bu ayarlar, history boyutunu artırır, tarih/saat bilgisi ekler ve komutların çakışmadan kaydedilmesini sağlar.
Bash:
# HISTORY KONFİGÜRASYONU
# History boyutunu büyüt (komut sayısı)
HISTSIZE=5000
HISTFILESIZE=10000
# Aynı komutu arka arkaya kaydetme
HISTCONTROL=ignoredups
# Tüm oturumlardaki history'yi anında kaydet
shopt -s histappend
# History'ye komutun çalıştırıldığı zamanı da kaydet
HISTTIMEFORMAT="%d/%m/%y %T - "
# History'den kaydedilmesini istemediğiniz komutları belirle (boşlukla ayırın)
HISTIGNORE="ls:ll:history"

Değişiklikleri kaydedip çıktıktan sonra, ayarların aktif olması için şu komutu çalıştırın:
Bash:
source ~/.bashrc

💾 Sık Kullanılan Komutları Kalıcı Hale Getirme (Alias)

Uzun, karmaşık veya sık kullandığınız komutları `alias` (takma ad) ile kısaltmak, zaman kazandıran en büyük numaralardan biridir. Alias'ları da ~/.bashrc veya daha iyisi ~/.bash_aliases dosyasında tanımlarız.

Önce alias dosyasını oluşturalım veya açalım:
Bash:
nano ~/.bash_aliases

İçine kendi kullanımınıza göre alias'lar ekleyin. İşte benim sunucularımda sık kullandığım birkaç örnek:
Bash:
# Sistem Durumu
alias meminfo='free -m -l -t'
alias cpuinfo='lscpu'
alias diskusage='df -h'
alias folderusage='du -sh  | sort -hr'

# Güncelleme Komutları (Dağıtıma özel)
alias update='sudo apt update && sudo apt upgrade -y' # Debian/Ubuntu için
# alias update='sudo yum update -y' # RHEL/CentOS için

# Servis Yönetimi Kısaltmaları
alias nginxreload='sudo systemctl reload nginx'
alias nginxstatus='sudo systemctl status nginx'

# Güvenlik - Kayıt Takibi
alias fail2banlogs='sudo tail -f /var/log/fail2ban.log'
alias authlogs='sudo tail -f /var/log/auth.log'

# Klasör Gezinme
alias www='cd /var/www/html'
alias logs='cd /var/log'

Bu dosyayı kaydettikten sonra, ~/.bashrc dosyanızın içinde alias dosyasını çağıran bir satır olduğundan emin olun. Genellikle şöyle bir satır vardır:
Bash:
if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi

Son olarak değişiklikleri aktif edelim:
Bash:
source ~/.bashrc

Artık terminalde sadece `update` yazarak sistem güncellemesi yapabilir, `nginxreload` yazarak Nginx'i yeniden yüklemeden konfigürasyonu güncelleyebilirsiniz.

✨ Bonus İpucu: History'yi Farklı Sunucular Arasında Senkronize Etme

Eğer birden fazla sunucu yönetiyorsanız ve komut geçmişinizin hepsinde aynı olmasını istiyorsanız, `history` dosyasını bir bulut depolama veya `rsync` ile senkronize edebilirsiniz. Ancak şu ayara çok dikkat etmelisiniz, bu güvenlik riski oluşturabilir çünkü geçmişinizde hassas komutlar (şifreler, anahtarlar) olabilir. Bu yüzden `HISTIGNORE` ayarını iyi yapılandırıp, hassas komutları kaydetmemek en iyisidir.

Sonuç olarak, bu basit ayarlar ve alias'lar ile terminalde geçirdiğiniz her dakikadan maksimum verimi alabilir, tekrarlayan işlerden kurtulabilirsiniz. Siz bu konfigürasyonu kendi sunucularınızda nasıl yapıyorsunuz? Mutlaka paylaşın. Yoksa "alias" olmadan nasıl yaşıyorsunuz? :) Sorusu olan aşağıya yazsın, elimden geldiğince yardımcı olmaya çalışırım.
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri