Hogyan kereshetek parancssori előzményeket a korábban használt parancsokhoz?

149

A történelem megtekintésén kívül van mód a történelem szűrésére?

Mondja, hogy meg akarok keresni egy parancsot, amely az "ssh" -el kezdődött?

    
készlet Blankman 02.11.2011 02:25
forrás

10 válasz

231

Nyomja meg a Ctrl + R billentyűt és írja be assh parancsot. Ctrl + R elindítja a keresést a legutóbbi parancsról a régire (fordított keresés). Ha több parancs van, amelyssh -al kezdődik, nyomja meg újra és újra a Ctrl + R gombot, amíg meg nem találja a mérkőzést.

Miután megtaláltuk a meccset, megnyomhatjuk a Enter parancsot a parancs vagy a bal / jobb kurzorral, hogy kiválasszuk a parancs szövegét.

A Ctrl + R alapértelmezett fordított opció nem fordítható a keresés irányába, de itt talál néhány javaslatot róla.

    
válasz adott Prince John Wesley 02.11.2011 02:32
forrás
77

Ha csak az előzményeket szeretné megkeresni, akkor csak ahistory | grep ssh -ot használhatja, az ssh helyettesítésével, amit keresni szeretne.

    
válasz adott ssmy 02.11.2011 02:36
forrás
13

A Ctrl + R megnyomása elindítja a "reverse-i-search" módot, az "ssh" beírása az "ssh" p>     

válasz adott Sergey 02.11.2011 02:33
forrás
13

A fentiek enyhe változatai jól működnek számomra (ha hivatkozik a bash történetére

A saját mappámban létrehozom a

nevű fájlt
.inputrc

Belül ez a

"\e[5~": history-search-backward
"\e[6~": history-search-forward

Megjegyzés: a fentiek nem működnek többé a 14.04-ben, így ez ugyanazt csinálja -

"\e[A":history-search-backward
"\e[B":history-search-forward

Akkor írhatunk egy előző parancs nagy részét, amit szeretnék & az oldal fel / oldalán a dn gombok keresik a történetet, mindig az oldal felfelé kezdve

    
válasz adott doug 02.11.2011 02:42
forrás
5

Itt van egy másik módszer a klasszikus parancsok használatával (nagyobb valószínűséggel az elosztásokon keresztül). A parancsok előzményeit a.bash_history fájlban tárolja a saját könyvtárában, így ezt teheti:

grep "ssh" ~/.bash_history

Ne felejtsd el a-i jelzőt, ha esetleges érzéketlen keresésre van szükséged.

    
válasz adott DisgruntledGoat 02.11.2011 10:49
forrás
2

A következő funkciót találtam valahol az interneten, és nagy hatással jártam. Tegye ezt a~/.bashrc:

kifejezésre
hgrep () { 
    history | egrep --color=auto --recursive "$@" | egrep --color=auto --recursive -v "hgrep $@"
}

Most töltse újra a shell:exec bash. Most van egy új parancs, amelyet így használhat:

hgrep ssh

Megmutatja neked a megfelelő parancsok listáját a történelemből. Egy parancs futtatásához írja be a! parancsot, majd a parancsszámot. Íme egy példa:

~:$ hgrep scp
  207  tn scp foreign-teachers __HOST__:unity.log __HOST__:compiz.log .
  421  tn scp scott-laptop __HOST__:Scott\ Severance.asc .
  422  tn scp scott-laptop __HOST__:'Scott\ Severance.asc' .
  468  tn scott-desktop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
  469  tn scott-laptop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
  470  scp -r Backgrounds/* 192.168.1.2:Pictures/Backgrounds
~:$ !207

Jobban szeretem ezt a megközelítést, mint a Ctrl + R , mert sokkal rugalmasabb kereséseket tesz lehetővé, és egyszerre több eredményt látok.

    
válasz adott Scott Severance 09.11.2011 04:14
forrás
2

Tegye ezt a~/.bashrc:

elemre
  

alias hgrep = 'történelem grep --color = auto '

példa:

    
válasz adott hadj messaoud 15.10.2017 12:59
forrás
1

Ha héjat használsz az Emacs-ban (M-x shell) használhatM-r (egyenértékű a Ctrl + R terminális ).

    
válasz adott N.N. 26.08.2012 17:33
forrás
1

A történelem jó, de korlátozott - inkább be kell állítanom a bash környezetemet, hogy az általam futtatott parancsok mellett az összes könyvtárat, amelyre valaha is futottam, beírtam all . Futtattam egy parancsot, hogy felsorolhassam az aktuális könyvtárban futó összes parancsot, melyeket a grep stb. Csomópontba lehet sorolni - ez az "étel", lásd:

link

Ha el akarsz vágni az üldözésre, csak ezt a forrást a .bashrc-ben ( linkben)

Van egy nagyon hasznos parancs, amit ingyen kapsz a "dishg" -nek vagy a dish globalnek, ami minden parancsot kinyomtat, függetlenül a könyvtáratol. Nyilvánvaló, hogy ez csak akkor hasznos, ha greprel és farokkal együtt használják ...

Már évek óta használtam, és szó szerint az első dolog, amit telepítek, amikor új dobozt állítottam be. Naplózza a rejtett könyvtárban lévő szövegfájlokba futtatott parancsokat (~ / .dish) .. Soha nem volt probléma lemezterületekkel ...

    
válasz adott David Woolford 26.08.2018 01:53
forrás
0

Szerette volna ezt megjegyzésként írni a következőre: @ ssmy , de a megjegyzésben nem tudta a formázást együttműködni.

Ahistory | grep ssh paranccsal történő keresés után a kívánt parancs végrehajtásával megadhatja a felszólalási számmal ellátott számot, pl. !42.

Példa:

$ history | grep ssh
  5 ssh me@someserver.net
 13 ssh me@someotherserver.net
 42 ssh me@thisone.com
$ !42
    
válasz adott magikMaker 31.01.2018 22:12
forrás