[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Shell: Shellbefehle] [:Pakete_installieren: Installation von Programmen] [:Editor: Editor öffnen] [:mit Root-Rechten arbeiten:] }}} [[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]" mate_terminal.png, "[#MATE MATE]" )]] == 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"'' ab Ubuntu 16.04 standardmäßig Für Ubuntu 14.04 muss der aber nachgerüstet werden. 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 mit GNOME-Desktop 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. }}} == 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. == 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"''. == MATE == Über ''"Anwendungen -> Systemwerkzeuge -> MATE-Terminal"'' lässt sich das Standardterminal des Desktop-Umgebung [:MATE:] aufrufen. Dieses kann auf Wunsch auf Pseudo-Transparenz umgestellt werden. Echte Transparenz erhält man in Verbindung mit einem [:3D-Desktop#Die-Darstellung-Composite-und-Fenstermanager:Composite-Manager] (siehe auch [:Transparentes Terminal#MATE:]). [[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:] * [https://lilyterm.luna.com.tw/ LilyTerm] {en} * [sourceforge:roxterm:ROXTerm] {en} * [:rxvt-unicode:] * [launchpad:sakura:] {en} * [https://gnunn1.github.io/tilix-web/ Tilix (alias Terminix)] {en} (tiling-fähig) * [https://www.enlightenment.org/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 bis einschließlich Ubuntu 17.04 über [[Vorlage(Tasten, Strg+Alt+F1)]] bis [[Vorlage(Tasten, F6)]], ab Ubuntu 17.10 über [[Vorlage(Tasten, Strg+Alt+F3)]] bis [[Vorlage(Tasten, F6)]]. 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. Bis einschließlich Ubuntu 17.04 schickt die Tastenkombination [[Vorlage(Tasten, Strg+Alt+F7)]] einen wieder zurück zur grafischen Oberfläche. Ab Ubuntu 17.10 schickt die Tastenkombination [[Vorlage(Tasten, Strg+Alt+F2)]] zurück zur grafischen Oberfläche und [[Vorlage(Tasten, Strg+Alt+F1)]] zum Login-Bildschirm, bei KDE generell nur [[Vorlage(Tasten, Strg+Alt+F1)]]. 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 auch verändern. Für Systeme mit systemd (also ab Ubuntu 15.04) muss man dafür die Datei '''/etc/systemd/logind.conf''' editieren. Dazu entfernt man das Kommentarzeichen `#` vor der Zeile mit dem Eintrag `NAutoVTs=6` und trägt statt der Voreinstellung `6` die gewünschte Zahl ein. Für Systeme mit Upstart (also bis einschließlich Ubuntu 14.10) ändert man die Anzahl der Konsolen, 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 = Für bestimmte Befehle bzw. Aktionen im Terminal sind eventuell Root-Rechte notwendig. Verschiedene Wege, um diese zu erlangen bzw. einen Root-Terminal zu öffnen, sind im Artikel [:mit Root-Rechten arbeiten:] beschrieben. [[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 erledigen zu können, gibt es eine Reihe von Tastenkombinationen, die mittels [wikipedia_en:GNU_Readline:] implementiert werden. === 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+F3)]] bis [[Vorlage(Tasten, F6)]] Öffnen der [#Virtuelle-Konsole Virtuellen Konsolen] 3 bis 6 (2 bis 6 bei KDE) +++ [[Vorlage(Tasten, Strg+Alt+F2)]] Von der [#Virtuelle-Konsole Virtuellen Konsole] zurück zur grafischen Oberfläche (bei KDE [[Vorlage(Tasten, Strg+Alt+F1)]]) +++ [[Vorlage(Tasten, Strg+Alt+F1)]] Von der [#Virtuelle-Konsole Virtuellen Konsole] zurück zum Login-Bildschirm (zur grafischen Oberfläche bei KDE) +++ <-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 Cursorposition. +++ [[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 der 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. == Anwendungen in anderer Sprache starten == Nutzt man bspw. als Systemsprache Englisch und will ab und zu im Terminal ein Programm in Deutsch starten, dann geht dies folgendermaßen (hier am Beispiel von [:Inkscape:]): {{{#!vorlage Befehl LANGUAGE=de inkscape }}} Statt `de` kann man auch jede andere Sprache nehmen, z.B. `fr` für Französisch. Voraussetzung sind natürlich die jeweils separat zu installierenden [:Spracheinstellungen:Sprachpakete] (Lokalisierung). = 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. Beispiele: * GNOME-Terminal: [[Vorlage(Befehl, "gnome-terminal --geometry=84x40+500+0")]] * Xfce-Terminal: [[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 * [https://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 * [wikipedia_en:GNU_Readline:] - Wikipedia-Artikel zu GNU Readline * [https://tiswww.case.edu/php/chet/readline/rltop.html GNU Readline Library] {en} - Projektseite # tag: System, Shell,