Hinweis: Diese Befehle beziehen sich (mit einigen Ausnahmen) hauptsächlich auf Debian und wurden auch dort getestet.

Paketverwaltung (APT)

Das System aktualisieren (Simulation)
apt upgrade -s

Ein Paket installieren
apt install PAKETNAME

Ein heruntergeladenes .DEB-Paket installieren
dpkg --install PAKETNAME

Installiertes Paket entfernen
apt remove PAKETNAME

Installiertes Paket entfernen und Konfigurationsdateien mit entfernen
apt remove --purge PAKETNAME

Überflüssige Abhängigkeiten entfernen
apt autoremove

Ein installiertes Paket neu konfigurieren
dpkg-reconfigure PAKETNAME

Nach einem Paket suchen
apt-cache search PAKETNAME

Informationen zu einem Paket anzeigen
apt-cache show PAKETNAME

Zu welchem Paket gehört eine bestimmte Datei?
dpkg -S /etc/datei

Die Abhängigkeiten eines Pakets anzeigen
apt-cache showpkg PAKETNAME

Alle installierten Pakete anzeigen lassen
dpkg -l | more

RPM- in DEB-Paket umwandeln
alien PAKETNAME

RPM- in DEB-Paket umwandeln und sofort installieren
alien -i PAKETNAME

Benutzer / Gruppen

Benutzer anlegen:
adduser BENUTZERNAME

Benutzer löschen:
deluser [--remove-all-files]

System-Passwort für einen Benutzer setzen:
passwd

Samba-Passwort für einen Benutzer setzen:
smbpasswd –a BENUTZER

Samba-Account aktivieren:
smbpasswd –e BENUTZER

Gruppe anlegen:
addgroup GRUPPE

Gruppe löschen:
delgroup GRUPPE

Alle existierenden Benutzer anzeigen
cat /etc/passwd

Alle existierenden Gruppen anzeigen
cat /etc/group

Mitglieder einer Gruppe anzeigen
members GRUPPE

Benutzer einer Gruppe zuordnen:
gpasswd –a BENUTZER GRUPPE

Benutzer aus Gruppe entfernen:
gpasswd –d BENUTZER GRUPPE

Welchen Gruppen gehöre ich an?
groups

Gruppenmitgliedschaften eines Benutzers anzeigen
groups BENUTZER

Mit Dateien und Ordnern arbeiten

Alle Dateien anzeigen (auch Versteckte), sortiert nach Dateigörße
ls -lah --sort=size

Geöffnete Dateien anzeigen
lsof

Einen Ordner anlegen
mkdir ORDNERNAME

Einen Ordner löschen (nur leere Ordner)
rmdir ORDNER

Einen Ordner samt Inhalt löschen
rm -rf ORDNER

Eine leere Datei anlegen
touch Datei

Mehrere Dateien auf einmal anlegen
touch Datei{1..10}

Eine Datei/Ordner umbenennen
mv DATEI DATEI_NEU

Den Inhalt einer Datei ausgeben
cat /Pfad/Datei

Den Inhalt einer Datei ausgeben (scrollbar)
less /Pfad/Datei

Eine ISO-Datei mounten
mount -o loop /Datei.iso /media/ordner

Eine Datei nach mehreren Begriffen durchsuchen
egrep '(reject|error|warning|fatal|panic):' /var/log/mail.log

Den aktuellen Pfad zeigen, in dem man sich befindet
pwd

Größe eines Verzeichnisses und dessen Unterverzeichnisse/Dateien anzeigen
du -h VERZEICHNIS

Größe eines Verzeichnisses und dessen Unterordner/Dateien berechnen, aber nur die Unterordner ausgeben (keine Dateien)
du -h --max-depth=1

Nach einer Datei suchen
find -name DATEI -type f
bzw.
find / -name DATEI -type f (vom Root-Verzeichnis an suchen)
bzw. Groß-/Kleinschreibung ignorieren
find / -iname DATEI -type f

Alle Ordner mit einem bestimmten Namen finden und löschen (rekursiv)
find / -iname "OrdnerDenIchLöschenWill" -type d -exec rm -rf {} \;

Alle Dateien mit einem bestimmten Namen finden und löschen (rekursiv)
find / -iname "DateiDieIchLöschenWill" -type f -delete

Den Dateityp einer Datei ermitteln
file /PFAD/DATEI

Alle Dateien ab einer bestimmten Dateigröße
find / -size +50000k 2> /dev/null

Nach Textinhalt innerhalb einer Datei suchen
find / -type f | xargs grep "Suchbegriff" 2> /dev/null

Dateien suchen die eine bestimmte Berechtigung besitzen
find -type f -perm 660

Den vollständigen Pfad zu einem Programm anzeigen
which PROGRAMM
z.B. which gcc

Gepackte Ordner & Dateien

Ein komprimiertes tar-Archiv (.tgz) erstellen
tar -cvzf archivefilename.tgz *
(erstellt ein komprimiertes tar-Archiv aller Dateien und Unterverzeichnisse im aktuellen Verzeichnis)

Eine gepacktes tar (.tgz)-Archiv entpacken
tar xfv ARCHIVDATEI

Einen einzelnen Ordner innerhalb eines gepackten Archivs entpacken
tar xfv Archivdatei.tar.gz var/www/MeinOrdner

Eine einzelne Datei oder einen einzelnen Ordner aus einem Archiv entpacken
tar xfv ARCHIVDATEI Ordner1/

Eine bz2-Datei entpacken
bunzip2 ARCHIVDATEI

Ein ZIP-Archiv serstellen
zip ARCHIV.ZIP Datei1 Datei2 Datei3

Ein ZIP-Archiv entpacken
unzip ARCHIV.ZIP

Den Inhalt einer Archivdatei ansehen
zcat DATEI
z.B. zcat datei.tar

Zugriffsrechte

Besitzer eines Ordners ändern (User & Gruppe)
chown USER:GRUPPE /ORDNER z.B. chown schakal:apache /var/www

Besitzer eines Ordners ändern (nur Userbesitzer ändern)
chown --recursive
bzw. chown z.B. chown schakal /var/www

Besitzer eines Ordners ändern (nur Gruppenbesitzer ändern)
chgrp --recursive z.B. chgrp –recursive apache /var/www

Zugriffsrechte einer Datei/eines Ordners ändern
chmod xxx (Zahl) z.B. chmod 770 /var/www
Infos zu Zugriffsrechte: chmod 7(Besitzer) 7(Gruppe) 7(Alle andern)
Lesen: 4
Schreiben: 2
Ausführen: 1 (Soll der User also lesen und schreiben können, muss ’6’ eingestellt werden.)

Zugriffsrechte nur für Ordner ändern
find . -type d -print0 | xargs -0 chmod 644
Erklärung:
der Punkt gibt an, dass ab dem aktuellen Verzeichnis begonnen werden soll
-type d legt fest, dass nur Ordner von CHMOD betroffen sind

Zugriffsrechte nur für Dateien ändern
find . -type f -print0 | xargs -0 chmod 644

Netzwerk

Freigegebene Ressourcen eines PCs im Netzwerk ansehen
smbclient -N -L RECHNERNAME

Samba-Benutzer anzeigen
pdbedit -L
bzw.
pdbedit -L -v

Offene (geöffnete) Samba-Verbindungen anzeigen
smbstatus

Netzlaufwerk (Samba) mounten
mount -t cifs //192.168.0.2/c$ /mnt/irgendwas -o username=BENUTZER,password=PASSWORT
oder:
mount -t smbfs//192.168.0.2/c$ /mnt/irgendwas -o username=BENUTZER,password=PASSWORT

Einen Ordner über SecureCopy (SCP) kopieren
scp -r /var/Ordner <Zielserver>:/ziel/pfad/

Die DHCP-Adresse erneuern
dhclient3
Beispiel: dhclient3 eth0
oder evtl. dhclient eth0

Prozesse und Ihre offenen Verbindungen anzeigen
lsof -P -i -n

Alle lauschenden Ports anzeigen
netstat -tlpn

Die Routing-Tabelle anzeigen
route

Eine statische Route zu einem Netz hinzufügen
route add -net 10.8.0.0 netmask 255.255.255.0 gw 192.168.0.1

Eine statische Route wieder entfernen
route del -net 10.8.0.0 netmask 255.255.255.0

Steuerung des Systems / Systemeinstellungen

Rechner neustarten
shutdown -r now
oder
reboot

Rechner herunterfahren
shutdown -h now
oder
halt

Datum anpassen
date -s 12/24/09
Damit wird das Datum auf den 24.12.2009 gesetzt - und leider die Uhrzeit auf 00:00:00

Uhrzeit anpassen
- evtl. zuerst mit "dpkg-reconfigure tzdata" die Zeitzone einstellen (Europe/Berlin)
- dann mit "date --set=hh:mm:ss" die Uhrzeit einstellen (localtime)
- die BIOS-Uhr einstellen:
hwclock --set --date UHRZEIT (z.B. hwclock --set --date 09:32)
bzw.
hwclock --systohc (dann übernimmt er die Uhrzeit von "date")

Uhrzeit mit einem PC im LAN/Internet abgleichen
- ntpdate SERVERNAME
- Dann (optional, um die Hardware-Uhr abzugleichen): hwclock --systohc

Dienste die beim Systemstart geladen werden ein-/ausschalten
rcconf

Einen dienst deinstallieren
update-rc.d -f DIENST remove

Den im System eingestellten Zeichensatz (Charset) ändern
dpkg-reconfigure locales

Festplatten Partitions-Programm
fdisk
oder
cfdisk (mit erweiterter Benutzeroberfläche)

Systeminformationen / Überwachung / Diagnose

Die momentan verwendete Shell herausfinden
echo $0

Das System-Start-Log anschauen
dmesg

Offene Verbindungen ansehen
netstat -n

Die IP-Adresse anzeigen
ip a
oder
hostname -i

Datei im Live-Modus betrachten (Änderungen überwachen)
tail -f /pfad/zur/datei

Den aktuell angemeldeten Benutzer anzeigen
whoami

Sehen wie lange der Rechner schon eingeschalten ist
uptime

Letzte Logins/Anmeldungen am Rechner anzeigen
last, lastlog

Die zuletzt eingegebenen Befehle anzeigen
history

Im Moment angemeldete Benutzer zeigen
who oder w

Alle Logins der Vergangenheit anzeigen
last

Systemdienste auflisten
systemctl --type=service

Infos über die CPU abrufen
cat /proc/cpuinfo

Kernel-Version anzeigen
uname -r
bzw.
uname -a
oder
cat /proc/version

Distributions-Informationen ausgeben
cat /etc/*_ver* /etc/*-rel*
oder
lsb_release -idrc

Unter welchem Benutzer läuft ein Dienst ?
ps aux | grep -i DIENSTNAME
z.B.
ps aux | grep -i apache2
Ausgabe:
www-data 24177  0.0  0.2  28792  6216 ?        S    12:10   0:00 /usr/sbin/apache2 -k start

Computername anzeigen lassen
hostname

Infos über PCI-Geräte ausgeben
lspci (Paket pciutils wird benötigt)

Infos über Modell der Netzwerkkarte ausgeben
lspci | grep Ethernet

Infos über USB-Geräte ausgeben
lsusb

Alle laufenden Prozesse & Rechnerauslastung anzeigen
top

Alle gestarteten (laufenden) Dienste anzeigen
ps -e

Speicherauslastung anzeigen (RAM und SWAP)
free -m

Aktuelle Netzwerkauslastung anzeigen (Durchschnitts-Geschw., Peaks usw.)
iftop

Freien Plattenplatz (und das Dateisystem) anzeigen
df -hT
bzw. nur ext4-formatierte physische Platten zeigen
df -ht ext4

Größe eines Ordners und dessen Unterordner anzeigen
du -h

Die Festplatten-Auslastung zeigen (pro Prozess)
iotop
(zuvor muss das gleichnamige Paket installiert werden)

Infos über Partitionen anzeigen (UUID, Mountpoint, Labels...)
blkid

Block Devices anzeigen
lsblk

Partitionen der Festplatte anzeigen
cat /proc/partitions

Informationen zur Festplatte anzeigen (Seriennummer, Modell, Firmware...)
hdparm -i /dev/sdX

Informationen über den Arbeitsspeicher ausgeben
cat /proc/meminfo

Infos über die komplette Hardware ausgeben
hwinfo

Infos über eingebaute Festplatte anzeigen (Größe, Label...)
fdisk -l

"Mount Count" der Festplatte anzeigen
dumpe2fs -h /dev/sdaX | grep -i "mount count"

Die eingestellte Landessprache des Betriebssystems anzeigen
echo $LANG

Den im System eingestellten Zeichensatz (Charset) anzeigen
locale -a

die Cronjobs aller Benutzer anzeigen lassen
for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done

Informationen zu installierten Software-Paketen

Version von GCC anzeigen
gcc -v

Samba-Version anzeigen
nmbd -V

Wartung / Reparatur

Festplatten-Check (Überprüfung) erzwingen
fsck.ext3 /dev/sdaX

Sonstiges

Den Bildschirminhalt löschen
clear

Den Kalender anzeigen
cal [Jahr]

Taschenrechner
bc

Zeilen einer Ausgabe zählen
gibt die Anzahl an Zeilen zurück, die die Ausgabe eines Befehls erzeugt:
ls -l | wc -l