Skip to main content

Victor's Liste hilfreicher Linux Befehle

Allgemein

Laufende Prozesse auflisten

ps -au

... und auch die auflisten, die von Daemons stammen ...

ps -aux

Prozess(e) killen

Nach PID...

kill <PID>

... nach Name (alle die matchen) ...

killall <Name>

... oder mit SIGKILL, wenn nix mehr geht ...

kill -9 <PID>
killall -9 <Name>

Show live TCP network traffic for specific port

Any network interface

tcpdump -ni any port 443

Specific network interface

tcpdump -ni enp1s0 port 443

Datenträger sicher entfernen

sudo umount /dev/sdX
sudo udisksctl power-off -b /dev/sdX


USB Device Tree

lsusb -t


List block devices (HDDs, SSDs, USB-Stick, etc.)

lsblk

Mit Dateisystem Infos

lsblk -f

List disk vendor and serial number

lsblk -o name,vendor,serial,rev,type


Restliche Akkukapazität abfragen

cat /sys/class/power_supply/BAT1/capacity

Add execute permissions

chmod +x <filepath>

Advanced: Only for User and Group

chmod -R u=rwx,g=rx,o=- file.txt

List directory sizes

du -sh /*


Check listening ports (TCP, UDP and it's PID)

sudo netstat -tunlp


Check for bad blocks

Read-Only mode

sudo badblocks -sv /dev/sdX

Read-Write mode (DESTRUCTIVE! Wipes your data!)

sudo badblocks -wsv /dev/sdX

Specify block size 4096 (for most HDDs)

sudo badblocks -wsv -b 4096 /dev/sdX

Find file by filename

find /home/username/ -name "*.err"


Find string in files

grep -iRl "string" /home/user


Split File based on String

csplit -z file.txt /YOUR_STRING_HERE/ '{*}'


Log-Datei öffnen und verfolgen

tail -f /mnt/data/linuxgsm/sfserver/log/console/sfserver-console.log


Log-Dateien älter als 30 Tage löschen

find /var/log -name "*.log" -type f -mtime +30 -delete


Die 20 größten Dateien anzeigen

sudo du -a /dir/ | sort -n -r | head -n 20


Create new system account/user

sudo useradd -r -U -d /mnt/data/linuxgsm/gmodserver gmodserver

Linux Swap-Schwelle/Empfindlichkeit einstellen (swappiness)

Aktueller Wert abrufen

sysctl vm.swappiness

Sofort ändern

sudo sysctl vm.swappiness=[neuer Wert]

Dauerhafte Änderung (bleibt nach Neustart)

sudo vim /etc/sysctl.conf
Neue Zeile: vm.swappiness=[neuer Wert]


Dateisysteme beim nächsten Bootvorgang prüfen

sudo touch /forcefsck


Alle nicht benötigten Softwarepakete löschen (Debian)

sudo apt-get autoremove


Increase / decrease audio volume

Set volume to 10%

pactl set-sink-volume @DEFAULT_SINK@ 10%

Increase volume by 10%

pactl set-sink-volume @DEFAULT_SINK@ +10%


Create ramdisk (only uses memory if needed)

sudo mount -t ramfs ramfs /mnt/ramdisk


RAM Infos ausgeben (z.B. Geschwindigkeit)

sudo dmidecode --type 17


Temperaturen auslesen (lm-sensors)

sensors

Für ständige Aktualisierung

watch --interval 2 sensors


CPU Taktfrequenz anzeigen

watch --interval 2 'cat /proc/cpuinfo | grep MHz'


Rsync

Verzeichnisse synchronisieren

Zeitstempel und Größe vergleichen...

rsync -rtvu --delete-during source_folder/ destination_folder/

oder Vergleich mit Checksumme

rsync -rtvuc --delete-during source_folder/ destination_folder/


Full (System) Backup (alle Datei-Metadaten beibehalten)

Kopiert Inhalt von "source_folder" in "destination_folder" (endet mit "/").

rsync -aAXHSv --one-file-system source_folder/ destination_folder

Erstellt "source_folder" in "destination_folder" (endet nicht mit "/").

rsync -aAXHSv --one-file-system source_folder destination_folder

Während System läuft (kopiert Inhalt von "source_folder" in "destination_folder")

rsync -aAXHSv --one-file-system --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/swapfile"} source_folder/ destination_folder

ETA anzeigen lassen

rsync -rtvuc --delete-during --info=progress2 source_folder/ destination_folder/

Archives (zip, tar.gz, etc...)

Tar.gz directory

tar -vczf /mnt/backup/minecraft/server/Cycasc_S3/server-$(date +%F-%H-%M).tar.gz /mnt/data/minecraft/server/Cycasc_S3


Untar.gz archive (does not create target dir)

tar -vxzf /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.tar.gz


List tar.gz contents

tar -tvzf /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.tar.gz


Extract only one file from tar.gz

tar -vxzf /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.tar.gz in/archive/file.txt


Zip directory

zip -r /mnt/backup/minecraft/server/Cycasc_S3/server-$(date +%F-%H-%M).zip /mnt/data/minecraft/server/Cycasc_S3


Unzip archive (does not create target dir)

unzip /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.zip


List zip Content

unzip -l /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.zip


Extract only one file from zip

unzip /mnt/backup/minecraft/server/Cycasc_S3/server-2021-01-15-20-06.zip in/archive/file.txt


Dateisysteme

Force filesystem check

sudo umount /dev/sde1
sudo e2fsck -fv /dev/sde1


Image von EXT4 erstellen

Sparsefile: Datei wird so groß wie Dateisystem selbst - benötigt jedoch nicht den angegebenen Speicherplatz

sudo e2image -arp /dev/disk/by-label/data data.img


Set XFS Label

sudo xfs_admin -L "backup" /dev/sdXN


Grow Filesystem to maximum

sudo xfs_growfs /dev/sdXN


XFS Dump

Create full backup (level 0)

sudo xfsdump -l 0 -f /mnt/backup/data.xfsdump /mnt/data

create consequent incremental backup (level 1 - 9)

sudo xfsdump -l 1 -f /mnt/backup/data.xfsdump /mnt/data
sudo xfsdump -l 2 -f /mnt/backup/data.xfsdump /mnt/data
sudo xfsdump -l 3 -f /mnt/backup/data.xfsdump /mnt/data
etc...


XFS Restore

From full backup

sudo xfsrestore -f /mnt/backup/data.xfsdump /mnt/data/

from incremental backup

sudo xfsrestore -r -f /mnt/backup/data.xfsdump /mnt/data/


Images

Image file mounten

sudo mount -o loop path-to-image.img /mnt/image


Image mit mehreren Partitionen mounten

sudo kpartx -v -a path-to-image.img
sudo mount /dev/mapper/loopXpY /mnt/image


Partclone

XFS Dateisystem ohne Komprimierung als Image klonen

sudo partclone.xfs -c -s /dev/sdXY -o /mnt/data/image.img

Als RAW-Image (kann möglicherweise als loop device gemountet werden)

sudo partclone.xfs -c -s /dev/sdXY --restore_raw_file -o /mnt/data/image.img


ClamAV

Multi Threaded Scan mit Daemon

clamdscan --multiscan --fdpass --infected /directory/to/scan

Standalone scan (braucht kein Daemon, aber Singe Threaded)

clamscan --recursive --infected /directory/to/scan

Viren-Datenbank updaten

freshclam

Systemd

Service units auflisten

sudo systemctl list-units --type=service


Reboot in UEFI Setup

sudo systemctl reboot --firmware-setup


Systemd Log in Echtzeit ausgeben

sudo journalctl -u minecraft-server.service -f


KVM

List OS Variants (benötigt libosinfo)

osinfo-query os


List all VMs

sudo virsh list --all


Get VM Info

sudo virsh dominfo <name>


Shutdown VM

sudo virsh shutdown <name>


Start VM

sudo virsh start <name>


Rebooting VM

sudo virsh reboot <name>


Destroy VM

sudo virsh destroy <name>


Suspend VM

sudo virsh suspend <name>


Resume VM

sudo virsh resume <name>


mdadm

MDs auflisten

cat /proc/mdstat


RAID Status prüfen

sudo mdadm -D /dev/md/mdX


RAID 1 erstellen

mdadm --create /dev/md/md_raid1_backup1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

RAID Check / Repair

Check

sudo bash -c 'echo check > /sys/block/mdX/md/sync_action'

Repair (danach Check ausführen, um festzustellen, ob weiterhin Mismatches vorhanden sind)

sudo bash -c 'echo repair > /sys/block/mdX/md/sync_action'

Vorgang prüfen mit

cat /proc/mdstat

Vorgang abbrechen

sudo bash -c 'echo idle > /sys/block/mdX/md/sync_action'


S.M.A.R.T. (smartmontools)

Prüfen, ob Gerät S.M.A.R.T. unterstützt und aktiv ist

sudo smartctl -i /dev/sdX


SMART Werte ausgeben

Alle

sudo smartctl --all /dev/sda

Nur Errors

sudo smartctl --quietmode=errorsonly --all /dev/sda

NVMe SSDs ohne namespace angeben!

sudo smartctl --all /dev/nvme0

Test starten

Background mode (keine Unterbrechung während des Betriebs)

short = normalerweise 2 min.
long = ~200 bis 900 min. (herstellerabhängig)

sudo smartctl -t <short|long> /dev/sdX

Foreground mode (nur zu empfehlen, wenn nicht darauf zugegriffen wird)

sudo smartctl -t <short|long> -C /dev/sdX

Testergebnisse anzeigen

sudo smartctl -l selftest /dev/sdX

Parted

Parted mit einer bestimmten Disk starten

parted /dev/sde


Infos der Disk ausgeben

print


Neue GPT Partitionierungstabelle erstellen (löscht alle Daten auf der ausgewählten Disk!)

mklabel gpt


Partition über den gesamten Speicherplatz der Disk erstellen

mkpart primary 0% 100%


Partition bis zum maximal verfügbaren Speicherplatz vergrößern

resizepart 1 100%


LVM

Volume Groups anzeigen

sudo vgdisplay


Logical Volumes anzeigen

sudo lvdisplay


Neue VG anlegen

sudo vgcreate vg_data1 /dev/sdb1 /dev/sdc1


Neues LV erstellen

Angabe in Prozent des freien Speichers

sudo lvcreate -n lv_data1 -l100%FREE vg_data1

Angabe in Prozent des verfügbaren Speichers

sudo lvcreate -n lv_data1 -l100%VG vg_data1

Absolute Größenangabe

sudo lvcreate -n lv_data1 -l10G vg_data1


LV bis auf Maximum vergrößern

"-r" vergrößert das Filesystem gleich mit

sudo lvextend -r -l +100%FREE /dev/mapper/vg_data1-lv_data1


Check LVM Raid Status

sudo lvs -a -o name,copy_percent,health_status,devices vgroup


Check (scrub) LVM RAID

Check

sudo lvchange --syncaction check vg/raid_lv

Repair

sudo lvchange --syncaction repair vg/raid_lv

Status

sudo lvs -o +raid_sync_action,raid_mismatch_count vg/raid_lv


DD

Abbild einers kompletten Datenträgers erstellen und mittels GZip komprimieren

sudo dd bs=4M if=/dev/sda | gzip > /home/victor/nsu-monitoring1_2021-08-19.img.gz


GZip komprimiertes Abbild auf Datenträger schreiben

sudo gzip -dc /home/victor/nsu-monitoring1_2021-08-19.img.gz | dd bs=4M of=/dev/sda


Unkomprimiertes Abbild erstellen

sudo dd if=/dev/sda of=image.img bs=4M status=progress


Cdparanoia

Rip all tracks of Audio CD to individual files

cdparanoia -B


Mail

Eine E-Mail versenden

echo "THIS IS A TEST EMAIL" | mail -s "Enter the subject" user1@domain.com,user2@domain.com


Zeiteinstellungen

Zeiteinstellungen abfragen

timedatectl


Verfügbare Zeitzonen abfragen

timedatectl list-timezones


Zeitzone festlegen

sudo timedatectl set-timezone Europe/Berlin


Nmap

Scanne 1000 wichtigsten Ports eines Hosts

sudo nmap <host>

Scanne TCP 25565

sudo nmap -p T:25565 <host>

Scanne mit Service- und Versionserkennung

sudo nmap -sV <host>

Scanne nach bekannten Sicherheitslücken

sudo nmap -sV --script vulners <host>

Oder nur Sicherheitslücken höherstufig CVSS 5.0

sudo nmap -sV --script vulners --script-args mincvss=5.0 <host>

Ciphers eines Services auflisten

nmap -sV --script ssl-enum-ciphers -p 443 www.cycasc.net

GPG

Neues Schlüsselpaar generieren

gpg --full-generate-key


Öffentlicher Schlüssel extrahieren

gpg --output /mnt/temp/public.pgp --armor --export webmaster@cycasc.net


Privater Schlüssel extrahieren

gpg --output /mnt/temp/public.pgp --armor --export-secret-key webmaster@cycasc.net


Certbot

Certifikate für Apache Webserver von Let's Encrypt anfordern

sudo certbot --apache

Ohne die Apache Config zu verändern (evtl. muss der Cert-Pfad in der Config händisch angepasst werden)

sudo certbot --apache certonly


Certs von Certbot auflisten

sudo certbot certificates


Nvidia

Primäre GPU wechseln (PRIME)

sudo prime-select <nvidia|intel>
sudo reboot