/ / Bash Geçmişinizi Linux veya macOS Terminalinde Kullanma

Bash Geçmişinizi Linux veya macOS Terminalinde Kullanma

Bash kabuk standart terminalLinux dağıtımlarının çoğunda bulunan, MacOS'ta bulunan ve Windows 10'da kurulum için uygun olan ortam. 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ı

İLGİLİ: Bash için En İyi Klavye Kısayolları (aka Linux ve macOS Terminali)

Bash geçmişinizde gezinmek 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 gitmek 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. Bu kısayola basın ve bash geçmişinizi bir komut için aramak için 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:

history

Telefonunuzdaki tüm komutların bir listesini göreceksiniz.bash geçmişi, her birinin solunda bir sayı ile birlikte Yanında "1" olan komut, bash tarihinizdeki en eski komut, en yüksek numaralı komut ise en son komuttur.

İLGİLİ: Bu 8 Püf Nokta ile Linux Terminalinin Güçlü Kullanıcısı Olun

Çıktı ile istediğiniz her şeyi yapabilirsiniz. Örneğin, boruya grepkomut geçmişinizi aramak için komut.

history | grep your_search

Ayrıca, tail Çalıştırdığınız en 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şinizde son 5 girişi gösterir.

history | tail -5

Geçmişinizden Komutları Çalıştırın

Bash önceki komutları hızlıca “genişletebilir” veyaonları genişletin ve değiştirin. 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” işareti bulunan komut budur. history 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 basmak ve 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 koşacaktı. !! 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ını veriyor. Eklemeyi unutursanız bu özellikle yararlıdır sudo bir komutu çalıştırmadan önce.

sudo !!

Veya, örneğin, önceki komutu tekrar çalıştırabilir ve bazı metinleri aramak için çıktılarını grep için kullanabilirsiniz.

!! | grep text

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:

!text

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“Ve hemen çalıştır:

!pi

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:p
!!:p
!text: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.

command !$

Örneğin, komutu girdiğinizi 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 !$

Bu !$ bash, önceki komutunuzdaki son argümanı otomatik olarak doldururdu.

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:

command !^

Yani eğer kaçarsan ping google.com -c 4 ve sonra koştu ping !^ bash bunu “ping google.com".

Önceki komutta yalnızca bir bağımsız değişken yerine kullanılan tüm bağımsız değişkenleri doldurmak için aşağıdakileri kullanırsınız:

command !*

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.

command !abc:#

Örneğin, komutu çalıştırdık sudo hostname 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 kaç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:

command !abc:*

Önceki Komutu Yeniden Çalıştırın ve Değiştirin

Bash ayrıca öncekileri tekrar çalıştırmanıza izin verirkomut ve değiştirilmesi gereken bir şey belirtin. Bu komuttaki bir yazım hatası düzeltmek için yararlı olabilir. Örneğin, aşağıdaki komut “komutunu değiştirerek ö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 Silineceği

Bash kabuğu komutların geçmişini saklarkullanıcı hesabınızın geçmiş dosyasını varsayılan olarak ~ / .bash_history konumunda çalıştırdınız. Örneğin, kullanıcı adınız bob ise, bu dosyayı /home/bob/.bash_history adresinde bulabilirsiniz.

Geçmişiniz bir dosyada saklandığından,oturumlar arasında devam eder. 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:

history -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 HISTSIZEdeğ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ırmazsanız herhangi bir geçmiş girişini kaydetmez HISTSIZE=1000 belirli sayıda girişe geri ayarlamak için

Boşluklar ve Çoğaltmalar Nasıl Yoksayılır

Bash, siz ayarladıysanız boşlukla başlayan tarihçe girişlerini yok saymanıza izin verir. HISTCONTROLdeğişken ignorespace.

HISTCONTROL=ignorespace

Çalıştırmadan önce komuttan önce bir boşluk yazınbash kabuğundaki komut normal olarak çalışır, ancak bu değişkeni etkinleştirmişseniz geçmişinizde görünmez. Bu, geçmişinizde biraz daha temiz kalmanıza olanak sağlar ve 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.

HISTCONTROL=ignoreboth

Belirlediğiniz bash değişkenlerinin yalnızcageçerli oturum için devam İ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 çok daha fazlası ile karmaşık bir araçtırbunlardan daha fazla seçenek. Resmi bash kılavuzunda 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.