[[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 = [[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]" )]] == 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. === Integration in Nautilus === Manchmal ist es praktisch, direkt aus dem Dateimanager [:Nautilus:] ein Terminalfenster im aktuellen Verzeichnis zu öffnen. Im Kontextmenü gibt es den Punkt ''"Terminal öffnen"'' nicht standardmäßig, der aber nachgerüstet werden kann. Dazu installiert [2] man zunächst das Paket: {{{#!vorlage Paketinstallation nautilus-open-terminal, universe, bis einschließlich [:Vivid:Ubuntu 15.04] }}} 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: * [github:Swordfish90/cool-retro-term:cool-retro-term] {en} * [:Eterm:] * [http://lilyterm.luna.com.tw LilyTerm] {en} * [sourceforge:roxterm:ROXTerm] {en} * [:rxvt-unicode:] * [launchpad:sakura:] {en} * [https://www.enlightenment.org/p.php?p=about/terminology Terminology] {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. Seitenweises 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 Tastenkombination [[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 = Um dieselben Befehle nicht immer mühsam aufs Neue eintippen zu müssen kann man mit [[Vorlage(Tasten, up)]] in den letzten Befehlseingaben rückwärtsblättern. Den jeweils erscheinenden Befehl kann man auf die eigenen Gegebenheiten abstellen/änden, bevor er mit [[Vorlage(Tasten, Enter)]] zur Ausführung gebracht wird. Mit [[Vorlage(Tasten, down)]] blättert man vor. 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. Wenn man Befehle von dritten (z.B. übernommen von einer Webseite oder einem Forum) übernimmt sollte man wissen, was dieser Befehl bewirkt, um nicht ungewollt Schaden oder auch Datenverlust zu generieren. 1. Der Befehl muss u.U. auf die eigenen Gegebenheiten abgestellt/geändert werden, bevor er ausgeführt wird. 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. == 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]. === Suchfunktionen === * Mit [[Vorlage(Tasten, Strg+R)]] sucht man in den letzten Befehlseingaben ([[Vorlage(Tasten, links)]] bricht Suche ab, [[Vorlage (Tasten, Enter)]] führt Kommando erneut aus). * Die Bildschirmanzeige lässt sich mithilfe der Tastenkombination [[Vorlage(Tasten, Strg+Shift+F)]] durchsuchen. Diese Suche erreicht man bei den meisten Terminals außerdem über deren Menüleiste, sie heißt dort etwa "Suchen" bzw. "Gehe zu". ## Der Anker dient dazu, dass alte Verlinkungen direkt zum passenden Abschnitt führen. [[Anker("Auswahl-weiterer-Tastenkuerzel")]] === Bereits erwähnte und Auswahl weiterer Tastenkürzel === {{{#!vorlage Tabelle <-2 tablestyle="width: 98%;" rowclass="titel"> Bereits erwähnte und Auswahl weiterer Tastenkürzel +++ <-2: rowclass="kopf"> Öffnen +++ Tasten Aktion +++ [[Vorlage(Tasten, strg+alt+t)]] Standard zum Öffnen der meisten Terminalprogramme. Muss bei [#KDE KDE] erst aktiviert werden. +++ [[Vorlage(Tasten, Strg+Alt+F1)]] bis [[Vorlage(Tasten, F6)]] Öffnen der [#Virtuelle-Konsole Virtuellen Konsolen] 1 bis 6. +++ [[Vorlage(Tasten, Strg+Alt+F7)]] Von der [#Virtuelle-Konsole Virtuellen Konsole] zurück zur grafischen Oberfläche. +++ <-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+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+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+Shift+X)]] Löschen des Bildschirms vor aktueller Zeile. +++ [[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, tab)]] [#Vervollstaendigen-lassen-nicht-tippen Autovervollständigung] von Befehlen und Dateinamen. +++ [[Vorlage(Tasten, Strg+R)]] Suchen in den letzten Eingaben ([[Vorlage(Tasten, links)]] bricht Suche ab, [[Vorlage (Tasten, Enter)]] führt Kommando erneut aus) – mehrmaliges Betätigen möglich. +++ [[Vorlage(Tasten, Strg+Shift+F)]] Suchen in der Bildschirmanzeige. +++ [[Vorlage(Tasten, Strg+Shift+up)]] Zeilenweises Rückwärtsblättern der Bildschirmanzeige. +++ [[Vorlage(Tasten, Strg+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. }}} == Ergebnis / Ausgabe eines Befehls in Datei schreiben == Ausgaben können mittels [:Shell/Umleitungen:] in einer Textdatei zwischengespeichert werden, um diese später mit einem [:Editor:] zu öffnen und auszuwerten. Dazu legt man zuerst eine Datei an, hier z.B. '''~/ergebnis.txt''' und befüllt diese, indem man an jedes Kommando Folgendes anfügt: {{{#!vorlage Befehl BEFEHL 2>&1 >> ergebnis.txt }}} {{{#!vorlage Hinweis Unbedingt auf das Leerzeichen als Trenner zwischen Befehl und dieser Umleitungsanweisung achten! }}} == 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 = == History speichern == Bei einigen Systemen kommt es vor, dass die History nicht ohne explizites `exit` gespeichert wird, etwa bei Varianten von Ubuntu 14.04. Des Weiteren wäre es manchmal wünschenswert, die History sofort nach einem Befehl zu speichern, um sie danach neu geöffneten oder sogar bereits geöffneten Terminal-Tabs direkt zur Verfügung zu stellen. Die Lösungen dafür sind im Artikel [:Bash#Sofort-speichern:] beschrieben. == Reset == 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,