Ich kann den letzten Befehl im Terminal sehen, indem ich up arrow
wie im folgenden Beispiel drücke:
Ich tippte cd /
:
Makss-Mac:~ maks$ cd /
... gedrückt enter
, Befehl cd /
ausgeführt und jetzt kann up arrow
ich den Befehl cd /
erneut drücken und sehen :
Makss-Mac:/ maks$ cd /
Ich möchte nicht nur den letzten Befehl sehen, sondern ihn in die Zwischenablage kopieren.
Möglicherweise gibt es eine Verknüpfung, die nicht nur den letzten Befehl im Terminal anzeigt (so up arrow
wie), sondern gleichzeitig in die Zwischenablage kopiert.
Oder es gibt eine Abkürzung, um alle aus der aktuellen Terminalleitung auszuwählen. Und so kann ich den letzten Befehl (nach dem Drücken von up arrow
) durch Drücken von kopieren super+c
. Natürlich kann ich es mit der Maus auswählen. Aber wenn Befehle zehnmal länger sind cd /
, kann dies zu zeitaufwändig sein, insbesondere, wenn Sie dies alle 30 Sekunden tun.
Oder vielleicht gibt es eine Möglichkeit, ein Plugin für Terminal zu schreiben
quelle
Antworten:
Fügen Sie dies in Ihr
~/.bashrc
~/.bash_profile
oder wo immer es Ihnen gefällt ein:Nach dem Öffnen eines neuen Fensters (oder dem Ausführen
source ~/.bash_profile
) sollten Sie in der LagecopyLastCmd
sein, den Befehl auszuführen und in der Zwischenablage zu haben.Um zu erklären, was los ist: Sie verwenden im Grunde genommen "fix command" (
fc
), um den letzten Befehl zu erhalten, entfernen Sie führende und nachfolgende Leerzeichen, um eine bessere Formatierung zuawk
erzielen, und kopieren Sie sie dann mit in das Pasteboard Ihres Macpbcopy
.BEARBEITEN:
Jetzt, da wir wissen, dass Sie kopieren möchten, um es in einen anderen Terminal-Tab einzufügen, gibt es eine andere Option: Fügen Sie diese Zeilen zu Ihrem
~/.bashrc
~/.bash_profile
oder wo immer Sie möchten hinzu :Sobald Sie einige neue Registerkarten geöffnet haben (nennen wir sie "Registerkarte A" und "Registerkarte B"):
EDIT 2: Ich habe die Verwendung ersetzt
sed
mitawk
in der ursprünglichen Antwort oben, kümmern sowohl führende und nachfolgende Leerzeichen.quelle
awk
alias copyLastCmd='fc -ln -1 | sed '1s/^[[:space:]]*//' | awk 1 ORS="" | pbcopy '
fc -ln -1 | awk '{$1=$1}1'
sowohl abschließende als auch führende Leerzeichen.alias copyLastCmd="fc -ln -1 | awk '{\$1=\$1}1' | pbcopy"
. bekommt immer noch meine ZustimmungHier ist eine weitere Einstellung, die auf der Antwort von @Asmus basiert. Damit sein Alias in meinem Bash-Skript funktioniert, musste ich ein bisschen Anführungszeichen verwenden, da einfache Anführungszeichen in einem Alias mit einfachen Anführungszeichen ohne zusätzliche Anführungszeichen nicht funktionieren:
Das
'\''
schließt im Grunde das aktuelle Angebot, fügt dann ein maskiertes Angebot hinzu und öffnet dann das aktuelle Angebot erneut.Die obige Version kopiert den letzten Befehl in Ihre Zwischenablage. Sobald Sie ihn einfügen, wird er sofort ausgeführt, da er am Ende eine neue Zeile enthält .
Um den Zeilenvorschub am Ende zu entfernen, damit Sie den Befehl tatsächlich bearbeiten können, bevor Sie ihn ausführen, können Sie Folgendes tun:
Das
ORS=''
(ohne Anführungszeichen) entfernt das abschließende Zeilenumbruchzeichen, sodass Sie den eingefügten Text bearbeiten können, bevor Sie ihn ausführen.quelle
Hiermit wird die Verlaufserweiterung verwendet , um den letzten Befehl abzurufen und zu wiederholen. Sie können eine Pipe an senden,
pbcopy
um den letzten Befehl in Ihrer Zwischenablage zu speichern.Wenn Sie einen Befehl aus Ihrem Verlauf wünschen, der nicht der letzte war , können Sie Folgendes ausführen:
Verweisen Sie auf die gewünschte Befehlsnummer wie folgt:
quelle
Ich bin hierher gekommen, um Sam Berrys exakt gleiche Antwort zu finden, aber das funktioniert bei mir nicht (OSX 10.14.6).
Hat es geschafft, mit Anführungszeichen um das zu tun
!!
:echo "!!" | pbcopy
quelle
Sie können Ihren Verlauf so einstellen, dass Befehle, die mit einem Leerzeichen beginnen, ignoriert werden:
Führen Sie dann den folgenden Befehl aus, um den letzten Befehl in die Zwischenablage zu kopieren (stellen Sie sicher, dass Sie am Anfang ein Leerzeichen haben):
Wahrscheinlich möchten Sie den Befehl dann als Alias speichern, damit Sie ihn sich leichter merken können.
quelle