Bash
Tastaturkürzel
Hier einige Tastaturkürzel für die Bash:
Tastaturkkombination | Beschreibung |
---|---|
Ctrl + A | zum Anfang der Zeile springen |
Ctrl + E | zum Ende der Zeile springen |
Ctrl + L | leert den Bildschirm (wie der Befehl clear ) |
Ctrl + U | löscht die Zeichen vor dem Cursor |
Ctrl + H | wie backspace |
Ctrl + R | suche der zuletzt benutzten Befehle |
Ctrl + C | Killt das aktuell gestartete Programm |
Ctrl + D | schließt die aktuelle Shell |
Ctrl + Z | stellt den aktuell gestarteten Prozess angehalten in den Hintergrund (mit Befehl jobs nach solchen Prozessen suchen und mit Befehl fg <NUMMER> wieder in den Vordergrund holen |
Ctrl + W | löscht Wort vor dem Cursor |
Ctrl + K | löscht Zeichen nach dem Cursor |
Ctrl + T | vertauscht die zwei letzten Zeichen vor dem Cursor |
Esc + T | vertauscht die letzten zwei Wörter vor dem Cursor |
Alt + F | setzt den Cursor um ein Wort vor |
Alt + B | setzt den Cursor um ein Wort zurück |
Tab | Komplettiert automatisch Namen von Dateien und Ordnern |
Quelle: www.howtogeek.com
Zeichen vervollständigung
Wenn man in der Konsole die Anfangsbuchstaben von Befehlen eingibt und dann die Tabulatortaste drückt, werden Vorschläge zum Vervollständigen angeboten.
Diese Funktion ist allerdings nur für, dem System bekannten, Befehlen verfügbar.
Installation
Möchte man diese Funktion erweitern und sie z.B. auch für Init-Scripte verwenden, muss ein Programm instaliert werden, welches über Login-Scripte gesteuert werden kann.
apt-get install bash-completion
Ab der nächsten Anmeldung bzw. dem öffnen eines neuen Terminals kann man schon auf einige Vervollständigungen zugreifen.
Konfiguration
Die Konfigurationsdatei von bash_completion
liegt unter /etc
. Der Ordner /etc/bash_completion.d
beinhaltet bereits einige Scripte zur Verfollständigung.
Weitere Scripte besinden sich unter /usr/share/bash-completion/completions
.
Man muss allerdings zunächst die bash_completion
einschalten. Dies tut man indem, bei folgenden Zeilen, das #
-Zeichen entfernt.
#if ! shopt -oq posix; then # if [ -f /usr/share/bash-completion/bash_completion ]; then # . /usr/share/bash-completion/bash_completion # elif [ -f /etc/bash_completion ]; then # . /etc/bash_completion # fi #fi
Nach einem erneuten Anmelden bzw. öffnen eines Terminals verfügt man automatisch über neue Vervollständigungsfunktionen.
Bunter Text
Wenn man farbigen Text auf der Konsole ausgeben möchte, kann man das mit print
oder echo
(in Verbindung mit tput
) tun.
Unter folgenden Links, findet man noch weitere Beispiel: misc.flogisoft.com
Hier soll z. B. folgender farbiger Text ausgegeben Werden:
<html><b><font size=„3“>„I <font color=„red“>love</font> you.“</font></b></html>
Textformatierung mit tput
red=`tput setaf 1` green=`tput setaf 2` reset=`tput sgr0` echo "I ${red}love ${green}you${reset}"
oder
echo "I `tput setaf 1`love `tput setaf 2`you`tput sgr0`."
Bei buntem Text in der Message of the Day, bitte Anweisungen unter farbiger_text beachten.
Hintergrundfarbe mit tput
Zum ändern der Hintergrundfarbe, muss der tput
-Befehl wie folgt lauten:
bgred=`tput setab 1` bgwhite=`tput setab 7` reset=`tput sgr0` echo "${bgwhite}I ${red}love ${green}you${reset}"
Farb-/Formatangaben
Eigenschaft | Code |
---|---|
schwarz | $(tput setaf 0) |
weiß | $(tput setaf 7) |
rot | $(tput setaf 1) |
grün | $(tput setaf 2) |
gelb | $(tput setaf 3) |
blau | $(tput setaf 4) |
hell gelb | $(tput setaf 190) |
hell blau | $(tput setaf 153) |
magenta | $(tput setaf 5) |
cyan | $(tput setaf 6) |
hell | $(tput bold) |
normal | $(tput sgr0) |
blinkend | $(tput blink) |
invertiert | $(tput smso) |
unterschrichen | $(tput smul) |
fett | $(tput bold) |
Textformatierung mit ANSI/VT100 Kontrollsequenzen
RED='\033[0;31m' NC='\033[0m' # No Color printf "I ${RED}love${NC} youw\n"
oder
printf "I \033[0;31mlove\033[0m you\n"
oder
echo -e "I \033[0;31mlove\033[0m you\n"
Farb-/Formatangaben
Eigenschaft | Code |
---|---|
schwarz | 0;30 |
weiß | 1;37 |
rot | 0;31 |
grün | 0;32 |
gelb | 1;33 |
blau | 0;34 |
orange | 0;33 |
lila | 0;35 |
cyan | 0;36 |
hellgrau | 0;37 |
dunkelgrau | 1;30 |
hellrot | 1;31 |
hellgrün | 1;32 |
hellblau | 1;34 |
helllila | 1;35 |
hellcyan | 1;36 |
dunkel | \e[2mDim |
blinkend | \e[5mBlink |
invertiert | \e[7minverted |
unterschrichen | \e[4mUnderlined |
fett | \e[1mBold |
Multitasking
Mit Linux kann man auf einer Konstolensitzung mehrere Befehle auf mehreren Subsitzungen gleichzeitig ausführen.
Verschiedene Tools können mit Multitaskingsitzungen umgehen.
Screen
(Quelle: https://wiki.ubuntuusers.de/Screen/)
screen
ist ein Fenstermanager in der Konsole. Damit lassen sich an einer einzelnen Konsolensitzung mehrere virtuelle Sitzungen erstellen.
Dies ist praktisch und auch sicherer, wenn man sich z. B. per ssh auf einen Server einloggt und darauf einen wichtigen länger andauernden Befehl aufruft.
Wenn hier nun die ssh Sitzung abbricht, wird der Befehl unter Umständen auch abgebrochen.
Wenn dieser Befehl auf einer virtuellen Sitzung gestartet wird, bleibt die Sitzung auch nach einem ssh Kommunikationsabbruch erhalten und der Befehl läuft durch.
Installation
sudo apt-get install screen
Befehle
Funktion | Befehl |
---|---|
Sitzung erstellen | screen -S <SITZUNGSNAME> |
Sitzungen anzeigen | screen -ls |
zur Sitzung wechseln | screen -r <SITZUNGSNAME> |
Sitzung an mehreren PC anzeigen | screen -rx <SITZUNGSNAME> |
Befehl an Sitzung leiten | screen -S <SITZUNGSNAME> -X stuff $'ls -l\n' |
Innerhalb einer Sitzung kann man folgende Screen-Kommandos absetzen:
- Strg+A, gefolgt von Strg zum Erstellen eines neuen Fensters (siehe auch Unterschied zwischen Sitzung und Fenster)
- Strg+A, gefolgt von SPACE zum Wechseln zwischen den einzelnen Fenstern einer Sitzung
- Strg+A, gefolgt von D zum Trennen (detach) der Verbindung zur aktuellen Sitzung, die Sitzung läuft dann im Hintergrund weiter
- Strg+A, gefolgt von ?, gibt eine Übersicht über alle Tastenkürzel
- Strg+D, beendet eine Stitzung
Statusleiste innerhalb einer Sitzung anzeigen
Zuerst den unten stehenden Befehl eingeben und dann zu einer Sitzungs wechseln.
screen -X caption always "%{rw} * | %H * $LOGNAME | %{bw}%c %D | %{-}%-Lw%{rw}%50>%{rW}%n%f* %t %{-}%+Lw%<"
Dabei stehen die verschiedenen Variablennamen für:
$LOGNAME | der Benutzername |
%H | der Hostname |
%c | die Uhrzeit im 24-Stunden-Format |
%D | der aktuelle Wochentag |
%n | Nummer des virtuellen Terminals |
%f | Flag; so zeigt das Sternchen das aktive virtuelle Terminal an, ein Minuszeichen die zuletzt besuchte Sitzung |
%t | der mit Strg + A , ⇧ + A gesetzte Titel der Sitzung |
%id` | Backtick-Referenz, wobei id = 1,2,3 … |
Die Angaben in den geschweiften Klammern beschreiben u.a. die Farben. Die Angabe %50>
sorgt dafür, dass screen bei einer zu langen Fensterleiste die Ausgabe abschneidet, so dass die Angabe mittig erscheint. In der „man page“ finden sich weitere anwendbare Escape-Sequenzen (string escapes). Über entsprechende Akzent-Zeichen (backticks) lassen sich Rückgabewerte von Shellscripten, z. B. das Auslesen der IP-Adresse, in die Statuszeile einblenden.
Damit die Statusleiste dauerhaft erscheint, ohne alles mühsam von Hand einzugeben, kann ein Eintrag in der Konfigurationsdatei systemweit unter /etc/screenrc
oder für den Benutzer unter ~/.screenrc
vorgenommen werden. In der Datei sollte dann folgender Eintrag hinzugefügt werden:
caption always "%{rw} * | %H * $LOGNAME | %{bw}%c %D | %{-}%-Lw%{rw}%50>%{rW}%n%f* %t %{-}%+Lw%<"
Unter Umständen muss man für die Benutzereinstellung eine Kopie von /etc/screenrc
nach ~/.screenrc
kopieren.
tmux
Tmux ist sogenannt ein neugeschriebenes screen.
Installation
apt-get install tmux
Befehle
Nach dem start von tmux
erscheint am unteren Rand eine grüne Zeile, mit verschiedenen Informationen über die jew. Session.
- starten:
tmux
- starten mit Sessionname:
tmux new -s <SESSION_NAME>
- Sessions auflisten:
tmux ls
- Sessionname öffnen:
tmux a -t <SESSION_NAME>
Mit folgenden Befehlen lässt sich tmux
steuern
Ein Befehl wird standardmäßig mit STRG+B eingeleitet.
Befehl | Beschreibung |
---|---|
? | zeigt mögliche Befehle an |
c | erstellt ein neues Fenster |
x | schließt das aktuelle Fenster |
n | wechselt zum nächsten Fenster |
p | wechselt zum vorherigen Fenster |
w | Liste aller Fenster anzeigen |
# | wechselt zum angegebenen Fenster mit Nummer (#=Nummer) |
’ | fragt in welche Fenster gewechselt werden soll |
% | Teilt das aktuelle Fenster vertical auf |
„ | Teilt das aktuelle Fenster horizontal auf |
Space | Wechsel zwischen verschiedenen Aufteilungen der Fenster |
! | Die aktuelle Fensterscheibe aus dem Fenster lösen und ein neues Fenster erstellen |
[ | Im aktuellen Fenster mit der Tastatur scrollen („q“ beendet) |
d | trennt die Konsolenverbindung |
Um aus der normalen Konsole wieder zu den tmux-Konsolen zurückzukehren, einfach folgenden Befehl eingeben
tmux attach
stdin stdout stderr
0 ist der standard input file descriptor (stdin).
1 ist der standard output file descriptor (stdout).
2 ist der standard error file descriptor (stderr).
2>&1
Erklärung:
Ausgabe der Error-Meldungen (2) wird umgeleitet (>) zum file descriptor (&) (und nicht zu einer Datei namens „1“), zur Standard-Ausgabe (1).
Tags
Shortcut, Kürzel, Pos1, Home, Ende, End, color, colour, farbe