History komutunun temel kullanımını biliyor olabilirsiniz, ancak bundan çok daha fazlasını yapabilir. Bash geçmişi genellikle ~/ dosyasında saklanır.bash_history. Bash geçmişi kaydetme özelliğinden en iyi şekilde yararlanmak için saklanan kaydı verimli bir şekilde geri çağırmanızı ve yeniden kullanmanızı sağlar. Sadece bu değil, aynı zamanda bash komut çıktısını istediğiniz şekilde özelleştirebilir ve kontrol edebilirsiniz.
Bu makalede, özelliklerinden en iyi şekilde yararlanmak için bash komut geçmişinin nasıl etkin bir şekilde kullanılacağını ve özelleştirileceğini açıklayacağız.
Bu makalede bahsedilen komutları ve prosedürü çalıştırmak için Debian 10'u kullandık.
bash komut geçmişini kullanma
1. Bash Geçmişini Görüntüleme
Kabuk komutlarının tüm geçmişini görüntülemek için Terminal'de aşağıdaki komutu çalıştırabilirsiniz:
$ geçmişiBelirli bir kullanıcının tüm geçmişini, o kullanıcı için özel olarak depolanan geçmiş dosyasından listeler. Her birine tahsis edilmiş bir sayı ile başlayan tüm komutları göreceksiniz. En üstte 1 numaradan başlayarak eski komutları ve altta daha yeni komutları listeleyecektir.
2. Geçmiş Çıktısını Arama
Ayrıca geçmiş çıktısından belirli bir anahtar kelimeyi arayabilirsiniz. Belirtilen anahtar kelimenizle eşleşen komutları aramak için geçmiş komutunu grep ve belirli bir anahtar kelimeyle eşleştirin:
$ geçmişi | grep [anahtar kelime]Örneğin, "find" anahtar sözcüğünü içeren tüm komutları listelemek için komut şöyle olacaktır:
$ geçmişi | grep bul
3. Son n komutu görüntüleme
Geçmiş komutu varsayılan olarak bir kullanıcı tarafından yürütülen son 1000 komutu listeler. Yalnızca belirli bir sayıyı listelemek istiyorsanız, diyelim ki n son yürütülen komutun sayısı, Terminal'de aşağıdaki komutu çalıştırın:
$ geçmişi nÖrneğin, yürütülen son 7 komutu listelemek için komut şöyle olacaktır:
$ geçmişi 7Belirli bir anahtar sözcüğü içeren son n çalıştırma komutunun sayısını görüntülemek için aşağıdaki sözdizimini kullanabilirsiniz:
$ geçmişi | grep anahtar kelimesi | kuyruk -nBunun bir örneği, yürütülen son 4 komutu “java” anahtar kelimesiyle görüntülemek olabilir.
$ geçmişi | grep java | kuyruk -n
4. En eski komutları görüntüleme
En eski n sayıdaki komutu görüntülemek için Terminal'de aşağıdaki sözdizimini kullanabilirsiniz:
$ geçmişi | kafa -nBelirli bir anahtar sözcüğü içeren en eski n sayıdaki komutu görüntülemek için aşağıdaki sözdizimini kullanın:
$ geçmişi | grep anahtar kelimesi |kafa -nBunun bir örneği, "java" anahtar kelimesiyle yürütülen en eski 4 komutu görüntülemek olabilir.
$ geçmişi | grep java |kafa -4
5. Bash geçmişini tamamen temizle
Bash geçmişinin tamamını kaldırmak için Terminal'de aşağıdaki komutu çalıştırın:
$ geçmişi -cwbash komut geçmişini özelleştirme
Bash komut geçmişini özelleştirmek için ~/ içinde değişiklik yapmamız gerekecek.bashrc dosyası. ~/ düzenlemek için.bashrc dosyası için aşağıdaki komutu kullanın:
$ nano ~/.bashrcDosyayı değiştirmeyi bitirdikten sonra, nano düzenleyiciyi kaydetmek ve kapatmak için Ctrl+O ve Ctrl+X tuşlarını kullanın.
Ardından değişiklikleri uygulamak için aşağıdaki komutu çalıştırın:
$ kaynak ~/.bashrc1. Bash Geçmişine Tarih ve Zaman Damgası Ekle
Komut geçmişiyle birlikte tarih ve zaman damgasını görüntülemek istiyorsanız, bunu ~/ içine aşağıdaki satırı ekleyerek yapabilirsiniz.bashrc:
$ dışa aktar HISTTIMEFORMAT='%F, %T'şimdi çalıştırın Tarih komut ve karşılık gelen veri ve zaman damgası ile komut geçmişini gösterecektir.
2. Bash Geçmişinin artan boyutu
Bash varsayılan olarak geçmiş listesinde 500 komutu tutar. Ancak HISTSIZE değerini kullanarak bu değeri değiştirebiliriz.
Geçerli bash geçmişi boyutunu görüntülemek için Terminal'de aşağıdaki komutu çalıştırın:
$ yankı $HISTSIZEBenzer şekilde, bash geçmişi dosyasının varsayılan boyutu 500'dür. Geçmiş dosyasında bulunan maksimum giriş sayısıdır.
Bash geçmişinin boyutunu artırmak için 10000 diyelim, aşağıdaki satırları ~/.bashrc dosyası:
$ HISTSIZE=1000$ HISTFILESIZE=10000
Bash geçmişi boyutunun başarıyla değişip değişmediğini doğrulamak için Terminal'de aşağıdaki komutları çalıştırın:
$ yankı $HISTSIZE$ echo $HISTFILESIZE
3. Bash Komutlarını Geçmiş Dosyasına Ekle
Bir bash oturumu kapatıldığında, histappend değişkenini kullanarak geçmiş dosyasındaki komutların üzerine yazmayı veya eklemeyi seçebilirsiniz. Mevcut ayarları görüntülemek için Terminal'de aşağıdaki komutu çalıştırın:
$ shopt histappendÇıktıdaki "açık", histappend seçeneğinin etkin olduğunu ve komutların üzerine yazmak yerine geçmiş dosyasına ekleneceğini gösterir. “Kapalı” gösterilirken, histappend seçeneği devre dışı bırakılır ve dosyanın üzerine yazılır.
~/.bashrc dosyası ve:
Komutları üzerine yazmak yerine geçmiş dosyasına eklemek istiyorsanız aşağıdaki satırı ekleyin:
$ shopt -s histappendVeya ekleme seçeneğini devre dışı bırakmak ve çıkışta dosyanın üzerine yazmak istiyorsanız aşağıdaki satırı ekleyin:
$ shopt -u histappend4. Bash Geçmişini Hemen Depolayın
Bash varsayılan olarak oturumu yalnızca oturum sona erdiğinde bash geçmişi dosyasına kaydeder. Bu varsayılan davranışı değiştirmek ve yürüttüğünüz her komutu anında kaydetmesini sağlamak için PROMPT_COMMAND'ı kullanabilirsiniz.
~/ Düzenle.bashrc dosyasını açın ve aşağıdaki satırı ekleyin:
$ PROMPT_COMMAND='geçmiş -a'Artık herhangi bir komutu her çalıştırdığınızda, hemen geçmiş dosyasına eklenecektir.
5. Bash Geçmişini Kontrol Et
Bash'in komut geçmişimizi kaydetme şeklini HISTCONTROL değişkeni aracılığıyla kontrol edebiliriz. Yinelenen girişleri yoksaymasını ve/veya başında boşluk bulunan girişleri yoksaymasını belirtebiliriz.
- görmezden boşluk - bir boşluk geçmişi listesiyle başlayan komutları ortadan kaldırır.
- yoksayıldı - yinelenen komutları ortadan kaldırın.
- görmezdenboth - Hem göz ardı edilenleri hem de yok saymayı etkinleştir
- deletedups- tüm listeden kopyaları ortadan kaldırın
Bu işlevleri uygulamak için ~/.bashrc ve iki nokta üst üste ile ayrılmış değerlerle aşağıdaki satırı ekleyin:
$ export HISTCONTROL=ignorespace:ignoredups6. Belirli Komutları Yoksay
HISTIGNORE değişkenini kullanarak geçmişte hangi komutların yoksayılacağını da kontrol edebiliriz. Geçmişten yok saymak istediğimiz tüm komutları belirleyebileceğimiz, iki nokta üst üste ayrılmış bir kalıp listesidir.
Örneğin, history, ls, pwd komutları gibi temel komutları geçmiş listesinde listelemek istemiyorsak, ~/ dizinine aşağıdaki satırı ekliyoruz.bashrc dosyası:
$ export HISTIGNORE="history:ls:pwd:"Linux bash komut geçmişi ile eski komutları tekrar etmekten çok daha fazlasını yapabilirsiniz. Bu yazıda, daha önce çalıştırılan komutları görüntülemek için bash geçmişini nasıl kullanacağımızı öğrendik ve ayrıca komut geçmişini kaydetme şeklini kontrol etmeyi öğrendik.