Frage Wie lösche ich meine Befehle schnell?


Ich benutze Terminal für fast alle Aufgaben. Nehmen wir an, ich habe einen riesigen Befehl wie folgt eingegeben:

sudo a-huge-command

Was ist der einfachste Weg, um den gesamten Befehl mit einer einzigen Verknüpfung zu löschen, anstatt weiter zu schlagen Rücktaste Schlüssel?

Ich bin ein Ubuntu-Neuling, der Ubuntu professionell nutzen möchte.


163
2017-09-04 11:56


Ursprung


Es lohnt sich auch zu beachten, dass Sie einstellen können bash (und mehrere andere Shells) um vi Schlüssel zu verstehen: set -o vi. Sie könnten dann tun esc, dd (oder anders bearbeiten / ersetzen wie in vi [m]). - Wayne Werner
Zuhause, '#', Enter - Alistair Buxton
Dies ist ein billiger Hack, aber für das, was es wert ist, habe ich normalerweise nur den Pfeil nach oben gedrückt, bis ich zu einem wirklich kurzen Befehl komme (z. B. ls) und dann die Rücktaste - das sind normalerweise nur ein paar Tastenanschläge, so dass es nicht so groß ist. - KennyPeanuts
STRG <- ein paar Mal angetippt, lässt mich normalerweise zum Anfang meiner Abfrage zurückkehren. Ist das was du meinst? - marc-andre benoit


Antworten:


Benutzen Strg+U um Text von der Cursorposition zum Anfang der Befehlszeile zu schneiden. Später, wenn Sie wollen, verwenden Sie Strg+Y den ausgeschnittenen Text einfügen.

Wenn Sie nur die aktuelle Befehlszeile verwerfen und eine neue saubere Eingabeaufforderung erhalten möchten Strg+C.

Weitere Informationen finden Sie in der Ubuntu-Dokumentation für Das Terminal benutzen


176
2017-09-04 12:03



Diese Antwort funktioniert sowohl für bash (Ubuntu Standard) als auch für tsch. - Nick
Ich dachte, Dash war Ubuntu Standard? - Chris
dash ist der Standardinterpreter für /bin/sh Befehle. bash ist die Standard-Login- und TTY-Shell. - darvids0n
ich finde Ctrl + C eine schlechte Angewohnheit zu sein, da ich oft versehentlich Signale an Programme mit ihrer eigenen Aufforderung sende, sie töte und meinen Fortschritt und / oder mein Moment verliere. - user606723


Strg +  U sollte dir helfen.

Im Folgenden sind die restlichen Optionen aufgeführt. Ergriffen von Hier

UNIX versteht mehrere Steuerschlüsselbefehle, Befehle, die Sie eingeben, indem Sie den Steuerschlüssel (Strg) gedrückt halten, während Sie eine zweite Taste drücken

STRG + S - Friert den Bildschirm ein und stoppt die Anzeige auf dem Bildschirm (entspricht einer No-Scroll-Taste) (manchmal dauert es einen Moment zu arbeiten)

STRG + Q - Fixiert den Bildschirm und lässt den Bildschirm weiterlaufen

STRG + C - unterbricht ein laufendes Programm

STRG + \ - wie CTRL - C aber stärker (wird verwendet, wenn Terminal nicht antwortet)

STRG + Z - unterbricht ein laufendes Programm (verwenden Sie den Befehl fg, um das Programm fortzusetzen, siehe s $

STRG + H - Löscht das zuletzt eingegebene Zeichen

STRG + W - Löscht das zuletzt eingegebene Wort

STRG + U - Löscht die zuletzt eingegebene Zeile

STRG + R - Sucht Text aus der Geschichte

STRG + D - beendet die Texteingabe für viele UNIX-Programme, einschließlich Mail und Schreiben.

Hinweis:

Wenn wir löschen mit STRG + W oder STRG + U, wir führen auch einen (Edit) "cut" (yank in) Vorgang durch (löschen und in Puffer / Zwischenablage speichern). Um den String in den Zwischenspeicher einzufügen (zu entfernen), verwenden Sie STRG + Y.


109
2017-09-04 12:04



Tatsächlich sucht ctrl-r nach Text aus der Geschichte. - Eric Carvalho
@EricCarvalho Sie haben Recht. Entfernen Sie diese Option aus der Antwort. - devav2
Dies sind generische UNIX-Steuercodes. Das Standard-Ubuntu-Terminal ist Bash-basiert, was anders ist. - OrangeDog
Strg-U löscht den Cursor an den Anfang der Zeile. Ich benutze es oft, indem ich den Cursor direkt vor den Argumenten eines Befehls aus dem Verlauf positioniere. Auf diese Weise kann ich einen neuen Befehl mit den gleichen Argumenten eingeben - wie zum Beispiel weniger Datei in Kate-Datei zu ändern, so dass ich die Datei bearbeiten kann, nachdem ich sie angeschaut habe, um zu sehen, ob irgendwelche Änderungen notwendig sind. - Joe
@OrangeDog - Das sind gut - ich benutze alle diese in meinem Ubuntu bash-based Terminal, mit Ausnahme der CTR- \ one. - belacqua


Ich benutze normalerweise Alt+Rücktaste. Wenn Sie verwenden bash, damit Sie bis zum vorherigen Sonderzeichen löschen können (/, ;, , etc.). Wenn Sie verwenden zshEs werden auch die Schrägstriche und Semikolons entfernt. Es ist viel schneller als nur zu schlagen Rücktaste.

Im bash, das ist anders als Strg+w in dem Sinne, dass Strg+w löscht das vorherige Wort wo Alt+Rücktaste löscht, bis das vorherige Sonderzeichen gefunden wurde. Im zshBeide Tastenkombinationen machen das Gleiche


61
2017-09-04 12:00



Strg + W macht das Gleiche. - hytromo
Wird aber nicht für Terminals wie rxvt funktionieren. - sqram
@lyrae Für mich funktioniert es perfekt in rxvt, aber nicht in xterm. Und es funktioniert nur, wenn set -o emacs ist eingestellt. - Marco
ich benutze ALT+Backspace ebenso gut wie CTRL+C. Dies funktioniert auf jedem Linux. :) - tftd
@Hakermania: Nein, es ist anders. Strg + w löscht ein Wort und Alt + Rücktaste löscht das vorherige Sonderzeichen (/, ;, `` usw.). - jobin


Hier ist ein Auflistung von Tastenkombinationen, die mit dem verwendet werden können bash Schale.

Ctrl + A    Go to the beginning of the line you are currently typing on
Ctrl + E    Go to the end of the line you are currently typing on
Ctrl + L    Clears the Screen, similar to the clear command
Ctrl + U    Clears the line before the cursor position. If you are at the end of the line, clears the entire line.
Ctrl + H    Same as backspace
Ctrl + R    Lets you search through previously used commands
Ctrl + C    Kill whatever you are running or start a new prompt
Ctrl + D    Exit the current shell
Ctrl + Z    Puts whatever you are running into a suspended background process. fg restores it.
Ctrl + W    Delete the word before the cursor
Ctrl + K    Clear the line after the cursor
Ctrl + T    Swap the last two characters before the cursor
Esc + T     Swap the last two words before the cursor
Alt + F     Move cursor forward one word on the current line
Alt + B     Move cursor backward one word on the current line
Tab         Auto-complete files and folder names

Was Sie tun wollen, wird von beiden erreicht Strg+C oder Strg+U am Ende der Linie.


33
2017-09-04 18:42



Dies ist die vollständigste Liste, obwohl die beste Antwort ist Ctrl+C oder (Ctrl+E  Ctrl+U) - New Alexandria
Wie viele auf der Liste sind auf tcsh anwendbar, an denen ich interessiert bin? - TCSGrad
@ shan23 Lesen Sie den Abschnitt "Editorbefehle" von man tcshoder verwenden bindkey -l. Es sieht so aus, als wäre es ganz anders. - OrangeDog
Beachten Sie, dass einige davon fehlschlagen, wenn Sie vi-Bindungen für die Readline von bash (oder einer anderen Shell) verwenden. Diese sollten hauptsächlich auch für tcsh gelten; diese vordatierte bash. bash hat auch eine Menge der netten History-Shortcuts von csh / tcsh eingebaut. - belacqua


Alt+# (d. h. Alt+Verschiebung+3) wird den aktuellen Befehl auskommentieren und in der nächsten Zeile fortfahren.

Zum Beispiel, wenn Sie eingeben t, e, s, t, Alt+#, Du wirst kriegen:

you@computer$ #test
you@computer$ 

Wenn Sie Ihren alten Befehl zurückbekommen möchten, können Sie den Aufwärtspfeil drücken und das Rautezeichen löschen (Oben, Zuhause, Löschen oder Oben, Strg+EIN, Löschen).

Ich denke, es ist ein Merkmal von GNU Readline, da es in Bash, Python und MySQL funktioniert.


24
2017-09-04 17:21





 Strg + C - Zusätzlich zum Unterbrechen laufender Befehle kann es auch dazu verwendet werden, Ihre Befehlszeileneingabe zu "unterbrechen".

Im Gegensatz zu  Strg + USie sehen immer noch, was Sie eingegeben haben, aber Ihr Cursor springt zur neuen Zeile und Sie erhalten eine leere Eingabeaufforderung.


22
2017-09-04 12:16



Ich bevorzuge das einfach wegen des Muskelgedächtnisses, und Sie können immer noch etwas Wichtiges kopieren / einfügen, weil die abgebrochene Befehlszeile dort bleibt. - ish


Der Schlag readline Abkürzung Strg+X+E ist sehr nützlich, wenn Sie an der Befehlszeile arbeiten. Wenn Sie gerade einen langen Befehl eingeben und entscheiden, dass Sie ihn stattdessen in Ihrem Standardtext-Editor öffnen möchten, müssen Sie nur die Verknüpfung verwenden.

Es nutzt Bashs readline Bibliothek und diese besondere Abkürzung heißt die edit-and-execute-command. Sie können Ihren Standardeditor durch Platzieren festlegen export EDITOR="/usr/bin/vi" im ~/.bashrc oder ~/.bash_aliases.

Eingeben bind -P um deine aktuelle zu sehen readline Bindungen und beziehen sich auf man readline oder der Ubuntu-Hilfeseiten online für mehr Informationen.


8
2017-11-14 21:06





Ich benutze auch Esc+Rücktaste um alle vorherigen Zeichen bis zu einem Sonderzeichen zu löschen. Das ist das gleiche ist Alt+Rücktaste. Praktisch, wenn Sie nur ein paar Wörter gleichzeitig löschen.


7
2017-09-06 15:53





Zum vi Tastenbelegungen

Wenn man a vi Schlüsselkarte wie in bash mit set -o vi oder in zsh mit bindkey -v:

Einfügemodus

Es ist nur der gleiche Tastendruck wie im Standard / Emacs-Modus:

Strg+U

Löschen der aktuellen Position zum Zeilenanfang. So löscht es die gesamte Zeile, wenn der Cursor am Ende ist.

Normaler Modus

Es gibt mehrere Möglichkeiten, die Zeile in zwei Tastenanschlägen zu löschen:

Zeilenweise löschen dd, mit der Standardanzahl von einer Zeile:

dd

was ist am einfachsten in Bezug auf Tasten berührt.

Ein anderer Weg ist: Gehe zum Zeilenanfang mit ^, und löschen Sie bis zum Ende der Zeile mit D:

^D

Diese beiden löschen die gesamte Zeile, nicht nur nach links, wie Strg+U im Einfügemodus oder die Variante blew.

Wenn Sie sich gerade am Zeilenende befinden, so dass Sie nichts auf der rechten Seite löschen müssen, würde dies auch Folgendes bewirken:

Löschen von hier d, bis zum Start der Linie ^:

d^

Sie können diese alle aus dem Inset-Modus verwenden, Sie benötigen die übliche Flucht zuerst, um in den normalen Modus zu gehen. Um beispielsweise die gesamte Zeile aus dem Einfügemodus zu löschen, verwenden Sie:

Escdd


3
2017-09-15 03:48