ubuntuusers.de

Terminal

Dieser Artikel bezieht sich auf Ubuntu Touch, die Variante von Ubuntu für mobile Geräte mit Touchscreen.

Getestet wurde der Artikel für folgende Version(en):

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Achtung!

Für jegliche Veränderungen an Ubuntu Touch ist der Besitzer selbst verantwortlich. Weder die Artikelautoren noch ubuntuusers.de haften, falls Probleme auftreten oder das benutzte Gerät im schlimmsten Fall nie mehr gestartet werden kann. Tiefe Systemeingriffe können dazu führen, dass Ubuntu Touch durch einen sogenannten Flashvorgang neu aufgespielt werden muss.

Unter bestimmten Umständen könnte auch dies unmöglich werden - das Gerät und damit auch die Daten sind dann unwiederbringlich zerstört. Schwere Systemeingriffe wie Schreibzugriff auf das System sind inoffiziell, können beispielsweise im Fall der Nutzung von apt-get schnell zu Problemen führen und sind allgemein häufig von Garantieleistungen der Gerätehersteller/ Shops ausgenommen.

Wiki/Icons/terminal.png Es bestehen mehrere Möglichkeiten, auf ein Ubuntu-Touch-Gerät [1] mittels Terminal zuzugreifen. Mit Hilfe einer solchen Terminalverbindung kann man dann Kommandozeilenbefehle am Gerät ausführen. Vom Terminal können auch Befehle mit Root-Rechten ausgeführt werden. Das Benutzerpasswort ist die PIN oder das Passwort welches man bei der Einrichtung für die Bildschirmsperre des Geräts festgelegt hat.

Dieser Artikel beschreibt unterschiedliche Methoden zum Terminal-Zugang, entweder direkt am Touchbildschirm oder vom PC aus. In weiterer Folge werden einige typische Anwendungsfälle für einen Terminal-Zugang beschrieben, etwa das Editieren von Dateien, das Beschreibbarmachen des Systems oder Software-Installation aus den Paketquellen, welche standardmäßig nicht vorgesehen und von den Apps aus dem OpenStore deutlich zu unterscheiden sind.

Terminal-Zugang

App

Der einfachste Weg, eine Kommandozeile zum Gerät zu öffnen, ist es, die Terminal-App zu installieren. Hiermit kann man direkt am Gerät den Zugang zum Terminal erlangen und mit der Tastatur von Ubuntu Touch Befehle eingeben. Tipps zur Nutzung der App befinden sich im Artikel Tipps_und_Tricks; wirklich komfortabel lässt sich zumindest auf kleinen Bildschirmen aber nicht damit arbeiten.

Relativ einfach kann man in der Terminal-App die History benutzen, um die Befehle wieder aufzurufen, ohne sie erneut eintippen zu müssen. Dazu scrollt man mit zwei Fingern nach unten, oder wieder hoch, wenn man einen neueren Eintrag braucht

USB-Kabel

Mit Hilfe eines USB-Kabels kann das Gerät via Kommandozeile vom PC administriert werden. Hierzu ist es nötig, auf dem PC die Android Debug Bridge (ADB) wie folgt zu installieren [2]:

  • android-tools-adb

Paketliste zum Kopieren:

sudo apt-get install android-tools-adb 

Oder mit apturl installieren, Link: apt://android-tools-adb

Nun muss man zunächst unter "Systemeinstellungen → Info → Entwicklermodus" diesen aktivieren. Dafür muss das Gerät zuvor mit einer PIN versehen werden, worauf dort auch hingewiesen wird. Ab dann lässt sich die Shell des Ubuntu-Touch-Gerätes auf dem Rechner öffnen. Das funktioniert aber nur, wenn der Bildschirm entsperrt ist.

Die Shell öffnet sich mit dem Befehl:

adb shell 

Wenn die Verbindung erfolgreich ist, erscheint eine Eingabeaufforderung

phablet@ubuntu-phablet:~$

Zugangsprobleme zur ADB-Shell

Der Aufruf des Befehls

adb devices 

sollte mit einer Ausgabe wie

List of devices attached 
XY123456        device

beendet werden. Falls kein Gerät angezeigt wird, ist die USB-Verbindung zu überprüfen.

Kein Gerät gefunden

Es kann vorkommen, dass bei der Verbindung via USB kein Gerät gefunden wird. In diesem Fall muss die sogenannte USB-ID des Geräte-Herstellers am PC konfiguriert werden. Der Blog Linuxwissen 🇩🇪 erklärt das Vorgehen sowohl für ADB als auch MTP. Im Folgenden wird nur das Vorgehen für ADB beschrieben:

Mit dem Befehl lsusb kann man diese ID ermitteln. Der Befehl liefert zwei hexadezimale Zahlen in der Form Hersteller-ID:Produkt-ID, zum Beispiel:

2a47:2008  

Damit die Verbindung funktioniert, muss die Datei ~/.android/adb_usb.ini mit einem Editor bearbeitet werden. Dazu wird eine neue Zeile mit der Hersteller-ID (die ersten vier Stellen vor dem Doppelpunkt) mit 0x vorangestellt eingetragen. Passend zu obigem Beispiel muss man also

0x2a47

einfügen. Abschließend den adb-Server neu starten [2][3]:

sudo adb kill-server && sudo adb start-server 

ADB-Sperre dauerhaft deaktivieren

Es ist möglich, die ADB-Sperre, welche nach der Bildschirmsperre eintritt, zu deaktivieren. Bereits bestehende Logins in eine ADB-Shell sind von der Sperre nicht betroffen.

Achtung!

Nach dem Aufheben der Sperre ist kein Schutz der Daten bei einem Diebstahl des Geräts mehr gegeben.

Man sollte sich genau überlegen, ob das für die eigene Benutzungsweise wirklich nötig ist, da damit die Sicherheit reduziert wird. Als sichere Alternative bietet sich der Zugang über SSH an.

Der Befehl zum Aufheben der Sperre lautet:

adb shell sudo touch /userdata/.adb_onlock 

Zum Zurücksetzen muss die Datei dann wieder gelöscht werden

Falsche Terminalgröße korrigieren

Wenn das Terminal die Ausgaben nicht korrekt umbricht oder die Eingaben sich zu überschreiben scheinen, kann der Befehl

resize 

Abhilfe schaffen. Dazu wird das Paket xterm benötigt; zusammen mit den Abhängigkeiten libutempter0, libxft2 und xbitmaps werden ca. 2 MB Speicherplatz verwendet. Nach Ausführung des Befehls passt sich die Shell wieder an die Größe des Terminalfensters an.

SSH

Mittels SSH kann man über das Netzwerk (z.B. WLAN) Terminal-Zugang zum Ubuntu-Touch-Gerät bekommen. Hierzu muss man ggf. zunächst den SSH-Server mit folgendem Befehl am Rechner starten:

sudo service ssh start 

Jetzt muss der Public Key (öffentliche Schlüssel) ggf. erst am PC erzeugt und anschließend zum Ubuntu-Touch-Gerät übertragen werden. Mittels adb erreicht man die Übertragung, indem man folgenden Befehl vom PC aus ausführt:

adb push ~/.ssh/id_rsa.pub /home/phablet/user.pub 

Schließlich muss der Key noch an die Datei ~/.ssh/authorized_keys angehängt werden, um das Einloggen über Authentifizierung mit Public Keys zu ermöglichen. Hierzu führt man diese Befehle in Ubuntu Touch aus:

mkdir ~/.ssh
mv ~/user.pub ~/.ssh
cat ~/.ssh/user.pub >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys 

Wenn man möchte, dass der Server nach jedem Neustart des Geräts automatisch gestartet wird, kann man das folgendermaßen konfigurieren:

sudo setprop persist.service.ssh true  

Alternativ kann der Zugang auch über die App UT Tweak Tool eingerichtet werden. Über das Dropdown-Menü links oben im Panel "System → SSH Einstellungen " auswählen, und dort den Zugriff aktivieren.

Nun kann man sich vom Rechner aus mittels SSH auf dem Ubuntu-Touch-Gerät einloggen, oder über sshfs Dateien übertragen. Sehr komfortabel lässt sich auch über Dateimanager wie Nautilus oder Nemo auf dem Host-Rechner mit Dateien arbeiten, da sie SSH-Adressen verwenden können. Sollte die SSH-Verbindung nicht zustande kommen oder nach dem Verbindungsaufbau stocken, hilft es meist, den Bildschirm des Ubuntu-Touch-Gerätes kurz zu aktivieren, damit SSH aus der Bereitschaft aufwacht. Ein Entsperren des Bildschirmes ist dafür in der Regel nicht nötig.

Editor

Um im Terminal Dateien zu bearbeiten, steht der vorinstallierte Editor Nano zur Verfügung.

Hinweis:

Wenn die Taste (Enter) im Editor Nano in Verbindung mit der Benutzung einer ADB-Shell nicht richtig funktioniert, dann kann man auf einen anderen Editor wie den ebenfalls vorinstallierten vi ausweichen oder die Verbindung über SSH aufbauen.

Systempartition beschreibbar machen

Standardmäßig ist die Systempartition so im System eingebunden, dass sie nur gelesen, aber nicht beschrieben werden kann. Für einige erweiterte Konfigurationen wird aber eine beschreibbare Systempartition benötigt. Da nur eine Systempartition existiert, kann ggf. nach dem Eingriff des Beschreibbarmachens das System nicht auf den Werkszustand zurückgesetzt werden, ohne ein System neu aufzuspielen. Dazu kann man mit fastboot eine heruntergeladene Systemsicherung zurückspielen. Falls das System noch startfähig ist, kann stattdessen auch per UBports Installer an einem PC ein aktuelles Werkssystem aus dem Internet eingespielt werden.

Achtung!

Dies wurde offiziell nicht von Canonical unterstützt, wird von den jetzigen Maintainern bei UBports jedoch bereitwillig genutzt (siehe z.B. Ubuntu Touch/Anbox. Vorgenommene Änderungen können durch das Installieren von Aktualisierungen wieder verlorengehen. Unsachgemäße Systemveränderungen nach dem Beschreibbarmachen können Auswirkungen auf die Stabilität des Systems haben.

Sollten gravierende Probleme auftreten, kann es nötig werden, eigens angelegte Systemsicherungen zurückzuspielen oder das System neu zu installieren (siehe auch Ubuntu Touch/Sicherung und Wiederherstellung).

Man kann die Systempartition beschreibbar machen, indem man folgenden Befehl ausführt:

sudo mount -o remount,rw / 

Die Partition ist dann bis zum nächsten Neustart des Geräts beschreibbar. Wenn man ohne Neustart zum schreibgeschützten Zustand zurückkehren möchte, kann man das mit diesem Befehl erreichen:

sudo mount -o remount,ro / 

Um die Systempartition auch nach späteren Neustarts immer im Schreibmodus zu haben, muss mit folgendem Befehl eine Datei im System angelegt werden:

touch /userdata/.writable_image 

Sollte man später aus diesem dauerhaften Schreibmodus wieder zum schreibgeschützten Modus zurückkehren wollen, entfernt man die Datei wieder:

rm /userdata/.writable_image 

Hierfür kann alternativ auch die App UT Tweak Tool verwendet werden; über das Dropdown-Menü links oben im Panel "System → Schreibzugriff einrichten" auswählen, dort kann der Lese-Schreib-Zugriff temporär oder permanent aktiviert und wieder entfernt werden.

Systempflege in beschreibbarer Systempartition

Der freie Platz der beschreibbaren Systempartition ist extrem gering, da er nicht für systembeschreibende Eingriffe konzeptioniert und dimensioniert ist. Insbesondere vor der Installation von Programmen über apt-get sind daher Maßnahmen zu treffen, um mehr freien Platz zu schaffen. Dazu bietet sich neben der Auslagerung des Caches von apt vor allem an:

  • Reservierte Blöcke überprüfen und ggf. auf 0.1% reduzieren.

  • weitere Hinweise 🇬🇧 zum Vorgehen

  • ggf. nicht benötigte Pakete entfernen; speziell nicht benötigte Hunspell/Myspell-Wörterbücher, ubuntu-keyboard-* und language-pack-touch-*-Pakete und dazugehörige Abhängigkeiten mit

    sudo apt-get purge PAKETNAME 

    entfernen (ggf. auch mit Platzhalter *, dann aber genau kontrollieren, was deinstalliert werden soll!).

Programme installieren

Die Nutzung von offiziellen Ubuntu-Touch-Apps wird im Artikel Ubuntu Touch/Einrichtung (Abschnitt „Programme“) beschrieben. Dieser Abschnitt bezieht sich auf das "inoffizielle" Installieren von herkömmlichen Linux-Programmen. Hierzu wird die in Ubuntu übliche Paketverwaltung apt-get und die Internetverbindung des Mobilgerätes verwendet.

Achtung!

Diese Art, Programme zu installieren, ist offiziell nicht vorgesehen. Zudem kann dabei das System Schaden nehmen. Die von den Entwicklern empfohlene Methode, um alternativ zu apt-get in einem chroot Programme zu installieren, wird unter Recommended way to install regular(cli) .deb packages on Ubuntu Phone? 🇬🇧 in den Antworten beschrieben. Damit steht zwar mehr Platz und Stabilität zur Verfügung, jedoch möglicherweise nicht alle Funktionen und die Integration ins laufende System ist stark eingeschränkt.

Für Programminstallationen wird eine beschreibbare Systempartition benötigt. Die eigentliche Paketverwaltung erfolgt, wie auch auf anderen Ubuntu-Systemen üblich, mit apt-get update und apt-get install PAKETNAME etc. Details zur Verwendung befinden sich im Artikel APT. Einige Ubuntu-Touch-spezifische Aspekte bei der Benutzung von apt-get sind im weiteren Artikelverlauf aufgelistet.

Grafische Programme

Grafische Programme erfordern wesentlich mehr mehr Aufwand.

Hinweis:

Empfohlen wird, dafür das Projekt Libertine zu verwenden.

Eine Ausführliche Anleitung findet sich im Artikel Libertine. Aktuelle Hinweise finden sich im Artikel Libertine 🇬🇧. Das Libertine Tweak Tool ist eine App für weitere Libertine-Einstellungen. Zu beachten ist, dass sich längst nicht alle Programme in Libertine verwenden lassen!

Freien Speicher beobachten

Da der Speicherplatz auf mobilen Geräten sehr beschränkt ist, empfiehlt es sich dringend, bei der Nutzung von apt-get stets den freien Speicher mit

df -h / 

zu kontrollieren. Gegebenenfalls bietet es sich an, die herunterzuladenden Pakete auf eine andere Partition auslagern, zum Beispiel so:

mkdir ~/apt-cache
sudo mount --bind ~/apt-cache /var/cache/apt/archives 

Dieser Befehl ist nur einmalig wirksam. Dauerhaft ist dies folgendermaßen umzusetzen, etwa am Beispiel einer optionalen Speicherkarte:

sudo rm -rf /var/cache/apt
mkdir /media/phablet/UUID/apt-cache
sudo ln -s  /media/phablet/UUID/apt-cache /var/cache/apt 

Dabei muss man die UUID der Speicherkarte einsetzen, in der App "Dateiverwaltung" von Ubuntu Touch wird die Nummer unter "Orte" (oder "Places", Dropdown-Menü links oben) direkt angezeigt.

Softwareaktualisierungen

Wenn man apt-get nutzt, sollte man Aktualisierungen folgendermaßen installieren:

  • Normale Apps und die System-App "Ubuntu touch" über die grafische Aktualisierungsverwaltung in den "Systemeinstellungen → Aktualisierungen",

  • Das System mit apt-get:

    sudo apt-get update && sudo apt-get dist-upgrade 

    Hinweis:

    Bei den Geräten von BQ muss dabei die ganze Zeit der Bildschirm aktiv bleiben, damit die Internetverbindung oder gar Installation nicht temporär einfriert.

Achtung!

"Offiziell" wird nur das Updaten des Systems aus den Systemeinstellungen heraus unterstützt. Bei der Benutzung von apt-get update kann es vorkommen, dass das System nicht korrekt funktioniert. Der Benutzer sollte darauf vorbereitet sein, gegebenenfalls Reparaturen oder eine Neuinstallation durchzuführen (siehe auch diesen Thread im Forum).

Insbesondere bei der Nutzung von Versionen aus dem stable-Kanal sollt man unbedingt darauf verzichten!

Sollte man doch das Update für die System-App "Ubuntu touch" einspielen, hat das folgende Auswirkungen auf bereits mit apt-get installierte Programme:

  • Die Programme könnten in der Paketverwaltung als nicht installiert vermerkt sein.

  • Die Programme funktionieren trotzdem noch, wobei Fehler in Ausnahmefällen nicht ausgeschlossen sind, wie etwa angeforderte Pakete, welche mit dem betroffenen Paket in Konflikt stehen.

  • Man bekommt für diese Programme keine Aktualisierungen mehr.

  • Eine Deinstallation ist nur noch über eine (Re-)Installation möglich:

    sudo apt-get install PAKETNAME && sudo apt-get remove PAKETNAME 
  • Von dieser Software abhängige Programme laden die Software erneut herunter und installieren sie nochmal.

Manpages installieren

Standardmäßig ist keine Unterstützung für Manpages installiert. Dies kann aber durch

  • man-db

  • manpages-de

Paketliste zum Kopieren:

sudo apt-get install man-db manpages-de 

Oder mit apturl installieren, Link: apt://man-db,manpages-de

nachgeholt werden, wobei manpages-de optional für die deutschen Übersetzungen ist. Zu beachten ist aber, dass dadurch nicht direkt die Manpages zu bereits installierten Anwendungen verfügbar werden. Durch Reinstallieren des gewünschten Paketes kann man dies aber für bestimmte Anwendungen nachholen.

Beispiele

Soundrecorder

Das Mikrophon kann mit

arecord test.wav 

eine Datei aufnehmen, welche zum Beispiel per

aplay test.wav 

wiedergeben werden kann. Beide Programme sind vorinstalliert.

Diese Revision wurde am 27. März 2020 07:18 von whazzup erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Ubuntu, Ubuntu Phone, Ubuntu Touch