Belirli bir komutu çalıştırmadan komut geçmişinden nasıl geri çağırırım


13

Örneğin, bash ile yazdığım !xyzson komutu çalıştıracak yazabilirim xyz.

En son yazdığım komutu yerine getirmeden nasıl başlatabilirim xyz?
örneğin, ben çalıştırmadan önce parametreleri değiştirebilirsiniz ....

Yanıtlar:


20

Bunu şu şekilde yapabilirsiniz: Komut isteminde Ctrl+ tuşuna basın rve sonra da geri çağırmak istediğiniz komutu yazın xyz. Bu, komutu çalıştırmadan size tam komutu gösterecektir.


1
!Gösterimden daha kullanışlıdır , çünkü eşleşen geçmişe daha fazla geçiş yapmak için Ctrl-r tuşlarına birkaç kez basabilirsiniz. Uygun yere vardığınızda Enter ile değil Ctrl-o ile daha fazla kar elde etmeyi deneyebilirsiniz.
kubanczyk

12

Deneyin !xyz:p; komutu yürütmeden tarihin en üstüne geri çağırır, böylece yukarı ok etkileşimli düzenleme için hemen erişebilir.

Bir kenara, şimdiye kadar aceleci beri, makul zarar şey kazıp olabilecek bir Normal ifadeyle komutları hatırlatarak yaparken bunu yapmanın bir uygulama yapmak !rEn son hatırlamak amaçlanan rsync ...komutu, çekti arkasını ve idam bir rm *yığınına itilir edildiğini daha yakın zamanda rsync.


Teşekkürler, bu iyi bir uygulama. Aynı şeyi bir rm -rf ./*süredir hiç bu kadar minnettar olmadım. FYI !xyz:pÇalıştı, teşekkür ederim, ancak ctrl-r çözümünden birkaç ekstra tuşa basmanız gerekiyordu.
Mtl Dev

@MtlDev evet; Ben ^ R çözümü için en uygun bulmak EMACS! -Path için en uygun oysa ey millet vibenim gibi olators.
MadHatter

1
  1. Aşağıdaki komutu yürütün. Son yürütülen komutu yankılandıracaktır. komutu kopyalayıp düzenleyebilirsiniz. Bu komut debian dilinde test edildi.

    geçmişi kuyruk 2 | grep -v geçmişi | kes -d '' -f4-

  2. Veya ctrl + R tuşlarını basılı tutun ve son komutunuzun başlangıç ​​harfini yazın. Girişinize bağlı olarak daha önce yürüttüğünüz komutları listeleyecektir. İstenen komutu gösterdikten sonra, o komutu seçmek için sağ ok tuşuna basmanız yeterlidir.


1
İlk komut çok düzgün !! Ben sadece tarihte bu komuta bakmak tüm bu yazmak için daha hızlı olduğunu düşünüyorum ^ __ ^
Grajdeanu Alex.

1

Ters geçmiş araması başarısız olduysa, aşağıdakilerden birini yapın:

$ history | grep WHAT_YOU_LOOK_FOR

Veya:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
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.