Definition von Terminal bzw. Konsole
Ein Terminal, auch Konsole genannt, ist ein Programm, das es einem ermöglicht, durch direkt ausgeführte Befehle unmittelbar mit dem GNU/Linux Betriebssystem zu interagieren. Das Terminal, auch häufig die Shell oder Kommandozeile genannt, ist ein äußerst mächtiges Werkzeug und den Aufwand die Grundlagen seiner Handhabung zu lernen wert.
In aptosid kann man das Terminal/die Konsole aufrufen, indem man das PC-Monitorsymbol rechts des K-Menüs anklickt oder in K-Menü > System > Konsole - Terminalprogramm aufruft.
Nach dem Aufrufen des Terminals sieht man die Eingabeaufforderung "prompt":
username@hostname:~$
"username" in obigem Beispiel entspricht dem Nutzernamen des angemeldeten Benutzers. Die Tilde ~ zeigt, man befindet sich in seinem Heimverzeichnis /home/username, und das Dollarzeichen $ bedeutet, dass man im Terminal mit eingeschränkten Benutzerrechten angemeldet ist. Am Ende blinkt der Cursor. Dies alles ist die Kommandozeile. Hier werden Befehle eingegeben, die das Terminal ausführen soll.
Viele Befehle kann man nur mit Root-Rechten, also Administratorrechten, ausführen. Root-Rechte erhält man, indem man su eingibt und Enter drückt, hiernach muss man das Rootpasswort eingeben. Das Passwort wird während der Eingabe auf dem Bildschirm nicht angezeigt.
Ist die Eingabe korrekt, zeigt die Kommandozeile nun:
root@hostname:/home/username#
Achtung: Während man mit Root-Rechten eingeloggt ist, darf man alles, z. B. Dateien löschen, ohne die das Betriebssystem nicht mehr funktioniert, uvm. Wenn man mit Root-Rechten arbeitet, muss man sich darüber im Klaren sein, was man gerade macht, denn es ist leicht möglich, dem Betriebssystem irreparable Schäden zuzufügen.
Zu beachten ist, dass das Dollarzeichen $ durch eine Raute # ersetzt wurde. In einem Terminal/einer Konsole bedeutet die Raute # immer, dass man mit Root-Rechten angemeldet ist. Wenn im Handbuch Kommandozeilenbefehle angegeben werden, werden die Angaben vor dem Prompt ($ oder #) ausgelassen. Ein Befehl wie:
# apt-get install [Paketname]
bedeutet also: man öffnet ein Terminal, meldet sich als root an (sux) und führt dann den Befehl an einem Rootprompt # aus. Die Raute # wird nicht mit eingegeben.
Manchmal kann eine Konsole bzw. ein Terminal nicht mehr so reagieren wie gewünscht, dann muss eingegeben werden:
reset
und die Eingabetaste (Enter) gedrückt werden.
Wenn die Ausgabe einer Konsole bzw. eines Terminals verzerrt erscheint, kann dies meist durch das Drücken von ctrl+l behoben werden, was das Terminal-Fenster neu aufbaut. Solche Verzerrungen treten meist auf, wenn man mit Programmen arbeitet, welche eine ncurses-Schnittstelle benutzen, zum Beispiel irssi.
Eine Konsole bzw. ein Terminal können eingefroren erscheinen, was aber in der Regel nicht der Fall ist, sondern die Eingaben werden weiterhin verarbeitet, auch wenn es nicht so scheint. Dies kann durch versehentliches Drücken von ctrl+s verursacht sein. In diesem Fall kann ctrl+q versucht werden, um die Konsole wieder frei zu geben.
Farbiger Terminal. Prompts für user:~$ und root:# :
Farbige Prompts am Terminal können einen vor unangenehmen oder katastrophalen Fehlern bewahren, falls man als root # eine Aufgabe durchführt, die man als user~$ machen wollte. Sie können auch eingesetzt werden, um als Lesezeichen für alle 100 Zeilen zu fungieren.
In den Grundeinstellungen besitzen die Prompts für user~$ und root# den gleichen Farbton, aber es ist einfach die Farben zu ändern.
Die Grundfarben sind:
(die Syntax ist 00;XX) [00;30] Schwarz [00;31] Rot [00;32] Grün [00;33] Gelb [00;34] Blau [00;35] Magenta [00;36] Cyan [00;37] Weiß [Man ersetzt [00;XX] mit [01;XX] um eine Farbvariation zu erhalten].
Änderung der Farbe für den Prompt des User ~$:
Als $user mit einem Texteditor:
$ <editor> ~/.bashrc
In der Zeile 39 wird das Kommentarzeichen entfernt und sie sieht so aus:
force_color_prompt=yes
In der Zeile 53 wird dort, wo zum Beispiel 01;32m steht auf den gewünschten Farbwert gesetzt.
Im Beispiel wird der farbige Prompt für user~:$ auf Cyan [01;36m\] gesetzt. Dies muss an drei Stellen mit dieser Syntax erfolgen:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u@\h\[\033[01;36m\]:\[\033[01;36m\]\w\[\033[00m\]\$ '
Die neue Farbe existiert nach Öffnen eines neuen Terminals.
Änderung der Farbe für den Prompt von root#:
su <mcedit> /root/.bashrc
In der Zeile 39 wird das Kommentarzeichen entfernt und sie sieht so aus:
force_color_prompt=yes
In der Zeile 53 wird dort, wo zum Beispiel 01;32m steht auf den gewünschten Farbwert gesetzt.
Im Beispiel wird der farbige Prompt für root:# auf Rot [01;31m\] gesetzt. Dies muss an drei Stellen mit dieser Syntax erfolgen:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[01;31m\]:\[\033[01;31m\]\w\[\033[00m\]\$ '
Die neue Farbe existiert nach Öffnen eines neuen Terminals.
Hintergrundfarben des Terminals
Um die Hintergrundfarbe und die Fonts in einem Terminal zu ändern, finden sich die Optionen im Menü des Terminal.
Es gibt eine Unmenge an Einstellungsmöglichkeiten für Hintergrundfarben. Wir empfehlen eine eher schlichte Einstellung.
Über die Nutzung von graphischen Anwendungen mit root-Rechten und des 'sux2'-Aliases
Während <su> das allgemeine Kommando ist, um Root-Rechte zu erlangen, ermöglichen die Kommandos kdesu <Anwendung> bzw. gksu <Anwendung> die Nutzung von GUI/X11-Anwendungen mit Root-Rechten vom Desktop aus.
Diejenigen, die bisher sux nutzten (sux ist seit einiger Zeit wegen eines 'login'-Sicherheitsupdate beschädigt), werden in dem Alias sux2 in der Zwischenzeit eine gute Option finden, oder andererseits folgenden Befehl nutzen, um $user zu werden:
$ suxterm
In den meisten Fällen werden graphischen Anwendungen mit root-Rechten gestartet, um die Vorteile eines GUI-Editors wie kate, kwrite, mousepad oder leafpad - um nur einige zu nennen - zu nutzen. Root-Rechte werden auch für die GUI Partition-Anwendung gparted benötigt. (Siehe auch sudo).
Die Konsolen-Anwendungen wie mcedit, vim, vi oder emacs werden stark empfohlen als Editor, wobei gerade mcedit für Erstnutzer einer der intuitiven Editoren für Konsolen-Anwendungen darstellt. mcedit, vim, vi oder emacs sind möglicherweise die einzige Wahl für einen Konsolen-Editor. (mc ist auch ein idealer File-Browser auf der Konsolen).
Optionen in KDE
Starten von kdesu in KDE:
Alt+F2
oder Rechts-Klicken auf dem Desktop und Auswahl von:
Befehl ausführen
danach:
kdesu <Anwendung>
Einige KDE-Anwendungen erfordern dbus-launch vor dem Anwendungsbefehl:
dbus-launch <Anwendung>
Optionen in Xfce
Starten des Run-Befehls in Xfce:
Alt+F2
oder Rechts-Klicken auf dem Desktop und Auswahl von:
Befehl ausführen
danach:
gksu <Anwendung>
Optionen in anderen Desktop-Managern
Eine andere Tastatur-Option für alle Desktopumgebungen lautet:
Alt+F2
danach:
su-to-root -X -c <Anwendung>
Optionen auf der Konsole
Starten von kdesu auf der Konsole:
/usr/lib/kde4/libexec/kdesu
Starten von gksu auf der Konsole:
/usr/bin/gksu
Eine andere mögliche Option wäre ssh -X root@localhost anstelle von su-to-root -X -c zu nutzen:
ssh -X root@localhost
Da ssh zwar per Default installiert, aber nicht aktiviert ist, ist dieser Dienst mit Root-Rechten zu starten:
service ssh start
danach:
su-to-root -X -c <Anwendung>
Setzen eines sux2 benannten Alias auf der Konsole für kdesu, gksu, su-to-root -X -c oder ssh -X root@localhost
Die Eingabe einer langen Befehlszeile in die Konsole ist häufig nervraubend, so dass sich als Lösung das Setzen eines Alias, hier sux2 genannt, anbietet.
Anmerkung: In jedem der folgenden Beispiele lautet der Befehl zum Starten des Alias auf der Konsole:
sux2 <Anwendung>
Setzen eines Alias
Die Verwendung von mcedit als $user in den folgenden Beispielen ist beabsichtigt, jeder beliebige Editor kann verwenden werden:
$ mcedit ~/.bashrc
Hinweis: Um alle vorgenommenen Änderungen zu aktivieren, muss die Konsole geschlossen und neu startet werden.
Füge folgenden Code an das Ende der Datei ~/.bashrc:
Setzen eines Alias mit kdesu
alias sux2='/usr/lib/kde4/libexec/kdesu'
Setzen eines Alias mit gksu
alias sux2='/usr/bin/gksu'
Setzen eines Alias mit su-to-root -X -c
alias sux2='su-to-root -X -c'
Setzen eines Alias mit ssh -X root@localhost
alias sux2='ssh -X root@localhost'
Vielleicht sollte eine Datei ~/.bash_alias angelegt werden, welche alle Aliase enthält, die nützlich erscheinen. Dazu ist ist eine Datei mit dem Namen ~/.bash_alias zu erstellen. Lese dazu die Dateien ~/.bashrc und /usr/share/doc/bash-doc/examples:
apt-get install bash-doc
sudo wird nicht unterstützt
sudo ist nicht aktiviert nach einer Installation, sondern steht nur im Live-Modus zur Verfügung, da kein Root-Passwort gesetzt ist. Der Grund ist: falls ein Angreifer das Nutzer-Passwort abgreift, hat er nicht Super-User-Rechte und kann keine schädlichen Veränderungen am System durchführen.
Ein anderes Problem mit sudo ist, dass eine Root-Anwendung, die mit der Nutzerkonfiguration läuft, Berechtigungen ändern und somit für den Nutzer unbrauchbar machen kann. Die Verwendung von sux2, kdesu, gksu oder su-to-root -X -c or ssh -X root@localhost ist empfohlen.
Arbeit als root
Achtung: Während man mit Root-Rechten eingeloggt ist, darf man alles, z. B. Dateien löschen, ohne die das Betriebssystem nicht mehr funktioniert, uvm. Wenn man mit Root-Rechten arbeitet, muss man sich darüber im Klaren sein, was man gerade macht, denn es ist leicht möglich, dem Betriebssystem irreparable Schäden zuzufügen.
Unter keinen Umständen sollten Produktivprogramme, die normalerweise mit Benutzerrechten gestartet werden, mit dieser Option als root hochgefahren werden: Internet-Browser, E-Mail-Programme, Büroprogramme u.a.
Hilfe in der Kommandozeile
Die meisten Befehle/Programme haben eine Kommandozeilenhilfe und auch Anleitungen. Die Anleitungen werden "man page" oder "manual page" genannt. Die Syntax zum Aufrufen der "man page" ist:
$ man Befehl
oder
$ man -k <keyword>
Dies ruft die "man page" eines Befehls auf. Die Navigation in den "man pages" erfolgt durch die Pfeiltasten, beendet werden sie mit "q" für quit. Beispiel:
$ man apt-get
Um eine manpage zu verlassen, tippt man q
Ein anderes nützliches Werkzeug ist der "apropos"-Befehl. "Apropos" ermöglicht es, die man pages nach einem Befehl zu durchsuchen, wenn man z. B. die Syntax vergessen hat. Beispiel:
$ apropos apt-
Dies listet alle Befehle für den Paketmanager apt auf. "apropos" ist ein mächtiges Werkzeug, für eingehendere Informationen über "apropos" siehe
$ man apropos
Linux Konsolenbefehle
Eine sehr gute Einführung in die Konsole BASH findet sich auf linuxcommand.org.
Eine sehr umfangreiche Liste der Befehle in alphabetischer Reihenfolge und quasi Pflichtlektüre ist: An A-Z Index of the Bash command line for Linux.
Eine weitere der vielen guten Anleitungen ist A Beginners' Bash (auf Englisch).
Natürlich kann auch die favorisierte Suchmaschine verwendet werden, um mehr zu finden.