Linux - Systemverwaltung
Inhaltsverzeichnis:
Benutzer / Gruppen
Benutzer anlegen
adduser BENUTZERNAME
Benutzer löschen
userdel [--remove-all-files]
System-Passwort für einen Benutzer setzen
passwd
Passwort auf “nicht ablaufen” setzen
chage -I -1 -m 0 -M 99999 -E -1 BENUTZER
Samba-Passwort für einen Benutzer setzen
smbpasswd –a BENUTZER
Samba-Account aktivieren
smbpasswd –e BENUTZER
Gruppe anlegen
addgroup GRUPPE
Gruppe löschen
groupdel 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
Alle Ordner löschen im aktuellen Verzeichnis (nur Ordner, sonst nichts)
rm -rf 'ls -d */'
Einen Symlink (symbolischer Link) erzeugen
ln -s /quellordner linkname
Folge dem Symlink einer Datei
readlink -f openssl
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 aller Verzeichnisse innerhalb eines Ordners berechnen und nach Größe sortieren
du -sh * | sort -h
oder
du -h --max-depth=1 | sort -h
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 benutzer1:gruppe1 /var/www
Besitzer eines Ordners ändern (nur Userbesitzer ändern)
chown --recursive
bzw.
chown z.B. chown benutzer1 /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 770 /var/www
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
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
dhclient
Prozesse und Ihre offenen Verbindungen anzeigen
lsof -P -i -n
Alle lauschenden Ports anzeigen
netstat -tulpn
oder:
ss -lpn
Offene Verbindungen ansehen
netstat -n
oder:
ss -pan
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
DNS
A-Records auflösen
dig -t A EXAMPLE.COM/IP
oder:
host EXAMPLE.COM/IP
MX-Records auflösen
dig -t MX EXAMPLE.COM
TXT-Records auslesen
dig -t TXT EXAMPLE.COM
CNAME-Records (Aliase) auflösen
dig -t CNAME EXAMPLE.COM
Den/die authoritativen Name Server einer Domain auslesen
dig -t NS EXAMPLE.COM
Steuerung des Systems / Systemeinstellungen
Rechner neustarten
shutdown -r now
oder
reboot
Rechner neustarten und ins UEFI-Setup wechseln
systemctl reboot --firmware-setup
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) \
Terminal / Shell
Die momentan verwendete Shell herausfinden
echo $0
Das virtuelle Terminal wechseln
chvt <Nummer>
Den Typ eines Befehls anzeigen (Shell intern / extern / Alias)
type <Kommando>
Systeminformationen / Überwachung / Diagnose
Das System-Start-Log anschauen
dmesg
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
Letzte Neustarts anzeigen
last | grep reboot
Die zuletzt eingegebenen Befehle anzeigen
history
Bestimmten Eintrag in der History löschen
history -d NUMMER
Im Moment angemeldete Benutzer zeigen
who oder w
Systemdienste auflisten
systemctl --type=service
Auch alle Inaktiven
systemctl list-units -all
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
GCC-Version anzeigen
gcc -v
mongoDB-Version anzeigen
mongod --version
Java-Version anzeigen
java --version
Samba-Version anzeigen
nmbd -V
Wartung / Reparatur
Festplatten-Check (Überprüfung) erzwingen
fsck.ext3 /dev/sdaX
Sonstiges
Eine Debian Paket-Datei (.deb) entpacken
tar x PAKETNAME.deb
Erfordert die Installation von bin-utils
Den Bildschirminhalt löschen
clear
Den Kalender anzeigen
cal [Jahr]
Taschenrechner
bc
Passwort erzeugen (25 Zeichen, Groß-/Kleinbuchstaben)
cat /dev/urandom | tr -dc a-zA-Z0-9 | head -c25; echo
Zeilen einer Ausgabe zählen
gibt die Anzahl an Zeilen zurück, die die Ausgabe eines Befehls erzeugt:
ls -l | wc -l