In Matlab gibt es eine sehr nette Funktion, die ich mag. Angenommen, ich habe den Befehl very-long-command
und danach einige Befehle eingegeben. Später, wenn ich den langen Befehl erneut brauche, tippe ich einfach very
ein und drücke die Pfeil-nach-oben-Taste, mein langer Befehl erscheint. Es findet den letzten Befehl, der mit very
beginnt. Ich konnte das gleiche in der Unix-Befehlszeile nicht machen, wenn ich es versuche, ignoriert es, was auch immer ich tippte, und geht zu den letzten Befehlen in chronologischer Reihenfolge zurück. Gibt es einen Weg, es zu tun?Matlab-ähnlicher Befehl History Abruf in Unix-Befehlszeile
Antwort
In der bash schlagen ctrl - r lassen Sie eine Geschichte-Suche:
$ echo 'something very long'
something very long
$ # blah
$ # many commands later...
(reverse-i-search)`ec': echo 'something very long'
In dem obigen Code-Schnipsel, ich traf ctrl - r auf der nächsten Zeile nach # many commands later...
und dann getippt ec, die mich zurück zum Echo-Befehl brachte. An diesem Punkt wird eingeben Geben Sie wird den Befehl ausführen.
Danke! Ich habe noch eine kurze Frage, was ist, wenn zwei kürzlich verwendete lange Befehle mit Echo beginnen, wie kann ich mit dieser Methode zwischen den beiden wechseln? – AgCl
10 @AgCl: [Dieser Blogbeitrag] (http://ronny.haryan.to/archives/2005/03/14/tip-history-search-in-bash/) erklärt, wie man 'history-search-forward' einrichtet 'und' history-search-backward', um durch den Verlauf zu navigieren. –
Der obige Link ist tot –
Sie können das Gleiche tun, indem Sie "!" Verwenden. Zum Beispiel:
$ echo "Hello"
Hello
$ !echo
echo "Hello"
Hello
Allerdings ist es in der Regel eine schlechte Idee, diese Art der Sache zu tun (was ist, wenn der letzte Befehl tat etwas destruktiv?). Wenn Sie erwarten, dass Sie etwas wiederverwenden, dann schlage ich vor, dass Sie ein Shell-Skript erstellen und es irgendwo speichern (wann immer ich etwas wiederverwenden möchte, erstelle ich ein Skript in ~/.local/bin).
Danke, es ist fast so nah an Matlabs, aber ich kann den ganzen Befehl nicht sehen, bevor ich Enter drücke. Ich werde die Antwort auffrischen, wenn ich genug Wiederholungen habe. – AgCl
! Echo: p zeigt den Befehl (bash sowieso) und Sie können wählen, um es auszuführen oder nicht. –
@Ron, cool. Vielen Dank. –
In bash wird diese Funktionalität durch die Befehle history-search-forward und history-search-backward zur Verfügung gestellt, die standardmäßig an keine Schlüssel gebunden sind (siehe here). Wenn Sie
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'
laufen es Pfeil nach oben machen und Pfeil nach unten Suche nach hinten und für die Folge von Zeichen zwischen dem Beginn der aktuellen Zeile und dem Punkt, durch die Geschichte weiter. Siehe auch this related Stack Overflow question.
- 1. Verwenden von History-Befehl im Shell-Skript
- 2. Bash-History-Befehl, speichern ganzen Begriff ignoriert Optionen
- 3. Entfernen ORIG_HEAD und FETCH_HEAD aus der History-Ansicht in Eclipse
- 4. Entfernen ORIG_HEAD und FETCH_HEAD aus der History-Ansicht in Eclipse
- 5. Skript-Bash und History Unix
- 6. Django Simple History Alles löschen History on Model Löschen
- 7. GNU readline- History-Funktion
- 8. Bash prompt history issue
- 9. Subversion Merge-History-Visualisierung
- 10. firefox iframe history
- 11. Github Commit History Navigation
- 12. History Visualisierungstools für Versionskontrollsysteme?
- 13. Fehler 503 Backend Abruf
- 14. Problem mit RowlexdateTime-Abruf
- 15. Überschreibung Backbone Sammlung Abruf
- 16. Remote-XML-Abruf
- 17. Yahoo Adressbuch Abruf
- 18. Backbone.js Abruf Rückruf
- 19. Java Generics - Abruf Typ
- 20. Alte SQL History in Oracle SQL Entwickler
- 21. Lokale History-Konfiguration in IntelliJ IDEA 11
- 22. Was bedeutet rows_merged in der Compaction History?
- 23. Zurücksetzen der Bash-History-Suchposition
- 24. Share History zwischen Fenstern/Fenstern
- 25. Access Audit Inspektion + History Block!
- 26. Cross Site History Manipulation Auflösung
- 27. Android-Log-Abruf in meiner Android-Anwendung
- 28. Wie man einen Abruf in PHP verwenden
- 29. Abruf-API-Fehler in Service Worker
- 30. Windows: Apache Spark History Serverkonfiguration
Matlab hat gute Standardeinstellungen. Ich frage mich immer, warum die Unix-Leute keine guten Standardeinstellungen für diese Dinge bereitstellen können. – compie