Linux-Spickzettel
In diesem Tutorial listen wir verschiedene praktische Linux-Befehle auf, die nur als Referenz und von erfahrenen Linux-Benutzern verwendet werden können. Nicht alle Linux-Befehle werden standardmäßig auf Ihrem System verfügbar sein, also sollten Sie in Erwägung ziehen, das entsprechende Paket zu installieren, bevor Sie es verwenden.
Dieser praktische Leitfaden für Linux-Befehle listet möglicherweise Linux-Befehle auf, die Sie bereits kennen, sich aber nicht an die Verwendungssyntax erinnern können, sowie einige neue Linux-Befehle, um die Effizienz Ihrer Linux-Befehlszeile zu verbessern. Beachten Sie, dass Sie in diesem Leitfaden nicht lernen, wie Sie Linux-Befehle verwenden, da es sich auf Ihre Erfahrung verlässt, die Syntax der Linux-Befehle unten an Ihre Bedürfnisse anzupassen.
In diesem Tutorial lernen Sie:

Backup und Komprimierung
| Befehl | Beschreibung |
|---|
tar -c scripts/ | bzip2 -9 > scripts.tar.bz2
| Dieser Linux-Befehl verwendet tar und bzip2, um das Skriptverzeichnis mit maximaler Komprimierung zu komprimieren |
dd if=/dev/sda1 | gzip -c9 > /media/usb/sda1.dd.gz
| Sichern und komprimieren Sie die Partition /dev/sda1 in eine lokale Datei sda1.dd.gz |
cat /media/usb/sda1.dd.gz | gzip -d | dd of=/dev/sdX1
| Wiederherstellen einer komprimierten /dev/sda1-Partitionssicherung aus einer Datei auf eine /dev/sdX1-Partition |
dd bs=1M if=/dev/sda | gzip -c9 | ssh user@linuxconfig.org 'dd of=sda.dd.gz'
| Erstellen Sie eine komprimierte Sicherung der Festplatte /dev/sda und erstellen Sie eine Remote-Kopie mit SSH |
find /etc/ -name '*.conf' | tar -c --files-from=- | bzip2 -9 > system_confs.tar.bz2
| Suchen und komprimieren Sie alle Konfigurationsdateien ( *.conf ), die sich im Verzeichnis /etc/ befinden, in eine Datei mit dem Namen system_confs.tar.bz2 |
dd if=/dev/sdb of=my.mbr bs=466 count=1
| Sichern und speichern Sie einen Master Boot Record der Festplatte /dev/sdb in einer Datei my.mbr |
dd if=my.mbr of=/dev/sdX bs=466 count=1
| Wiederherstellen eines Master Boot Records aus der Datei my.mbr auf die Festplatte /dev/sdX |
wget --mirror https://example.com
| Erstellen Sie einen vollständigen Spiegel einer Remote-Website mit dem Befehl wget |
tar cvjf etc_$(date +%Y%m%d).tar.bz2 /etc/
| Erstellen Sie ein Archiv des Verzeichnisses /etc/ mit dem Befehl tar und komprimieren Sie es mit bzip2. Die komprimierte Datei enthält ein aktuelles Datum in einem Dateinamen. |
tar xvjf etc.tar.bz2
| Entpacken eines bzip2-Archivs etc.tar.bz2 |
find /var/www/ -name '*.gif' | xargs cp -va --target-directory=/tmp/gifs
| Suchen Sie alle GIF-Dateien ( *.gif ) in /var/www/ und kopieren Sie sie in das Verzeichnis /tmp/gifs. |
ssh user@linuxconfig.org '( mysqldump --password='pass' data > data.sql )'
| Erstellen Sie aus der Ferne eine MySQL-Datenbanksicherung der Datendatenbank in eine Remote-Datei data.sql |
split -b 1000m linux-commands.iso
| Teilen Sie eine Datei linux-commands.iso in 1-GB-Dateien auf. Dies wird xaa, xab, xac erzeugen. Dateien mit einer maximalen Größe von jeweils 1 GB. Kann bei der Arbeit mit dem FAT32-Dateisystem nützlich sein. Im Folgenden erfahren Sie, wie Sie die geteilte Datei wiederherstellen können. |
cat xa* > linux-commands.iso
| Stellen Sie eine geteilte Datei wieder in linux-commands.iso wieder her. Siehe oben, wie man eine Datei aufteilt. |
Durchsuchen des Dateisystems
| Befehl | Beschreibung |
|---|
find /opt -name 'pass*' -or -size +1000k
| Suchen Sie alle Dateien im Verzeichnis /opt, bei denen der Dateiname mit pass beginnt oder die Dateigröße 1000 KB oder mehr beträgt. Fühlen Sie sich frei, andere boolesche Operatoren wie AND und NOT zu verwenden. |
locate -r '[^/]*\.conf'
| Durchsuchen Sie den Index und suchen Sie alle Dateien mit der Erweiterung *.conf. Möglicherweise müssen Sie updatedb zuerst ausführen. |
find /home/lilo/ -type f ! -perm 755
| Suche nach allen Dateien in /home/lilo, die keine Berechtigungen haben 755 |
find /home/lilo/ -type f -perm 777
| Suche nach allen Dateien in /home/lilo mit einer Berechtigung 777 |
ls -ltr
| Listet alle Dateien in einem aktuellen Verzeichnis auf, sortiert nach Zugriffs-/Erstellungszeit |
find /tmp/ -mmin -20
| Findet alle Dateien in /tmp, die innerhalb der letzten 20 Minuten erstellt wurden |
find /tmp -iname file -exec chmod 777 {} \;
| Suchen Sie nach einer Datei mit dem Namen file (Groß-/Kleinschreibung wird nicht beachtet) und ändern Sie deren Berechtigungen auf 777 |
find /var/log/ -size 8k
| Suche nach Dateien int /var/log mit einer Größe von 8k |
find / * -perm +6000 -type f -exec ls -ld {} \; > setuid.txt
| Erstellen Sie eine Liste setuid.txt, die die Namen aller Binärdateien mit setuid und setguid enthält. |
Vernetzung
| Befehl | Beschreibung |
|---|
curlftpfs ftp-user:ftp-pass@remote.ftp.com /mnt/my_ftp/
| Mounten des Remote-FTP-Servers in ein lokales Dateisystem /mnt/my_ftp/ |
ssh user@ssh-server.com '( cd /tmp/ && touch ssh_file.txt )'
| Führen Sie Befehle remote mit ssh aus. |
ssh user@ssh-server.com '( cat /etc/passwd )' > /tmp/passwd
| Erstellen einer lokalen Kopie von remote /etc/passwd |
airodump-ng -c 6 -w data-capture wlan0
| Schnüffeln von drahtlosen Netzwerkpaketen über die WLAN0-Funkschnittstelle |
macchanger -r eth0
| Erstellen einer gefälschten MAC-Adresse für eine eth0-Netzwerkschnittstelle |
ssh -L 4500:127.0.0.1:23 linuxconfig.org
| Erstellen eines SSH-Tunnels für Telnet über den lokalen Port 4500 |
ssh -L 8025:mail.sample.org:25 mail.sample.org
| Tunneln des Datenverkehrs von einem lokalen Systemport 8025 zu Port mail.sample.org an Port 25 |
lsof -i tcp:22
| Zeigt einen Dienst an, der Port 22 verwendet |
ethtool eth0
| Status der eth0-Netzwerkschnittstelle anzeigen |
iwlist wlan0 scanning
| Suche nach verfügbaren drahtlosen Netzwerken über die wlan0-Schnittstelle |
netstat -ant
| Liste aller TCP-Ports auf dem System |
netstat -tupl
| Listet alle verfügbaren Dienste auf dem System auf |
ip route add default via 10.10.10.10
| Festlegen einer Standardroute über 10.10.10.10 |
Arithmetik und Umrechnungen
| Befehl | Beschreibung |
|---|
echo $((0xFFF))
| Konvertieren Sie die Hexadezimalzahl ( in diesem Fall FFF ) in eine Dezimalzahl mit Hilfe der Shell-Erweiterung. |
echo $((8#44))
| Konvertieren Sie die Oktalzahl ( in diesem Fall 44 ) mit Hilfe der Shell-Erweiterung in eine Dezimalzahl. |
echo "obase=16; ibase=10; 555;" | bc
| Konvertieren Sie die Dezimalzahl ( in diesem Fall 555 ) in eine Hexadezimalzahl mit Hilfe der Shell-Erweiterung. |
echo "obase=8; ibase=10; 64;" | bc
| Konvertieren Sie die Dezimalzahl ( in diesem Fall 64 ) mit der Shell-Erweiterung in eine Oktalzahl. |
echo "obase=16; ibase=8; 255;" | bc
| Konvertieren Sie die Oktalzahl ( in diesem Fall 255 ) in hexadezimal mit der Shell-Erweiterung. |
echo "3447.2 * 343.61" | bc
| Multipliziere eine Zahl. Für Addition und Subtraktion verwenden Sie "+" und "-" anstelle von "*" |
echo "scale=10; 100 / 3" | bc
| Dividieren Sie die Zahl mit einer Gleitkommagenauigkeit von 10 |
units -t '13miles' 'km'
| Meilen in Kilometer umrechnen ( z.B. 13 Meilen ) |
units -t '10.5inches' 'cm'
| Konvertieren Sie Zoll in Zentimeter (z. B. 10,5 Zoll) |
units -t '78344352ms' 'hour'
| Millisekunden in Stunden umrechnen |
Manipulation von Text
| Befehl | Beschreibung |
|---|
dd if=commands.txt of=commands.new conv=lcase
| Konvertieren Sie alle Zeichen von Großbuchstaben in Kleinbuchstaben Dadurch wird eine Quelldatei nicht geändert, sondern eine neue Datei mit dem Namen commands.new erstellt |
rename 's/\.sh$/.bash/' *.sh
| Benennen Sie alle Dateien in einem aktuellen Arbeitsverzeichnis mit der Erweiterung *.sh in *.bash um |
rename 's/^/new_/' *.conf
| Fügen Sie allen Dateien in einem aktuellen Arbeitsverzeichnis mit der Erweiterung *.conf ein Präfix new_ hinzu |
grep -v ^\# /etc/ntp.conf | grep .
| Zeigt nur unkommentierte Zeilen innerhalb einer Konfigurationsdatei sowie leere Zeilen an. |
ls | grep " " | while read -r f; do mv "$f" `echo $f | tr ' ' '_'`; done
| Entfernen von Leerzeichen aus allen Dateinamen in einem aktuellen Arbeitsverzeichnis |
ls | while read -r f; do mv "$f" `echo $f | tr '[A-Z]' '[a-z]'`; done
| Ändern Sie alle Dateinamen in einem aktuellen Verzeichnis von Großbuchstaben in Kleinbuchstaben. |
Datum und Uhrzeit
| Befehl | Beschreibung |
|---|
date -ud@1244763573
| Konvertieren einer Epochenzeit in eine koordinierte Weltzeit |
date -d "Dec 23 18:10:02 EST 2010" +%s
| Konvertieren des Datums in eine Epochenzeit |
echo 'wget -c http://linux.com/distro.iso' | at 03:00
| Laden Sie ein ISO-Image um 3 Uhr morgens herunter. -c ermöglicht es Ihnen, den Download fortzusetzen, falls die Netzwerkverbindung unterbrochen wird. |
date -d '2 Feb 2013' +%A
| Welcher Tag wäre/war der 2. Februar 2013? ...Samstag |
units -t '10 days + 6 hours + 26 minutes + 59 seconds' 'seconds'
| Zeit in Sekunden umrechnen |
Multimedia
| Befehl | Beschreibung |
|---|
wodim --devices
| Abrufen eines Dateinamens für einen Brennerblock |
cdrecord -v blank=all dev=/dev/scd0
| Löschen Sie Ihre CD-rw/löschen Sie sie vollständig. Hinweis: Verwenden Sie wodim –devices, um den Dateinamen Ihres Blockgeräts zu erhalten. |
cdrecord -v blank=fast dev=/dev/scd0
| Löschen Sie schnell Ihre CD-RW. Hinweis: Verwenden Sie wodim –devices, um den Dateinamen Ihres Blockgeräts zu erhalten. |
fmpeg -i out.wav -acodec libmp3lame out.mp3
| Konvertieren Sie das WAV-Audioformat in MP3 |
normalize-mp3 *.mp3
| Normalisieren Sie die Lautstärke für alle Ihre MP3-Audiodateien, um plötzliche Lautstärkespitzen zwischen den Titeln zu reduzieren. |
cat file1.mp3 file2.mp3 > out.mp3
| Fügen Sie alle MP3-Audiodateien zu einer einzigen Spur zusammen. |
sox file1.wav file2.wav file3.wav out.wav
| Fügen Sie alle wav-Audiodateien zu einer einzigen Spur zusammen. |
for i in $( ls ); do ffmpeg -i $i $i.wav; done
| Konvertieren Sie alle MP3- oder AC3-Audiodateien in das WAV-Format. |
normalize-audio -m *.wav
| Normalisieren Sie die Lautstärke für alle Ihre WAV-Audiodateien, um plötzliche Lautstärkespitzen zwischen den Titeln zu reduzieren. |
cdrecord -v -nofix -eject dev='/dev/scd0' -audio -pad *.wav
| Brennen Sie alle WAV-Audiodateien auf eine CD mit dem Gerät /dev/scd0 |
cdrecord -v -fix -eject dev='/dev/scd0'
| Beenden Sie eine CD-Sitzung mit dem Brenngerät /dev/scd0. |
ffmpeg -f x11grab -s xga -r 25 -i :0 -sameq screen.mpg
| Nehmen Sie ein Video Ihres Bildschirms in einer screen.mpg Videodatei auf. |
for i in $( ls *.jpg ); do convert -resize 25% $i new_$i; done
| Ändern Sie die Größe aller Bilder in Ihrem aktuellen Verzeichnis ( in diesem Fall Bilder mit der Erweiterung *jpg ) auf 25% der Originalgröße. |
mkisofs -o /tmp/cd.iso /path/to/your/files/
| Erstellen Sie ein ISO-Image aus Dateien in /path/to/your/files/ |
wodim -eject -tao speed=0 dev=/dev/scd0 -v -data /my/image.iso
| Brennen Sie ein ISO-Image mit wodim und /dev/scd0 Brenngerät. |
mount -t iso9660 /path/to/iso/file.iso /mnt/iso -o loop
| Mounten Sie das ISO-Image in ein /mnt/iso-Verzeichnis. |
xrandr --output VGA --auto
| Klonen Sie einen Videoausgang auf Ihren VGA-Anschluss. Nützlich für Präsentationen. Verwenden Sie xrandr ohne Argumente, um zu sehen, ob VGA an einen Projektor angeschlossen ist. |
arecord -d 10 /tmp/out.wav
| Testen Sie Ihr Mikrofon. |
Festplattennutzung und -verwaltung
| Befehl | Beschreibung |
|---|
time dd if=/dev/hdb of=/dev/null bs=1024k
| Zerstörungsfreier Test der Festplattengeschwindigkeit und -größe. Ersetzen Sie /dev/hdb durch Ihre Festplatte. |
du -m --max-depth 1 | sort -rn | head -11
| Ermitteln Sie die Verzeichnisgröße aller Verzeichnisse in einem aktuellen Arbeitsverzeichnis, sortieren Sie sie und zeigen Sie die ersten 10 größten Verzeichnisse an. Hinweis: Das erste Verzeichnis ist ein übergeordnetes Verzeichnis. |
du -s * | sort -k1,1rn | head
| Zeigen Sie die Top 10 der größten Dateien oder Verzeichnisse in einem aktuellen Arbeitsverzeichnis an. |
dd if=/dev/zero of=/sp bs=10000 count=10000; mkswap /sp; swapon /sp
| Erstellen Sie eine /sp-Datei mit einer Größe von 100 MB, generieren Sie eine Auslagerungssignatur und fügen Sie die /sp-Datei in den Auslagerungsspeicher des Gesamtsystems ein. Dadurch werden weitere 100 MB zum Swap Ihres Systems hinzugefügt. |
dpkg-query -Wf='${Installed-Size;10}\t${Package}\n' | sort -k1,1rn
| Nur DEB-Paketverwaltung. Zeige alle installierten Pakete an und sortiere sie vom größten zum kleinsten. |
rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1rn
| Nur RPM-Paketverwaltung. Zeige alle installierten Pakete an und sortiere sie vom größten zum kleinsten. |
head -c 100000000 /dev/urandom > file.data
| Erstellen Sie eine file.data mit zufälligen Daten und einer Größe von ca. 100 MB. |
dd bs=1 seek=2TB if=/dev/null of=~/large-file
| Erstellen Sie eine 2 TB ~/große Datei, die keinen Speicherplatz benötigt. |
df -h .
| Informationen über den freien Speicherplatz für eine Partition, die sich unter Ihrem aktuellen Arbeitsverzeichnis befindet. |
Hardware-Informationen
| Befehl | Beschreibung |
|---|
biosdecode
| Rufen Sie BIOS-Informationen ab. |
dmidecode -s bios-vendor
| Abrufen Ihres BIOS-Anbieters |
dmidecode --type baseboard
| Abrufen von Informationen über Ihr Motherboard |
ls -la /dev/disk/by-id/usb-*
| Dateien von USB-Festplattengeräten. HINWEIS: Der USB-Datenträger muss eingesteckt sein. Funktioniert möglicherweise nicht auf allen Systemen. |
hdparm -I /dev/sdx
| Festplattenmodell von /dev/sdx. |
hdparm -tT /dev/sdx
| Geschwindigkeit der Festplatte. HINWEIS: Bei diesem Test wird ein Dateisystem nicht berücksichtigt. |
hddtemp /dev/sda
| Überprüfen Sie die Temperatur der /dev/sda-Festplatte |
lspci | grep VGA
| Abrufen von Informationen zu Ihrer Grafikkarte |
dmidecode --type 4
| Rufen Sie Ihre Prozessorinformationen ab. Versuchen Sie es auch mit cat /proc/cpuinfo |
x86info -a 2> /dev/null | grep Connector | uniq
| Rufen Sie einen Prozessorsockeltyp ab. Damit dies funktioniert, müssen Sie einen x86info-Befehl zur Verfügung haben. Versuchen Sie, das x86info-Paket zu installieren. |
dmidecode -t 17
| Ermitteln Sie die Anzahl der verwendeten RAM-Steckplätze, deren Geschwindigkeit und Größe. Versuchen Sie auch: lshw -C memory -short |
cat /dev/sndstat
| Überprüfen Sie die Einstellungen Ihrer Soundkarte und das verwendete Modul. |
powersave -b
| Abrufen von Informationen zur Batterie. |
free -m
| Überprüfen Sie den freien Speicher des Systems. Dazu gehört auch der Auslagerungsspeicher. Alternativen sind: top, cat /proc/meminfo |
fdisk -l | grep GB
| Überprüfen Sie die Größe aller Festplatten einschließlich USB. |
Tipps & Tricks
| Befehl | Beschreibung |
|---|
head -c 4 /dev/urandom | mimencode
| Generiere 8 zufällige Zeichen. HINWEIS: mimencode ist Teil des metamail-Pakets |
echo "DISPLAY=$DISPLAY xmessage -center 'abc'" | at "NOW +1hour"
| Zeigen Sie in einer Stunde eine GUI-Meldung in der Mitte Ihres Bildschirms an. |
:(){ :|:& };:
| Gabel-Bombe. Einfache Möglichkeit, Ihr System zum Absturz zu bringen. |
ccrypt mypasswords.txt
| Verschlüsseln Sie eine Datei. |
ccdecrypt mypasswords.txt.cpt
| Entschlüsseln Sie eine zuvor verschlüsselte Datei mit ccrypt. |
Abschließende Gedanken
Fühlen Sie sich frei, jederzeit auf diesen Spickzettel zu verweisen, wenn Sie eine schnelle Auffrischung benötigen. Das Ziel hier ist es, Ihnen so viel Zeit wie möglich zu sparen, wenn Sie versuchen, sich einen bestimmten Befehl zu merken.
Zwei weitere Befehle, die jeder Benutzer kennen sollte, sind der Befehl man und der Befehl apropos. Wenn Sie diese beiden Befehle kennen, die sehr einfach zu bedienen sind, können Sie alle Optionen nachschlagen, die zu bestimmten Befehlen gehören. Apropos eignet sich auch gut als manuelles Suchprogramm, sodass Sie Ihr Terminal nicht sehr oft verlassen müssen.