Bash tarihçesine çalıştırmadan nasıl komut ekleyebilirim?


32

Her şimdi ve o zaman aslında gerçekten çalıştırmadan, Bash'deki tarihe bir komut eklemek faydalı olacaktır. Şimdiye kadar bulduğum kapalı şey #önüne bir ekleme yapmak ve geri dönmek. Daha iyi yollar var mı?

Yanıtlar:


39

history -s komuta


Bu özelliği hiç bilmiyordum. Hemen kullanımı düşünemiyorum, ama bilmek güzel.
Doug Harris,

7
Buna bir komut dosyasından benzer bir komut çalıştırmanın mümkün olup olmadığını biliyor musunuz? Ben bir senaryo var ./resize-images.shben sadece vurmak böylece yerine Senaryo bana tarihine komut eklemek eğer, gerçekten yararlı olacağını kimin nihai satır değişiklikleri geri çalışmalıdır bir komut gösterir up-enterı geri almak için gerekirse
Ben Page

1
@BenPage: Buradaki iki cevaba da bakınız: unix.stackexchange.com/questions/112354/… .
RustyTheBoyRobot 29:16

9

history -s komuta

Bunu yapmak için bir tuş vuruşunu bile bağlayabilirsiniz. Bunu bir Bash isteminde girebilirsiniz:

bind '"\C-q": "\C-a history -s \C-j"'

veya bunu kendinize ekleyin ~/.inputrc:

"\C-q": "\C-a history -s \C-j"

o zaman bir şeyler yazıp tuşuna basabilirsiniz Ctrl- qve idam edilmeden tarihe eklenecektir. "Tarihin" önce uzay neden historykendisi için komut değil senin eğer geçmişe eklenir HISTCONTROLdeğişken içeriyor ignorespaceveya ignoreboth. "\ Cq" yerine başka bir tuş vuruşu seçilebilir.


3

Tek bir karakter "komutundan" daha kısa bir şey bulmak zor, bu yüzden gerçekten tuş vuruşu seviyesine gitmeliyiz. Benim bash kurulumum ve bir ABD klavyem ile şimdi ne yapmanız gerekiyor:

  1. Satırın başına git CTRLA:: +1 komut, +2 tuşlarına basıldığında
  2. Ekleme #(ihtiyaçlar SHIFT): +1 komut, +2 tuşa basma
  3. Şununla tarihe ekleme ENTER: +1 komut, +1 tuşa basma

Toplamda 3 talimat, 5 tuşa basması.

Kullanılması ALT#1 talimat, 2 basılmasını aynısını yapıyor.

Klavye düzeninize ve bash yapılandırmanıza bağlı olarak YMMV.


3
Sorun, tuşa basma sayısı değil, amaçlanan "komut" yerine geçmişe "#command" kaydedilmesi.
Grumbel

1
Komutun gerçekten çalıştırılmadığını bilmenizi sağladığı için "#command" un geçmiş dosyasında depolanması çok hoş. Bir problemi çözmek için hangi komutları girdiğinizi daha sonra gözden geçirmek isterseniz, bu iyi olabilir.
Marnix A. van Ammers

2
@Garbel, @Marnix: Kabul, mektuba soruyu cevaplamadım ama şimdi daha da hızlı bir şekilde ne yaptığını gösterdim. Şahsen ben kullanarak kullanmak #commanddaha hızlı history -s commandve aynı zamanda history-search-backward/-forwarddüzgün harita eğer kullanmak çok kolay olduğunu düşünüyorum . Ama bu bir zevk meselesi.
Benjamin Bannier
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.