Eine Shell ermöglicht die text- bzw. kommandobasierte Benutzung des Computersystems und ist i.d.R. auf Unix/Linux Systemen standardmäßig installiert. Die Kombinierbarkeit von kleinen, aber leistungsfähigen und flexiblen Kommandozeilenprogrammen ist ein wichtiger Eckpfeiler der Unix-Philosophie. Dies verhilft der Shell, eigentlich ein Programm wie jedes andere, zu einem prominenten Status, vor allem bei fortgeschrittenen Anwendern, die mit ihr Routinen automatisieren und permanent ein oder mehrere Instanzen einer Shell für den schnellen Zugriff offen halten.
Grundlagen |
Bash Konfiguration |
Externe Programme |
Shells allgemein | Installation | Screen |
Bourne again Shell ( BASH ) | Bash Basis Konfiguration | Tmux |
Tilix | ||
———————————————- | ———————————————- | ———————————————- |
Shells allgemein
Die Shell ist, wie das grafische X Window System, eine Schnittstelle zwischen Benutzer und Betriebssystem. Im Gegensatz zum X Window System ist die Shell eine reine textbasierte Anwendung. In der Linux-Welt ist zweifellos die Bourne Again Shell (bash) am weitesten verbreitet. Aber auch andere Shells wie etwa die C-Shell (csh) und ihre Nachfolger sowie ash oder zsh sind in der Praxis immer wieder anzutreffen.
Bourne again Shell ( BASH )
Bash (für Bourne-again shell), eine Weiterentwicklung der Bourne Shell, ist eine freie Unix-Shell und Teil des GNU-Projekts. Sie ist heute auf vielen unixoiden Systemen die Standard-Shell. Der Name ist absichtlich mehrdeutig und bedeutet unter anderem „wiedergeborene (born again) Shell“, „wieder einmal (eine) Bourne-Shell“. Die Bash ist größtenteils kompatibel zur originalen Bourne-Shell (sh), im Funktionsumfang jedoch erheblich erweitert. Vor allem beherrscht sie einen Großteil der Fähigkeiten der ksh und versteht auch Teile der Syntax der csh wie zum Beispiel die Command-History, den Directory-Stack, die $RANDOM
-Variable und die POSIX-Form der Command-Substitution $(…)
. Daneben sind auch eine ganze Reihe eigene Erweiterungen implementiert.
Bash Konfiguratition
Installation
Die Bourne Again Shell ist heute auf fast allen Linux oder UNIX artigen Beitriebsystemen installiert. Daher ist eine nachträgliche Installation meist nicht nötig. Der unter der GPL veröffentliche Quellcode der Bash kann auf www.gnu.org heruntergeladen werden.
Bash Basis Konfiguration
Die grundlegende Konfiguration der Bash erfolgt durch folgenden Dateien:
- /$HOME/.bash_profile (Zuweisung der Bash Konfigurationsdatei. i.d.R. ~/.bashrc)
- /$HOME/.bashrc (Konfiguration der Bash)
- /$HOME/.bash_aliases (Mapping Datei für Befehle)
- /$HOME/.bash_logout (Auszuführende Befehle beim Logout)
- /$HOME/.bash_history (Befehlslogdatei der Bash)
- /etc/skel/.bashrc (Konfigurationsbasis für neu angelegte User Konfigurationen)
Bash Befehle zuweisen (Aliases)
Die grundlegende Konfiguration ist von den Zuweisungsbefehlen getrennt. Alle Konfigurationen, bis auf die Befehlszuweisungen, sind in der .bashrc hinterlegt (Aussehen des Eingabeprompt z.B.). Eigene Befehle werden in der .bash_aliases gelistet, um immer wiederkehrende Befehle oder Programme samt Parametern eigenen Eingaben zuzuweisen. Der Inhalt der bash_aliases kann wie folgt aussehen:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
#################################### ## substitution string to command ## #################################### #system alias alias update='sudo apt-get update' alias upgrade='apt-get -V dist-upgrade' alias inst='sudo apt-get install' alias remove='sudo apt-get remove' alias search='sudo apt-cache search' alias show='sudo apt-cache showpkg' alias show_sources='sudo apt-cache madison' #---------------------------------------- #filesystem alias alias cd..='cd ..' alias ll='ls -lh' alias lsd='ls -l | grep ^d' alias la='ls -ah' alias lsal='ls -ahl' alias mk='mkdir' alias smk='sudo mkdir' alias srm='sudo rm' alias reload='cd ~ && cd -' alias size='du -ach' #---------------------------------------- #editor alias alias n='nano' alias sn='sudo nano' alias g='gedit' alias sg='sudo gedit' #---------------------------------------- #network shortcuts alias mtr='mtr --curses' alias ctw='vnstat -i wlan0 -tr' alias cte='vnstat -i eth0 -tr' alias ctel='watch -n1 "date && vnstat -i eth0 -tr "' alias stw='nload -u K wlan0' alias ste='nload -u K eth1' #---------------------------------------- #tool shortcuts alias dcfldd='dd' alias mdf2iso_2='iat' alias mkiso='mkisofs -R -J -o' alias hddtemp='sudo hddtemp /dev/sd?' alias hddtempw=' watch -n1 sudo hddtemp /dev/sd{a..d}' #----------------------------------------- |
Externe Programme
Screen
Screen ist ein Fenstermanager zur Verwendung mit textbasierten Eingabefenstern. Im Gegensatz zu anderen Fenstermanagern wie Tmux oder Tilix beendet Screen die Terminaltsitzung beim Schließen des Fensters nicht und führt die Sitzung aktiv fort. Auf die so im Hintergrund laufende Sitzung kann jederzeit wieder aktiv zugegriffen werden bzw. diese fortgeführt werden.
Tmux
Der Name Tmux steht für Terminal MUltipleXer, ist ein Projekt, das lang laufende, mit anderen teilbare, auch entfernt verfügbare Terminalsitzungen ermöglicht, so wie man das von GNU Screen gewohnt ist. Im Gegensatz zu screen sind mehrere Instanzen in den sog. Panes auf einer Bildschirmausgabe sichtbar
Durch gleichzeitiges Drücken von Ctlr+B wir der Prefix Befehl eingeleitet ( Prefix = an Tmux gerichteten Befehl). Unmittelbar nach dem Loslassen der o.g. Tastenkombinationen müssen dann die für Tmux spezifischen Befehle durch Drücken weiterer Tasten und Tastenkombinationen eingeleitet werden. Einige nützliche Kombinationen finden Sie in der folgenden Liste:
- Ctrl + B | ? => Anzeige aller aktiven Tastaturkürzel (keybindings)
- Ctrl + B | c => (create) Neues Terminal öffnen
- Ctrl + B | n => (next) Wechsel zum nächsten Fenster
- Ctrl + B | p => (previous) Wechsel zum vorherigen Fenster (z.B. von 3 nach 2)
- Ctrl + B | L => (last) Wechseln zum letzten aktiven Fenster (ist durch – markiert)
- Ctrl + B | d => (detach) Trennen der akt. Sitzung (Client) und in den Hintergrund verschieben
- Ctrl + B | W => Liste der Fenster anzeigen, Fenster wechseln
- Ctrl + B | “ => Aktuelle „Ansicht“ horizontal teilen (erzeugt weitere „Ansicht“)
- Ctrl + B | % => Aktuelle „Ansicht“ vertikal teilen (erzeugt weitere „Ansicht“)
- Ctrl + B | ↓ / ↑ => In vorherige bzw. nächste „Ansicht“ wechseln / Wechsel zwischen verschiedenen Aufteilungen der „Ansicht“
- Ctrl + B | [ => Scroll-Modus aktivieren, in dem Pfeiltasten zum Scrollen benutzt werden können
Tmux ist über Konfigurationsdateien sehr gut skallier,- und anpassbar, da nahezu jeder Parameter definiert werden kann.
* Ausführliche Infos auf wiki.ubuntuusers.deTilix
Das Tilix-Programmfenster nimmt beliebig viele Terminals auf – per Tastendruck oder Klick fügt man horizontal oder vertikal weitere ein. Wird das Fenster zu voll, legt man eine neue Session an, die Tilix in einer ausklappbaren Seitenleiste verwaltet. Per Drag & Drop lassen sich Terminals beliebig anordnen.
Den Titel eines Terminals legt man mit Platzhaltern und Text selbst fest. Auch Schrift, Transparenz, Hintergrundbild und einiges mehr lassen sich anpassen und in einem Profil speichern. Tilix kann anhand definierter Bedingungen automatisch zu einem anderen Profil wechseln. So können andere Farben signalisieren, dass man als root arbeitet – und entsprechend Vorsicht walten lassen sollte. Die Fensteraufteilung kann als JSON-Datei gesichert und bei Bedarf wieder geladen werden.
Den aus dem gleichnamigen Spiel bekannten Quake-Modus beherrscht Tilix ebenfalls. Per Tastendruck klappt dann eine Konsole vom Fensterrand aus auf. Dazu legt man den Aufruf von tilix –quake auf ein Tastenkürzel. Sollen in zwei Terminals dieselben Eingaben vorgenommen werden, kann Tilix die Eingabe synchronisieren. Für häufig verwendete Verzeichnisse lassen sich Lesezeichen anlegen.
by Speefak