Ubuntu ist die auf Desktop-PCs am häufigsten verwendete Linux-Variante. Sie basiert auf Debian. Die Version 16.04 heißt so, weil sie von April 2016 ist. Außerdem ist dies eine LTS-Version ("Long Term Support"), die für einen besonders langen Zeitraum, nämlich fünf Jahre, mit Updates und Sicherheitskorrekturen unterstützt wird.
Der folgende Text beschreibt erste Schritte im Umgang mit Ubuntu und richtet sich überwiegend an "Linux-Einsteiger".
Es gibt diverse verschiedene Varianten zur Installation von Ubuntu. Für alle im Folgenden genannten Varianten müssen Sie zuerst die Ubuntu-16.04-ISO-Image-Datei "ubuntu-16.04-desktop-amd64.iso" von Ubuntu Desktop Download downloaden.
Einige der diversen verschiedenen Varianten zur Installation von Ubuntu sind (statt DVD kann meistens auch ein USB-Stick verwendet werden, siehe Universal USB Installer):
Falls Sie Windows verwenden, und falls Sie kein Dual-Boot einrichten wollen, können Sie Ubuntu in einer "virtuellen Maschine" (= VM) installieren und betreiben. Es gibt verschiedene Arten von VMs. Für eine Linux-VM unter Windows werden meistens Hypervisor-basierende Virtualisierungen verwendet, wie beispielsweise VirtualBox und VMware Workstation 12 Player.
Zur Installation von VirtualBox downloaden Sie
VirtualBox 5.0.16 for Windows hosts (x86/amd64)
und führen VirtualBox-5.0.16-105871-Win.exe aus.
Sehen Sie sich das VirtualBox User Manual an.
Überprüfen Sie:
"C:\Program Files\Oracle\VirtualBox\VBoxManage" -v
"C:\Program Files\Oracle\VirtualBox\VirtualBox"
Downloaden Sie die Ubuntu-16.04-ISO-Image-Datei "ubuntu-16.04-desktop-amd64.iso" von Ubuntu Desktop Download.
Starten Sie den "Oracle VM VirtualBox Manager".
Klicken Sie in der oberen Icon-Leiste auf das Icon für "Neu", vergeben Sie einen Namen für die neue VM,
wählen Sie bei Typ "Linux" und bei Version "Ubuntu (64-bit)".
Konfigurieren Sie in den folgenden Dialogen genügend viel RAM (mindestens 2 GByte) und genügend viel Festplattenplatz (mindestens 30 GByte).
Speichern Sie und klicken Sie in der oberen Icon-Leiste auf das Icon für "Starten".
Geben Sie das Verzeichnis der downgeloadeten Ubuntu-16.04-ISO-Image-Datei "ubuntu-16.04-desktop-amd64.iso" an.
Installieren Sie die "VirtualBox Gasterweiterungen", beispielsweise damit Sie die Fenstergröße und Bildschirmauflösung wählen können, und damit Sie Daten und Texte zwischen dem Windows-Host und dem Linux-Gast austauschen können, per Zwischenablage und Austauschverzeichnis. Wählen Sie bei laufender Ubuntu-VM in der oberen Menüleiste vom VirtualBox-Fenster "Geräte | Gasterweiterungen einlegen..." und installieren Sie die Gasterweiterungen.
Falls Sie dabei eine Fehlermeldung erhalten ähnlich zu:
Das virtuelle optische Medium C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso konnte nicht in das Laufwerk der Maschine Ubuntu 16.04 eingelegt werden.
Could not mount the media/drive 'C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso' (VERR_PDM_MEDIA_LOCKED).
Dann starten Sie den Dateimanager Nautilus und klicken in der linken Spalte auf das Auswurf-Icon rechts neben VBOXADDITIONS_...
Aktivieren Sie in der oberen Menüleiste vom VirtualBox-Fenster unter "Geräte | Gemeinsame Zwischenablage" die gewünschte Option, z.B. "bidirektional".
Die Dual-Boot-Installation ist auf einigen PCs sehr einfach, aber auf anderen PCs kann sie sehr schwierig sein. Im Folgenden wird nur der einfache unproblematische Weg beschrieben. Falls es Komplikationen gibt, sehen Sie sich an: UbuntuUsers-Wiki: Dualboot, Ubuntu-Forum-Wiki: Dualboot Windows - Ubuntu, Ubuntu 16.04 (Helmut Hinterthür), Dualboot von Windows und Ubuntu (Thorsten Eggeling), c't-Artikel: Ubuntu ausprobieren – ohne Gefahr für das eigene Windows (Axel Vahldiek).
Falls Sie noch kein Betriebssystem installiert haben: Zuerst muss Windows installiert werden, und erst danach Ubuntu.
Falls Sie wichtige Daten auf dem PC haben: Machen Sie unbedingt zuerst ein zuverlässiges Backup, z.B. mit Drive Snapshot!
Ermitteln Sie Ihre Windows-Version: "Win+R (Windows-Taste und gleichzeitig R) | winver eingeben"
Falls Sie Windows 8.1 oder Windows 10 verwenden, ermitteln Sie so den "BIOS-Modus": "Win+R (Windows-Taste und gleichzeitig R) | msinfo32 eingeben | Systemübersicht | den Eintrag zu 'BIOS-Modus' suchen": "Vorgängerversion" bedeutet "BIOS/MBR", "UEFI" bedeutet "UEFI/GPT".
Bevor Sie mit der Ubuntu-Installation beginnen, sollten Sie eine wichtige Voraussetzung überprüfen. Betätigen Sie Win+X (Windows-Taste und gleichzeitig X) und starten Sie die Datenträgerverwaltung. Falls Ihr PC nicht im UEFI-Modus, sondern im BIOS-Modus startet, und nicht GPT sondern eine BIOS-MBR-Partitionstabelle verwendet, können Sie nicht mehr als vier "primäre Partitionen" einrichten. Falls Sie bereits vier primäre Partitionen verwenden, können Sie Dual-Boot nicht installieren. In manchen Fällen kann es möglich sein, eine der Partitionen (eventuell eine Recovery-Partition) zu löschen. Falls sie sich unter Windows nicht löschen lässt, können Sie "gparted" unter Linux versuchen.
Die zweite Voraussetzung ist genügend freier Speicherplatz auf der Festplatte, mindestens 30 GByte, möglichst als "nicht partitionierter Bereich", der als "nicht zugeordnet" markiert ist. Falls ein solcher Bereich noch nicht existiert: Klicken Sie in der Datenträgerverwaltung mit der rechten Maustaste auf das zu verkleinernde Volume und wählen Sie: Volume verkleinern | Zu verkleinernder Speicherplatz in MB: z.B. 30000 | Verkleinern. Es entsteht ein neuer Bereich: "Nicht zugeordnet".
Downloaden Sie die Ubuntu-16.04-ISO-Image-Datei "ubuntu-16.04-desktop-amd64.iso" von Ubuntu Desktop Download.
Sie können Ubuntu entweder vom USB-Stick oder von einer DVD installieren.
Zur Installation per USB-Stick können Sie beispielsweise den
Universal USB Installer verwenden.
Zur Installation per DVD brennen Sie das ISO-Image auf DVD.
Unter Windows klicken Sie hierfür im Windows-Explorer mit der rechte Maustaste auf den Dateinamen und wählen "Datenträgerabbild brennen".
Stellen Sie im BIOS-Setup ein, dass von der DVD (bzw. vom USB-Stick) gebootet wird. Beim PC-Neustart erscheint kurz ein Text ähnlich zu: "Press ... to run Setup". Betätigen Sie die dort genannte Taste, und verschieben Sie beispielsweise unter "Boot Device Priority" das gewünschte Medium nach oben. Speichern Sie und starten Sie neu.
Booten Sie von der DVD (bzw. vom USB-Stick). Wählen Sie:
Deutsch | Ubuntu installieren | Herunterladen der Aktualisierungen und Installation von Drittanbieter-Software aktivieren | Weiter |
"Ubuntu neben Windows installieren: Dokumente, Musik und andere persönliche Daten bleiben bestehen. Sie können bei jedem Start des Rechners auswählen, welches Betriebssystem Sie benutzen möchten."
Falls Sie die zuletzt genannte Option nicht angeboten bekommen, brechen Sie ab und suchen sie nach dem Grund.
Vergessen Sie nicht, im BIOS-Setup die Boot-Reihenfolge wieder so umzustellen, dass von Festplatte gebootet wird, damit der PC schneller startet.
Wenn Sie nicht eingreifen, startet der neue Bootloader als Default Ubuntu. Falls Sie als Default Windows wollen, stellen Sie dies folgendermaßen ein: Starten Sie unter Ubuntu per Strg+Alt+T ein Terminal. Geben Sie ein:
sudo gedit /etc/default/grub
Ändern Sie die Zeile "GRUB_DEFAULT=0" zu "GRUB_DEFAULT=4" und speichern Sie. Führen Sie im Terminal aus:
sudo update-grub
Falls Sie verhindern wollen, dass unter Ubuntu versehentlich auf dem Windows-C:-Laufwerk geschrieben wird, können Sie es verbergen: "Super-Taste (= linke Windows-Taste) | 'Laufwerke' eintippen | Windows-C:-Partition markieren | Zahnrädchen | Einhängeoptionen bearbeiten | Optionen zum automatischen Einhängen ausschalten | Beim Start einhängen deaktivieren | In der Benutzerschnittstelle anzeigen deaktivieren".
Sehen Sie sich unter Ubuntu an, welcher Grafiktreiber installiert ist, unter:
"Systemeinstellungen | Anwendungen & Aktualisierungen | Zusätzliche Treiber".
Falls Sie eine AMD-Grafikkarte installiert haben, sollten Sie es beim Open-Source-Treiber belassen.
Falls Sie eine Nvidia-Grafikkarte installiert haben, sollten Sie einen der von Ubuntu angebotenen proprietären Nvidia-Treiber installieren,
bevorzugt einen, der "update" in der Kurzbeschreibung enthält.
Wenn Sie zwischen den beiden Dual-Boot-Betriebssystemen wechseln, kann es sein, dass in einem der beiden Betriebssysteme die Uhrzeit immer wieder um zwei Stunden falsch eingestellt wird. Um dies zu vermeiden, stellen Sie unter Windows UTC ein. Öffnen Sie den Registry-Editor über: Win+R | regedit. Öffnen Sie darin den Schlüssel "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation". Erstellen Sie darin den neuen 32bit-DWORD-Wert mit dem Namen "RealTimeIsUniversal" und dem Wert "1".
Falls Sie Ubuntu wieder entfernen wollen, müssen Sie zuerst den Windows-Bootloader reaktivieren, bevor Sie die Ubuntu-Partition löschen.
Falls Ihr PC im "BIOS/MBR-Modus" arbeitet, führen Sie ab Windows 8 das folgende Kommando mit Admin-Rechten aus: "bootsect /nt60 SYS /mbr".
Falls Ihr PC im "UEFI/GPT-Modus" arbeitet, stellen Sie im BIOS-Setup die Bootreihenfolge auf den Windows-Bootloader um.
Unity:
So heißt die Standard-Benutzeroberfläche von Ubuntu.
Es gibt viele alternative GUIs, beispielsweise
KDE,
Xfce,
LXDE.
Menüleiste / Panel:
Dies ist die sich am oberen Rand befindende waagerechte Leiste.
Rechts werden Infos angezeigt, z.B. die Uhrzeit. Ganz rechts befindet sich das Zahnradsymbol, worüber Sie sich abmelden können.
Links wird, wenn man den Mauszeiger dorthin bewegt, das zum gerade aktiven Programmfenster gehörende Menü angezeigt
(wenn Sie das nicht mögen, können Sie dies umkonfigurieren, siehe
unten).
Starter-Leiste / Startmenü / Launcher:
Dies ist die sich am linken Rand befindende senkrechte Leiste mit Icons, über die gängige Programme gestartet werden können,
und wo aktive Programme angezeigt werden.
(Falls Sie die Starter-Leiste statt links lieber unten haben wollen: siehe
unten.)
Natürlich können Sie der Starter-Leiste auch selbst weitere
Starter hinzufügen.
Am einfachsten geht dies, wenn Sie das gewünschte Programm starten, in der Starter-Leiste auf das Icon des Programms mit der rechten Maustaste klicken
und wählen: "Im Starter behalten".
Eine besondere Rolle spielt das oberste Icon "Rechner durchsuchen", weil es das Dashboard öffnet.
Dash / Dashboard / Schnellstart:
Das Dash wird entweder über die "Super-Taste" (= linke Windows-Taste) oder über das oberste Icon in der linken Starter-Leiste geöffnet.
Über das Dashboard können besonders einfach beliebige Programme gesucht und gestartet werden.
Wenn Sie beispielsweise die ersten Buchstaben von "Terminal" eintippen, wird angeboten, ein
Terminal-Fenster zu starten.
Dateien / Dateimanager Nautilus:
In der linken Starter-Leiste ist meistens das zweite Icon von oben für den Start des Dateimanagers Nautilus.
Alternativ kann er über Strg+N gestartet werden.
Falls Sie einen Dateimanager mit mehr Features wünschen, sollten Sie
Nemo
versuchen. Siehe auch:
Vergleich.
Systemeinstellungen:
In der linken Starter-Leiste ist ein weiter unten angeordnetes Icon für das Öffnen der Systemeinstellungen.
Alternativ können Sie die Systemeinstellungen auch über das Zahnradsymbol oben rechts in der Menüleiste öffnen.
Sehen Sie sich die vielfältigen Einstellmöglichkeiten an.
Tastaturkürzel:
Sehen Sie sich die in Ihrem System konfigurierten Tastaturkürzel an unter:
"Systemeinstellungen | Tastatur | Tastaturkürzel".
Siehe auch: KeyboardShortcuts.
Terminal:
Ein Terminal
(Bash-Terminal /
Shell-Fenster /
Kommandozeilenfenster)
kann wie oben beschrieben über das Dashboard geöffnet werden.
Schneller geht es über die Tastenkombination Strg+Alt+T.
Alternativ kann im Dateimanager Nautilus nach einem Klick mit der rechten Maustaste auf einen Ordnernamen "In Terminal öffnen" gewählt werden.
Dann wird das Terminal direkt im gewünschten Ordner geöffnet.
Einige mögliche im Terminal ausführbare Kommandos werden weiter unten genannt.
Ubuntu bringt bereits einige Anwendungen mit, beispielsweise:
Weitere bekannte und teilweise per "apt-get install" nachinstallierbare Programme sind beispielsweise:
Weitere installierbare Software finden Sie beispielsweise bei UbuntuUsers: Software.
Erforschen Sie die Ubuntu-Linux-Installation.
Klicken Sie oben links auf das Icon für "Rechner durchsuchen".
Tippen Sie die ersten Buchstaben von
"Terminal" ein, um ein
Bash-Terminal
(Shell-Fenster / Kommandozeilenfenster)
zu öffnen und beginnen Sie beispielsweise mit den im Folgenden gezeigten Kommandos.
Beachten Sie, dass im Terminal-Fenster Copy&Paste nicht per Strg+C und Strg+V, sondern stattdessen mit Strg+Shift+C und Strg+Shift+V funktioniert.
Kopieren Sie die Kommandos auf der Webseite mit Strg+C und fügen Sie sie im Terminal-Fenster mit Strg+Shift+V ein:
Falls es Probleme beim Booten der grafischen Oberfläche gibt:
Mit Alt-F2 per Terminal anmelden.
Kopieren und Einfügen im Terminal:
Statt Strg+C und Strg+V: Mit Strg+Shift+C und Strg+Shift+V.
Benutzer wechseln:
su andererBenutzer
Root-Rechte für einen einzigen Kommandozeilenbefehl mit sudo:
sudo meinKommandozeilenbefehl...
Root-Rechte für mehrere Befehle (und wieder zurück schalten):
sudo su
...
exit
Das Kommandozeilenfenster neu starten mit Root-Rechten (und wieder zurück schalten):
sudo bash
...
exit
Root-Rechte für grafisches Programm (siehe sudo und Editor):
Einmalige Installation:
sudo apt-get install gksu
Ausführung:
gksudo mein_Programm_mit_GUI...
Konkretes Beispiel:
gksudo gedit /etc/environment
Updaten Sie Ihre Software-Versionslisten und upgraden Sie Ihre Software:
sudo apt-get update
sudo apt-get upgrade
Falls es dabei zu Problemen kommt, siehe: Software-Aktualisierungs- und apt-get-upgrade-Probleme.
Tastatur-NumLock:
Zuerst Tastatur-NumLock im BIOS-Setup aktivieren. Falls nach anschließendem PC-Neustart NumLock nicht eingeschaltet bleibt: numlockx installieren:
sudo apt-get update
sudo apt-get install numlockx
Konfigurationsdatei öffnen:
sudo gedit /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
Zusätzliche Zeile hinzufügen:
greeter-setup-script=/usr/bin/numlockx on
PC neu starten.
Weitere Infos siehe: https://help.ubuntu.com/community/NumLock
Environment und Startskripte:
cat /etc/environment
cat /etc/rc.local
Programmsuche:
whereis MeinGesuchtesProgramm
which MeinGesuchtesProgramm
Ordner- und Dateisuche:
sudo find / -name 'MeinGesuchterName'
In Nautilus: Strg+F
In Nautilus geheime mit Punkt (.) beginnende Dateien und Ordner anzeigen: Strg+H
Nach Inhalten suchen, inklusive rekursiver Suche in Unterverzeichnissen:
grep -ir <option> <MeinRegEx> <MeinPfad>
grep -ir --include=*.java System.out.print ~/MeinWorkspace/
sudo grep -ir PATH /etc
sudo find /etc -type f -print0 | xargs --null grep PATH
Falls Sie die Starter-Leiste nicht links haben wollen, sondern stattdessen unten:
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
So kann dies wieder rückgängig gemacht werden:
gsettings set com.canonical.Unity.Launcher launcher-position Left
Falls Sie wollen, dass die obere Menüleiste von Programmen im eigenen Programmfenster und nicht am oberen Bildschirmrand erscheint:
"Systemeinstellungen | Darstellung | Reiter Verhalten | Zeige die Menüs für ein Fenster | In der Titelleiste des Fensters | Immer anzeigen".
Falls Sie in der oberen Menüleiste rechts zusätzlich zur Uhrzeit auch das Datum sehen wollen:
"Systemeinstellungen | Zeit & Datum | Reiter Uhr | In der Uhr anzeigen: Datum und Monat".
Falls Sie nicht nur eine, sondern vier "Arbeitsflächen" wollen, zwischen denen Sie entweder per Mausklick auf das Arbeitsflächen-Starter-Icon
oder per Tastatur mit Strg+Alt+Pfeiltaste schnell wechseln können:
"Systemeinstellungen | Darstellung | Reiter Verhalten | Arbeitsflächen aktivieren".
Falls Sie nicht wollen, dass beim Suchen in der Dash automatisch Suchanfragen an Online-Suchmaschinen weitergereicht werden:
"Systemeinstellungen | Sicherheit & Datenschutz | Reiter Suche | Bei der Suche im Dash: Auch Online-Suchergebnisse verarbeiten | Aus".
Falls Sie einen Postscript-Drucker einrichten wollen, Ihr Modell aber unter "Systemeinstellungen | Drucker | Hinzufügen" nicht finden,
probieren Sie die "Geräteadresse: lpd://<drucker_ip_adresse>/ps".
Falls Sie ein HP-Officejet-Gerät einrichten wollen und Ihr Modell nicht finden, probieren Sie: "hp:/net/Officejet_<officejet_nummer>?ip=<drucker_ip_adresse>".
Falls Ihnen weder Nautilus noch Nemo als Dateimanager zusagt, können Sie Dolphin testen (siehe auch Vergleich):
sudo apt-get install dolphin kde-service-menu-fuseiso
Doppelklick aktivieren: "Settings | Configure Dolphin... | Navigation | Mouse | Double-click to open files and folders".
Um zu verhindern, dass, wenn man mit dem Mauszeiger über einen markierten Eintrag schwebt, dieser unsichtbar wird:
sudo gedit /usr/share/themes/Ambiance/gtk-2.0/gtkrc ;
selected_fg_color:#ffffff --> selected_fg_color:#000000
Tree zur Anzeige einer Verzeichnishierarchie rekursiv als Baumstruktur installieren:
sudo apt-get install tree
Meld als Vergleichstool installieren:
sudo apt-get install meld
Falls Ihnen gedit nicht genügt: Installieren Sie einen Texteditor mit mehr Features. Sehen Sie sich die diversen Vergleiche zu Linux-Texteditoren im Internet an. Für UltraEdit-Benutzer könnte dieser Vergleich hilfreich sein.
Beispielsweise Geany bietet viele Features, ist gut bedienbar und leicht installierbar.
Falls Sie SciTE verwenden wollen, und Ihnen die Standard-Konfiguration nicht gefällt, testen Sie: SciTEGlobal.properties.
Falls Sie Windows-Schriftarten benötigen:
sudo apt-get install ttf-mscorefonts-installer
Weitere Software:
finden Sie beispielsweise unter: UbuntuUsers: Software.
Amazon-Button entfernen:
Klicken Sie mit der echten Maustaste auf den Amazon-Button und wählen Sie "Aus Starter entfernen".
Erforschen Sie weitere im Terminal-Fenster ausführbare Linux-Kommandos:
whoami
meinname
groups
meinname adm cdrom sudo dip plugdev lpadmin sambashare
id
uid=1000(meinname) gid=1000(meinname) Gruppen=1000(meinname),...
uname -a
Linux MeinMachineName 4.4.0-21-generic #37-Ubuntu SMP ... 2016 x86_64 GNU/Linux
ls /proc
cat /proc/version
Linux version 4.4.0-21-generic (buildd@lgw01-21) (gcc version 5.3.1 20160413 (Ubuntu 5.3.1-14ubuntu2) ) ...
sudo cat /etc/shadow (Anzeige aller registrierten Benutzer)
root:!:17688:0:99999:7::: daemon:*:17590:0:99999:7::: bin:*:17590:0:99999:7::: ...
cat /etc/group (Anzeige aller registrierten Gruppen)
root:x:0: daemon:x:1: bin:x:2: ...
cat /etc/issue
Ubuntu 16.04 LTS \n \l
env oder printenv
HOME=/home/meinname PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin DISPLAY=:0 TERM=xterm-256color DESKTOP_SESSION=ubuntu UPSTART_JOB=unity7 XDG_CURRENT_DESKTOP=Unity ...
hostname
MeinMachineName
hostname -A
Meine langen Host-Namen (FQDN)
hostname -I
Meine.IP.Adressen
dig -x <Meine.IP.Adresse>
Mein-DNS-Name
dig +short fqdn.de (oder ip=$(curl -s https://api.ipify.org), oder https://ipinfo.io/json)
Meine.von.außen.sichtbare.IP.Adresse
ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> ... ... 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> ... ... 3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> ... ...
ip route
... 10.0.2.0/24 ... 169.254.0.0/16 ...
route (oder netstat -r)
Kernel-IP-Routentabelle Ziel Router Genmask Flags Metric Ref Use Iface default 10.0.2.2 0.0.0.0 UG 100 0 0 enp0s3 10.0.2.0 * 255.255.255.0 U 100 0 0 enp0s3 link-local * 255.255.0.0 U 1000 0 0 enp0s3
cat /etc/resolv.conf
... nameserver 127.0.1.1 ...
cat /etc/hosts
127.0.0.1 localhost 127.0.1.1 MeinMachineName ...
netstat (oder netstat -ant oder sudo netstat -anpt)
Aktive Internetverbindungen (ohne Server) Aktive Sockets in der UNIX-Domäne (ohne Server) ...
cat /etc/services | grep tcp
... ftp 21/tcp ssh 22/tcp # SSH Remote Login Protocol telnet 23/tcp smtp 25/tcp mail ... http 80/tcp www # WorldWideWeb HTTP ...
cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999
nc -w 2 -z {HOST} {PORT}
Z.B. Test, ob bestimmter Port auf einem Server horcht ({HOST} und {PORT} ersetzen): if ! nc -w 2 -z {HOST} {PORT} ; then echo -e "\nFehler: {HOST}:{PORT} nicht erreichbar.\n" ; exit 1 ; fi (Unter Ubuntu ist nc (= NetCat) vorhanden, unter Red Hat installieren per: "yum install nc.x86_64")
sudo fdisk -l
... Medium /dev/sda: 50 GiB, 53706883072 Bytes, 104896256 Sektoren ... Gerät Boot Start Ende Sektoren Größe Id Typ /dev/sda1 * 2048 96507903 96505856 46G 83 Linux /dev/sda2 96509950 104894463 8384514 4G 5 Erweiterte /dev/sda5 96509952 104894463 8384512 4G 82 Linux Swap / Solaris
df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf udev 2,0G 0 2,0G 0% /dev tmpfs 396M 6,1M 390M 2% /run /dev/sda1 46G 4,0G 39G 10% / tmpfs 2,0G 216K 2,0G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock tmpfs 2,0G 0 2,0G 0% /sys/fs/cgroup tmpfs 396M 56K 396M 1% /run/user/1000 /dev/sr0 58M 58M 0 100% /media/meinname/VBOXADDITIONS_5.0.16_105871
du -hc --max-depth=1 . | sort -h (oder du -hs * | sort -h oder sudo du -sch .[!.]* * | sort -h) (alternativ: ncdu)
... 4,0K Bilder 5,6M Dokumente 7,8K Downloads 15M .mozilla 38M .cache ... 155M insgesamt
ps -auxww
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 758 0.0 0.0 255340 2416 ? Sl 12:41 0:01 /usr/sbin/VBoxService --pidfile /var/run/vboxadd-service.pid meinname 1715 0.0 1.3 807440 54120 ? Sl 12:42 0:03 nautilus -n meinname 2849 0.0 0.3 564212 14112 ? Sl 15:00 0:00 /usr/lib/x86_64-linux-gnu/unity-lens-files/unity-files-daemon meinname 2909 0.0 0.9 664680 40056 ? Sl 15:01 0:03 /usr/lib/gnome-terminal/gnome-terminal-server meinname 2984 0.0 0.1 29576 5060 pts/17 Ss 15:14 0:00 bash meinname 3358 0.0 0.0 44508 3456 pts/17 R+ 16:21 0:00 ps -auxww ...
ps -efH
UID PID PPID C STIME TTY TIME CMD meinname 2836 1278 0 15:00 ? 00:00:00 /usr/lib/x86_64-linux-gnu/unity-scope-home/unity-scope-home meinname 2848 1278 0 15:00 ? 00:00:00 /usr/bin/unity-scope-loader applications/applications.scope app meinname 2849 1278 0 15:00 ? 00:00:00 /usr/lib/x86_64-linux-gnu/unity-lens-files/unity-files-daemon meinname 2909 1278 0 15:01 ? 00:00:04 /usr/lib/gnome-terminal/gnome-terminal-server meinname 2984 2909 0 15:14 pts/17 00:00:00 bash meinname 3391 2984 0 16:28 pts/17 00:00:00 ps -efH root 758 1 0 12:41 ? 00:00:01 /usr/sbin/VBoxService --pidfile /var/run/vboxadd-service.pid ...
pstree
systemd-... +-docker---... +-lightdm---Xorg ¦ +-lightdm---upstart---... ¦ +-gnome-session-b---... ¦ ¦ +-nautilus---{dconf wor+ ¦ +-gnome-terminal----bash---pstree +-mysqld---27*[{mysqld}] ...
pidof <prozess>
pidof nautilus --> PID vom Nautilus-Prozess
w
16:31:46 up 3:50, 1 user, load average: 0,00, 0,04, 0,05 USER TTY VON ANMELD@ UNTÄ JCPU PCPU WAS meinname tty7 :0 12:41 3:50 m 1:59 0.12 s /sbin/upstart --user
top (oder htop, falls installiert, siehe auch htop)
top - 16:33:15 up 3:51, 1 user, load average: 0,02, 0,04, 0,05 Tasks: 180 gesamt, 1 laufend, 179 schlafend, 0 gestoppt, 0 Zombie %CPU(s): 6,4 be, 0,0 sy, 0,0 ni, 93,6 un, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st KiB Spch : 4046844 gesamt, 2687588 frei, 753412 belegt, 605844 Puff/Cache KiB Swap: 4192252 gesamt, 4192252 frei, 0 belegt. 3234952 verfü Spch PID USER PR NI VIRT RES SHR S %CPU %MEM ZEIT+ BEFEHL 1580 meinname 20 0 1287412 286772 75760 S 4,7 7,1 12:14.66 compiz 791 root 20 0 292236 79440 28020 S 1,7 2,0 2:00.21 Xorg 2909 meinname 20 0 665896 40188 28280 S 0,3 1,0 0:04.52 gnome-terminal- 3410 meinname 20 0 48984 3868 3256 R 0,3 0,1 0:00.01 top 1 root 20 0 119772 5888 4000 S 0,0 0,1 0:01.07 systemd ...
free
gesamt benutzt frei gemns. Puffer/Cache verfügbar Speicher: 4046844 753184 2687816 7852 605844 3235212 Auslagerungsspeicher: 4192252 0 4192252
sysctl fs.file-nr (oder: cat /proc/sys/fs/file-nr) (total allocated file handles / currently unused file handles / maximum file handles)
fs.file-nr = 7904 0 1000000
ulimit -a (oder ulimit -n)
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 47873 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 47873 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Falls beispielsweise die maximale Anzahl der File-Handles ("open files" / "nofile") zu niedrig ist, kann sie erhöht werden mit:
printf "*\t\thard\tnofile\t65536\n*\t\tsoft\tnofile\t65536\n" >> /etc/security/limits.conf
cat /etc/security/limits.conf
sysctl -p
ulimit -a
ulimit -Hn
ulimit -Sn
ulimit -n
... open files (-n) 65536 ...
lsof (list open files) (oder lsof -i) (oder Anzahl: lsof -w | wc -l) (File Locking z.B. per flock)
...
lspci
00:02.0 VGA compatible controller: ... 00:03.0 Ethernet controller: ... 00:05.0 Multimedia audio controller: ... 00:06.0 USB controller: ... 00:0d.0 SATA controller: ...
lsusb
Bus 001 Device 002: ID 80ee:0021 VirtualBox USB Tablet Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
sudo lshw
... *-cpu ... *-pci... *-display ... *-network ... *-storage ... *-disk ... *-volume:0 Beschreibung: Windows NTFS Laufwerk ... *-volume:2 ... *-logicalvolume:0 Beschreibung: Linux filesystem partition Logischer Name: /dev/sda5 ... *-logicalvolume:1 Beschreibung: Linux swap / Solaris partition Logischer Name: /dev/sda6 ...
Informieren Sie sich über
Dienste und die Init-Systeme SysVinit, Upstart und systemd.
Sehen Sie sich Ihre Startskripte an, beispielsweise:
cat /etc/profile
cat /etc/rc.local
cat ~/.bashrc
cat ~/.profile
cat /etc/environment
Falls Sie beispielsweise bei jedem PC-Start ein bestimmtes Kommando ausführen wollen, beispielsweise einen Zeitstempel schreiben, fügen Sie eine entsprechende Zeile in die /etc/rc.local ein:
date +"%Y-%m-%d %T" >> /home/<meinname>/bootzeitstempel.txt
Einige Besonderheiten der bash-Shell und in bash-Skripten (siehe auch Bash-Skripting-Guide für Anfänger und Bash Guide for Beginners):
<, >, >> | Standardeingabe aus Datei bzw. Standardausgabe in Datei umleiten. '>>' bedeutet anhängen. |
2>, >& | '2>': Standardfehlerausgabe in Extradatei. '>&': Standardfehlerausgabe in dieselbe Datei wie Standardausgabe. |
| | Standardausgabe des ersten Kommandos an Standardeingabe des zweiten Kommandos umleiten ("Pipe"). |
- | Wenn zu Kommandos als Parameter anstelle eines Dateinamens ein '-' angegeben wird, bedeutet dies Standardeingabe bzw. Standardausgabe statt Datei verwenden. |
-- | Bei Parametern zu Kommandos bedeutet '--' Ende der Optionen, anschließend folgen keine Optionen mehr (kann benötigt werden, falls Dateinamen mit '-' beginnen). |
; | Trennzeichen zwischen mehreren Kommandos in einer Zeile. |
&& | Das zweite Kommando wird nur ausgeführt, wenn das vorherige Kommando erfolgreich war (hat '0' returniert, siehe '$?'). |
|| | Das zweite Kommando wird nur ausgeführt, wenn das vorherige Kommando nicht erfolgreich war. |
. | Falls dem Skriptaufruf am Beginn der Zeile ein Punkt und ein Leerzeichen vorangestellt werden, kann das Skript Änderungen an der aktuellen Shell durchführen (z.B. Variablen setzen, Verzeichnis wechseln). Dieselbe Funktion wie der Punkt hat ein "source" am Beginn der Kommandozeile. |
./ | Falls ein Kommando aus dem aktuellen Verzeichnis gestartet werden soll, und das aktuelle Verzeichnis nicht im Such-PATH ist, muss './' vorangestellt werden. |
.datei | Dateien und Verzeichnisse, deren Name mit einem Punkt beginnt, werden normalerweise nicht angezeigt ("hidden"). Mit "ls -a" werden sie angezeigt. |
~- | Das Verzeichnis vor dem letzten Verzeichniswechsel. |
~ | Home-Verzeichnis. |
cd | Anders als unter Windows wechselt 'cd' ohne Parameter ins Home-Verzeichnis ('pwd' zeigt das aktuelle Verzeichnis an). |
*, ?, [...], [^...], [!...] |
Wildcard-Joker für Dateinamen. [...] definiert Mengen, z.B. [a-zA-Z], und '^' und '!' negieren. |
{abc,XYZ} | Kommaseparierte Ausdrücke in geschweiften Klammern bilden mehrere Argumente. Beispielsweise erhalten Sie "MeinAbcArg MeinXyzArg", wenn Sie ausführen: echo Mein{Abc,Xyz}Arg |
{} | Aktuelles Argument aus Liste. Beispiele: find . -name '*.txt' -exec echo "Hier das Kommando fuer {} ..." \; find . -name '*.log' -type f -delete find . -name 'target' -type d -exec rm -rv {} \; |
\ | Ein vorangestellter Backslash ("Escaping") verhindert die Interpretation des folgenden Zeichens. Ein Backslash am Ende einer Zeile verbindet die folgende Zeile. |
& | Ein '&' am Ende einer Kommandozeile führt das Kommando im Hintergrund aus. Mit fg können Sie es wieder in den Vordergund holen. Näheres hierzu siehe Prozesssteuerung. Wenn Sie fg in Shell-Skripten verwenden wollen, müssen Sie vorher mit set -m oder set -o monitor die Job Control enablen. Mit nohup können Sie bewirken, dass das Hintergrundprogramm auch dann noch weiterläuft, wenn Sie das Terminalfenster schließen. |
"..." | Ausdruck wird als ein einziges Argument behandelt, $-Ausdrücke (z.B. '$HOME') werden ausgewertet. |
'...' | Ausdruck wird als ein einziges Argument behandelt, $-Ausdrücke (z.B. '$HOME') werden nicht ausgewertet. |
`...` | Inhalte von "Backquotes"/"Backshifts" werden als Shell-Befehl ausgeführt ("Kommandosubstitution"). Beispiel: echo Mein Name ist `whoami` |
!*, !$, !! | '!*' und '!$' beinhalten alle bzw. den letzten Parameter des vorherigen Kommandos. '!!' enthält das letzte Kommando. |
$0, $n, $*, $# | '$0' enthält den Namen des Skripts. '$1', '$2' etc. enthalten die übergebenen Parameter. '$*' (oder '$@') enthält alle Parameter. '$#' enthält die Anzahl der Parameter. |
$?, $$ | '$?' beinhaltet den Rückgabe-Fehlerwert des letzten Kommandos, 0 bedeutet kein Fehler. '$$' enthält die aktuelle Prozess-ID. |
$... ${...} |
Ausgabe von Umgebungsvariablen, z.B. '$PATH' oder '${PATH}'. Beispiel: export MEINEVARIABLE=42 ; echo $MEINEVARIABLE |
${...:=...} | Umgebungsvariable mit Defaultwert falls nicht gesetzt. Beispiel: export VAR=${VAR:=Defaultwert} ; echo $VAR |
${.../.../...} | Ersetzung in Umgebungsvariablen. Beispiel: VAR=abc ; echo ${VAR/b/XYZ} |
${...%/*} ${...##*/} |
Pfadzerlegung. Beispiel: pfadname=/x/y/z.txt ; echo "Pfad: ${pfadname%/*}" ; echo "Dateiname: ${pfadname##*/}" |
[ ... ] | Test des Ausdrucks und Setzen von '$?'. Siehe auch: Bash Conditional Expressions, Classic Test Command. |
[ -n "$VAR" ] [ -z "$VAR" ] |
Test, ob ein Ausdruck definiert und/oder leer ist (testen Sie folgende Beispielkommandos mit nicht gesetztem VAR sowie mit verschieden gesetzten Werten für VAR,
z.B. ist es ein Unterschied, ob VAR gar nicht gesetzt wurde, oder ob "VAR=" gesetzt wurde): if [ "$VAR" ] ; then echo "VAR ist gesetzt und nicht leer"; fi if [ -n "$VAR" ] ; then echo "VAR ist gesetzt und nicht leer"; fi if [ -z "$VAR" ] ; then echo "VAR ist nicht gesetzt oder ist ein Leerstring"; fi if [ -z "${VAR+x}" ] ; then echo "VAR ist nicht gesetzt, auch nicht als Leerstring"; fi if [ -z "$VAR" ] && [ -n "${VAR+x}" ] ; then echo "VAR ist gesetzt, aber als Leerstring"; fi "$VAR" sollte in solchen Abfragen immer mit Anführungszeichen verwendet werden, damit z.B. Folgendes nicht zu Problemen führt: VAR="A = B" |
[ -f file ] | Test, ob die Datei existiert. Beispiel: [ -f meinedatei ] ; echo $? |
[ -d directory ] | Test, ob das Verzeichnis existiert. Beispiel: [ -d meinverzeichnis ] ; echo $? |
[ "$(ls -A dir)" ] | Test, ob das Verzeichnis leer ist. Beispiel: if [ "$(ls -A $_MEIN_DIR)" ] ; then echo -e "\nFehler: Das Verzeichnis $_MEIN_DIR ist nicht leer.\n" ; exit 1 ; fi |
if cmd1 then cmd2 ; fi |
Test, ob das ausgeführte Kommando Fehler meldet (also Wert größer 0 returniert). Beispiel ({HOST} und {PORT} ersetzen): if ! nc -w 2 -z {HOST} {PORT} ; then echo -e "\nFehler: {HOST}:{PORT} nicht erreichbar.\n" ; exit 1 ; fi |
if [ ... ] then ... elif [ ... ] then ... else ... fi |
Bedingte Ausführung. Beispiel: if [ $# -lt 1 ] ; then echo Parameter fuer Dateinamen fehlt elif [ ! -f $1 ] ; then echo Datei $1 fehlt else echo Datei $1 vorhanden fi |
case $var in var1) ... ;; var2) ... ;; *) ... ;; esac |
Fallunterscheidung (auch mit Strings). Beispiel: case $? in 0) echo OK ;; 1) echo Fehler 1 ... ;; *) echo Unbekannter Fehlercode $? ;; esac |
while ... until ... for ... |
Verschiedene Schleifen. Beispiele: i=1 ; while [ $i -le 5 ] ; do echo $i ; i=`expr $i + 1` ; done i=1 ; until [ $i == 5 ] ; do echo $i ; i=`expr $i + 1` ; done for x in ~/* ; do echo $x ; done |
chmod +x ... | Setzen des Ausführrechts für neu erzeugtes Skript. |
chmod -R ... ... | Rechte für Verzeichnis und alle Unterverzeichnisse setzen, z.B.: chmod -R 775 meinVerzeichnis |
chown -R ... ... | Besitzer für Verzeichnis und alle Unterverzeichnisse ändern, z.B.: chown -R Benutzer:Gruppe meinVerzeichnis |
ssh ("Secure Shell") ermöglicht über eine sichere verschlüsselte Verbindung Zugriff auf entfernte Rechner. Eine Beschreibung zu den vielen Optionen zu ssh finden Sie beispielsweise unter SSH Client (MKS). ssh kann auf verschiedene Arten verwendet werden:
ssh remoteBenutzername@remoteHost
echo xyz > /home/remoteBenutzername/xyz.txt
cat /home/remoteBenutzername/xyz.txt
exit
ssh remoteBenutzername@remoteHost echo abc > /home/remoteBenutzername/abc.txt
ssh remoteBenutzername@remoteHost "cd meinDir ; ./meinSkript.sh"
Falls Sie eine Fehlermeldung ähnlich zu folgender erhalten (im Beispiel für pidof):
bash: pidof: command not found
Falls der Grund eine fehlende Angabe im PATH ist, können Sie so den PATH erweitern:
ssh remoteBenutzername@remoteHost "export PATH=$PATH:/sbin/ ; cd meinDir ; ./meinSkript.sh"
scp ("Secure Copy") ermöglicht es, Dateien vom lokalen PC auf entfernte Rechner, oder umgekehrt, oder von einem entfernten Rechner zu einem anderen entfernten Rechner zu kopieren. Eine Beschreibung zu den vielen Optionen zu scp finden Sie beispielsweise unter SCP (MKS) und Linux scp command (Computer Hope). Beispiele:
scp x.txt remoteBenutzername@remoteHost:/home/remoteBenutzername/temp/
scp -i "$HOME/.ssh/id_rsa_speziell" x.txt remoteBenutzername@remoteHost:/home/remoteBenutzername/temp/
scp /MeinVerzeichnis/* remoteBenutzername@remoteHost:/Zielverzeichnis/
scp -r /MeinVerzeichnis remoteBenutzername@remoteHost:/Zielverzeichnis/
scp remoteBenutzername@remoteHost:/home/remoteBenutzername/temp/x.txt /MeinVerzeichnis/
scp remoteBenutzername1@remoteHost1:/home/remoteBenutzername1/dir1/MeineDatei remoteBenutzername2@remoteHost2:/home/remoteBenutzername2/dir2/
ssh-keygen (SSH Key Generator)
ermöglicht es, die ssh- und scp-Kommandos zu verwenden, ohne jedesmal ein Passwort angeben zu müssen.
Dies ist insbesondere wichtig, wenn die Kommandos in Shell-Skripen verwendet werden sollen.
Hierzu wird mit ssh-keygen ein Schlüsselpaar erzeugt (Private und Public Key).
Der Private Key verbleibt auf dem PC und der Public Key kann auf beliebig viele entfernte Rechner übertragen werden,
auf die ein passwortloser Remote-Zugriff erfolgen soll.
Eine Beschreibung zu den vielen Optionen zu ssh-keygen finden Sie beispielsweise unter
ssh-keygen (Linux Man Page) und
ssh-keygen (MKS).
Komplette Anleitungen finden Sie beispielsweise unter:
SSH login without password (Kettner),
ssh key erstellen (Wentland/Mittwald),
OpenSSH Public Key Authentifizierung unter Ubuntu (Schönberger/Krenn),
SSH ohne Passwort (Schlittermann).
Im Folgenden wird davon ausgegangen, dass der Benutzer a vom Rechner A aus mit Benutzer b auf Rechner B zugreifen will. Dabei soll ein spezieller Key "id_rsa_spezial" angelegt werden:
a@A (mit Benutzer a auf Rechner A):
cd ~/.ssh
ssh-keygen -t rsa
bei: 'file in which to save the key' z.B.: id_rsa_spezial
bei: 'Enter passphrase (empty for no passphrase)': keine 'passphrase' angeben
ls -al ~/.ssh
-->
id_rsa_spezial
id_rsa_spezial.pub
Falls auf B das Verzeichnis /home/b/.ssh noch nicht existiert:
ssh b@B mkdir -p .ssh
Public Key kopieren:
cat ~/.ssh/id_rsa_spezial.pub | ssh b@B 'cat >> .ssh/authorized_keys'
Ab jetzt darf beim Zugriff von a vom Rechner A mit dem Benutzer b auf den Rechner B nicht mehr nach dem Passwort von b gefragt werden. Test mit:
ssh -i ~/.ssh/id_rsa_spezial b@B "ls -al"
ssh -i ~/.ssh/id_rsa_spezial b@B "cat .ssh/authorized_keys"
-->
ssh-rsa ... a@A
Falls doch noch das Passwort verlangt wird, müssen wahrscheinlich auf dem B-Rechner Benutzerrechte anders gesetzt werden. Wechseln zu:
b@B (mit Benutzer b auf Rechner B):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Außerdem sollten auf dem A-Rechner die Einträge in der ~/.ssh/known_hosts überprüft werden: Es darf kein Rechner doppelt eingetragen sein. Bei der Prüfung muss beachtet werden, dass die Rechner mit unterschiedlicher Bezeichnung eingetragen sein können: mit IP-Adresse, mit Hostnamen, mit Rechnernamen oder mit Kombinationen daraus.
Zurück zum Rechner A wechseln, die known_hosts überprüfen:
a@A (mit Benutzer a auf Rechner A):
cat ~/.ssh/known_hosts
-->
B,ipadresse ssh-rsa ...
Anschließend den obigen Test erneut ausführen.
Ubuntu verwendet eine für viele Linux-Systeme ähnliche Verzeichnisstruktur. Falls Sie tree installiert haben, können Sie sich die Verzeichnisstruktur anzeigen lassen (die tatsächlichen Verzeichnisse hängen von den installierten Programmen ab):
cd /
tree -d -L 3
/ Root-Verzeichnis +-- bin Programm-Binärdateien +-- boot Zum Booten benötigte Dateien sowie der Linux-Kernel ¦ +-- grub ... +-- cdrom +-- dev ... Hardware-Gerätedateien +-- etc Konfigurationsdateien ¦ +-- docker ¦ +-- firefox ¦ +-- init ¦ +-- init.d Konfigurationsdateien zum Booten von Linux ¦ +-- libreoffice ¦ +-- lightdm ¦ +-- maven ¦ +-- mysql ¦ +-- systemd ... ¦ +-- X11 ... ¦ ... +-- home ¦ +-- meinname Anwender-Home-Verzeichnis ¦ +-- Dokumente ¦ +-- Downloads ¦ +-- MeinWorkspace ¦ ... +-- lib ... Libraries für die Programme +-- lib64 +-- lost+found Beschädigte Dateien +-- opt Verzeichnis zur Installation "fremder" Programme ¦ +-- eclipse ... ¦ +-- idea-IC ... ¦ +-- VBoxGuestAdditions ... ¦ +-- yed ... +-- proc ... Betriebssystem-/Prozesse-Parameter/-Metriken +-- root +-- run ... PID-Dateien laufender Prozesse +-- sbin Programm-Binärdateien +-- snap +-- srv +-- sys ... +-- tmp ... +-- usr Linux-Systemdateien und zusätzlich installierte Programme ¦ +-- bin ... ¦ +-- include ... ¦ +-- lib ... ¦ +-- local ... ¦ +-- locale ... ¦ +-- sbin ¦ +-- share ... ¦ +-- src ... +-- var Zur Laufzeit erzeugte veränderliche Dateien +-- backups +-- cache ... +-- crash +-- lib ... +-- local +-- log ... +-- mail +-- metrics +-- opt +-- snap +-- spool ... +-- tmp ...
Um die Default-Größe des Terminal-Fensters einzustellen, öffnen Sie ein Terminal-Fenster per Strg+Alt+T und wählen oben in der Menüzeile:
Bearbeiten | Profileinstellungen | Allgemein | Anfängliche Größe des Terminals.
Falls Ihnen der in Ubuntu enthaltene Dateimanager Nautilus nicht genügt: Testen Sie den alternativen Dateimanager Nemo. Siehe auch: Dateimanager-Vergleich.
Installieren Sie Nemo per PPA (zu PPA siehe unten), um die aktuellste Nemo-Version zu erhalten:
sudo apt-get remove nemo-data
sudo add-apt-repository ppa:webupd8team/nemo3
sudo apt-get update
sudo apt-get install nemo nemo-compare nemo-terminal nemo-gtkhash
So konfigurieren Sie Nemo als Default-Dateimanager:
xdg-mime default nemo.desktop inode/directory application/x-gnome-saved-search
xdg-mime query default inode/directory application/x-gnome-saved-search
Starten Sie beim ersten Mal Nemo vom Dash aus:
Betätigen Sie die "Super-Taste" (= linke Windows-Taste) und tippen Sie nemo, um Nemo zu starten.
Klicken Sie mit der rechten Maustaste auf das Nemo-Starter-Icon in der linken Starter-Leiste
und wählen Sie "Im Starter behalten".
Ab jetzt können Sie Nemo über dieses Starter-Icon starten.
Konfigurieren Sie Nemo unter: Bearbeiten | Einstellungen.
Beispielsweise:
Ansichten | Vorgabeansicht | Neue Ordner anzeigen mit: Listenansicht;
Verhalten | Ausführbare Textdateien | Ausführbare Textdateien anzeigen, wenn sie geöffnet werden;
Anzeigen | Datum | Format;
Anzeigen | Fenster- und Reitertitel | Den kompletten Pfad in der Titel- oder Reiterleiste anzeigen.
Weitere Hinweise siehe: Nemo (ubuntuusers) und Nemo (webupd8).
Falls Ihnen der in Ubuntu enthaltene Texteditor gedit nicht genügt: Installieren Sie einen Texteditor mit mehr Features, zum Beispiel Geany.
Geany bietet unter anderem beispielsweise:
Geany ist leicht installierbar über:
Allerdings erhalten Sie so nicht die aktuellste Version. Wenn Sie die aktuelle Version wünschen, führen Sie aus:
Installation per PPA (zu PPA siehe unten):
sudo add-apt-repository ppa:geany-dev/ppa
sudo apt-get update
apt-cache policy geany
sudo apt-get install geany geany-common libvte9
Falls Sie Tastenkürzel oder Einrückungen umkonfigurieren wollen oder benutzerdefinierte Kommandos hinzufügen wollen:
Falls Sie Geany als Default-Editor konfigurieren wollen:
Falls Sie gedit durch geany ersetzen wollen, öffnen Sie ein Terminal-Fenster per Strg+Alt+T und sehen Sie sich an, für welche MIME-Typen gedit voreingestellt ist:
cat /etc/gnome/defaults.list | grep gedit
cat /usr/share/applications/defaults.list | grep gedit
Ersetzen Sie in dieser Datei beispielsweise "text/plain=gedit.desktop" durch "text/plain=geany.desktop", und starten Sie den PC neu:
sudo gedit /usr/share/applications/defaults.list
Falls Sie Geany als Source-Editor in Firefox konfigurieren wollen:
Eine weitere gute Alternative zu dem in Ubuntu enthaltenem Texteditor gedit ist Microsoft Visual Studio Code.
VS Code bietet unter anderem beispielsweise:
Infos zu VS Code finden Sie unter: MS Visual Studio Code, Running VS Code on Linux, ubuntuusers: Visual Studio Code, Vergleich Texteditoren.
VS Code können Sie folgendermaßen installieren:
Führen Sie aus:
sudo dpkg -i code_1.24.0-1528306776_amd64.deb
sudo apt-get install -f
sudo update-alternatives --set editor /usr/bin/code
Starten Sie VS Code:
code
Um das automatische Erkennen des Character-Encodings zu konfigurieren, wählen Sie in VS Code:
Datei | Einstellungen | Einstellungen | Suchen nach "files.autoGuessEncoding",
links neben "files.autoGuessEncoding" auf das Bleistift-Icon klicken und true wählen.
Beachten Sie, dass die automatische Character-Encoding-Erkennung leider nicht immer zuverlässig funktioniert,
beispielsweise wird hin und wieder ISO-8859-7 statt ISO-8859-1 erkannt, was zu fehlerhaften deutschen Umlauten führt.
Sehen Sie sich die vielen installierbaren Plugins an, indem Sie auf das "Erweiterungen"-Icon in der linken Tool-Leiste klicken.
Beispielsweise können folgende Plugins hilfreich sein:
"Partial Diff", "Sort lines", "XML Tools".
Falls Sie VS Code als Source-Editor in Firefox konfigurieren wollen:
Einige Programme lassen sich nicht direkt per "apt-get install" aus dem Ubuntu-Software-Repository installieren. Im Folgenden wird anhand des kostenpflichtigen Texteditors UltraEdit (IDM Computer Solutions) beschrieben, wie ein solches Programm installiert werden kann, wenn es als Ubuntu-kompatibles .deb-Debian-Paket angeboten wird.
Downloaden Sie das zu installierende .deb-Debian-Paket, im Falle von UltraEdit entweder manuell über Download UltraEdit for Linux oder über:
cd ~/Downloads
wget http://www.ultraedit.com/files/uex/Ubuntu/trusty/uex_15.1.0.8_amd64.deb
Installieren Sie das .deb-Debian-Paket mit dem seit Ubuntu 16.04 zur Verfügung stehendem apt-Kommando:
sudo apt install ./uex_15.1.0.8_amd64.deb
rm ./uex_15.1.0.8_amd64.deb
Überprüfen Sie die Installation:
apt policy uex
whereis uex
which uex
Starten Sie UltraEdit vom Terminal aus (und beenden Sie es wieder):
uex
Starten Sie UltraEdit vom Dash aus:
Betätigen Sie die "Super-Taste" (= linke Windows-Taste) und tippen Sie uex.
Falls Sie das UltraEdit-Start-Icon in der linken Starter-Leiste behalten wollen:
Klicken Sie mit der rechten Maustaste bei laufendem UltraEdit auf das UltraEdit-Starter-Icon in der linken Starter-Leiste
und wählen Sie "Im Starter behalten".
Anschließend können Sie UltraEdit auch über dieses Starter-Icon starten.
Beachten Sie, dass UltraEdit für Ubuntu nicht dieselben Features und Tastaturkürzel bietet wie UltraEdit für Windows. Siehe hierzu auch: Vergleich.
Oracle Java ist eine der verbreitetsten Programmiersprachen. Das JRE (Java Runtime Environment) ist die Laufzeitumgebung. Das JDK (Java Development Kit) wird für die Entwicklung von Java-Programmen benötigt.
Es gibt zwei Implementierungen: OpenJDK ist komplett Open Source. Oracle Java ist kommerziell.
Überprüfen, ob es eine neuere Version gibt, die dann gegebenenfalls verwendet werden sollte: https://jdk.java.net/11/.
Installation:
sudo su
mkdir /opt/jdk
cd /opt/jdk
wget https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_linux-x64_bin.tar.gz
ls -l
tar -zxf openjdk-11.0.2_linux-x64_bin.tar.gz -C /opt/jdk
rm openjdk-11.0.2_linux-x64_bin.tar.gz
ls -l
exit
ls /opt/jdk/jdk-11.0.2/bin
/opt/jdk/jdk-11.0.2/bin/java -version
/opt/jdk/jdk-11.0.2/bin/javac -version
Falls diese Java-Version der Default sein soll:
sudo update-alternatives --install /usr/bin/java java /opt/jdk/jdk-11.0.2/bin/java 100
sudo update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk-11.0.2/bin/javac 100
sudo update-alternatives --display java
java -version
javac -version
Eventuell müssen die Environmentvariablen JAVA_HOME und PATH gesetzt oder angepasst werden:
echo $JAVA_HOME
echo $PATH
env | grep -i java
Die Einrichtung des PPAs ist erforderlich für Ubuntu 16.04, aber nicht für Ubuntu ab 18.x.
Installation:
sudo add-apt-repository ppa:openjdk-r/ppa \
&& sudo apt-get update -q \
&& sudo apt install -y openjdk-11-jdk
ls -al /usr/lib/jvm
ls /usr/lib/jvm/java-11-openjdk-amd64/bin
/usr/lib/jvm/java-11-openjdk-amd64/bin/java -version
/usr/lib/jvm/java-11-openjdk-amd64/bin/javac -version
Falls diese Java-Version der Default sein soll:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk-amd64/bin/java 100
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac 100
sudo update-alternatives --display java
java -version
javac -version
Eventuell müssen die Environmentvariablen JAVA_HOME und PATH gesetzt oder angepasst werden:
echo $JAVA_HOME
echo $PATH
env | grep -i java
Fragen Sie zuerst die installierbare Version ab und installieren Sie dann OpenJDK 8:
sudo apt-get update
apt-cache search openjdk-
apt-cache policy openjdk-8-jdk-headless
sudo apt-get install -y openjdk-8-jdk-headless
Überprüfen Sie die Java-Installation:
java -version
javac -version
whereis java
whereis javac
ls -al /usr/lib/jvm/java-8-openjdk-amd64/bin/java*
Um andere als Standard-Debian-Programmpakete installieren zu können, gibt es mit
"Personal Package Archive" (PPA)
ein Service-Angebot von
Launchpad.
Damit können Debian-Pakete für unterschiedliche Ubuntu-Versionen gebaut und als Paketquelle oder als Direktlink zur Verfügung gestellt werden.
Sehen Sie sich hierzu an:
UbuntuUsers-Wiki: PPA,
Install Oracle Java Via PPA Repository und
Oracle Java (JDK) Installer PPA.
Zur Installation von Oracle Java 8 führen Sie aus:
sudo -E add-apt-repository ppa:webupd8team/java
sudo apt-get update
apt-cache search oracle-j
apt search oracle-j
apt-cache policy oracle-java8-installer
apt show oracle-java8-installer
sudo apt-get install -y oracle-java8-installer
update-alternatives --display java
Überprüfen Sie die Java-Installation:
java -version
javac -version
env | grep -i JAVA_HOME
cat /etc/profile.d/jdk.sh
whereis java
whereis javac
ls -al /usr/lib/jvm/java-8-oracle/bin/java*
Falls Sie mehrere Java-Versionen im Einsatz haben, können Sie folgendermaßen die zu bevorzugende Java-Version konfigurieren:
sudo update-java-alternatives -s java-8-oracle
java -version
javac -version
Falls Sie mehrere Java-Versionen im Einsatz haben, können Sie folgendermaßen dynamisch die Umgebungsvariable JAVA_HOME setzen:
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:bin/javac::")
env | grep -i JAVA_HOME
Oder alternativ so:
export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/javac)))
env | grep -i JAVA_HOME
Falls Sie erweiterte Schlüssellängen per "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files" verwendet wollen (siehe auch: Erweiterte Schlüssellängen und JCE-Unlimited-Download):
sudo apt install oracle-java8-unlimited-jce-policy
Oracle JDK 8
kann auch aus einem tar.gz-Download installiert werden.
Dies wird beispielsweise in einigen Dockerfiles verwendet.
Alternativ zum im Folgenden verwendeten wget-Kommando könnten Sie die jdk-...-linux-x64.tar.gz-Datei natürlich auch per Webbrowser
downloaden.
sudo su
mkdir /opt/jdk
cd /opt/jdk
wget --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u92-b14/jdk-8u92-linux-x64.tar.gz
ls -l
tar -zxf jdk-8u92-linux-x64.tar.gz -C /opt/jdk
rm jdk-8u92-linux-x64.tar.gz
ls -l
update-alternatives --install /usr/bin/java java /opt/jdk/jdk1.8.0_92/bin/java 100
update-alternatives --install /usr/bin/javac javac /opt/jdk/jdk1.8.0_92/bin/javac 100
update-alternatives --display java
Wir schalten wieder zurück vom Root-User zum normalen User:
exit
Überprüfen Sie die Java-Installation:
java -version
javac -version
Alternativ zu dem hier gezeigten Verfahren können Sie einige "...tar.gz"-Dateien auch in "...deb"-Dateien konvertieren, beispielsweise im Falle von Java mit dem Debian-JavaPackage-Tool java-package. Diese .deb-Dateien können Sie dann per "dpkg -i MeineDatei.deb" installieren.
Als weitere Alternative gibt es das alien-Tool, welches zwischen verschiedenen Linux-Paketformaten konvertieren kann. Allerdings sollte dies mit größter Vorsicht verwendet werden, da es die Paketverwaltung durcheinander bringen kann.
Apache Maven ist (ähnlich wie Ant und Gradle) ein leistungsfähiges "Build Management Tool", um viele in der Softwareentwicklung immer wieder anfallende Prozeduren zu automatisieren und zu vereinfachen.
Ein aktuelles Java JDK muss installiert sein.
Fragen Sie zuerst die installierbare Version ab (falls Sie eine andere als die installierbaren Versionen installieren wollen, sehen Sie sich den nächsten Abschnitt an):
sudo apt-get update
apt-cache policy maven
Installieren Sie Maven 3:
sudo apt-get install -y maven
Überprüfen Sie die Maven-Installation:
mvn -version
whereis mvn
ls -al /usr/share/maven/bin
ls -al /etc/maven
ls -al ~/.m2
Das zuletzt abgefragte ~/.m2-Verzeichnis entsteht erst später bei der Verwendung von Maven. Dort wird im Ordner repository das lokale Maven-Repository angelegt, wenn in der settings.xml nichts anderes konfiguriert ist.
Überprüfen Sie die Maven-Konfiguration für systemweite Einstellungen:
gedit /etc/maven/settings.xml
Erstellen Sie die Maven-Konfiguration für benutzerspezifische Einstellungen (siehe auch Installation von Maven):
gedit ~/.m2/settings.xml
Ein aktuelles Java JDK muss installiert sein.
Führen Sie folgende Schritte aus:
sudo su
cd /opt/
wget https://archive.apache.org/dist/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz
ls -l
tar -zxf apache-maven-3.6.0-bin.tar.gz
rm apache-maven-3.6.0-bin.tar.gz
ls -l
update-alternatives --install /usr/bin/mvn mvn /opt/apache-maven-3.6.0/bin/mvn 100
update-alternatives --display mvn
ls -l /usr/bin/mv*
exit
mvn -version
cat /opt/apache-maven-3.6.0/conf/settings.xml
cat ~/.m2/settings.xml
Sehen Sie sich die Erläuterungen unter Installation von Maven an. Insbesondere die settings.xml müssen Sie normalerweise konfigurieren.
Erstellen Sie ein Test-Hello-World-Maven-Projekt:
mkdir ~/MeinWorkspace
cd ~/MeinWorkspace
mvn archetype:generate -DinteractiveMode=false -DgroupId=de.meinefirma.meinprojekt -DartifactId=MvnHelloApp
cd MvnHelloApp
Falls Sie tree installiert haben, lassen Sie sich die generierte Verzeichnisstruktur anzeigen:
tree
~/MeinWorkspace/MvnHelloApp +-- pom.xml +-- src +-- main ¦ +-- java ¦ +-- de ¦ +-- meinefirma ¦ +-- meinprojekt ¦ +-- App.java +-- test +-- java +-- de +-- meinefirma +-- meinprojekt +-- AppTest.java
Compilieren und bauen Sie die Test-Hello-World-Maven-Anwendung und führen Sie das Ergebnisartefakt aus:
mvn package
java -cp target/MvnHelloApp-1.0-SNAPSHOT.jar de.meinefirma.meinprojekt.App
Sie erhalten:
Hello World!
Sehen Sie sich den Maven-Repository-Ordner an:
ls -al ~/.m2/repository
Falls Sie im MeinWorkspace-Verzeichnis viele Maven-Projekte haben, und in allen Projekten dasselbe ausführen wollen (z.B. git pull, mvn install, ...), dann sollten Sie hierfür ein Shell-Skript erstellen, beispielsweise so:
cd ~/MeinWorkspace
gedit run-in-all-dirs.sh
#!/bin/bash IGNORE_LIST=" ProjXyz RemoteSystemsTempFiles " SKIPTEST_LIST=" Proj123 ProjAbc " echo echo "Aktuelles Verzeichnis: "$(pwd) echo for verzeichnis in * do echo -e "\n------------------------------------------------------" if [[ $IGNORE_LIST == *${verzeichnis}* ]] then echo "---- "${verzeichnis}" ist zu ignorieren ----" elif [ ! -d "${verzeichnis}" ] then echo "---- "${verzeichnis}" ist kein Verzeichnis ----" elif [ ! -f "${verzeichnis}/pom.xml" ] then echo "---- "${verzeichnis}" enthaelt keine pom.xml ----" else echo "---- "${verzeichnis}":" cd "${verzeichnis}" if [[ $SKIPTEST_LIST == *${verzeichnis}* ]] then mvn clean install -Dmaven.test.skip=true || exit 1 else mvn clean install || exit 1 fi cd .. fi done echo "------------------------------------------------------" ( speaker-test -t sine -f 1000 > /dev/null )& pid=$! ; sleep 0.1s ; kill -9 $pid echo -e "\n++++ OK ++++\n"
chmod +x run-in-all-dirs.sh
./run-in-all-dirs.sh
Falls Sie in Shellskripten Werte aus der pom.xml extrahieren wollen, und falls Sie hierzu nicht "mvn help:evaluate -Dexpression=..." verwenden können (z.B. weil Sie eine ältere Maven-Version verwenden müssen), dann können Sie beispielsweise die Projekt-Version mit Python ermitteln:
PROJ_VERS=$(python -c 'from xml.etree.ElementTree import ElementTree; \
print ElementTree(file="pom.xml").findtext("{http://maven.apache.org/POM/4.0.0}version")')
echo $PROJ_VERS
Falls Sie mehrere Java-Versionen installiert haben und nur ausnahmsweise testweise hin und wieder Java 11 verwenden wollen, dann können Sie hierzu ein Shell-Skript erstellen:
mvn11.sh
#!/bin/bash echo export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" echo echo ---- Maven- und Java-Version: mvn -Djvm="${JAVA_HOME}/bin/java" -version echo echo echo ---- Maven-Aufruf: mvn -Djvm="${JAVA_HOME}/bin/java" $* echo mvn -Djvm="${JAVA_HOME}/bin/java" $*
Legen Sie einen Link an, z.B. so, falls Sie das Skript im /opt/apache-maven-3.6.0/bin-Verzeichnis erstellt haben:
sudo ln -s /opt/apache-maven-3.6.0/bin/mvn11.sh /usr/bin/mvn11
Hiermit können Sie beispielsweise die Demo Java-Codegenerierung aus einem XSD-Schema mit JAXB wahlweise mit Ihrer Default-Java-Version (z.B. Java 8) und alternativ mit Java 11 ausführen:
Java 8: mvn clean package
Java 11: ./mvn11 clean package
Falls Sie
- in einer Firma sitzen und für Internetzugriff einen Proxy verwenden müssen (z.B. per Cntlm),
- nicht das sonst übliche lokale Maven-Repository sondern nur ein spezielles temporäres lokales Repo verwenden wollen (z.B. unterhalb vom Arbeitsverzeichnis),
- und mehrere Java-Versionen installiert haben und nur ausnahmsweise testweise Java 11 verwenden wollen,
dann sehen Sie sich die folgenden beiden Dateien an
(beide im Arbeitsverzeichnis, dabei "~/Tools/Experimente-Java11-ExtMvnRepo" durch Ihr Arbeitsverzeichnis ersetzen):
settings.xml ("MeinName" ersetzen!)
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>/home/MeinName/Tools/Experimente-Java11-ExtMvnRepo/Maven-Repo</localRepository> <proxies> <proxy> <active>true</active> <protocol>http</protocol> <host>127.0.0.1</host> <port>3128</port> </proxy> </proxies> </settings>
mvn-Java11-ExtMvnRepo.sh
#!/bin/bash echo export JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64" echo echo ---- Maven- und Java-Version: mvn -Djvm="${JAVA_HOME}/bin/java" -version echo echo echo ---- Maven-Aufruf: mvn -s ~/Tools/Experimente-Java11-ExtMvnRepo/settings.xml -Djvm="${JAVA_HOME}/bin/java" $* echo mvn -s ~/Tools/Experimente-Java11-ExtMvnRepo/settings.xml -Djvm="${JAVA_HOME}/bin/java" $*
Hiermit können Sie beispielsweise die Demo Java-Codegenerierung aus einem XSD-Schema mit JAXB wahlweise mit Ihrer Default-Java-Version (z.B. Java 8) und alternativ mit Java 11 ausführen:
Java 8: mvn clean package
Java 11: ./mvn-Java11-ExtMvnRepo.sh clean package
Eclipse (The Eclipse Foundation) bietet eine der am häufigsten verwendeten IDEs (Integrated Development Environment) für Java. Es konkurriert mit JetBrains IntelliJ IDEA und Oracle NetBeans IDE.
Falls Sie Eclipse mit Java 9 verwenden wollen, sehen Sie sich die Hinweise zur Jigsaw-Demo mit Eclipse an.
Ein aktuelles Java JDK muss installiert sein.
Ubuntu bietet die Installation von Eclipse per "apt-get install" an, aber leider nur für eine veraltete Eclipse-Version. Deshalb wird Eclipse aus dem tar.gz-Download installiert.
Downloaden Sie das gewünschte Eclipse-Paket vom gewünschten Mirror-Server, entweder manuell über https://eclipse.org/downloads/ oder beispielsweise so per Kommandozeile:
cd ~/Downloads
wget http://ftp-stud.hs-esslingen.de/Mirrors/eclipse/technology/epp/downloads/release/neon/R/eclipse-jee-neon-R-linux-gtk-x86_64.tar.gz
Wechseln Sie in Ihr gewünschtes Zielverzeichnis und entpacken Sie das tar.gz-Archiv:
cd /opt
sudo tar -xvzf ~/Downloads/eclipse-jee-neon-R-linux-gtk-x86_64.tar.gz
Erstellen Sie die Datei eclipse.desktop mit dem gezeigten Inhalt (passen Sie die Pfade an):
cd /opt/eclipse
sudo gedit eclipse.desktop
[Desktop Entry] Name=Eclipse Type=Application Exec=/opt/eclipse/eclipse Terminal=false Icon=/opt/eclipse/icon.xpm Comment=Integrated Development Environment NoDisplay=false Categories=Development;IDE; Name[de]=Eclipse
(Doku zum .desktop-Format finden Sie unter: .desktop-Dateien.)
Führen Sie aus:
sudo desktop-file-install eclipse.desktop
ls -al /usr/share/applications/e*
Starten Sie Eclipse, indem Sie die "Super-Taste" (= linke Windows-Taste) betätigen und Eclipse tippen.
Anschließend klicken Sie mit der rechten Maustaste auf das Eclipse-Icon in der Starter-Leiste und wählen: "Im Starter behalten".
Danach können Sie Eclipse wahlweise über die Dash oder über das Icon in der Starter-Leiste starten.
Falls Ihnen die beiden genannten Optionen zum Start von Eclipse nicht genügen und Sie Eclipse auch vom Terminal aus starten wollen, führen Sie aus:
sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse
Wechseln Sie in Ihr Home-Verzeichnis und starten Sie Eclipse per Terminal:
cd ~
eclipse
Falls Sie das obige Test-Hello-World-Maven-Projekt erstellt haben, können Sie es folgendermaßen in Eclipse importieren:
File | Switch Workspace | ~/MeinWorkspace
File | Import... | Maven | Existing Maven Projects | Next | Root Directory: MeinWorkspace | Projects: MvnHelloApp | Finish
Öffnen Sie beispielsweise die Hauptanwendungsklasse App.java, führen Sie sie aus und überprüfen Sie das Ergebnis:
Strg+Shift+T | App | OK | Strg+F11.
Hello World!
Führen Sie den JUnit-Test in AppTest.java aus:
Strg+Shift+T | AppTest | OK | Strg+F11.
JetBrains IntelliJ IDEA ist ebenfalls eine der am häufigsten verwendeten IDEs (Integrated Development Environment) für Java. Es konkurriert mit Eclipse und Oracle NetBeans IDE.
Falls Sie IntelliJ IDEA mit Java 9 verwenden wollen, sehen Sie sich die Hinweise zu den Jigsaw-Demos mit IntelliJ IDEA an: Jigsaw-Dep-Demo und Jigsaw-Service-Demo.
Hilfe für Einsteiger zu IntelliJ IDEA finden Sie unter: JetBrains IntelliJ IDEA: Erste Schritte.
Die folgende Anleitung installiert die kostenfreie Community Edition. Falls Sie die komerzielle Ultimate Edition installieren wollen, ersetzen Sie in den folgenden Idea-Verzeichnis- und Dateinamen "IC" durch "IU".
Ein aktuelles Java JDK muss installiert sein.
Wie Eclipse wird im Folgenden auch IntelliJ IDEA per tar.gz-Download installiert.
Downloaden Sie das gewünschte IntelliJ-IDEA-Paket, entweder manuell über https://www.jetbrains.com/idea/ oder beispielsweise so per Kommandozeile (passen Sie den Dateinamen und die Versionsnummer an):
cd ~/Downloads
wget https://download-cf.jetbrains.com/idea/ideaIC-2018.3.tar.gz
Wechseln Sie in Ihr gewünschtes Zielverzeichnis und entpacken Sie das tar.gz-Archiv:
cd /opt
sudo tar -xvzf ~/Downloads/ideaIC-2018.3.tar.gz
Falls Sie eine vorherige Idea-Installation haben und diese nicht sofort löschen wollen, können Sie den alten Idea-Ordner beispielsweise so umbenennen:
sudo mv /opt/idea-IC /opt/___idea-IC
Damit auch nach zukünftigen Software-Updates Links und Desktop-Icons weiter funktionieren, empfiehlt es sich, den neuen Idea-Ordner umzubenennen:
sudo mv /opt/idea-IC* /opt/idea-IC
Wechseln Sie in das IntelliJ-IDEA-bin-Verzeichnis und starten Sie das IntelliJ-IDEA-Installationsskript (passen Sie den Pfad an):
cd /opt/idea-IC/bin
./idea.sh
Wählen Sie im IntelliJ-IDEA-Willkommensstartdialog unten rechts "Configure | Create Desktop Entry".
Dabei entsteht die Ubuntu-Starterdatei jetbrains-idea.desktop im Verzeichnis ~/.local/share/applications.
Klicken Sie anschließend mit der rechten Maustaste auf das IntelliJ-IDEA-Icon in der Starter-Leiste und wählen Sie: "Im Starter behalten".
Jetzt können Sie IntelliJ IDEA wahlweise über verschiedene Wege starten:
über die Dash (per "Super-Taste" (= linke Windows-Taste) und IntelliJ IDEA) oder
über das Icon in der Starter-Leiste.
Falls Sie das obige Test-Hello-World-Maven-Projekt erstellt haben, können Sie es folgendermaßen in IntelliJ IDEA importieren:
Import Project | ~/MeinWorkspace/MvnHelloApp | Maven | Next | Next | JDK home path: /usr/lib/jvm/java-8-oracle | Next | Finish.
Laden Sie die Applikationsklasse: Strg+N | App.
Führen Sie die Applikationsklasse aus: Strg+F9 | Alt+Shift+F10 | App | Run.
Hello World!
Führen Sie den JUnit-Modultest aus: Strg+N | AppTest | Alt+Shift+F10 | AppTest | Run.
Falls Sie IntelliJ IDEA inklusive aller Einstellungen wieder deinstallieren wollen (passen Sie die Pfade an):
sudo rm -r /opt/idea-IC
sudo rm /usr/local/bin/idea
sudo rm /usr/share/applications/jetbrains-idea*.desktop
rm ~/.local/share/applications/jetbrains-idea*.desktop
rm ~/.gnome/apps/jetbrains-idea*.desktop
rm -r ~/.IntelliJIdea2018.3
rm -r ~/.IdeaIC2018.3
Der kostenpflichtige YourKit Java Profiler ist ein weit verbreiteter Profiler für Java-Programme. Im Folgenden wird die Installation der YourKit-Version von 2016 beschrieben, inklusive der Integration in IntelliJ IDEA.
Downloaden Sie yjp-2016.02-b46-linux.tar.bz2 von https://www.yourkit.com/java/profiler/ und kopieren Sie die Datei nach /opt.
Führen Sie aus:
cd /opt
sudo bzip2 -d yjp-2016.02-b46-linux.tar.bz2
sudo tar -xvf yjp-2016.02-b46-linux.tar
sudo rm yjp-2016.02-b46-linux.tar
cd yjp-2016.02-b46/bin
./yjp.sh
Geben Sie Ihren YourKit-Lizenz-Key ein.
Falls IntelliJ IDEA läuft, beenden Sie IntelliJ IDEA.
Wählen Sie in YourKit:
Integrate with IDE... | Choose IDE: IntelliJ IDEA |
IDEA is configured to use the following non-standard plugins directory: ~/.IntelliJIdea2018.3/config/plugins |
Install Plugin.
Beenden Sie YourKit und wählen Sie in IntelliJ IDEA:
Run | Profile '...' (es gibt zweimal Profile...: das obere wählen).
Oracle MySQL ist ein weit verbreitetes relationales Datenbank-System (RDBMS).
Ein aktuelles Java muss installiert sein.
So installieren Sie MySQL:
sudo apt-get update
apt-cache policy mysql-server
sudo apt-get install -y mysql-server
Merken Sie sich das dabei vergebene root-Passwort. Im Folgenden wird angenommen, Ihr Passwort würde mysqlpwd lauten.
Passen Sie die Konfiguration an, insbesondere bind-address (siehe hierzu beispielsweise UbuntuUsers: MySQL):
gedit /etc/mysql/mysql.conf.d/mysqld.cnf
Hier befindet sich das Datenverzeichnis:
sudo ls -al /var/lib/mysql
Überprüfen Sie die Installation:
mysqladmin -uroot -pmysqlpwd version status proc
Für ein erstes Erfolgserlebnis können Sie die Schritte unter Kurzanleitung zur Anlage einer Database und einer Tabelle in MySQL ausführen.
SQuirreL ist ein universeller Datenbank-Client für relationale SQL-Datenbanken.
Ein aktuelles Java muss installiert sein.
Sie können SQuirreL entweder manuell downloaden, oder per Terminal:
cd ~/Downloads/
wget http://downloads.sourceforge.net/project/squirrel-sql/1-stable/3.7.1/squirrel-sql-3.7.1-standard.jar
Starten Sie die Installation von SQuirreL:
sudo java -jar ~/Downloads/squirrel-sql-3.7.1-standard.jar
Wenn die Aufforderung "Select the installation path:" erscheint, dann sollten Sie die Versionsnummer aus dem Pfad entfernen,
beispielsweise so: "/usr/local/squirrel-sql".
Fahren Sie weiter fort mit der Installation.
Anschließend können Sie die .jar-Datei löschen:
rm squirrel-sql-3.7.1-standard.jar
Überprüfen Sie, ob folgende Variablen korrekt gesetzt sind:
gedit /usr/local/squirrel-sql/squirrel-sql.sh
IZPACK_JAVA_HOME = /usr/lib/jvm/java-8-oracle/jre
SQUIRREL_SQL_HOME = /usr/local/squirrel-sql
Überprüfen Sie, ob der für Ihre Datenbank benötigte JDBC-Treiber vorhanden ist:
ls -al /usr/local/squirrel-sql/lib
Beispielsweise für die MySQL-DB benötigen Sie den MySQL-Connector/J-JDBC-Treiber:
cd ~/Downloads/
wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.39.zip
unzip mysql-connector-java-5.1.39.zip
sudo cp mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar /usr/local/squirrel-sql/lib/
rm mysql-connector-java-5.1.39.zip
rm -r mysql-connector-java-5.1.39
Starten Sie SQuirreL:
/usr/local/squirrel-sql/squirrel-sql.sh
Falls Sie wie oben beschrieben die MySQL-DB und darin die DB "MeineDb" eingerichtet haben, können Sie so einen neuen Datenbankverbindungs-Alias anlegen:
Name = MySQL-MeineDb
Driver = MySQL Driver
URL = jdbc:mysql://127.0.0.1:3306/MeineDb
User Name = root
Password = mysqlpwd
Legen Sie im Verzeichnis ~/.local/share/applications die Datei squirrel.desktop mit diesem Inhalt an:
[Desktop Entry] Name=SQuirreL GenericName=SQuirreL SQL Client Comment=Browse/edit SQL databases Exec=/usr/local/squirrel-sql/squirrel-sql.sh %U Icon=/usr/local/squirrel-sql/icons/acorn.png Terminal=false Type=Application Categories=Development; StartupNotify=true MimeType=text/x-sql; StartupWMClass=net-sourceforge-squirrel_sql-client-Main Keywords=Programming;Java;SQL
Klicken Sie bei laufendem SQuirreL mit der rechten Maustaste auf das SQuirreL-Icon in der Starter-Leiste und wählen Sie: "Im Starter behalten". Anschließend können Sie hierüber SQuirreL starten.
Oracle SQL*Plus ist ein Kommandozeilen-Client für Oracle-Datenbanken, der normalerweise zusammen mit der Oracle-Datenbank installiert wird. Oracle SQL*Plus Instant Client ist das gleiche Tool, aber als Stand-alone-Tool. Letzteres wird im Folgenden installiert.
Downloaden Sie von
http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html
die beiden Dateien:
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
Falls "alien" noch nicht installiert ist, führen Sie im Terminal aus:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install alien rpm lsb
Installation von SQL*Plus:
cd ~/Downloads
sudo alien -i oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
sudo alien -i oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
rm oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
rm oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
sqlplus64 -V
Falls es folgende Fehlermeldung gibt:
sqlplus64: error while loading shared libraries: libsqlplus.so: cannot open shared object file: No such file or directory
Dann verfahren Sie folgendermaßen:
Entweder Sie setzen die Umgebungsvariable LD_LIBRARY_PATH per export-Kommando:
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
Oder Sie erstellen eine System Library List per conf-Datei:
sudo gedit /etc/ld.so.conf.d/oracleinstantclient.conf
Dateiinhalt:
# Oracle Instant Client /usr/lib/oracle/12.2/client64/lib
Anschließend ausführen:
sudo ldconfig
Falls es folgende Fehlermeldung gibt (tritt beispielsweise bei Verwendung von Cntlm auf):
Error 46 initializing SQL*Plus
HTTP proxy setting has incorrect value
SP2-1502: The HTTP proxy server specified by http_proxy is not accessible
Dann muss NO_PROXY zurückgesetzt werden:
unset no_proxy
unset NO_PROXY
Falls insbesondere Letzteres nicht systemweit, sondern nur für SQL*Plus erfolgen soll, kann SQL*Plus über ein Skript gestartet werden. Öffnen Sie ein neues Skript:
cd /usr/lib/oracle/12.2/client64
sudo gedit sqlplus.sh
Skriptinhalt:
unset no_proxy unset NO_PROXY export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib /usr/lib/oracle/12.2/client64/bin/sqlplus $*
Skript ausführbar machen und testen:
sudo chmod +x /usr/lib/oracle/12.2/client64/sqlplus.sh
sudo ln -s /usr/lib/oracle/12.2/client64/sqlplus.sh /usr/bin/sqlplus
whereis sqlplus
sqlplus -V
sqlplus -H
Starten Sie SQL*Plus folgendermaßen für interaktive Nutzung (ersetzen Sie alle Platzhalter):
sqlplus <benutzer>/<passwort>@//<server>:1521/<sid>
Starten Sie SQL*Plus folgendermaßen zur Ausführung eines SQL-Skripts (ersetzen Sie alle Platzhalter):
sqlplus <benutzer>/<passwort>@//<server>:1521/<sid> @<skriptpfad>
Folgendermaßen können Sie testweise ein SQL-Skript erstellen und ausführen, welches eine DB-Tabelle als HTML-Seite ausgibt. Erstellen Sie folgendes SQL-Skript in der Datei Read-MeineTabelle.sql:
set markup HTML on spool MeineTabelle.html Select * from MeineTabelle; spool off set markup HTML off exit
Führen Sie aus:
sqlplus <benutzer>/<passwort>@<server>:1521/<sid> @Read-MeineTabelle.sql
firefox MeineTabelle.html
Eine Installationsbeschreibung zum Oracle WebLogic Server unter Ubuntu-Linux finden Sie unter Oracle WebLogic Server 12cR2 (12.2.1) sowie unter WebLogic 12.2.1 im Docker-Container unter Ubuntu-Linux.
Docker ist ein wichtiger Baustein im Umfeld von DevOps und Continuous Delivery. Docker ist eine Virtualisierungslösung, die keinen Hypervisor einsetzt, sondern "Operating-system-level Virtualization" mit Linux-Containern verwendet. Diese Container sind unabhängig voneinander, aber verwenden Teile des Linux-Kernels gemeinsam. Dadurch ist die Effizienz wesentlich höher als bei anderen Virtualisierungslösungen.
Folgendermaßen installieren Sie Docker und erzeugen einen ersten Test-Container:
Eine ausführlichere Beschreibung der Installation finden Sie unter Installation von Docker unter Ubuntu. Hier folgt eine Kurzversion.
Führen Sie Folgendes im Terminal aus, um sicher zu stellen, dass HTTPS funktioniert und CA-Zertifikate installiert sind, sowie um einen neuen GPG-Key hinzuzufügen:
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Erzeugen Sie folgende Datei neu bzw. ersetzen Sie den Inhalt:
sudo gedit /etc/apt/sources.list.d/docker.list
deb https://apt.dockerproject.org/repo ubuntu-xenial main
Installieren Sie die Docker-Engine:
sudo apt-get update
sudo apt-get purge lxc-docker
apt-cache policy docker-engine
sudo apt-get install -y linux-image-extra-$(uname -r)
sudo apt-get install -y docker-engine
Starten Sie den Docker-Daemon:
sudo service docker start
Downloaden Sie das kleine Test-Hello-World-Docker-Image hello-world, starten Sie damit einen Docker-Container, und überprüfen Sie das angezeigte Ergebnis:
sudo docker run hello-world
Hello from Docker. This message shows that your installation appears to be working correctly.
Sehen Sie sich die Docker-Version, die lokal vorhandenen Docker-Images und die Docker-Container an:
sudo docker version
sudo docker images
sudo docker ps -a
Falls Docker beim PC-Neustart automatisch gestartet werden soll, führen Sie aus:
sudo systemctl enable docker
Sehen Sie sich die Einführung und die vielen Beispiele an unter: Docker.
Wireshark ist ein universeller Netzwerk-Sniffer, also ein Programm zur Analyse der Netzwerk-Kommunikation. Sehen Sie sich den Wireshark User's Guide und die ubuntuusers-Wireshark-Seite an.
So installieren Sie Wireshark (inklusive TShark) (bestätigen Sie die Frage, ob außer dem Superuser noch andere Nutzer Pakete aufzeichnen dürfen, mit "Ja"):
sudo apt-get install wireshark tshark
sudo dpkg-reconfigure wireshark-common
sudo adduser $USER wireshark
newgrp
groups
Der aktuelle Benutzer (und alle weiteren Benutzer, die Wireshark verwenden wollen) müssen in der Gruppe wireshark eingetragen sein (eventuell müssen Sie sich ab- und wieder anmelden).
Sehen Sie sich an, wie Sie mit TShark als Kommandozeilen-Sniffer eine REST-Service-Kommunikation beobachten können.
Sehen Sie sich an, wie Sie dieselbe REST-Service-Kommunikation komfortabler mit dem grafischen Wireshark beobachten können.
yWorks yEd ist ein grafischer Editor zum Erstellen von Diagrammen und Struktogrammen.
Ein aktuelles Java muss installiert sein.
Sie können yEd entweder manuell downloaden, oder per Terminal:
cd ~/Downloads/
wget http://www.yworks.com/resources/yed/demo/yEd-3.16.2.1.zip
Verzweigen Sie in Ihr gewünschtes Zielverzeichnis, entzippen Sie das .zip-Archiv und umbenennen Sie das yEd-Verzeichnis:
cd /opt
sudo unzip ~/Downloads/yEd-3.16.2.1.zip
rm ~/Downloads/yEd-3.16.2.1.zip
sudo mv yed-3.16.2.1 yed
Erstellen Sie das Skript yed.sh und machen Sie es ausführbar:
cd /opt/yed
sudo gedit yed.sh
cd /opt/yed java -jar yed.jar $* &
sudo chmod +x yed.sh
Führen Sie das Skript aus:
/opt/yed/yed.sh
Sobald in der linken Starter-Leiste das Programm-Icon für yEd erscheint: Klicken Sie mit der rechten Maustaste auf das yEd-Icon in der Starter-Leiste und wählen Sie: "Im Starter behalten". Anschließend können Sie hierüber yEd starten.
Git ist mittlerweile das am häufigsten eingesetzte Versionsverwaltungssystem (VCS / SCM). Es ist ein so genanntes verteiltes Versionskontrollsystem (DVCS, Distributed/Decentralized Version Control System). Doku zu Git finden Sie beispielsweise unter Documentation und Pro Git Book.
Der Git-Client kann installiert werden über:
sudo apt install git
Zur Zusammenarbeit mit anderen Entwicklern können Projektdateien in zentralen Git-Servern gehostet werden. Dies kann über öffentliche Git-Server wie beispielsweise GitHub.com, GitLab.com oder TeaHub.io erfolgen. Alternativ kann ein privater Git-Server installiert werden, der beispielsweise nur in einem Intranet verfügbar ist. Hierfür bietet GitLab die Optionen "GitLab CE (Community Edition)" und "GitLab EE (Enterprise Edition)".
Wenn Sie wie empfohlen die "Omnibus-Installationsvariante" verwenden, kann GitLab CE in vier Schritten installiert werden, die unter Download / Install GitLab CE beschrieben sind.
Anschließend erreichen Sie den GitLab-Server unter http://localhost. Sie müssen zu Beginn ein Passwort für den Benutzer root vergeben und sich anschließend mit diesem Account einloggen. Dann können Sie weitere Benutzer und Projekte anlegen, beispielsweise MeinName und MeinGitlabProjekt. Das Projekt finden Sie dann unter http://localhost/MeinName/MeinGitlabProjekt.
Verwenden Sie für einen ersten Test beispielsweise folgende Kommandos:
git config --global user.name "MeinName"
git config --global user.email "MeinName@meinefirma.de"
cat ~/.gitconfig
cd ~/MeinWorkspace
git clone http://localhost/MeinName/MeinGitlabProjekt
cd MeinGitlabProjekt
echo xyz > abc.txt
git add .
git remote
git status
git commit -m "abc.txt hinzugefuegt"
git push -u origin master
Der GitLab-Server ist übrigens nicht nur ein Versionsverwaltungssystem, sondern beinhaltet auch ein Wiki und einen Issue-Bugtracker.
Viele Fragen zu Ubuntu finden Sie beantwortet im UbuntuUsers-Portal und -Wiki.
Falls bei einer neu installierten grafischen Anwendung das GUI einfriert, Menüs nicht geöffnet werden können oder Menüzeilen unlesbar sind, könnte ein Problem mit GTK 3 vorliegen (wie etwa bei der früheren Eclipse-Mars-Version). Führen Sie testweise folgende Kommandos aus, bevor Sie die Anwendung starten:
export SWT_GTK3=0
export UBUNTU_MENUPROXY=0
Falls es eine ...desktop-Datei gibt, ändern Sie darin den Exec-Parameter:
[Desktop Entry] ... Exec=env SWT_GTK3=0 UBUNTU_MENUPROXY=0 /.../... ...
In Ubuntu-Installationen wird der so genannte "PC-Lautsprecher" ("pcspkr") in der Regel abgeschaltet. Das hat zur Folge, dass ohne weitere Maßnahmen das Shell-Beep-Kommando "echo -e '\a'" nicht funktioniert. Als Ersatz können Sie folgendes Kommando verwenden:
( speaker-test -t sine -f 1000 > /dev/null )& pid=$! ; sleep 0.2s ; kill -9 $pid
Falls Sie unter Ubuntu in einer VirtualBox-VM Windows betreiben, und von Windows aus nicht auf USB-Sticks zugreifen können, obwohl die VirtualBox Gasterweiterungen installiert sind, überprüfen Sie bzw. ändern Sie die Gruppeneinstellung für den Ubuntu-Benutzer, unter dem die VirtualBox-VM läuft:
groups
sudo usermod -aG vboxusers Benutzer
vboxmanage list usbhost
Falls es grundsätzlich Probleme bei der Software-Aktualisierung oder beim update/upgrade gibt, können Folgende Einstellungen versucht werden:
"Acquire::BrokenProxy=true" (siehe Trastle: 99fixbadproxy und Hash sum mismatch):
sudo gedit /etc/apt/apt.conf.d/99fixbadproxy
Acquire::http::Pipeline-Depth 0; Acquire::http::No-Cache true; Acquire::BrokenProxy true;
IPv4 vor IPv6 bevorzugen (siehe Karvinen: Prefer IPv4 on Ubuntu):
sudo gedit /etc/gai.conf
Auskommentierung entfernen vor der Zeile:
precedence ::ffff:0:0/96 100
Falls ein Proxy (z.B. Cntlm) verwendet wird (siehe askubuntu: 'apt-get' does not work with Proxy)
sudo gedit /etc/apt/apt.conf
Acquire::http::proxy "http://127.0.0.1:3128/"; Acquire::https::proxy "https://127.0.0.1:3128/"; Acquire::ftp::proxy "ftp://127.0.0.1:3128/"; Acquire::socks::proxy "socks://127.0.0.1:3128/";
Fehlermeldung "...Clearsign...":
sudo apt-key update
sudo apt-get clean
sudo apt-get update
Falls es beim "apt-get upgrade"-Kommando sporadisch Probleme beim Download von großen Dateien gibt (z.B. weil sich ein Virenscanner oder Proxy dazwischen schaltet), kann wie im Folgenden für die beispielhafte Datei "meineGrosseDownloadDatei" beschrieben vorgegangen werden:
ls -al /var/cache/apt/archives/partial/
cat /var/cache/apt/archives/partial/meineGrosseDownloadDatei
ls -al ~/Downloads
Manuellen Download von meineGrosseDownloadDatei nach ~/Downloads durchführen.
sudo rm /var/cache/apt/archives/partial/meineGrosseDownloadDatei
sudo mv ~/Downloads/meineGrosseDownloadDatei /var/cache/apt/archives/
sudo apt-get update
sudo apt-get upgrade
Falls der Internetzugang über einen Proxy erfolgt und ein PPA per
sudo add-apt-repository ppa:webupd8team/...
hinzugefügt werden soll, und dabei eine Fehlermeldung erscheint ähnlich zu:
Cannot add PPA: 'ppa:webupd8team/...'.
Please check that the PPA name or format is correct.
Dann kann es daran liegen, dass die Proxy-Einstellung vielleicht nur für den aktuellen Benutzer gilt, aber nicht für andere. Test:
env | grep -i http_proxy
env | grep -i https_proxy
sudo bash
env | grep -i http_proxy
env | grep -i https_proxy
exit
Falls die ersten beiden env-Kommandos einen Proxy melden, aber die letzten beiden nicht: Dann muss entweder der Proxy systemweit konfiguriert werden, oder die apt.conf erweitert werden, oder das add-apt-repository-Kommando wird mit -E aufgerufen:
sudo -E add-apt-repository ppa:webupd8team/...
Falls beim Experimentieren aus Versehen der Benutzer aus der Gruppe sudo oder aus anderen Gruppen entfernt wurde (z.B. per: usermod -G ...):
- PC-Neustart mit gedrückter Shift-Taste
- "Erweiterte Optionen für Ubuntu" wählen
- "Ubuntu ... (recovery mode)" wählen
- "root: Zur root-Befehlszeile (Shell) wechseln" wählen
- Ausführen (<username> ersetzen):
mount -o remount,rw /
usermod -aG <username>,adm,cdrom,dip,lpadmin,plugdev,sambashare,sudo <username>
groups <username>
shutdown -r now
Doku siehe ubuntu-sudo-probleme.