Ich benutze Terminal für fast alle Aufgaben. Nehmen wir an, ich habe einen riesigen Befehl wie diesen eingegeben:
sudo a-huge-command
Was ist der einfachste Weg, um den gesamten Befehl mit einer einzigen Verknüpfung zu löschen, anstatt die backspaceTaste weiter zu drücken?
Ich bin ein Ubuntu-Neuling, der Ubuntu professionell einsetzen möchte.
command-line
shortcut-keys
Batman
quelle
quelle
bash
(und einige andere Schalen) vi Schlüssel zu verstehen:set -o vi
. Sie könnten dann tunesc
,dd
(oder auf andere Weise bearbeiten / ersetzen , wie Sie in vi [m] tun könnten).ls
) und dann die Rücktaste - dies sind normalerweise nur ein paar Tastenanschläge, damit es nicht so groß ist ' Deal.Antworten:
Verwenden Sie Ctrl+ U, um Text von der Cursorposition zum Anfang der Befehlszeile zu schneiden. Wenn Sie möchten, können Sie den ausgeschnittenen Text später mit Ctrl+ Yeinfügen.
Wenn Sie nur die aktuelle Befehlszeile verwerfen und eine neue saubere Eingabeaufforderung erhalten möchten, drücken Sie Ctrl+ C.
Weitere Informationen finden Sie in der Ubuntu-Dokumentation zur Verwendung des Terminals
quelle
dash
ist der Standardinterpreter für/bin/sh
Befehle.bash
ist die Standard-Login- und TTY-Shell.Ctrl + C
es eine schlechte Angewohnheit, da ich häufig versehentlich Signale an Programme mit eigener Eingabeaufforderung sende, sie töte und meinen Fortschritt und / oder Schwung verliere.Ctrl+ Usollte dir helfen.
Nachfolgend sind die restlichen verfügbaren Optionen aufgeführt. Von hier aus gepackt
UNIX versteht mehrere Steuertastenbefehle, Befehle, die Sie eingeben, indem Sie die Steuertaste (Strg) gedrückt halten und gleichzeitig eine zweite Taste drücken
CTRL+ S- friert den Bildschirm ein und verhindert, dass eine Anzeige auf dem Bildschirm fortgesetzt wird (entspricht einer Nicht-Bildlauftaste) (manchmal dauert es einen Moment, bis sie funktioniert)
CTRL+ Q- friert den Bildschirm ein und lässt die Bildschirmanzeige fortfahren
CTRL+ C- unterbricht ein laufendes Programm
CTRL+ \- wie STRG - C, jedoch stärker (wird verwendet, wenn das Terminal nicht antwortet)
CTRL+ Z- unterbricht ein laufendes Programm (setzt das Programm mit dem Befehl fg fort, siehe s $
CTRL+ H- löscht das zuletzt eingegebene Zeichen
CTRL+ W- löscht das zuletzt eingegebene Wort
CTRL+ U- löscht die zuletzt eingegebene Zeile
CTRL+ R- sucht nach Text aus dem Verlauf
CTRL+ D- Beendet die Texteingabe für viele UNIX-Programme, einschließlich Mail und Write.
Hinweis:
Wenn wir mit CTRL+ Woder CTRL+ löschen U, führen wir auch eine (bearbeitete) "Ausschneide" -Operation (Löschen und Speichern in Puffer / Zwischenablage) durch. Verwenden Sie CTRL+ , um die Zeichenfolge in Puffer / Zwischenablage einzufügen (herauszuziehen) Y.
quelle
Ich benutze normalerweise Alt+ Backspace. Wenn Sie verwenden
bash
, wird diese können Sie die vorherigen Sonderzeichen löschen , bis (/
,;
,, etc.). Wenn Sie verwenden
zsh
, werden auch die Schrägstriche und Semikolons entfernt. Es ist viel schneller als nur zu schlagen Backspace.In
bash
ist dies unterscheidet mich von Ctrl+ win dem Sinne , dass Ctrl+ wdas vorherige Wort wheres löscht Alt+ Backspacelöscht , bis die vorherigen Sonderzeichen gefunden werden. In machenzsh
beide Tastenkombinationen dasselbequelle
set -o emacs
gesetzt ist.ALT+Backspace
so gut wieCTRL+C
. Dies funktioniert unter jedem Linux. :)/
,;
``, etc).Hier finden Sie eine Liste der Tastaturkürzel, die mit der
bash
Shell verwendet werden können.Was Sie tun möchten, wird durch entweder Ctrl+ Coder Ctrl+ Uam Ende der Zeile erreicht.
quelle
Ctrl+C
oder (Ctrl+E
Ctrl+U
)man tcsh
oder verwenden Siebindkey -l
. Es sieht ganz anders aus.AltMit + #(dh Alt+ Shift+ 3) wird der aktuelle Befehl auskommentiert und in der nächsten Zeile fortgesetzt.
Zum Beispiel, wenn Sie schreiben t, e, s, t, Alt+ #, die Sie erhalten:
Wenn Sie möchten , wieder Ihren alten Befehl erhalten, können Sie auf den Pfeil nach oben drücken und löschen Sie das Raute - Zeichen ( Up, Home, Deleteoder Up, Ctrl+ A, Delete).
Ich denke, es ist eine Funktion von GNU Readline , da es in Bash, Python und MySQL funktioniert.
quelle
Ctrl+ C- Zusätzlich zum Unterbrechen von laufenden Befehlen kann es auch verwendet werden, um Ihre Befehlszeileneingabe zu "unterbrechen".
Im Gegensatz zum Ctrl+ sehen USie immer noch, was Sie eingegeben haben, aber Ihr Cursor springt in die neue Zeile und Sie erhalten eine leere Eingabeaufforderung.
quelle
Die Bash
readline
Verknüpfung Ctrl+ X+ Eist in der Tat sehr nützlich , wenn Sie auf der Kommandozeile arbeiten. Wenn Sie gerade einen langen Befehl eingeben und ihn stattdessen in Ihrem Standardtexteditor öffnen möchten, müssen Sie nur die Verknüpfung verwenden.Es nutzt die
readline
Bibliothek von Bash und diese spezielle Verknüpfung heißtedit-and-execute-command
. Sie können Ihren Standardeditor durch Platzierenexport EDITOR="/usr/bin/vi"
in~/.bashrc
oder festlegen~/.bash_aliases
.Geben Sie ein
bind -P
, um Ihre aktuellenreadline
Bindungen anzuzeigen. Weitere Informationen finden Sie inman readline
oder auf den Ubuntu-Online-Hilfeseiten .quelle
Ich verwende auch Esc+ Backspace, um alle vorherigen Zeichen bis auf ein Sonderzeichen zu löschen. Das ist das gleiche wie Alt+ Backspace. Praktisch, wenn Sie nur ein paar Wörter gleichzeitig löschen.
quelle
Für
vi
TastenbelegungenWenn Sie eine
vi
Key Map wie inbash
mitset -o vi
oder inzsh
mit verwendenbindkey -v
:Einfügemodus
Es ist nur der gleiche Tastendruck wie im Standard / Emacs-Modus:
Ctrl+U
Löschen von der aktuellen Position zum Zeilenanfang. Es löscht also die gesamte Zeile, wenn sich der Cursor am Ende befindet.
Normaler Modus
Es gibt mehrere Möglichkeiten, die Zeile mit zwei Tastenanschlägen zu löschen:
Zeilenweise löschen
dd
, mit der Standardanzahl von einer Zeile:dd
das ist das einfachste in Bezug auf die Tasten berührt.
Ein anderer Weg ist: Gehe zum Zeilenanfang mit
^
und lösche zum Zeilenende mitD
:^D
Beides löscht die gesamte Zeile, nicht nur nach links, wie Ctrl+ Uim Einfügemodus oder die Variante bleow.
Wenn Sie sich derzeit am Ende der Zeile befinden und nichts rechts löschen müssen, gilt Folgendes:
Von hier aus löschen
d
, um mit der Zeile zu beginnen^
:d^
Sie können diese alle aus dem Inset-Modus verwenden. Um in den normalen Modus zu wechseln, müssen Sie zunächst die übliche Escape-Funktion ausführen. Um beispielsweise die gesamte Zeile aus dem Einfügemodus zu löschen, verwenden Sie:
Escdd
quelle