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):
Ubuntu Touch, Basis 16.04 Xenial Xerus
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.
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
Befehl zum Installieren der Pakete:
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.
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
Befehl zum Installieren der Pakete:
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.
Links¶
Ubuntu Touch Übersichtsartikel
Datensicherung - Sichern mit dem Terminal
SUT Tweak Tool - umfangreiche Möglichkeiten zum Systemeingriff
SSH-Anleitung 🇬🇧 auf UBports.com
UBports-Blog 🇬🇧 zur Terminal-Nutzung
SSH and Ubuntu Touch 🇬🇧 - ausführliche Beschreibung auf kriscode.blogspot.com
Recommended way to install regular(cli) .deb packages on Ubuntu Phone? 🇬🇧 - von den Entwicklern empfohlener Weg, um alternativ zu
apt-get
in einem chroot Programme zu installierenUbuntu Community Q&A 10.Nov 2015 🇬🇧 - Alan Pope zu Risiken bei der Benutzung von
apt-get
Consequences of using apt-get in Ubuntu Touch - Erklärung der Probleme im Zusammenspiel zwischen apt-get und OTAs