[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Shell: Shellbefehle beherrschen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Pakete_installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./terminal_logo.png, 64, align=left)]] Ein Terminal, auch [:Shell:] oder Konsole genannt, stellt eine textbasierte Ein-/Ausgabe-Schnittstelle für ein Computersystem da. Im Fenster dieses Terminals können Befehle [1] eingetippt und so das System gesteuert oder Dateien bearbeitet werden. Eine genauere Erklärung zum Thema Terminal findet man in der [wikipedia:Terminalemulation:Wikipedia], eine erste Einführung in die Benutzung unter [:Shell/Einführung:]. = Unity = Um ein Terminal unter Unity zu erhalten, klickt man [[Vorlage(Tasten,lmb)]] zuerst auf das [:Unity/Unity_Startmenü#Schnellstartmenue:Ubuntu-Symbol] links oben in der Menüleiste und gibt dann in das Textfeld `Terminal` ein. Daraufhin werden alle verfügbaren Terminalprogramme angezeigt. Der Standardterminal ist der, der nur den Namen ''"Terminal"'' trägt. Wer öfters mit dem Terminal arbeitet, kann sich im [:Unity/Unity Startmenü:Unity Startmenü] auch einen entsprechenden Eintrag anlegen oder das Terminalsymbol auf die Leiste links ziehen. Alternativ lässt sich ein Terminal auch durch die Tastenkombination [[Vorlage(Tasten,strg+alt+t)]] öffnen. Wie auch unter [#GNOME GNOME] gibt es standardmäßig keinen Root-Terminal. = GNOME = Ein Terminal befindet sich im Menü unter * ''"Anwendungen -> Zubehör -> Terminal"'' Von anderen Linux-Distributionen oder älteren Ubuntu-Versionen kennt man ein sogenanntes Root-Terminal, also ein Terminalfenster, in dem man sofort mit Root-Rechten arbeitet. Ein Root-Terminal ist standardmäßig nicht aktiv. Es lässt sich jedoch im GNOME-Menü ganz einfach ein Starter dafür einblenden. Dazu muss der Eintrag im [:GNOME_Menü:GNOME Menü] unter ''"Systemwerkzeuge"'' bei ''"Root-Terminal"'' bzw ''"Administrations-Terminal"'' aktiviert werden. Ab sofort wird es unter * "''Anwendungen -> Systemwerkzeuge''" angezeigt. Alternativ lässt sich ein Terminal auch durch die Tastenkombination [[Vorlage(Tasten,strg+alt+t)]] öffnen. == Integration in Nautilus == Ab und zu ist es sehr praktisch, direkt aus dem Dateimanager [:Nautilus:] ein Terminalfenster mit dem aktuellen Verzeichnis zu öffnen. Im Kontext-Menü gibt es den Punkt ''"Terminal öffnen"'' nicht standardmäßig. Wer ihn gerne hätte, kann dies ganz einfach nachrüsten. Dazu installiert [3] man zunächst das Paket {{{#!vorlage Paketinstallation nautilus-open-terminal, universe, [2] }}} Nun genügt es, [:Nautilus#Nautilus-neu-starten:Nautilus einmal 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 viele Terminal-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 einfach im Kontextmenü (rechte Maustaste [[Vorlage(Tasten, rmt)]]) des GNOME-Terminals das ''"momentan verwendete Profil bearbeiten"'' und im Reiter ''"Titel und Befehl"'' die Option ''"Befehl als Login-Shell starten"'' anwählen. }}} = KDE/Kubuntu = Ein Terminal findet sich unter * ''"K-Menü -> System -> Konsole Terminalprogramm"'' Mehr Informationen findet man im Artikel [:Konsole:]. = Xfce/Xubuntu = Auch [:Xfce:] bringt sein eigenes Terminal-Programm mit. Dieses findet man unter * ''"Applications -> Terminal"'' Mehr Informationen findet man im Artikel [:Xfce_Programme#Terminal:]. = LXDE/Lubuntu = Das Terminal der Desktop-Umgebung [:LXDE:] nennt sich [:LXDE_Programme#LXTerminal:LXTerminal] und ist unter * [[Bild(LXDE/start-here.png, 16,)]] ''"LXDE-Menü -> Zubehör -> LXTerminal"'' zu finden. [[Vorlage(Bildersammlung, right, 130 gnome_terminal.png, "[:GNOME:]" kde_terminal.png, "[:KDE:]" xfce_terminal.png, "[:Xfce:]" LXDE_Programme/terminal_lxde.png, "[:LXDE:]" )]] [[Anker(alternative)]] = Andere Terminals = Praktische, elegantere und/oder kleinere Alternativen sind z.B. * [:Terminator:] * [:rxvt-unicode:] * [:xterm:] * [:Eterm:] * [:Tilda:] * [:guake:Guake] * [:Yakuake:] * [sourceforge:roxterm:ROXTerm] {en} Um das Standard-Terminal dauerhaft zu ändern, bedient man sich des [:Alternativen-System:]. Hier kann man über "`x-terminal-emulator`" das Standard-Terminal festlegen. = Virtuelle Konsole = Linux-Systeme kommen standardmäßig mit sechs virtuellen Konsolen. Im Gegensatz zum bisher Beschriebenen handelt es sich nicht um ein Fenster innerhalb der graphischen Oberflä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)]]. [[Vorlage(Tasten, Strg+Alt+F7)]] schickt einen wieder zurück zur grafischen Oberfläche. Die virtuellen 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 bzw. noch etwas Wichtiges machen, ohne auf eine [wikipedia:Grafische_Benutzeroberfläche:GUI] angewiesen zu sein. Da die virtuellen Konsolen voneinander sowie von der grafischen Oberfläche unabhängig sind, muss man sich hier zuerst neu einloggen, bevor man sie nutzen kann. Dazu gibt man zuerst seinen Benutzernamen ein, bestätigt mit [[Vorlage(Tasten, Enter)]] und gibt danach sein Passwort blind ein, d.h. es wird (wie bei [#Root-Rechte sudo]) nichts angezeigt. Scrollen erledigt man in den Virtuellen Konsolen mit [[Vorlage(Tasten, Shift+Bild-auf)]] bzw [[Vorlage(Tasten, Shift+Bild-ab)]]. Wenn man nicht sechs davon braucht, kann man die Anzahl auch verringern, indem man die entsprechenden Dateien mit den Namen '''tty1.conf''' bis '''tty6.conf''' in '''/etc/init/''' löscht. Dabei sollte man jedoch immer von hinten nach vorn vorgehen. Will man also nur drei virtuelle Konsolen haben, löscht man '''tty4-6.conf''' und nicht '''tty1-3.conf'''. == Weitere Informationen == * Wie man in den virtuellen Konsolen eine andere Auflösung als 640x480 einstellt, ist im Artikel [:Konsolen-Auflösung:] beschrieben. * Wie sich der Mauszeiger/Cursor in der virtuellen Konsole nutzen lässt, steht im Artikel [:gpm:]. [[Anker(Root)]] = Root-Rechte = Benötigt man für eine Aktion oder einen Befehl Root-Rechte, so bekommt man diese mit dem Befehl [:sudo:]. An dieser Stelle soll kurz das Erlangen von Root-Rechten zur Verwaltung des Systems erläutert werden. Ausführliche Informationen hierzu erfährt man [:sudo:im Wiki]. == Temporäre Root-Rechte == Wenn man einen Befehl 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 im Terminal 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. Durch den 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 benutzt 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 (mehr dazu in [:sudo:]) ## Der Anker dient dazu, dass alte Verlinkungen direkt zum passenden Abschnitt führen. [[Anker("Kopieren-nicht-tippen")]] = Bedienung = Befehle (Kommandos/Programme) und Befehlsausgaben können über die Zwischenablage ganz 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)]]. Um z.B. Befehlsvorgaben ins Terminal zu übernehmen, markiert man die Vorgabe mit der gedrückten linken Maustaste [[Vorlage(Tasten, lmt)]] und fügt dies im Terminal mit einem [[Vorlage(Tasten, mmt)]] (Mittelklick oder Daumenklick) wieder ein (besitzt man keine mittlere Maustaste, kann man als Ersatz gleichzeitig die linke und rechte Maustasten 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, die einem diese Aufgaben erleichtern. === 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 enstprechenden 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 auch [:Bash#Autovervollstaendigung:]. === Auswahl an Shortcuts === {{{#!vorlage Tabelle <-4 rowclass="titel" cellstyle="width: 100%">Auswahl von weiteren Tastenkombinationen (Shortcuts) +++ <-2 rowclass="kopf" cellstyle="width: 50%">Bearbeiten <-2 rowclass="kopf" cellstyle="width: 50%">Suchen und Blättern +++ [[Vorlage(Tasten, strg+A)]] Bewegt den Cursor an den Anfang der Eingabezeile. [[Vorlage(Tasten, up)]] Rückwärtsblättern in den letzen Befehlseingaben. +++ [[Vorlage(Tasten, strg+E)]] Bewegt den Cursor an das Ende der Eingabezeile. [[Vorlage(Tasten, down)]] Vorwärtsblättern in den letzen Befehlseingaben. +++ [[Vorlage (Tasten Alt+.)]] Einfügen der letzten Option (Wort) der letzten Eingabe - mehrmaliges Betätigen möglich. [[Vorlage (Tasten Strg+R)]] Suchen in den letzten Eingaben ([[Vorlage(Tasten links)]] bricht die Suche ab, [[Vorlage (Tasten Enter)]] führt das Kommando erneut aus). +++ [[Vorlage (Tasten Strg+U)]] Löscht alles ab der Cursorposition bis zum Anfang der Eingabezeile. [[Vorlage (Tasten Shift+up)]] Zeilenweises Rückwärtsblättern (Scrollen) in der Bildschirmanzeige. +++ [[Vorlage (Tasten Strg+K)]] Löscht alles ab der Cursorposition bis zum Ende der Eingabezeile. [[Vorlage (Tasten Shift+down)]] Zeilenweises Vorwärtsblättern (Scrollen) in der Bildschirmanzeige. ++++ [[Vorlage (Tasten Strg+H)]] Löscht das letzte Zeichen vor der Cursor-Position, analog zu [[Vorlage (Tasten Backspace)]]. [[Vorlage (Tasten Shift+Bild-auf)]] Seitenweises Rückwärtsblättern (Scrollen) in der Bildschirmanzeige. +++ [[Vorlage (Tasten Strg+D)]] Löscht das nächste Zeichen ab Cursor-Position, analog zu [[Vorlage(Tasten entf)]].[[BR]] Auf einer leeren Zeile entspricht dies der Eingabe von `exit`. [[Vorlage (Tasten Shift+Bild-ab)]] Seitenweises Vorwärtsblättern (Scrollen) in der Bildschirmanzeige. +++ [[Vorlage (Tasten Strg+W)]] Löscht das letzte ''Wort'' vor der Cursor-Position. [[Vorlage (Tasten Strg+Shift+X)]] Löscht den Bildschirm vor der aktuellen Zeile. +++ [[Vorlage (Tasten Strg+Shift+C)]] Kopiert den markierten Text in die Zwischenablage. +++ [[Vorlage (Tasten Strg+Shift+V)]] Fügt die Zwischenablage an der Cursorpostion ein. +++ [[Vorlage (Tasten Strg+C)]] Bricht den laufenden Befehl/Prozess ab. }}} == 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 '''ergebniss.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, dann empfieht sich, wg. der besseren Lesbarkeit für die Supporter, die 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">Der Punkt 3 wird dabei vor und der Punkt 5 nach jedem weiteren geforderten Befehl ausgeführt.[[BR]] Siehe dazu auch: [#Auswahl-an-Shortcuts Auswahl an Shortcuts], insb. [[Vorlage(Tasten, up)]][[Vorlage(Tasten, down)]]. }}} Die so erzeugte Datei kann dann mit einem Editor geöffnet werden und der Inhalt kann so (__ohne__ extra die Codeblocksyntax einzugeben) in die Forenantwort mit eingefügt werden. == Befehl mittels Skript öffnen == Wird ein Befehl öfter benötigt, kann dies mit einem Skript bewerkstelligt werden. In dem 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 [:less:] ausgegeben. = 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 dann so aus: {{{#!vorlage Befehl gnome-terminal --geometry=84x40+500+0 }}} Für das Xfce-Terminal sieht es so aus: {{{#!vorlage Befehl xfce4-terminal --geometry=84x40+500+0 }}} Die Zahlenwerte stehen für folgende Angaben: * erster Wert (hinter =) - Breite des Terminal-Fensters * zweiter Wert (hinter dem x) - Höhe des Terminal-Fensters * dritter Wert (hinter erstem +) - x-Position * vierter Wert (hinter zweitem +) - y-Position Der Abstand bei den beiden letzten Werten ist dabei immer der von der linken oberen Ecke des Bildschirms zur linken oberen Ecke des Terminal-Fensters. Mit dem Parameter `--maximize` lassen sich beide Terminals auch maximiert öffnen: {{{#!vorlage Befehl gnome-terminal --maximize xfce4-terminal --maximize }}} == Größe als Standard festlegen == 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[4] mit Root-Rechten[5] 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, die Datei '''~/.config/Terminal/terminalrc''' zu öffnen und folgende Zeile wie gewünscht anzupassen: {{{ MiscDefaultGeometry=80x40+0+0 }}} = Links = * [:Transparentes Terminal:] - Terminals mit transparentem Hintergrund versperren nicht die Sicht auf hübsche Desktops # tag: System, Shell, TerminalEingabetaste auf halbem Weg des Befehls