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