24Aug

Linux veya macOS Terminalinde Boşanma Geçmişinizi Kullanma

click fraud protection

bash kabuğu, MacOS ile birlikte verilen ve Windows 10'da kurulum için mevcut olan çoğu Linux dağıtımında bulunan standart terminal ortamıdır. Yazdığınız komutları hatırlar ve bir geçmiş dosyasında saklar. Muhtemelen bash tarihinin bazı temellerini biliyorsunuz, ancak fark edebileceğinizden çok daha güçlüdür.

Klavye Kısayolları

Bas tarihçenizi taramak için bash'ın birçok kullanışlı klavye kısayolundan bir kaçını kullanabilirsiniz. Daha önce kullandığınız bu kısayolları ve komutları istemde görünecektir.

  • Yukarı Ok veya Ctrl + P : Geçmişinizdeki bir önceki komuta gidin. Kullandığınız komutları geriye doğru yürümek için tuşuna birkaç kez basın.
  • Aşağı Ok veya Ctrl + N : Geçmişinizdeki bir sonraki komuta gidin. Kullandığınız komutlarla ileriye doğru yürümek için birkaç kez tuşuna basın.
  • Alt + R : Geçerli çizgide düzenlediyseniz, geçmişinizden çektiğiniz bir komutta yapılan değişiklikleri geri alın.

Bash'in ayrıca, tek tek ilerlemenizden çok, daha önce çalıştırdığınız komutları aramak için kullanabileceğiniz özel bir "geri çağırma" modu vardır.

instagram viewer
  • Ctrl + R : Sağladığınız karakterlerle eşleşen son komutu çağırın. Bu kısayola basın ve bash geçmişinizde bir komut aramak için yazmaya başlayın.
  • Ctrl + O : Bulduğunuz komutu Ctrl + R ile çalıştırın.
  • Ctrl + G : Bir komut çalıştırmadan geçmiş arama modundan çıkın.

Baslik Öyküsünü Görüntüle

Tek baslik komut baslatarak tüm bash geçmişini ekrana yazdırabilirsiniz:

geçmişi

bash geçmişindeki tüm komutların bir listesini ve her birinin solundaki bir sayı görürsünüz. Yanındaki "1" ile komut, bash geçmişinizdeki en eski komuttur, en yüksek numaralı komut en yeni komuttur.

Çıktıyla istediğiniz her şeyi yapabilirsiniz.Örneğin, komut geçmişinizde arama yapmak için onu grep komutuna bağlayabilirsiniz.

geçmişi |grep your_search

Ayrıca kuyruk komutuna basarak, çalıştırdığınız son komutların yalnızca küçük bir bölümünü görüntüleyebilirsiniz.Örneğin, aşağıdaki komut, geçmişinizdeki son 5 girişi gösterir.

geçmişi |tail -5

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

Bash, önceki komutları hızla "genişletebilir" veya genişletip bunları değiştirir. Bu özellik "geçmiş genişlemesi" olarak bilinir ve bir "bang" olarak bilinen bir ünlem işareti kullanır. Bunları komut satırına yazmanız yeterlidir ve başka komutu çalıştırdığınız gibi çalıştırmak için Enter tuşuna basın.

Geçmişinizden sayıya göre belirli bir komutu çalıştırmak için şu komutu kullanın:

! #

Örneğin, bash geçmişinizden 12. komutunu çalıştırmak istediğinizi varsayalım. Geçmiş komutunu çalıştırdığınızda bunun solunda "12" olan komut budur. Aşağıdaki komutu yazarsın.

! 12

Koştuğunuz son komutu yeniden çalıştırmak için aşağıdakini yazın. Bu, önceki komutu görüntülemek ve daha sonra Enter tuşuna basmak için Yukarı okuna bir kez basma ile aynı etkiyi yapar.

! !

Belirli bir sayıda satır geriye bir komuta da bakabilirsiniz.Örneğin,! -2, koştuğunuz son komuta ikincisini verecektir.!!! -1 ile aynı anlama gelmektedir.

Bu genişleme, hattın herhangi bir yerinde çalışır.İstediğiniz her şeyi önce veya sonra ekleyebilirsiniz!veya bu bölümdeki diğer ifadelerden herhangi biri.Örneğin, sudo aracılığıyla koştuğunuz son komutu yeniden çalıştırarak root yetkileri vererek aşağıdaki komutu yazabilirsiniz. Bir komutu çalıştırmadan önce sudo'yu eklemeyi unutursanız, bu özellikle yararlıdır.

sudo! !

Veya örneğin, önceki komutu yeniden çalıştırıp, bazı metinleri aramak için çıktısını grep'e gönderebilirsiniz.

! !|grep text

Geçmişinizde bir komut aramak ve çalıştırmak için aşağıdakileri yazın. Bu, belirttiğiniz metne uyan son komutu çalıştıracaktır:

! Text

Ping ile başlayan bir komutu kısa süre önce çalıştırdıysanız, onu aramak için aşağıdaki komutu çalıştırabilirsiniz. Bu, geçmişiniz boyunca geriye doğru arama yapar, "pi" ile başlayan en yeni komutu bulur ve hemen çalıştırır:

! Pi

Yukarıdaki genişletmelerden herhangi birine a: p ekleyebilirsiniz ve bash komutunu terminal çalıştırmadan çalıştırır. Doğru komutu çalıştırmadan önce seçtiğinizi onaylamak istiyorsanız, bu kullanışlıdır.

! 12: p! !: p! Text: p

Geçmişinizden Yeniden Kullanma Bağlamları

Bash, aynı zamanda yeni bir komut çalıştırmanıza, geçmişinizdeki önceki komutların argümanlarını kullanmanıza olanak tanır. Bu, uzun veya karışık argümanları yeniden yazmak zorunda kalmadan hızlı bir şekilde yeniden kullanmanıza yardımcı olabilir.

komutu! $

Örneğin, /home/chris/ some_long_file_name_you_dont_want_to_type_again komutunu çalıştırdığınızı varsayalım. Artık nano /home/chris/ some_long_file_name_you_dont_want_to_type_again komutunu çalıştırmak istiyorsunuz. Her şeyi sıfırdan yazmak yerine şunu çalıştırabilirsiniz:

nano! $

! $! Bash otomatik olarak önceki komutunuzdaki son bağımsız değişkeni dolduracaktır.

Bu yalnızca son argümanı dolduruyor. Dolayısıyla, ping google.com -c 4 çalıştırdıktan sonra ping! $ Çalıştırırsanız, bu sadece "ping 4" e genişler.

Bu durumu düzeltmek için son argüman yerine satırdaki ilk argümanı genişletmek için aşağıdaki numarayı kullanabilirsiniz:

komutu! ^

Dolayısıyla, ping google.com -c 4 çalıştırdıysanız ve ardından ping! ^ I çalıştırdıysanız,bash bunu "ping google.com" a genişletir.

Sadece tek bir argüman yerine önceki komutta kullanılan tüm argümanları doldurmak için aşağıdakileri kullanırsınız:

komutu! *

Yani, ping çalıştırdıysanız!* Bunun yerine, bash otomatik olarak önceki komutda kullandığınız tüm bağımsız değişkenleri dolduracaktır

Onların bağımsız değişkenlerini almak için geçmişinizden komutları çalıştırmak için kullandığınız aynı numarayı kullanabilirsiniz. Aşağıdaki formu kullanın

komutu! abc:#

Örneğin sudo ana bilgisayar adını ubuntu önce çalıştırdık. Aşağıdaki komutu çalıştırırsak, bash geçmişe geriye doğru arama yaparak yazdığınız harflerden başlayarak son komutu bulur ve belirttiğimiz argümanı doldurur.biz yankı çalmak! su: 2, bash "su" ile başlayan son komutu bulmak için geri arayacak ve "ubuntu" olan ikinci argümanını dolduracaktır.

Diğer hileler beklediğiniz gibi çalışır.Örneğin, sayı joker karakter olarak adlandırılan bir yıldız işareti ile değiştirildiğinde bash komutunun tüm bağımsız değişkenlerini doldurmasına neden olur:

komutu! Abc: *

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

Bash aynı zamanda önceki komutu yeniden çalıştırmanıza izin verirve değiştirilmesi gereken bir şeyi belirtin. Bu, bir yazım hatasını bir komutta düzeltmek için kullanışlı olabilir.Örneğin, aşağıdaki komut, "abc" metnini "xyz" metni ile değiştirerek önceki komutu tekrar çalıştırır.

^ abc ^ xyz

Örneğin, yanlışlıkla ping gogle.com'u çalıştırdıysanız, ^ gog ^ goog komutunu çalıştırıp bash bunun yerine ping google.com komutunu çalıştırır.

Geçmişinizin Nerede Tutulduğu ve Nasıl Temizleneceği

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

Geçmişiniz bir dosyada saklandığından oturumlar arasında kalıcıdır. 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 haldedir. Her kullanıcı hesabının ayrı bir komut geçmişi olan kendi geçmiş dosyası vardır.

Başlama geçmişinizi temizlemek 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:

geçmişi -c

Bash, varsayılan olarak, sınırlı sayıda komut hatırlar ve böylece geçmiş dosyasının büyümesini engeller. Bash hatıralarının geçmiş girdileri sayısı HISTSIZE değişkeniyle kontrol edilir. Varsayılan değer genellikle 500 veya 1000 girdidir. Sisteminizdeki 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 oturumda bash, belirli bir sayıda girişe geri getirmek için HISTSIZE = 1000 gibi bir komut çalıştırmadığınız sürece geçmiş girişlerini saklamayacaktır.

Boşlukları ve Çoğalgıları Nasıl Yoksayırsınız

Bash, HISTCONTROL değişkenini yok saymaya ayarlarsanız, boşlukla başlayan geçmişi girdilerini yok saymanıza izin verir.

HISTCONTROL = yok sayma alanı

Bir komuttan önce bash kabuğunda çalıştırmadan önce bir boşluk yazın ve komut normal şekilde çalışır, ancak bu değişkeni etkinleştirdiyseniz geçmişinizde görünmez. Bu, geçmişinizi biraz daha temiz tutmanıza, geçmişinizde görünmeden komutları çalıştırmayı seçmenize olanak tanır.

Bash, geçmişinizi yığılabilen yinelenen komutları görmezden gelmenizi sağlar. Bunu yapmak için, HISTCONTROL öğesini yok sayılanlara ayarlayın.

HISTCONTROL = ignoredups

Hem ignorespace hem de ignoredups özelliğini kullanmak için, HISTCONTROL değişkenini yok sayacak şekilde ayarlayın.

HISTCONTROL = ignoreboth

Ayarladığınız bash değişkenlerinin yalnızca geçerli oturumda kalacağına dikkat edin. Tercih ettiğiniz her bash oturumunda bu değerleri otomatik olarak ayarlamak için bunları kullanıcı hesabınızın. bashrc dosyasına eklemeniz gerekecektir.

bash kabuğu, bundan çok daha fazla seçenek içeren karmaşık bir araçtır. Kullanabileceğiniz daha ayrıntılı bilgiler ve diğer gelişmiş hileler, resmi bash el kitabındaki Bash History Builtins ve History Expansion bölümlerine bakın.