[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Shell: Shellbefehle] [:Pakete_installieren: Installation von Programmen] [:Editor: Editor öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 64, align=left)]] Ein Terminal, auch [:Shell:] oder Kommandozeile genannt, stellt eine textbasierte Ein-/Ausgabe-Schnittstelle für ein Computersystem dar. Auch der Begriff Konsole ist geläufig, bezeichnet aber kein Fenster, sondern einen Bildschirm im [#Virtuelle-Konsole Textmodus]. Im Terminalfenster können Befehle [1] eingegeben und so das System gesteuert oder Dateien bearbeitet werden. Eine genauere Erklärung zum Thema Terminal findet man in [wikipedia:Terminalemulation:], eine erste Einführung in die Benutzung in [:Shell/Einführung:]. Der Begriff Terminal umfasst auch Hardwareterminals, wie z.B. bei [wikipedia:Thin Client:Thin Clients] (werden hier nicht beschrieben). = Standardterminalprogramme = == Unity == Mausklick links [[Vorlage(Tasten,lmb)]] auf das [:Unity/Unity_Startmenü#Schnellstart:Ubuntu-Symbol] {*} links oben in der Menüleiste und die Eingabe von `Terminal` in das Textfeld zeigen unter Unity die verfügbaren Terminalprogramme. "Terminal" ist das Standardterminal. Alternativ lässt sich ein Terminal auch mit Tastenkombination [[Vorlage(Tasten,strg+alt+t)]] öffnen. Wer öfters mit dem Terminal arbeitet, kann sich im [:Unity/Unity Startmenü:Unity Startmenü] auch einen entsprechenden Eintrag anlegen, d.h. das Terminalsymbol auf die Menüleiste ziehen. Wie auch unter GNOME gibt es standardmäßig kein Root-Terminal. [[Vorlage(Bildersammlung, 130 gnome_terminal.png, "[#Unity Unity]" kde_terminal.png, "[#KDE KDE]" xfce_terminal.png, "[#Xfce Xfce]" LXDE_Programme/terminal_lxde.jpg, "[#LXDE LXDE]" UbuntuGNOME-GNOMEShellTerminal.png, "[#GNOME-Shell GNOME-Shell]" )]] === Integration in Nautilus === Manchmal ist es praktisch, direkt aus dem Dateimanager [:Nautilus:] ein Terminalfenster mit dem aktuellen Verzeichnis zu öffnen. Im Kontextmenü gibt es den Punkt ''"Terminal öffnen"'' nicht standardmäßig, kann man aber nachrüsten. Dazu installiert [2] man zunächst das Paket {{{#!vorlage Paketinstallation nautilus-open-terminal, universe }}} Nun genügt es [:Nautilus#Nautilus-neu-starten:Nautilus neu zu starten]. Ab sofort hat man im Kontextmenü für Verzeichnisse den Eintrag ''"In Terminal öffnen"''. Ggf. muss man sich ab- und wieder anmelden oder den Rechner neu starten, um die Funktion nutzen zu können. {{{#!vorlage Hinweis Für erfahrene Benutzer ist es irritierend, dass unter Ubuntu-GNOME standardmäßig die Dateien '''~/.bash_profile''' bzw. '''~/.profile''' nicht ausgewertet werden. Um das "normale" Verhalten zu bekommen, kann man mit [[Vorlage(Tasten, rmt)]] im Kontextmenü des GNOME-Terminals das ''"momentan verwendete Profil bearbeiten"'' und im Reiter ''"Titel und Befehl"'' die Option ''"Befehl als Login-Shell starten"'' wählen. }}} == KDE == Das Terminal von [:KDE:] findet man im {k} K-Menü unter ''"System -> Konsole Terminalprogramm"''. Weitere Informationen in [:Konsole:]. Um in KDE die Tastenkombination [[Vorlage(Tasten,strg+alt+t)]] zu aktivieren, öffnet man in den Systemeinstellungen unter der Rubrik "Allgemeines Erscheinungsbild und Verhalten" die "Kurzbefehle und Gestensteuerung". Hier findet sich unter "Eigene Kurzbefehle" der Eintrag "Beispiele". Wenn man die Checkbox für diesen Eintrag aktiviert, kann man auch den Unterpunkt "Konsole starten" aktivieren, der bereits mit der Tastenkombination vorbelegt ist. == Xfce == Auch [:Xfce:] bringt sein eigenes Terminalprogramm mit. Dieses findet man im {x} Anwendungsmenü unter ''"Zubehör -> Terminal"''. Weitere Informationen in [:Xfce_Programme#Terminal:]. == LXDE == Das Terminal der Desktopumgebung [:LXDE:] nennt sich [:LXDE_Programme#LXTerminal:LXTerminal]. Man findet es im {l} LXDE-Menü unter ''"Zubehör -> LXTerminal"''. == GNOME-Shell == Das Terminal der Arbeitsumgebung {g} [:GNOME_Shell: GNOME-Shell] lässt sich mit Eingabe des passenden "Suchbegriffs" in das Suchfeld finden oder kann alternativ auch mit Tastenkombination [[Vorlage(Tasten,strg+alt+t)]] geöffnet werden. [[Anker(alternative)]] = Weitere Terminalprogramme = Praktische bzw. elegante und/oder kleinere Alternativen sind: * einblendbare Terminalfenster (Dropdown-Stil): * [:Guake:] * [launchpad:terra:Terra Terminal Emulator] {en} (GTK3; [launchpad:~ozcanesen/+archive/terra-terminal:PPA] {dl}) * [:Tilda:] * [:Yakuake:] * Terminal-Multiplexer (für Sitzungen an mehreren Rechnern): * [:byobu:] (als Erweiterung für screen) * [:screen:] * [:Terminator:] (benötigt einen XServer) * [:tmux:] * Sonstige: * [https://www.enlightenment.org/p.php?p=about/terminology Terminology] {en} * [:Eterm:] * [sourceforge:roxterm:ROXTerm] {en} * [:rxvt-unicode:] * [https://sites.google.com/site/pleyadestest/david/projects/sakura sakura] {en} * [:xterm:] = Standardterminalprogramm festlegen = Um das Standardterminal dauerhaft zu ändern, bedient man sich des [:Alternativen-System:Alternativen-Systems]. Mit folgendem Befehl kann man das Standardterminal festlegen: {{{#!vorlage Befehl sudo update-alternatives --config x-terminal-emulator }}} Ist das gewünschte Terminal nicht in der zur Auswahl angebotenen Liste vorhanden, muss die jeweilige Anwendung zuerst im Alternativen-System bekannt gemacht werden. Ausführliche Informationen enthält der separate Artikel. = Virtuelle Konsole = Linux-Systeme kommen standardmäßig mit sechs virtuellen Konsolen. Hier handelt es sich nicht um ein Fenster innerhalb der [wikipedia:Grafische_Benutzeroberfläche:grafischen Benutzeroberfläche], sondern um eine komplette nicht-graphische Alternative auf reiner Textbasis. Diese virtuellen Konsolen erreicht man über [[Vorlage(Tasten, Strg+Alt+F1)]] bis [[Vorlage(Tasten, F6)]]. Die Tastenkombination [[Vorlage(Tasten, Strg+Alt+F7)]] schickt einen wieder zurück zur grafischen Oberfläche. Virtuelle Konsolen sind hilfreich, falls der Xserver einmal abstürzen oder etwas anderes dafür sorgen sollte, dass die grafische Oberfläche nicht mehr erreichbar ist. Dann kann man hier nach dem Fehler suchen. Da virtuelle Konsolen voneinander sowie von der grafischen Oberfläche unabhängig sind, muss man sich zuerst neu einloggen, bevor man sie nutzen kann. Scrollen erledigt man in den virtuellen Konsolen mit [[Vorlage(Tasten, Shift+Bild-auf)]] bzw. [[Vorlage(Tasten, Shift+Bild-ab)]]. Man kann die Anzahl der Konsolen verändern, indem man in '''/etc/init/''' die Dateien '''tty1.conf''' bis '''tty6.conf''' löscht, dabei immer von hinten nach vorn vorgehen. Will man also nur drei virtuelle Konsolen, löscht man '''tty4-6.conf''' und nicht '''tty1-3.conf'''. == Weitere Informationen == * Einstellung einer anderen Auflösung als 640x480, siehe [:Konsolen-Auflösung:]. * Nutzung des Cursors, siehe [:gpm:]. [[Anker(Root)]] = Root-Rechte = Benötigt man für eine Aktion oder einen Befehl Root-Rechte, so bekommt man diese mit Befehl `sudo`. An dieser Stelle soll kurz das Erlangen von Root-Rechten zur Verwaltung des Systems erläutert werden, ausführliche Informationen in [:sudo:]. == Temporäre Root-Rechte == Wenn man Befehle ausführen oder Dateien bearbeiten will, zu denen man Root-Rechte benötigt, so macht man dies durch voranstellen von `sudo` vor den eigentlichen Befehl. Man erhält damit für diese Aktion Root-Rechte, nachdem man sein eigenes Benutzer-Passwort eingegeben hat. Die Passworteingabe erfolgt blind, d.h. man erkennt nichts im Terminal (auch keine ******). Ein Beispiel mit dem Befehl [:fdisk:] und der Option `-l` (wie listen), der immer Root-Rechte benötigt und die Datenträgerbelegung anzeigt: {{{#!vorlage Befehl sudo fdisk -l [sudo] password for : }}} == Dauerhafte Root-Rechte == Wenn man eine größere Anzahl von Befehlen mit Systemrechten ausführen möchte, ist es umständlich, vor jeden einzelnen Befehl `sudo` zu stellen. Mit dem Befehl: {{{#!vorlage Befehl sudo -s }}} kann man dauerhaft Root-Rechte erlangen. Dabei sollte man beachten, dass immer noch das [:Homeverzeichnis:] sowie die [:Umgebungsvariable:Umgebungsvariablen] des aktuellen Benutzers verwandt werden. Gibt man dagegen: {{{#!vorlage Befehl sudo -i }}} ein, so wird das Homeverzeichnis '''/root''' sowie die Umgebungsvariablen von `root` benutzt. Durch die Eingabe von: {{{#!vorlage Befehl exit }}} verlässt man dieses Terminal wieder. Die Tasten [[Vorlage(Tasten, Strg+D)]] kann man dazu auch benutzen. ## Der Anker dient dazu, dass alte Verlinkungen direkt zum passenden Abschnitt führen. [[Anker("Kopieren-nicht-tippen")]] = Bedienung = Scrollen erledigt man im Terminal mit [[Vorlage(Tasten, up)]] bzw. [[Vorlage(Tasten, down)]]. Befehle (Kommandos/Programme) und Befehlsausgaben können über die Zwischenablage bequem ausgetauscht werden (copy&paste). Dazu kann man das Kontextmenü (Kopieren/Einfügen) benutzen, oder unter Ubuntu die schnelle Variante mit [[Vorlage(Tasten, lmt)]] und [[Vorlage(Tasten, mmt)]] (Mittelklick). Um z.B. Befehlsvorgaben ins Terminal zu übernehmen, markiert man die Vorgabe mit gedrückter [[Vorlage(Tasten, lmt)]] und fügt dies im Terminal mit einem [[Vorlage(Tasten, mmt)]] wieder ein (für die mittlere Maustaste ersatzweise linke und rechte Maustaste gleichzeitig drücken). Dabei gilt es die folgenden Punkte zu beachten: 1. Der Befehl muss u.U. auf die eigenen Gegebenheiten abgestellt/geändert werden, bevor er ausgeführt wird. * Bei Befehlsvorgaben aus dem [http://forum.ubuntuusers.de [[Bild(Wiki/Icons/Portal/forum.png 18 18)]]Forum] wird extra darauf hingewiesen. 1. Der Befehl sollte nicht über mehrere Zeilen gehen, da ein Zeilenwechsel nicht mitkopiert werden darf und dieser wie eine "Eingabetaste auf halbem Weg des Befehls" wirkt. * Bei Befehlsvorgaben im [:Startseite:[[Bild(Wiki/Icons/Portal/wiki.png, 18x18)]]Wiki] oder dem [http://forum.ubuntuusers.de [[Bild(Wiki/Icons/Portal/forum.png 18 18)]]Forum] ist dieser Umstand berücksichtigt, sodass man Mehrzeiler aus den schwarzen Feldern kopieren und einfügen kann. == Tastenkombinationen == Manchmal will man Befehle ein weiteres Mal ausführen, muss nur eine Option dabei ändern oder sucht nach einem bestimmten, bereits ausgeführten Befehl. Um all diese Aufgaben effektiv zu erledigen gibt es eine Reihe von Tastenkombination. === Vervollständigen lassen, nicht tippen === Befehle und Dateinamen werden durch die Tabulatortaste [[Vorlage(Tasten, tab)]] automatisch ergänzt. Wenn dies nicht eindeutig möglich ist, werden bei einem weiteren [[Vorlage(Tasten, tab)]] alle Möglichkeiten zur Auswahl aufgelistet. Nun gibt man den eindeutigen Anfangsteil des entsprechenden Vorschlags ein und betätigt erneut die [[Vorlage(Tasten, tab)]]. Dies macht man solange bis der Befehl komplett ist und mit [[Vorlage(Tasten, Enter)]] zur Ausführung gebracht werden kann. Damit erspart man sich z.B. die fehlerträchtige Handeingabe sehr langer Dateinamen, siehe dazu [:Bash#Autovervollstaendigung:Autovervollständigung]. === Auswahl weiterer Tastenkürzel === {{{#!vorlage Tabelle <-2 tablestyle="width: 98%;" rowclass="titel"> Auswahl weiterer Tastenkürzel +++ <-2: rowclass="kopf"> Bearbeiten +++ Tasten Aktion +++ [[Vorlage(Tasten, strg+A)]] Cursor an den Anfang der Eingabezeile bewegen. +++ [[Vorlage(Tasten, strg+E)]] Cursor an das Ende der Eingabezeile bewegen. +++ [[Vorlage(Tasten, Alt+.)]] Einfügen der letzten Option (Wort) der letzten Eingabe - mehrmaliges Betätigen möglich. +++ [[Vorlage(Tasten, Strg+U)]] Löscht alles ab der Cursorposition bis Anfang der Eingabezeile. +++ [[Vorlage(Tasten, Strg+K)]] Löscht alles ab der Cursorposition bis Ende der Eingabezeile. +++ [[Vorlage(Tasten, Strg+H)]] Löscht letztes Zeichen vor Cursorposition, analog zu [[Vorlage(Tasten, Backspace)]]. +++ [[Vorlage(Tasten, Strg+D)]] Löscht nächstes Zeichen ab Cursorposition, analog zu [[Vorlage(Tasten, entf)]], auf einer leeren Zeile entspricht dies der Eingabe von `exit`. +++ [[Vorlage(Tasten, Strg+W)]] Löscht letzten Begriff vor der Cursorposition. +++ [[Vorlage(Tasten, Strg+Shift+C)]] Kopieren des markierten Texts in die Zwischenablage. +++ [[Vorlage(Tasten, Strg+Shift+V)]] Einfügen der Zwischenablage an der Cursorpostion. +++ [[Vorlage(Tasten, Strg+C)]] Bricht laufenden Befehl/Prozess ab. +++ <-2: rowclass="kopf"> Suchen und Blättern +++ Tasten Aktion +++ [[Vorlage(Tasten, up)]] Rückwärtsblättern in den letzten Befehlseingaben. +++ [[Vorlage(Tasten, down)]] Vorwärtsblättern in den letzten Befehlseingaben. +++ [[Vorlage(Tasten, Strg+R)]] Suchen in den letzten Eingaben ([[Vorlage(Tasten, links)]] bricht Suche ab, [[Vorlage (Tasten, Enter)]] führt Kommando erneut aus). +++ [[Vorlage(Tasten, Shift+up)]] Zeilenweises Rückwärtsblättern der Bildschirmanzeige. +++ [[Vorlage(Tasten, Shift+down)]] Zeilenweises Vorwärtsblättern der Bildschirmanzeige. +++ [[Vorlage(Tasten, Shift+Bild-auf)]] Seitenweises Rückwärtsblättern der Bildschirmanzeige. +++ [[Vorlage(Tasten, Shift+Bild-ab)]] Seitenweises Vorwärtsblättern der Bildschirmanzeige. +++ [[Vorlage(Tasten, Strg+Shift+X)]] Löschen des Bildschirm vor aktueller Zeile. }}} == Ergebnisse zwischenspeichern, nicht abschreiben == Ausgaben können mittles [:Shell/Umleitungen:] in einer Textdatei zwischengespeichert werden, um diese später mit einem [:Editor:] zu öffnen und auszuwerten bzw. im Forum mittels [:Forum/Syntax#Syntaxelemente:[[Bild(Forum/Syntax/pre.png)]] Codeblock] einzustellen. Dazu legt man zuerst eine Datei an, hier z.B. im Verzeichnis '''/tmp''' die Datei '''ergebnis.txt''' und befüllt diese, indem man an jedes Kommando folgendes anfügt: {{{#!vorlage Befehl 2>&1 >> ergebnis.txt }}} '''Anmerkung:''' Unbedingt auf das Leerzeichen als Trenner zwischen Befehl und dieser Umleitungsanweisung achten! === Ergebnisse für das Forum === Sollen die Ergebnisse im Forum bereitgestellt werden, empfiehlt sich aufgrund der besseren Lesbarkeit folgende Vorgehensweise. {{{#!vorlage Tabelle 1. Festlegen des Orts und des Namens der Textdatei. log="/tmp/ergebnis.txt" +++ 2. Anlegen der Textdatei. touch $log +++ 3. Eröffnenden Codeblock für das Forum schreiben. echo "\{{{" >>$log +++ 4. Ausführen eines Kommandos, hier am Beispiel "`lsb_release -d`". lsb_release -d 2>&1 >>$log +++ 5. Abschließenden Codeblock schreiben. echo "\}}}" >>$log +++ <-3 rowclass="highlight" cellstyle="border-left: none; border-right: none; border-top: none; border-bottom: none">Punkt 3 wird dabei vor und Punkt 5 nach jedem weiteren geforderten Befehl ausgeführt,[[BR]] siehe [#Auswahl-weiterer-Tastenkuerzel Auswahl weiterer Tastenkürzel], insb. [[Vorlage(Tasten, up)]][[Vorlage(Tasten, down)]]. }}} Die so erzeugte Datei kann dann mit einem Editor geöffnet und der Inhalt (__ohne__ extra die Codeblocksyntax einzugeben) in die Forenantwort eingefügt werden. == Befehl mittels Skript öffnen == Wird ein Befehl öfter benötigt, kann dies mit einem Skript bewerkstelligt werden. Im folgenden Beispiel wird der Kernlog ausgegeben: {{{#!code bash #!/bin/bash gnome-terminal -e "less /var/log/kern.log" }}} Dieses speichert man z.B. unter '''kernlog'''. Nun muss es noch ausführbar gemacht werden, z.B. über ''"Eigenschaften -> Zugriffsrechte -> Datei als Programm ausführen"''. Wird es gestartet, öffnet sich ein Terminal und die Logdatei wird mit dem Pager [:less:] ausgegeben. = Konfiguration = Weitere Hinweise und Tipps sind in den oben genannten Einzelartikeln zu den jeweiligen Terminals zu finden. == Größe und Position festlegen == === GNOME- und Xfce-Terminal === Die Fenstergröße und die Position des Terminals kann man mit dem Parameter `--geometry` festlegen. Dieser wird hinter den Startbefehl geschrieben. Für das GNOME-Terminal sieht das so aus: {{{#!vorlage Befehl gnome-terminal --geometry=84x40+500+0 }}} für das Xfce-Terminal so: {{{#!vorlage Befehl xfce4-terminal --geometry=84x40+500+0 }}} Die Zahlenwerte stehen für folgende Angaben: * erster Wert (nach =) - Breite des Terminal-Fensters * zweiter Wert (nach x) - Höhe des Terminal-Fensters * dritter Wert (nach erstem +) - x-Position * vierter Wert (nach zweitem +) - y-Position Die x-Position gibt den Abstand des Terminals vom linken Bildschirmrand, die y-Position den zum oberen an. Diese Positionierung ist allerdings nur begrenzt möglich - das Terminal "verlässt" den Bildschirm nie, auch nicht teilweise. Die Einstellung ist flüchtig. Mit dem Parameter `--maximize` lassen sich beide Terminals auch maximiert öffnen: {{{#!vorlage Befehl gnome-terminal --maximize }}} bzw. {{{#!vorlage Befehl xfce4-terminal --maximize }}} == Größe als Standard festlegen == === GNOME === Um die (Fenster)-Größe des GNOME-Terminals als Standard festzulegen, geht man auf ''"Bearbeiten -> Profileinstellungen -> Allgemein -> Benutzerdefinierte Größe"'' und wählt eine beliebige Größe. Alternativ öffnet man die Datei '''/usr/share/vte/termcap/xterm''' in einem Editor[3] mit Root-Rechten[4] und editiert folgende Zeile: {{{ :co#80:it#8:li#24:\ }}} * `co` = Breite * `li` = Höhe Je größer die Zahlen, desto größer das Fenster. === Xfce/Xubuntu === Bei Verwendung des Xfce-Terminals reicht es aus, in der Datei '''~/.config/xfce4/terminal/terminalrc''' folgende Zeile wie gewünscht anzupassen: {{{ MiscDefaultGeometry=80x24 }}} = Problembehebung = In seltenen Fällen kommt es vor, dass der Zeichensatz und/oder die Tastaturbelegung im Terminal nicht mehr der gewünschten entspricht. Dann hilft unter Umständen der Befehl: {{{#!vorlage Befehl reset }}} weiter, der mit der Taste [[Vorlage(Tasten, enter)]] abgeschlossen wird. = Links = * [:Transparentes Terminal:] - Terminals mit transparentem Hintergrund ermöglichen die Sicht auf hübsche Desktops * [:Ajaxterm:] - Webbasiertes Terminal * [:shellinabox:] - Alternative zu Ajaxterm * [http://www.tecmint.com/linux-terminal-emulators/ 20 Useful Terminal Emulators for Linux] {en} - Blogbeitrag, 02/2014 * [:/Shell/Befehlsübersicht:Befehlsübersicht] {Übersicht} - die wichtigsten Befehle von Benutzerverwaltung bis Systemüberwachung * [:/Shell/Anwendungen:Terminal-Anwendungen] {Übersicht} - von Brennen über Internet bis Multimedia # tag: System, Shell,