Nützliche Tastenkombinationen in der Bash

  Ralf Hersel   Lesezeit: 12 Minuten  🗪 7 Kommentare

Wer diese Abkürzungen kennt, wird im Terminal schneller fertig.

nützliche tastenkombinationen in der bash

Die Linux Bash (Bourne Again Shell) ist eine Shell- und Befehlssprache, die den meisten Linux-Benutzern bekannt ist, da sie in den meisten Linux-Distributionen die Standardshell ist. Für Linux-Anfänger ist die Verwendung des Linux-Terminals vielleicht etwas schwer zu verstehen, vor allem, weil man sich dabei stark mit den Pfeiltasten bewegen muss. Ausserdem kann es lästig sein, die Befehle ständig neu einzutippen, wobei jeder Befehl leicht variiert.


Die Bash verfügt jedoch über viele einfach zu verwendende Tastenkombinationen und Verlaufsfunktionen, die eine effiziente Nutzung des Terminals gewährleisten. Um die Zeit effektiv zu nutzen, hat Mohan Balasundaram (tuxfight3r) eine Liste der am häufigsten verwendeten Bash-Tastenkombinationen zusammengestellt:

Moving

command description
ctrl + a Goto BEGINNING of command line
ctrl + e Goto END of command line
ctrl + b move back one character
ctrl + f move forward one character
alt + f move cursor FORWARD one word
alt + b move cursor BACK one word
ctrl + xx Toggle between the start of line and current cursor position
ctrl + ] + x Where x is any character, moves the cursor forward to the next occurance of x
alt + ctrl + ] + x Where x is any character, moves the cursor backwards to the previous occurance of x

Edit / Other

command description
ctrl + d Delete the character under the cursor
ctrl + h Delete the previous character before cursor
ctrl + u Clear all / cut BEFORE cursor
ctrl + k Clear all / cut AFTER cursor
ctrl + w delete the word BEFORE the cursor
alt + d delete the word FROM the cursor
ctrl + y paste (if you used a previous command to delete)
ctrl + i command completion like Tab
ctrl + l Clear the screen (same as clear command)
ctrl + c kill whatever is running
ctrl + d Exit shell (same as exit command when cursor line is empty)
ctrl + z Place current process in background
ctrl + _ Undo
ctrl + x ctrl + u Undo the last changes. ctrl+ _ does the same
ctrl + t Swap the last two characters before the cursor
esc + t Swap last two words before the cursor
alt + t swap current word with previous
esc + . Previous commands last argument
alt + [Backspace] delete PREVIOUS word
alt + < Move to the first line in the history
alt + > Move to the end of the input history, i.e., the line currently being entered
alt + ? display the file/folder names in the current path as help
alt + * print all the file/folder names in the current path as parameter
alt + . print the LAST ARGUMENT (ie "vim file1.txt file2.txt" will yield "file2.txt")
alt + c capitalize the first character to end of word starting at cursor (whole word if cursor is at the beginning of word)
alt + u make uppercase from cursor to end of word
alt + l make lowercase from cursor to end of word
alt + n
alt + p Non-incremental reverse search of history.
alt + r Undo all changes to the line
alt + ctl + e Expand command line.
~[TAB][TAB] List all users
$[TAB][TAB] List all system variables
@[TAB][TAB] List all entries in your /etc/hosts file
[TAB] Auto complete
cd - change to PREVIOUS working directory

History

command description
ctrl + r Search backward starting at the current line and moving 'up' through the history as necessary
crtl + s Search forward starting at the current line and moving 'down' through the history as necessary
ctrl + p Fetch the previous command from the history list, moving back in the list (same as up arrow)
ctrl + n Fetch the next command from the history list, moving forward in the list (same as down arrow)
ctrl + o Execute the command found via Ctrl+r or Ctrl+s
ctrl + g Escape from history searching mode
!! Run PREVIOUS command (ie sudo !!)
!vi Run PREVIOUS command that BEGINS with vi
!vi:p Print previously run command that BEGINS with vi
!n Execute nth command in history
!$ Last argument of last command
!^ First argument of last command
^abc^xyz Replace first occurance of abc with xyz in last command and execute it

Quelle: https://gist.github.com/tuxfight3r/60051ac67c5f0445efee

Tags

ctrl, Command, Cursor, last, BEGINS, Linux, Word, Line

chris_blues
Geschrieben von chris_blues am 14. Februar 2022 um 11:40

Hmm, wenn ich in der Bash [Ctrl] + [d] drücke, ist das das Equivalent zu 'exit'. 'Delete the character under the cursor' da könnte man auch einfach [Entf] drücken. Sicher daß das für die Bash ist?

Ralf Hersel
Geschrieben von Ralf Hersel am 14. Februar 2022 um 18:45

Ctrl+d verhält sich anders bei einer leeren Zeile (Exit) oder in einer gefüllten Zeile (Entf). Ist halt so.

Vincent
Geschrieben von Vincent am 14. Februar 2022 um 14:10

Ach du liebe Zeit - das kann ich mir doch nicht merken ... ich glaube ich muss ein paar echo-Befehle in meine .bashrc-Datei schreiben ....

Michael
Geschrieben von Michael am 14. Februar 2022 um 14:55

ctrl + d taucht doppelt auf

Ralf Hersel
Geschrieben von Ralf Hersel am 14. Februar 2022 um 18:46

Ja, aber mit unterschiedlicher Funktion. Siehe Kommentar weiter oben.

Alex
Geschrieben von Alex am 15. Februar 2022 um 11:19

Eine Sache die ich für super praktisch halte und die hier leider fehlt, ist das Escape-Zeichen (~) während einer SSH-Session.

Kann jeder ganz einfach testen: Einfach schnell durch ssh localhost eine Session starten, dann das Tilde-Zeichen (~) eintippen und ein Fragezeichen. Dann listet SSH die möglichen Escape-Sequenzen auf.

Eine davon, und zwar ~. ist super praktisch, falls sich eure SSH-Session mal aufhängt (z.B. weil der Teilnehmer am anderen Ende abgeschmiert ist). Damit kann man die SSH-Session trotz einer broken pipe beenden.

kamome
Geschrieben von kamome am 16. Februar 2022 um 23:31

Danke! Oder man verwendet set -o vi in der .bashrc und hat dann einige VI-Power :)