Für einige Projekte gebe ich oft ein paar Befehle ein, wie zum Beispiel:
cd an/extremely/long/path/in/which/I/have/some/kinda/project
und
./runmyproject --with some --command line --options set
Da ich ziemlich faul bin, versuche ich zu vermeiden, diese Befehle immer wieder vollständig einzugeben. Natürlich kann ich die Aufwärtstaste häufig verwenden, um diese Befehle wiederzufinden, aber oft habe ich auch so viele Befehle dazwischen, dass das Suchen noch mehr Zeit in Anspruch nimmt als nur das Eingeben.
Ich frage mich jetzt, ob es eine Art Dienstprogramm gibt, das einen vollständigen Befehl vorschlägt, den ich häufig verwende, wenn ich noch nicht alles eingegeben habe. Damit ich zum Beispiel 'cd an /' eingeben kann und dass es bereits den Rest des Pfades andeutet, weil ich ihn im letzten Monat so oft benutzt habe.
Ich habe etwas namens Bash Smart Complete gefunden. Aber das ist ein bisschen "dumm", weil es nicht auf die Befehle eingeht, die ich vorher verwendet habe. Ich habe gerade auch diese SO-Antwort gefunden , die vorschlägt, die Befehle, die ich häufig verwende, in eine Datei zu schreiben. Dies ist jedoch nicht ausreichend, da ich jedes Mal, wenn ich neue Projekte starte oder Ordner oder Programmargumente ändere, eine neue Datei dafür erstellen müsste.
Kennt jemand einen anderen Nutzen oder einen anderen Weg, um dies zu erreichen? Oder würde jemand wissen, wie ich den Bash Smart Complete so ändern kann, dass er die Befehle anzeigt, die ich im letzten Monat verwendet habe, und den Befehl ausführt, der im letzten Monat am besten passt und am häufigsten verwendet wurde?
[EDIT] Nachfolgend finden Sie einige wirklich gute Antworten. Ich habe noch keine als endgültige Antwort markiert. Nicht weil mir die Antworten nicht gefallen, sondern weil keiner von ihnen ein absoluter Gewinner ist. Ich denke, das Finalterm ist ein großartiges Projekt. Leider ist es immer noch ziemlich rau an den Rändern. Beispielsweise; Copy-Paste wird noch nicht unterstützt. Ich würde dieses Projekt jedoch im Auge behalten, denn wenn es reif wird, wird es meiner Meinung nach eine großartige Terminal-App. Was die anderen Antworten betrifft; Entweder schlugen sie vor, einen Alias zu erstellen, was ich nicht tun möchte, weil es zusätzliche Arbeit schafft, anstatt Arbeit wegzunehmen, oder sie verwendeten Strg + R, was brillant ist (ich wusste nichts davon!). Ein paar Leute schlugen die Verwendung von Strg + R vor, sodass ich eine Antwort nicht wirklich über die andere heben kann.
Im Moment benutze ich also definitiv Strg + R und in Zukunft vielleicht Finalterm.
Danke für all die tollen Antworten, Leute!
quelle
zsh
. Es bietet alles, was Sie sich wünschen und vieles mehr.Antworten:
Wenn die Befehle häufig verwendet werden, werden sie in den Befehlsverlaufs-Bash-Spuren in aufgezeichnet
.bash_history
.Jetzt der Trick: Sie können diesen Verlauf umkehren, um Befehle erneut auszuführen, indem Sie STRG-R drücken .
Im inversen Verlaufssuchmodus zeigt bash während der Eingabe den aktuellsten Befehl im Verlauf, der mit Ihrer Eingabe beginnt. Drücken Sie anschließend die Eingabetaste, um den vorgeschlagenen Befehl zu akzeptieren und auszuführen. Halten Sie STRG-R gedrückt, um zu älteren Befehlen mit demselben Präfix zu wechseln.
Dies ist in bash integriert, ohne dass Skripte angepasst oder Software installiert werden müssen :) Dies ist eine der nützlichsten Funktionen von bash, imho.
quelle
Fügen Sie (Strg-Umschalt-V) Folgendes in ein Terminalfenster ein:
Verlassen Sie den Terminal-Bildschirm (Strg-D) und öffnen Sie das Terminal erneut.
Jetzt können Sie nur die ersten Zeichen eingeben und dann mit Auf oder Ab durch die gefilterte Liste scrollen
quelle
Endgültige Amtszeit
Es gibt diese vielversprechende Terminal-App namens Final Term . Unter seinen zahlreichen Funktionen verfügt es auch über einen Verlauf von Remebering-Befehlen, sodass Sie diese anschließend auswählen können. Hier sind einige weitere Funktionen:
Sie können mehr darüber in diesem Artikel lesen .
Hier ist die Website der Schöpfer. http://finalterm.org/
Um es zu installieren
Warnung
Ich habe gesagt, dass es vielversprechend ist. Das einzige Problem ist, dass es sich um Version 0.1 handelt. Also manche Dinge mögen
vim
undnano
funktionieren noch nicht gut. Mir ist auch aufgefallen, dass Drag & Drop sowie Kopieren und Einfügen noch nicht unterstützt werden. Aber es hat die Funktion, die Sie anfordern. Wenn die Software ausgereift ist, wird sie zu einem der besten Terminals für den Desktop.Bildschirmfoto
Hier ist die Funktion in Aktion:
Hoffe das hilft.
* Ich bin auf Saucy, deshalb habe ich einen Salamander-Hintergrund :)
quelle
Verwenden Sie ein
alias
für Ihren gesamten Befehl, oder fügen Sie das Verzeichnis zu Ihrem hinzu$PATH
. Außerdem müssen Sie die Verzeichnisse nicht dahin ändern, wo Ihre ausführbare Datei (oder Ihr Skript oder was auch immer) ausgeführt werden soll, sodass es ziemlich einfach ist. Bei beiden Methoden müssen Sie das verwendete Terminal neu starten, damit die Änderungen wirksam werden.So erstellen Sie eine
bash
alias
für Ihr Beispiel (fügen Sie Ihrer~/.bashrc
Datei die folgende Zeile hinzu ):Auf diese Weise müssen Sie nur noch etwas eingeben
runmyproject
in das Terminal eingeben, ohne Optionen / Argumente angeben zu müssen.Alternativ können Sie Ihren Projektpfad zu Ihrer
$PATH
Umgebungsvariablen hinzufügen . Fügen Sie dazu die folgenden Zeilen in Ihre~/.bashrc
Datei ein:In diesem Fall müssen Sie weiterhin Ihre Optionen / Argumente für Ihre ausführbare Datei angeben, wenn Sie sie ausführen.
quelle
Wenn ich häufig in ein Verzeichnis wie dieses wechseln muss:
Ich würde das nur einmal machen:
Und von da an verwenden Sie:
Wenn es darum geht:
Ich würde die Bash-History-Suche verwenden. Drücken Sie an der Eingabeaufforderung einfach Strg-R und geben Sie "runmy" ein. Voila, der gesamte Befehl mit allen Optionen, wie er zuletzt eingegeben wurde, ist genau dort, um erneut eingegeben zu werden. Wenn mir die Optionen, die ich das letzte Mal verwendet habe und die früheren Befehle anzeigen wollte, nicht gefallen, würde ich Strg-R gedrückt halten, um alle vorherigen Befehle zu durchlaufen, die "runmy" enthielten.
Die Ctrl-R-Verlaufssuche kann auch beim Befehl 'cd' hilfreich sein, wenn Sie die Symlink-Idee nicht mögen. [Strg-R] / proj wird wahrscheinlich den letzten Befehl zurückbringen, den Sie für die CD in dieses Verzeichnis verwendet haben.
Anstatt einen Alias hinzuzufügen oder zu einer speziellen Shell zu wechseln, ziehe ich es immer vor, zu lernen, die Bash-Funktionen zu verwenden, die bei solchen Dingen hilfreich sind. Auf diese Weise kann ich die gleichen Funktionen auf Remote-Computern verwenden oder mich an das Terminal eines Kollegen setzen.
quelle
Drücken Sie die Tastenkombination Strg + R auf Ihrer Tastatur - Sie werden in den Reverse-History-Modus versetzt, und Sie können den Teil eingeben, den Sie kennen. Der gesamte Befehl wird angezeigt
Es gibt andere Möglichkeiten, die hier aufgelistet sind
http://www.talug.org/events/20030709/cmdline_history.html
Ich benutze allerdings meistens die Kontrolle R
quelle
Versuchen Sie dies ... Dies funktioniert für alle Befehle in Ihrer Verlaufsdatei ... ist dasselbe wie Ctrl+ R, aber ich denke, das ist intuitiver :)
bearbeiten
/etc/inputrc
Kommentar entfernen oder diese zwei Zeilen hinzufügen
abmelden Anmelden
Versuchen Sie dann, einen Befehl zu schreiben, der im Verlauf aufgeführt ist ...
mögen...
schreiben
und drücke
Page Upoder um Page Dnin Ihrer Verlaufsdatei nach Befehlen zu suchen, die mit "ls" beginnen
Wenn Sie alles richtig gemacht haben, sollte es Ihren Befehl automatisch vervollständigen ...
quelle