Anasayfa » nasıl » Bash Geçmişinizi Linux veya macOS Terminalinde Kullanma

    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 grepkomut 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 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ı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. HISTCONTROLdeğ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..