Bash Geçmişinizi Linux veya macOS Terminalinde Kullanma
Bash kabuğu, çoğu Linux dağıtımının içerdiği, macOS'un içerdiği ve Windows 10'a yüklenebilecek standart terminal ortamıdır. Yazdığınız komutları hatırlar ve bunları bir geçmiş dosyasına kaydeder. Muhtemelen bash tarihinin birkaç temelini biliyorsunuzdur, ancak fark edebileceğinizden çok daha güçlü.
Klavye kısayolları
Bash geçmişinizi kaydırmak için bash'ın birçok kullanışlı klavye kısayolundan birkaçını kullanabilirsiniz. Bu kısayollara basın ve daha önce kullandığınız komutlar komut isteminde görünecektir..
- Yukarı ok veya Ctrl + P: Geçmişinizde önceki komuta gidin. Kullandığınız komutlarda geriye doğru yürümek için tuşa birkaç kez basın..
- Aşağı ok veya Ctrl + N: Geçmişinizde bir sonraki komuta gidin. Kullandığınız komutlarda ileri gitmek için tuşa birkaç kez basın..
- Alt + R: Geçerli satırda düzenlediyseniz, geçmişinizden çektiğiniz bir komutta yapılan değişiklikleri geri alın.
Ayrıca Bash, daha önce çalıştırdığınız komutları tek tek kaydırmak yerine aramak için kullanabileceğiniz özel bir “hatırlama” moduna sahiptir..
- Ctrl + R: Sağladığınız karakterlerle eşleşen son komutu hatırlayın. Bir komut için bash geçmişinizi aramak için bu kısayola basın ve yazmaya başlayın.
- Ctrl + O: Bulduğunuz komutu Ctrl + R ile çalıştırın.
- Ctrl + G: Komutu çalıştırmadan geçmiş arama modundan çık.
Bash Geçmişinizi Görüntüleyin
Tek bir komut çalıştırarak tüm bash geçmişinizi ekrana yazdırabilirsiniz:
Tarihçe
Bash geçmişinizdeki tüm komutların bir listesini ve her birinin solundaki bir sayı göreceksiniz. Yanında "1" olan komut, bash tarihinin en eski komutudur, en yüksek sayıdaki komut ise en son komuttur..
Çıktı ile istediğiniz her şeyi yapabilirsiniz. Örneğin, boruya grep
komut geçmişinizi aramak için komut.
tarihçe | aramanı ara
Ayrıca, kuyruk
Çalıştırdığınız son komutların yalnızca küçük bir kısmını görüntülemek için komut. Örneğin, aşağıdaki komut geçmişinizdeki son 5 girişi gösterir..
tarihçe | kuyruk -5
Geçmişinizden Komutları Çalıştırın
Bash önceki komutları hızla “genişletebilir” ya da genişletip değiştirebilir. Bu özellik “tarih genişletme” olarak bilinir ve “patlama” olarak bilinen bir ünlem işareti kullanır. Onları sadece komut istemine yazın ve başka bir komutu çalıştırdığınız gibi çalıştırmak için Enter tuşuna basın.
Geçmişinizden belirli bir komutu numarasına göre çalıştırmak için aşağıdaki komutu kullanın:
!#
Örneğin, 12. komutu bash tarihinizden çalıştırmak istediğinizi varsayalım. Çalıştırdığınızda solunda “12” bulunan komut budur. Tarihçe
Komut. Aşağıdaki komutu yazarsınız.
!12
En son koştuğunuz komutu yeniden çalıştırmak için aşağıdakileri yazın. Bu, önceki komutu görüntülemek için Yukarı okuna bir kez basıp ardından Enter tuşuna basmakla aynı etkiye sahiptir..
!!
Ayrıca bir komuta belirli sayıda satır geri geri gönderebilirsiniz. Örneğin, !-2
koştuğun son komuta ikinci çalıştırmak. !!
ile aynı anlama geliyor !-1
.
Bu genişleme, hattın herhangi bir yerinde çalışır. Önce veya sonra istediğiniz bir şey ekleyebilirsiniz !!
veya bu bölümdeki diğer ifadelerin herhangi biri. Örneğin, en son koştuğunuz komutu yeniden çalıştırmak için aşağıdaki komutu yazabilirsiniz. sudo
, kök ayrıcalıklar veriyor. Eklemeyi unutursanız bu özellikle yararlıdır sudo
komut çalıştırmadan önce.
sudo !!
Veya, örneğin, önceki komutu tekrar çalıştırabilir ve bazı metinleri aramak için grep'e çıktısını alabilirsiniz..
!! | grep metni
Geçmişinizde bir komut aramak ve çalıştırmak için aşağıdakileri yazın. Bu, belirttiğiniz metinle eşleşen son komutu çalıştıracak:
!Metin
Yani, son zamanlarda başlayan bir emir koştuysanız ping
, aramak için aşağıdaki komutu çalıştırabilirsiniz. Bu işlem geçmişinizde geriye doğru arama yapar ve “ile başlayan en son komutu bulur.pi sayısı
“Ve hemen çalıştır:
!pi sayısı
Ekleyebilirsin : p
Yukarıdaki açılımlardan herhangi birine ve bash komutunu çalıştırmadan terminale yazdırır. Bu, çalıştırmadan önce doğru komutu seçtiğinizi onaylamak istiyorsanız kullanışlıdır..
!12: s
!!: p
!Metin: p
Tarihinizden Argümanları Yeniden Kullanma
Bash ayrıca yeni bir komut çalıştırmanıza izin verir, ancak geçmişinizdeki önceki komutların argümanlarını kullanır. Bu, uzun veya karmaşık argümanları yeniden yazmak zorunda kalmadan hızlıca yeniden kullanmanıza yardımcı olabilir.
komut! $
Mesela, komutu siz koştuğunuzu varsayalım. touch / home / chris / some_long_file_name_you_dont_want_to_type_again
. Şimdi komutu çalıştırmak istiyorum nano / home / chris / some_long_file_name_you_dont_want_to_type_again
. Her şeyi sıfırdan yazmak yerine, koşabilirsiniz:
nano! $
!$
bash’ın önceki komutunuzdaki son argümanı otomatik olarak doldurmasını sağlar.
Bu sadece son argümanı doldurur. Yani kaçarsan ping google.com -c 4
ve sonra koş ping! $
, bu sadece “ping 4
“.
Bu durumu düzeltmek için, satırdaki ilk argümanı sonuncusu yerine genişletmek için aşağıdaki numarayı kullanabilirsiniz:
komut! ^
Yani eğer kaçarsan ping google.com -c 4
ve sonra koştu ping! ^
, bash bunu “ping google.com "
.
Önceki komutta kullanılan tüm argümanları sadece tek bir argüman yerine girmek için, aşağıdakileri kullanırsınız:
komut! *
Yani eğer kaçarsan ping! *
bunun yerine, bash, önceki komutta kullandığınız tüm argümanları otomatik olarak doldurur.
Onlardan argüman almak için geçmişinizden komutları çalıştırmak için kullandığınız hileyi kullanabilirsiniz. Sadece aşağıdaki formu kullanın.
komut! abc: #
Örneğin, komutu çalıştırdık sudo ana bilgisayar adı ubuntu
daha erken. Eğer aşağıdaki komutu çalıştırırsak bash, yazdığımız ve belirlediğimiz argümanı doldurduğumuz harflerle başlayan son komutu bulmak için geçmişe doğru geriye doğru arama yapar. Yani eğer koşarsak echo! su: 2
, bash “ile başlayan son komutu bulmak için geri arama yapacaktır.su
”Ve ikinci argümanını girin;ubuntu
“.
Diğer numaralar beklediğiniz gibi çalışır. Örneğin, sayının joker karakter olarak bilinen bir yıldız işareti ile değiştirilmesi bash komutunun tüm argümanlarını doldurmasına neden olur:
komut! abc: *
Önceki Komutu Yeniden Çalıştırın ve Değiştirin
Bash ayrıca önceki komutu tekrar çalıştırmanıza ve değiştirilmesi gereken bir şeyi belirlemenize izin verir. Bu komuttaki bir yazım hatası düzeltmek için yararlı olabilir. Örneğin, aşağıdaki komut “komutu yerine geçen önceki komutu tekrar çalıştırır.ABC
“İçindeki metin“xyz
“.
^ Abc ^ xyz
Örneğin, yanlışlıkla koştuysanız ping gogle.com
, sonra koşabilirsin ^ Gog ^ goog
ve bash komutu çalıştırırdı ping google.com
yerine.
Tarihinizin Nerede Saklandığı ve Nasıl Temizleneceği
Bash kabuğu, kullanıcı hesabınızın geçmiş dosyasında çalıştırdığınız komutların geçmişini varsayılan olarak ~ / .bash_history konumunda saklar. Örneğin, kullanıcı adınız bob ise, bu dosyayı /home/bob/.bash_history adresinde bulabilirsiniz..
Geçmişiniz bir dosyada depolandığından, oturumlar arasında sürüyor. Bazı komutları çalıştırabilir, çıkış yapabilir, ertesi gün geri dönebilirsiniz ve bu komutlar geçmiş dosyanızda görüntülenmeye ve kullanılmaya hazır olacaktır. Her kullanıcı hesabının ayrı bir komut geçmişine sahip kendi geçmişi dosyası vardır..
Bash geçmişinizi silmek için aşağıdaki komutu çalıştırabilirsiniz. Bu, kullanıcı hesabınızın .bash_history dosyasının içeriğini siler:
tarihçe-c
Bash, yalnızca varsayılan olarak sınırlı sayıda komut hatırlar ve geçmiş dosyasının çok büyük büyümesini önler. Bash hatırlıyorum tarih girişlerinin sayısı tarafından kontrol edilir HISTSIZE
değişken. Varsayılan ayar genellikle 500 veya 1000 girişdir. Sisteminizde bash geçmişinin boyutunu görüntülemek için aşağıdaki komutu çalıştırabilirsiniz..
echo $ HISTSIZE
Geçmişinizi sıfıra ayarlamak için aşağıdaki komutu çalıştırın.
HISTSIZE = 0
Geçerli oturum için, bash bir komut çalıştırmadığınız sürece bash herhangi bir geçmiş girişini kaydetmez. HISTSIZE = 1000
belirli sayıda girişe geri ayarlamak için.
Boşluklar ve Kopyalar Nasıl Yoksayılır
Bash, siz ayarladıysanız boşlukla başlayan tarihçe girişlerini yok saymanıza izin verir. HISTCONTROL
değişken ignorespace.
HISTCONTROL = ignorespace
Bir komuttan önce bash kabuğunda çalıştırmadan önce bir boşluk bırakın; komut normal şekilde çalışır, ancak bu değişkeni etkinleştirdiyseniz geçmişinizde görünmez. Bu, geçmişinizde biraz daha temiz kalmanıza olanak tanır, geçmişinizde görünmeden komutları çalıştırmayı seçmenizi sağlar.
Bash ayrıca geçmişinizi bozabilecek yinelenen komutları yoksaymanıza izin verir. Bunu yapmak için HISTCONTROL
için ignoredups.
HISTCONTROL = ignoredups
İkisini de kullanmak için ignorespace
ve ignoredups
özelliği ayarlamak HISTCONTROL
değişken ignoreboth'un.
HISTCONTROL = ignoreboth'un
Ayarladığınız bash değişkenlerinin yalnızca geçerli oturum için geçerli olacağını unutmayın. İsterseniz, bu değerlerin başlattığınız her bash oturumunda otomatik olarak ayarlanması için bunları kullanıcı hesabınızın .bashrc dosyasına eklemeniz gerekir..
Bash kabuğu, bunlardan çok daha fazla seçeneğe sahip karmaşık bir araçtır. Resmi bash kılavuzundaki daha ayrıntılı bilgiler ve kullanabileceğiniz diğer püf noktaları bölümündeki Bash History Builtins ve History Expansion bölümlerine bakın..