Terminalde seçici komut geçmişi?


9

Bir terminalde, klavyenizde yukarı bastığınızda, daha önce verdiğiniz geçmiş komutları sırayla görebilirsiniz. Sadece geçmişte -for, "ls -l" ile başlayan komutları görmek için bir yol olup olmadığını merak ediyordum. Bu şekilde, komutların listesi şuysa:

  1. ls -l -a
  2. cmake
  3. cd ~ / Masaüstü
  4. cmake

Sadece "ls" ve sekme yazmak için bir yol veya "ls" ile başlayan terminal vererek geçmiş komutu açmak için gerekli tuş vuruşlarının herhangi bir kombinasyonu

Teşekkürler,

Yanıtlar:


14

Yalnızca ile başlayan şeyleri göstermez ls, ancak Ctrl-R lsgeçmişte geriye doğru arama yapabilirsiniz. Ctrl-RBir sonraki maçı bulmak için tekrarlayın .


CTRL+RKısayol komutu için teşekkür ederim .
Kleber S.7

8

Bazen buna sahip olmak yararlı olur ...

Misal

Ssh kullanarak başka bir makineye bağlanma:

yazmaya başla

ssh

PgUpTuşunu kullanın ve ssh son kullanılan ile sona erer ... PgUptekrar basın ve size bir sonrakini verir vb. Beğendiniz mi?

Bunu kullanabilirsiniz:

.Bashrc ( vi /home/<yourfolder>/.bashrc) öğenizi düzenleyin ve ekleyin:

$if Bash
    # Search history back and forward using page-up and page-down
    "\e[5~": history-search-backward
    "\e[6~": history-search-forward

    # Completion
    set match-hidden-files off
    set page-completions off
    set completion-query-items 350
    set show-all-if-ambiguous on

$endif

Bu, yalnızca kullanıcının terminaline bu işlevi ekler. Aynı şey için köklerden birini de düzenlemeniz gerekir: bu öğreticiyi wiki'den takip edebilirsiniz, yanlış yapmanın bir yolu yoktur, ayrıca terminal deneyiminizi geliştirmek için çok fazla şey var ...


Yukarı / Aşağı ok tuşlarına bile bağlayabilirsiniz: bind '"\e[A": history-search-backward'; bind '"\e[B": history-search-forward'bu da daha sezgisel hale getirir.
Fritz

5

Komut geçmişini görmek için şunu kullanın:

$ history

Sadece geçmiş komutu örneğin "ls" ile başlayan görmek istiyorsanız, bence kullanıyorum:

$ history | grep ls

Kesinlikle çıktı bir komut değil ama "ls" karakterleri içeren bir şey içerecektir, ama ben yardımcı olabilir düşünüyorum.


2

İstediğinizi elde etmenin en kolay yolu !<whatever-command>. Örneğin ls, en son gerçekleştirdiğiniz işlemi yürütmek için bir !ls. İhtiyacınız olanın bu olup olmadığını görmek için aşağıdaki günlüğe bakın:

nits@nits-excalibur:~$ ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI
nits@nits-excalibur:~$ cd Documents/
nits@nits-excalibur:~/Documents$ top
nits@nits-excalibur:~/Documents$ !ls
ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI

1
Bu komutu görüntülemeden çalıştırır, OP'nin istediği gibi görüntüleyen bir alternatif var mı?
Bruno Pereira

Zsh içinde yapabilirsiniz setopt HIST_VERIFYve komut giriş arabelleğinize yerleştirilir; burada kabul etmek için enter tuşuna basabilir veya düzenleyebilirsiniz.
poolie

1

Geçmiş ~ / .bash_history bulunur. Ayrıca, bash geçmişinizi aramak için düzgün bir numara için ctrl + r tuşlarına basın ve aradığınız komutun başlangıcını yazın.

ve Handy komut satırı diğer adları ve püf noktaları için http://ubuntuforums.org/showthread.php?t=204382

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.