# Linux

# Linux Basics

Eine kleine Übersicht mit gängigen Befehlen. Kein Anspruch auf Vollständigkeit. Für weitere Befehle: [davechild\_linux-command-line.pdf](https://wiki.porthal.de/attachments/5)

### Befehle

Zum Verbinden per SSH kann man die meisten systemeigenen Kommandozeilen/Konsolen oder externe Programm wie puTTY oder [MobaXterm](https://mobaxterm.mobatek.net) nutzen. Letzteres ist empfehlenswert.

Für jeden Befehl oder für jedes Programm gibt es Man-Pages, also Manual-Pages / Handbücher, die man über `man <Programm>` anzeigen lassen kann.

#### Passwort ändern

<table id="bkmrk-passwd-%C3%84ndert-das-pa" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:20.2977%;"></col><col style="width:79.8215%;"></col></colgroup><tbody><tr><td>`passwd`  
</td><td>Ändert das Passwort für den aktuellen User</td></tr></tbody></table>

#### sudo

Wird benutzt, um ein Programm mit Adminrechten auszuführen oder um in einen anderen Benutzer zu wechseln

<table id="bkmrk-sudo-%3Cprogramm%3E-prog" style="border-collapse:collapse;width:100%;height:120.438px;"><colgroup><col style="width:20.8531%;"></col><col style="width:79.1469%;"></col></colgroup><tbody><tr style="height:30.1094px;"><td style="height:30.1094px;">`sudo <Programm>`</td><td style="height:30.1094px;">Programm mit Adminrechten ausführen</td></tr><tr style="height:30.1094px;"><td style="height:30.1094px;">`sudo !!`</td><td style="height:30.1094px;">Wenn der zuvor ausgeführte Befehl nochmal als `sudo` ausgeführt werden soll</td></tr><tr style="height:30.1094px;"><td style="height:30.1094px;">`sudo su`</td><td style="height:30.1094px;">Wechselt in den Root-Nutzer</td></tr><tr style="height:30.1094px;"><td style="height:30.1094px;">`su <Benutzername>`</td><td style="height:30.1094px;">Wechselt in den angegebene Benutzeraccount. Passwort für den Account wird benötigt</td></tr></tbody></table>

---

#### Navigation und System

Die folgenden Befehle funktionieren in Ubuntu. Man kann mit TAB eine Autovervollständigung des eingegebenen Pfades oder Dateinamens ausführen. Gibt man zum Beispiel `cd` ein und drückt dann zwei Mal TAB, werden die möglichen Ordner angezeigt. Nicht bei

<table id="bkmrk-cd-%3Cordner%3E-wechselt" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:30.5178%;"></col><col style="width:69.4822%;"></col></colgroup><tbody><tr><td>`cd <Ordner>`</td><td>Wechselt in den angegebenen Ordner, der sich in der momentanen Ebene befindet.</td></tr><tr><td>`cd /<Ordner>`</td><td>Wechselt in den angegebene Ordner, beginnt aber im Wurzelverzeichnis</td></tr><tr><td>`cd ..`</td><td>Wechselt eine Ordnerebene höher/zurück</td></tr><tr><td>`cd` oder `cd ~`</td><td>Wechselt in das Home-Verzeichnis des angemeldeten Users</td></tr><tr><td>`ll` (Kurzform für den Befehl `ls -l`)</td><td>Listet den Ordnerinhalt als Liste mit zusätzlichen Informationen auf</td></tr><tr><td>`ls` oder `dir`</td><td>Anzeigen des Ordnerinhalts. `ls` ist besser</td></tr><tr><td>`pwd`</td><td>Zeigt an in welchem Pfad man sich gerade befindet</td></tr><tr><td>`who -a`</td><td>Zeigt alle offenen Anmeldungen an. `tty` sind alle "echten" Konsolen, `pts` sind Pseudokonsolen</td></tr><tr><td>`whoami`</td><td>Zeigt den eigenen Benutzernamen an</td></tr><tr><td>`df -h`</td><td>Zeigt die Speicherbelegung an. Paramaeter `-h` zeigt den Speicher leicht lesbar (human readable) an

</td></tr><tr><td>`lsblk`</td><td>Listet alle angeschlossenen Laufwerke/Datenträger und ihre Hardwarepfade an

</td></tr><tr><td>`blkid`</td><td>Listet alle angeschlossenen Laufwerke/Datenträger und ihre UUIDs, Label, Types und weitere technischen Informationen an

</td></tr><tr><td>  
</td><td></td></tr></tbody></table>


---

#### Programme installieren und deinstallieren

APT bze. APTITUDE funktioniert nur bei Ubuntu/Debian-Distributionen. Arch nutzt PacMan.

<table id="bkmrk-sudo-apt-install-%3Cpa" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:34.682%;"></col><col style="width:65.318%;"></col></colgroup><tbody><tr><td>`sudo apt install <Paketname>`

oder `sudo apt-get install <Paketname>`

</td><td>Installiert das gewünschte Programm. `sudo` bedeutet, dass man die Installation mit Adminrechten ausführt. `apt` ist der Paketmanager in Debian-Distributionen wie Ubuntu. Wenn man `apt` als Befehl benutzt, sieht man den Downloadfortschritt.</td></tr><tr><td>`sudo apt remove <Paketname>`</td><td>Deinstalliert ein Paket. Es können auch mehrere Pakete, getrennt durch ein Leerzeichen, deinstalliert werden</td></tr><tr><td>`sudo apt autoremove <Paketname>`</td><td>Löscht nicht mehr benötigte Installationsdateien und Abhängigkeiten</td></tr><tr><td>`sudo apt purge <Paketname>`</td><td>Deinstalliert ein Paket samt Konfigurationsdateien</td></tr></tbody></table>

---

#### Dateioperationen

<table id="bkmrk-mkdir-%3Cname%3E-erstell" style="border-collapse:collapse;width:100%;height:307.438px;"><colgroup><col style="width:25.7444%;"></col><col style="width:74.2556%;"></col></colgroup><tbody><tr style="height:46.5938px;"><td style="height:46.5938px;">`mkdir <Name>`</td><td style="height:46.5938px;">Erstellt einen Ordner an der aktuellen Position. Man kann aber auch einen Pfad vor dem Namen angeben</td></tr><tr style="height:30.1094px;"><td style="height:30.1094px;">`rmdir <Name>`</td><td style="height:30.1094px;">Löscht einen leeren Ordner</td></tr><tr style="height:30.1094px;"><td style="height:30.1094px;">`rm -rf <Name>`</td><td style="height:30.1094px;">Löscht eine Ordner samt Inhalt. **Vorsichtig verwenden!**</td></tr><tr style="height:30.1094px;"><td style="height:30.1094px;">`rm <Name>`</td><td style="height:30.1094px;">Löscht eine Datei</td></tr><tr style="height:30.1094px;"><td style="height:30.1094px;">`cat <Dateiname>`</td><td style="height:30.1094px;">Zeigt den Inhalt einer Datei an.</td></tr><tr style="height:46.5938px;"><td style="height:46.5938px;">`nano <Dateiname>`</td><td style="height:46.5938px;">Öffnet die Datei mit dem Programm Nano um sie zu bearbeiten. Wenn die Datei nicht existiert, wird sie angelegt. Ein alternativer Editor wäre `vi` oder `vim`.</td></tr><tr style="height:47.2188px;"><td style="height:47.2188px;">`mv <Dateiname-alt> <Dateiname-neu>`</td><td style="height:47.2188px;">"Move", wird verwendet um einen Ordner oder eine Datei umzubenennen</td></tr><tr style="height:46.5938px;"><td style="height:46.5938px;">`cp <Datei> <Datei-Kopie>`</td><td style="height:46.5938px;">"Copy", wird verwendet um eine Datei zu kopieren. Nützlich um z. B. Backups von Konfig-Dateien zu erstellen</td></tr></tbody></table>

Weitere Shortcuts kann man [hier](https://wiki.ww.ovgu.de/attachments/2) nachlesen.

---

### Nützliche Programme

#### nano

Intuitiver (als vi/vim) Texteditor.

Befehl: `nano <Datei>`  
Bei Ubuntu meist vorinstalliert.

<table id="bkmrk-strg%2Bo-speichern-str" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:50%;"></col><col style="width:50%;"></col></colgroup><tbody><tr><td>Strg+O</td><td>Speichern</td></tr><tr><td>Strg+X</td><td>Beenden</td></tr><tr><td>Strg+K

</td><td>Zeile löschen</td></tr><tr><td>Strg+W</td><td>Suchen</td></tr><tr><td>Alt+W</td><td>Nächstes Suchergebnis</td></tr></tbody></table>

#### htop

Befehl: `htop`  
Muss meinst nachinstalliert werden.

hübschere Version des Programms `top`. Für Monitoring, ähnlich wie der Windows Taskmanager. Beenden mit `F10`.

<table id="bkmrk--4" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:99.881%;"></col></colgroup><tbody><tr><td>[![image.png](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/scaled-1680-/VD8image.png)](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/VD8image.png)

</td></tr><tr><td>  
</td></tr></tbody></table>

#### nmon

Befehl: `nmon`  
Muss meist nachinstalliert werden.

Monitoring Tool bei dem man verschiedene Werte an und ausschalten kann. Beenden mit `q`.

<table id="bkmrk-startbildschirm" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:99.881%;"></col></colgroup><tbody><tr><td class="align-center">[![image.png](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/scaled-1680-/image.png)](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/image.png)  
</td></tr><tr><td class="align-center">Startbildschirm</td></tr></tbody></table>

<table id="bkmrk-ansicht-nach-dem-dr%C3%BC" style="border-collapse:collapse;width:100%;height:457.234px;"><colgroup><col style="width:99.881%;"></col></colgroup><tbody><tr style="height:427.125px;"><td style="height:427.125px;">[![image.png](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/scaled-1680-/B92image.png)](https://wiki.ww.ovgu.de/uploads/images/gallery/2024-07/B92image.png)

</td></tr><tr style="height:30.1094px;"><td class="align-center" style="height:30.1094px;">Ansicht nach dem Drücken der Tasten `c` (CPU-Auslastung), `d` (Datenträgerauslastung) und `n` (Netzwerkverkehr)</td></tr></tbody></table>

---

### Netzwerk-Tools

<table id="bkmrk-netstat--tulpen-list" style="border-collapse:collapse;width:100%;"><colgroup><col style="width:26.4882%;"></col><col style="width:73.631%;"></col></colgroup><tbody><tr><td>`netstat -tulpen`</td><td>Listet alle geöffneten Ports, IP und Protokoll auf. Das Programm ist `netstat` und `-tulpen` sind spezielle Parameter aneinandergereiht.

`-t` --&gt; TCP Ports

`-u` --&gt; UDP Ports

`-l` --&gt; Listening Sockets (lauschende Ports) anzeigen

`-p` --&gt; Programm-ID

`-e` --&gt; erweiterte Details anzeigen

`-n` --&gt; Numerische Adressen anzeigen anstatt Hostnamen

</td></tr><tr><td>`ping <Adresse>`</td><td>Prüft ob eine Adresse erreichbar ist.

<p class="callout info">Nicht alle Zieladressen reagieren auf `Ping`</p>

</td></tr><tr><td>`nslookup <Adresse>`

</td><td>Überprüft für eine <abbr title="Fully Qualified Domain Name">FQDN</abbr> welche IP hinterlegt ist und andersherum</td></tr><tr><td>`tcpdump`</td><td>Überwachen aller TCP-, UDP- und ICMP-Pakete.

<p class="callout danger">Kann bei längerer Ausführung zu sehr hoher Systemauslastung führen</p>

</td></tr></tbody></table>

---