Zum Beispiel:
[root@ip-10-0-7-125 ~]# history | grep free
594 free -m
634 free -m | xargs | awk '{print "free/total memory" $17 " / " $ 8}'
635 free -m
636 free -m | xargs | awk '{print "free/total memory" $9 " / " $ 10}'
736 df -h | xargs | awk '{print "free/total disk: " $11 " / " $9}'
740 df -h | xargs | awk '{print "free/total disk: " $11 " / " $8}'
741 free -m | xargs | awk '{print "free/total memory: " $17 " / " $8 " MB"}'
Ich frage mich nur, ob es eine Möglichkeit gibt, den Befehl 636 auszuführen, ohne ihn erneut einzugeben. Geben Sie einfach etwas plus die Zahl ein, wie etwa history 636 oder so.
bash
command-history
Der Eine
quelle
quelle
ctrl-r
?Antworten:
In der Bash wird nur
!636
ok sein.quelle
In Linux
- Dies hat mehr mit der Shell zu tun (bash, zsh usw.), auf der eine Person ausgeführt wird, als mit dem Betriebssystem, auf dem Sie sie ausführen. Es gibt Shells unter Linux ohne Unterstützung für die Geschichte.:p
zu drucken, ohne ihn auszuführen!636:p
. Das bedeutet, dass Sie es einfach wieder aus Ihrem Verlauf auswählen können, indem Sie auf den AufwärtspfeilJa, es heißt "Geschichtserweiterung". Sehen
für alle Details.
Die Verwendung eines Ausrufezeichens gefolgt von einer Zahl ist wohl die einfachste Verwendung:
Sie können den zuletzt ausgeführten Befehl jedoch auch direkt ausführen, ohne dessen Verlaufsnummer zu kennen:
Oder Sie können zwei Befehle zurück ausführen:
Die Form, die ich jedoch am häufigsten benutze, besteht darin, das letzte Argument des letzten Befehls zu wiederholen:
Oder nehmen wir an, ich inspiziere eine Datei. Mit der Tab-Vervollständigung kann ich Folgendes tun:
Wieder lesen Sie die man - Seite für weitere Informationen:
quelle
Alt-.
kann bequemer sein als!$
. Es fügt das letzte Argument des letzten Befehls wörtlich in die Zeile ein.!$
, aber noch nie davon gehört habeAlt-.
)? Veröffentlichen Sie bitte einen Link dazu?LESS="+/DEFAULT KEY BINDINGS" man 3 readline
,/etc/inputrc
,~/.inputrc
. Viele Programme außer bash verwenden libreadline. für diejenigen , die tun, erhalten Sie die gleichen Funktionen wieAlt-.
,Ctrl-X-U
(rückgängig machen),Ctrl-/
(beschreiben Abkürzung), Tab-Vervollständigung, etc. - kostenlos. Beispielsweise können mit nur drei Zeilen vonPYTHONSTARTUP
einer die Tab-Vervollständigung und der Verlauf in der Standard-Python-REPL aktiviert werden . Was (meistens) genauso funktioniert wie in Bash, da es die GNU Readline-Bibliothek ist, die die Arbeit macht. In der Manpage der Readline werden die Funktionen ausführlich beschrieben.echo {1..5}
gefolgt von fünf Dateientouch !$
berühren , nicht nur eine. Genau genommen ist es also nicht das letzte Argument, sondern das letzte Shell-Wort in dieser Zeile. (Versuchen Sie auch, gefolgt von .) Wenn Sie eine Möglichkeit finden, dies deutlicher auszudrücken, können Sie eine Änderung vorschlagen.echo hello >temp
echo goodbye !$
Ein netter, wenn Sie nicht die erste Geschichte wollen, notieren Sie sich die Nummer, etc:
in bash (und vielleicht auch anderen):
(
ctrl-r
= "Rückwärtssuche interaktiv") (something
= ein Teil eines vorherigen Befehls)Dies zeigt Ihnen die neueste Verlaufszeile mit
something
. Um die vorherige zu erhalten, drücken Sie erneut die Tastenkombination Strg-R (allein), wenn eine vorherige Zeile abgerufen wird.Ex:
um die neueste Verlaufszeile mit '10' anzuzeigen (zum Beispiel die Zeile mit
$10
, in Ihrem Beispiel) undctrl-r
erneut, bis Sie die gesuchte Verlaufszeile abrufenWenn die Linie , die Sie erscheinen wollten, nur ,
Enter
um es auszuführen (oder Sie können es auch bearbeiten, die mitarrow keys
,backspace
undctrl-a
an den Anfang der Zeile zu gehen,ctrl-e
zum Ende zu kommen,ctrl-k
: zu „töten“ vom Cursor bis zum Ende der Zeile (= löscht + speichert es in einem Puffer)ctrl-y
,: um ein zuvor getötetes Bit aus dem Puffer wiederherzustellen, etc.)Wenn Sie vorwärts suchen möchten (Strg-S), müssen Sie zuerst XON deaktivieren : siehe https://stackoverflow.com/a/791800/1841533 :
msgstr "nur um XON / XOFF durch Ausführen zu deaktivieren
"(und dann kannst du ctrl-s benutzen, ohne dass es das Terminal einfriert)
quelle
Sie können die in fc eingebaute Shell verwenden :
quelle
-s
, um die Vorteile zu erhalten. Wenn Sie den Befehl ausführenfc 636
, öffnen Sie einen Editor mit dem Befehl 636 aus Ihrem Verlauf im Puffer, und wenn Sie den Befehl speichern und beenden (geändert oder nicht), wird er ausgeführt. Und noch besser, dieser ist POSIX-konform .help
ist nicht POSIX - müssen möglicherweise tunman dash
oder ähnlichhelp
existiert. Eine weitere Shell eingebaut. Und ein Rätsel für unachtsame Benutzer, die vielleicht Hilfe bei einem neuen System benötigen, aber stattdessen mit einer Menge Kauderwelsch konfrontiert werden. :-(Es gibt
HSTR
-hh
Befehl fürbash
undzsh
interaktive Befehlsauswahl, besser als Strg-R Rückwärtssuche:Es ist interaktiv, sodass Sie den Befehl suchen und bearbeiten können, bevor Sie ihn ausführen.
Unter Ubuntu können Sie
hh
mit dem folgenden Einzeiler installieren :oder Schritt für Schritt:
Installieren Sie
hh
auf Fedora, RHEL oder CentOS:Unter macOS mit
homebrew
:... dann konfigurieren Sie es mit:
Dadurch wird das Standardverhalten von Strg-R ersetzt.
Führen Sie
hh --show-configuration
den Befehl aus , um zu bestimmen, was an Ihr Bash-Profil angehängt wird.Weitere Konfigurationsoptionen finden Sie auf der Projekthomepage unter Github: https://github.com/dvorka/hstr
quelle