19.04.2023

Linux allgemeine Befehle

Dateiverwaltung
Installation von Programmen
suchen und finden
Zugriff auf Dos Disketten
Texte bearbeiten
Komprimieren von Dateien
Prozessverwaltung
Verwaltung von Benutzern und Gruppen
Administration des Dateisystems
Bildschirm und Terminal
Online-Hilfe
System
Systemtools
Drucken
X Windows Befehle
Netzwerk
sonstige Befehle
Befehls Beispiele

Links:
Freshmeat
Sourceforge
RPM Seek
Synaptics-Touchpad Treiber
ALSA Projekt
Tux Mobil
Linmodem
Prompt Generator
DistroWatch
Solus Projekt mit Mate und Budgie
KaOS - KDE Linux Distribution

Backup Programme:
Amanda
Bacula
areca
DAR - Disk ARchive - Konsolenbackup, BackupScript1, BackupScript2
Paket dirvish auf Basis von rsync

Seitenanfang

STDIN STDOUT und STDERR

Es gibt drei "Standardkanäle" für Ein- und Ausgabe, STDIN (Standardeingabe), STDOUT (Standardausgabe) und STDERR (Standardfehlerausgabe). Ein Benutzer hat z. B. die Tastatur als Standardeingabe und den Bildschirm als Ausgabe.
Mit einer Pipe (|), kann man die STDOUT eines Programmes zur STDIN eines anderen lesenden Programm umleiten.

- Standard Input: STDIN (0)
- Standard Output: STDOUT(1)
- Standard Error Output: STDERR (2)

> oder 1> leitet die Standardausgabe um, Fehler werden weiterhin auf der Konsole angezeigt z.B. "ls -l > files.txt" oder "ls -l 1> files.txt"
2> wenn Standardfehlerausgabe wird umgeleitet.z.B "./configure 2> error.txt"
>& Standardausgabe und Standardfehlerausgabe umleiten

z.B.
ping -c5 domain.de 2> ping-error.txt 1> ping-success.txt
hier werden die Fehler (STDERR) nach "ping-error.txt" und die normale Programm Ausgabe (STDOUT) nach "ping-success.txt" geleitet.

ping -c5 domain.de > ping-out.txt 2>&1
bei dem Beispiel wird STDERR an die STDOUT (2>&1) geleitet und diese wiederum in die Datei "ping-out.txt", ohne die Umleitung von STDERR würden die Fehler am Bildschirm ausgegeben.

mail -s "ein Brief" username < brieftext.txt
bei diesem Beispiel wird eine Mail mit dem Betreff "ein Brief" erstellt und der Nachrichtentext von STDIN aus der Datei brieftext.txt übernommen.

tar cvf backup.tar * | tee backup.log
mit tee kann man die Standardausgabe in eine Datei schreiben lassen und die Ausgabe an der Konsole wird auch noch durchgeführt,.was mit > nicht mehr sein würde.

du ~ | sort -rn | less
Platzverbrauch der Dateien im Home Verzeichnis anzeigen, STDOUT wird STDIN für sort -rn umgekehrt numerisch sortieren und mit less seitenweise anzeigen.

Beispiele für Programme
"echo" gibt einen String auf STDOUT aus
"cat" gibt eine Datei auf STDOUT aus
"grep" durchsucht Input-Streams nach bestimmten Zeichen
"sort" sortiert Input-Streams zeilenweise

Seitenanfang

Zugriffsrechte auf Dateien 

Typ u Eigentümer (user) g Gruppe (group) o Andere (others)
r w x r w x r w x

Typ

d Verzeichnis
l Symbolischer Link (Verweis)
- normale Datei
b Blockorientiertes Gerät (Device)
c Zeichenorientiertes Gerät
p FIFO-Datei (named pipe)
s Unix domain socket

Symbol Rechtegruppe

u Eigentümer (user)
g Gruppe (group)
o Andere (others)
a Alle (all)

Symbol Recht

Buchstabe Oktalzahl Bedeutung
- 0 Recht(e) entfernt
x 1 Ausführungsrecht
w 2 Schreibrecht
r 4 Leserecht
s 4 - 2 Setuid - Bit
t 1 t-Bit (Sticky-Bit)

- Setuid-Bit (ersetzt das x-Flag) ist ein spezielle Zusatzangabe für ausführbare Dateien, wenn man es für den Eigentümer (4) und/oder Gruppe (2) setzt, wir die Datei mit den Rechten des Dateieigentümers und/oder Gruppe ausgeführt. Ist es für ein Verzeichnis einer Gruppe gesetzt, gehören alle neu angelegten Dateien der Gruppe mir dem Setuid-Bit.
- Sticky-Bit (ersetzt das x-Flag) wenn es bei Programmen gesetzt ist, bleibt dieses nach dem Ausführen im Speicher (beschleunigt den Start von oft benutzten Programmen). Bei Verzeichnissen in die man Schreibrechte besitzt, kann man normalerweise jede Datei löschen, auch wenn sie einem anderen Benutzer gehört, das verhindert das t-Bit. Trotz Schreiberlaubnis, kann man nur seine Dateien löschen.
- Oktalzahlen Der Wert 754 bedeutet alle Rechte für Besitzer (4 + 2 + 1 = 7), Lesen und Ausführrechte für die Gruppe (4 + 1 = 5) und nur Leserechte für alle anderen.
chmod 754 datei
- mit "umask" kann man den Standard-Rechte festlegen, mit den Dateien/Verzeichnisse angelegt werden. Es wird bei "umask" mit Oktalzahlen festgelegt, welche Rechte entzogen werden, "umask 0022" legt fest, das neue Dateien mit den Rechten 0644 und Verzeichnisse mit den Rechten 0755 angelegt werden, da neu erzeugte Dateien standardmässig nie ausführbar sind.
umask 0022
umask u=rwx,g=rx,o=rx

Beispiele
- für den Besitzer der Datei das Recht ausführen hinzufügen
chmod u+x datei
- für eine Gruppe die Rechte lesen und schreiben entfernen
chmod g-rw datei
- für eine Gruppe und Other das Recht lesen und ausführen setzen (das = gibt an, das genau diese Rechte gesetzt werden, alles andere wird für die Gruppe und Other entfernt) und Setuid-Bit für den Eigentümer setzen.
chmod go=rx,u+s datei
chmod 4755 datei
- einer Gruppe das Recht schreiben für alle Dateien und Unterverzeichnisse des angegeben Verzeichnisses entfernen.
chmod -R g-w Verzeichnis
- Allen den Vollzugriff auf das Verzeichnis /tmp einrichten und das t-Bit setzen.
chmod 1777 /tmp

Die erste Besonderheit betrifft das Bit t des Verzeichnisses /tmp. Der Buchstabe steht in diesem Fall für »save program text on swap device« und bewirkt, dass in dieses Verzeichnis zu schreibende Daten so lange wie möglich nur in der Swap-Partition (bzw. Hauptspeicher) existieren und eventuell erst beim Shutdown des Systems tatsächlich zurückgeschrieben werden. Für kurzlebige Daten (temporäre Daten) kann ein solches Verhalten zur Performancesteigerung beitragen, da zeitaufwändige Schreiboperationen vermieden werden. Wird das Flag auf ein normales Verzeichnis angewandt, darf dessen Besitzer Dateien anderer Benutzer aus diesem Verzeichnis nicht löschen (das trifft auch auf /tmp! zu). In diesem Zusammenhang spricht man auch vom »Sticky Bit«. s-Bits »set user or group ID on execution«

Recht Bitdarstellung Wert

t-Flag 0000 0001 1
s-Flag der Gruppe 0000 0010 2
s-Flag des Eigentümers 0000 0100 4
Seitenanfang

SYSTEM Befehle

loadlin Parameter VGA
vga=0 80x25 70Hz 720x400
vga=1 80x50 70Hz 720x400
vga=2 80x43 70Hz 720x400
vga=3 80x28 70Hz 720x400
vga=4 80x30 60Hz 640x480
vga=5 80x34 60Hz 640x480
vga=6 80x60 60Hz 640x480
vga=7 132x25 68Hz
vga=8 132x43 68Hz
vga=9 132x50 68Hz
vga=a 132x60 58Hz

 

loadlin startel Linux unter Dos (mem=0x8000000 - benutzt 128 MB Speicher statt 64 MB, mem=0x20000000 bei 512MB)
insmod <path/Modul> Module laden aus /lib/modules/<Version>
insmod /path/rtl8139.o irq=11 Modul mit Parametern laden
rmmod <Modul> entladen der Module (wenn Modul nicht in Benutzung ist)
rmmod -f <Modul> schnelles entladen der Module
depmod erzeugt Datei /lib/modules/<Version>/modules.dep mit den Abhänigkeiten der Module untereinander
modprobe <Modul> laden und entladen eines Modules mit Berücksichtigung der Abhänigkeit von anderen Modulen
lsmod zeigt geladene Module an
modinfo <modulname> zeigt Info zum Modul

pnpdump -c > /etc/isapnp.conf  Konfigurationsdatei für die ISAPNP Karten erstellen.
isapnp PNP Karten initialisieren

init 0=System halt
  S=Single User
  1=Multi User ohne Netz
  2=Multi User mit Netz
  3=Multi User mit Netz X Windows
  4=Frei
  5=Frei
  6=Reboot

Der Standard-Runlevel wird in der Datei /etc/inittab konfiguriert. Im Beispiel ist der Runlevel 2 als Standard definiert.

id:2:initdefault:

SuSEconfig trägt Änderungen der Datei /etc/rc.config in System ein (immer nach modifizieren der Datei starten

setserial serielle Schnitts. konfigurieren S.206
free zeigt freien Arbeitsspeicher an
if-config zeigt Konfiguration an

Runlevel editieren

unter Debian und ähnlichens Systemen

Autostart eines Dienstes deaktivieren

update-rc.d -f avahi-daemon remove

Autostart eines Dienstes aktivieren

update-rc.d avahi-daemon defaults

unter Gnome RunLevel GUI
System | Systemverwaltung | Dienste

Seitenanfang

Dateiverwaltung

Befehl Beschreibung
cp [Quelle] [Ziel] kopiert Dateien von der angegebenen Quelle zum Ziel
cat [Datei] zeigt Datei an, Ausgabe von Dateien
more [Datei] zeigt Datei Seitenweise an
touch [Datei] erzeugt eine leere Datei
yes 'das ist der Text' > text.txt füllt eine Datei mit den angegebenen test (bis man mit CTRL-C abbricht oder ein Limit erreicht ist)
cat > new.sh
#!/bin/sh
...
...
^D
neue Datei erzeugen und mit Inhalt füllen, nach der Taste STRG-D wird die Datei "new.sh" geschlossen und angelegt.
cd Verzeichnis wechseln (cd ohne Verz. angabe wechsel ins HOME Verz.)
cd $OLDPWD wechselt ins vorherige Verzeichnis zurück
cd - wechselt ins vorherige Verzeichnis zurück (gleich $OLDPWD)
ln quelle ziel symbolischen Link erstellen
ln -s ch.2.4 check erzeugt Symbolischen Link check auf Datei ch.2.4
ln -s -d /Quellverz. /Path/zum/Ziel erzeugt Symbolischen Link eines Verzeichnisses
ls Inhaltsanzeige (ls -l |more ausführlich Seitenweise)
ls -la Directory Dateien eines Verzeichnisses als Liste (-l) und versteckte Dateien (-a) anzeigen
ls -ld Directory Verzeichnis anzeigen, nicht dessen Dateiens
ls -SAhl --group-directories-first sortiert nach Dateigröße (-S), Ordner am Anfang der Liste (--group-directories-first), Größenangeben in menschenlesbarem Format ausgeben (-hl)
ls *[tg]if gibt "GIF" und "TIF" Dateien eines Verz. aus.
ls *[!tg]if gibt keine "GIF" oder "TIF" Dateien eines Verz. aus.
ls -d */ nur Verzeichnisse anzeigen (*/), Verzeichnisnamen nicht den Inhalt anzeigen (-d)
stat [Datei] Metadaten der Datei anzeigen
   
mkdir [Verz] Verzeichnis erstellen
mkdir -m=770 -p /path/Verz1/Verz[1-5] Verzeichnis mit passenden Rechten erstellen (-m), eine Verz. Struktur erstellen (-p)
mv umbewegen
mv bin ~ verschieb bin Verzeichnis nach Home/bin
rm löschen
rm -r bin löscht bin Verzeichnis
rmdir [Verz] Verzeichnisse löschen
rm -rf [Verz] Dateien/Verzeichnisse unterhalb des [Verz] löschen
split zerlegt eine Datei in Teildateien mit vorgegebener Grösse
tee [-option] Datei dupliziert die Standardeingabe einmal an der Konsole und gleichzeitig in eine Datei
pwd ziegt Aktuelles Verzeichnis an (absoluter Path)
pushd legt beim Verzeichniswechsel einen Stapel an (z.B. pushd /home; pushd /etc) wenn man jetzt nur noch pushd eingibt, kann man zwischen den beiden Verzeichnissen hin und her wechseln
pushd +zahl Reihenfolge der Einträge des Stapels wechseln (zahl von 0 an)
popd entfernt den letzten Eintrag aus dem Stapel
dirs Stapel Anzeigen "dirs -p" zeigt einen Eintrag pro Spalte "dirs -c" wird der Stapel gelöscht
umask 022 legt die Standardrechte fest, mit denen eine Datei\Verzeichnis angelegt wird (bei "umask 022" werden Dateien\Verzeichnisse mit den Rechten 0755 angelegt) Linux-Standard umask 027.
cmp datei1 datei2 vergleicht zwei Dateien
diff3 datei1 datei2 datei3 vergleicht drei Dateien
diff datei1 datei2 vergleicht zwei Dateien
diff -u datei1 datei2 > patch.diff erzeugt ein Patchfile mit den Unterschieden (die Änderungen der datei2 gegenüber datei1 werden im patchfile aufgezeigt)
patch -b -p0 < patch.diff schreibt die Änderungen der datei2 in die datei1 und erstellt ein Backupfile (-b).aktuelles Verzeichniss (-p0)
diff datei1 datei2 datei3 vergleicht drei Dateien
vimdiff datei1 datei2 vergleicht bis zu vier Dateien (vim -d = vimdiff) -o teilt den Schrim horizontal (Kommando ":help diff" im vim zeigt Hilfe an)
1c1 Zeile 1 unterscheidet sich (c - change), wenn die 1 Zeile geändert wird, stimmen die Dateien überein
5a6,10 hinter Zeile 5 der ersten Datei die Zeilen 6-10 der zweiten Datei angehängt (a - append) werden müssen damit die Dateien gleich sind.
Seitenanfang

Installation von Programmen

Befehl Beschreibung
tar xvfz [Archiv] Archiv entpacken
./configure Installation vorbereiten
./configure --prefix=/opt/Verz Installation eines Programmes in das Verzeichnis /opt/Verz (nach "make install")
make install Programm installieren
make && make install Programm compilieren, wenn das ohne Fehler lief, wird das Prog installieren
make -n install führt das Kommandos nicht wirlich aus; zeige sie nur an
make uninstall Deinstallation einer Programmes das aus den Sourcecode installiert wurde
chkconfig Liste der aktivierten Dienste
chkconfig <Dienst> on/off einen Dienst aktivieren oder deaktivieren
Paketmanagen  
yum RedHat, Fedora
yast2 Suse
dselect, aptitude Debian

- Doppelte Einträge in der RPM Datenbank anzeigen

rpm -qa --qf '%{NAME},%{ARCH}\n' | sort | uniq -d

- RPM Datenbank erneuern

mkdir /tmp/oldrpmdb
mv /var/lib/rpm/__db.* /tmp/oldrpmdb
rpm --rebuilddb
Seitenanfang

suchen und finden

Befehl Beschreibung
locate Dateisuche, Datenbank unter /var/lib/locatedb, Konfiguration unter /etc/updatedb.conf
whereis <Befehl> sucht Dateien in typ. bin- Verzeichnissen
which <Befehl> lokalisiert den Befehl indem es den PATH durchsucht und den Fundort anzeigt

- nach einer Datei suchen, ab dem aktuellen Verzeichnis
find . -name fstab
- nach einer Datei suchen, ab dem aktuellen Verzeichnis, Fehler (keine Berechtigung) werden nicht angezeigt
find / -name fstab 2> /dev/null
- findet alle Dateien die auf .tmp enden und zeigt diese mittels ls -al an.
find / -name "*.tmp" 2> /dev/null -exec ls -al "{}" \;
- sucht alle Dateien die neuerer als fstab sind
find / -newer /etc/fstab
- ab dem aktuellen Verzeichnis, alle Dateien die grösser als 10KByte sind
find . -size +10k
- ab dem aktuellen Verzeichnis, alle Dateien der Grösse 1001Byte bis 1999Byte
find . -size +1000c -size -2000c
- ab dem aktuellen Verzeichnis, alle Dateien die genau 155Byte gross sind
find . -size 155c
- alle Dateien deren Rechte auf SETUID gesetzt sind
find / -perm +4000
- alle Dateien die nicht älter als ein Tag sind
find / -ctime -1
- alle Dateien die nicht älter als eine Stunde sind
find / -cmin -10
- alle Dateien auf die innerhalb des letzten Tags zugegriffen wurde
find / -atime -1
- alle Dateien auf die innerhalb der letzten 10 Min zugegriffen wurde
find / -amin -10
- alle Dateien auf die innerhalb der letzten 5 bis 10 Min zugegriffen wurde
find / -amin +5 -amin -10
- zeigt alle Dateien eines Benutzers an, wenn der Account schon aus der /etc/passwd gelöscht wurde, muss statt des Namens "-uid num" genommen werden.
find / -user username -ls

Dateien suchen und sortiert nach Verzeichnis und Namen ausgeben

find . -type f -printf "%T %p\n" | sort -n | cut -d" " -f2

suchen kann man mit grep, egrep, sed, awk oder interaktiv mit vi, nedit, emacs, less oder more. Auch Scriptsprachen wie Perl, TCL, Pyton und VBScript unterstützen Regular Expressions.

mit "sed" kann man auf der Kommanozeile Dateien bearbeiten durch suchen und ersetzen
sed -e 's/Suchtext/Ersetzen/g' ~/datei.txt >~/datei.neu

Regular Expression
Zeichen Platzhalter
. ein beliebiges Zeichen
[] ein Zeichen aus einer Liste
[^ ] Umkehrung der Liste
[0-9] Ziffern
  Wiederholung
* beliebig viele, auch keines
\+ beliebig viele, mindestens eines
\? eines oder keines
\{n\} genau n
\{n,\} n oder mehr
\{n,m\} n bis m
  Anker
^ Zeilenanfang
$ Zeilenende
\< Wortanfang
\> Wortende
\b Wortanfang oder Ende
  Anderes
\| oder
\(\) Gruppierung
\1 Inhalt der ersten Klammer
\ Sonerzeichen suchen

# UND Suche in einer Datei

grep "foo" | grep "bar" file.txt

# ODER Suche in einer Datei

grep -e "foo" -e "bar" file.txt

#einen Namen in jeder Datei eines Verzeichnisses und dessen Unterverzeichnisse () suchen

grep -R -i -H <SuchSTRING> /

-r oder -R oder --recursive oder --directories=recurse - Recursiv suchen
-i - Groß oder Kleinschreibung ignorieren
-H oder--with-filename - Dateinamen des Fundes mit angeben (Standard)

# Bei der Suche wird Grossschreibung berücksichtigt, mit dem Parameter i wird die Grossschreibung ignoriert.
- gibt nur den Suchbegriff "Muster" aus nicht "mUSTER" oder "muster"

grep Muster test.txt

- gibt alle drei Beispiele aus

grep -i Muster test.txt

# wenn ein Suchbegriff mit einem Strich beginnt, setzt man ihn am besten in einfachen Anführungszeichen und verwendet den Parameter e. Ohne den Parameter -e wird eine Fehlermeldung ausgegeben.

grep -e '-Test 1' test.txt

# Ein Beispiel für Platzhalter, bei der suche kann man auch eine Auswahl an Zeichen in eckigen Klammern setzen. Die eckige Klammer ersetzt aber immer nur für ein Zeichen. Es ist auch ein Bereich möglich [1-9] sucht die Ziffern 123456789 oder [a-zA-Z] sucht nach einem Zeichen das Gross oder Klein geschrieben sein kann.
- findet beide Suchbegriffe an (Mayer und Meyer)

grep 'M[ae]yer' test.txt

- findet nuch "Mayer"

grep 'Mayer' test.txt

- findet Mayer, Meyer, Maier und Meier

grep 'M[ae][iy]er' test.txt

- findet "Muster" und "muster", nicht "mUSTER"

grep '[a-zA-Z]uster' test.txt

# mit (^) in einer eckigen Klammer kann man ein Zeichen aus der suche ausschliessen.
- sucht nicht nach dem String "-Muster" aber " Muster" wird gefunden.

grep '[^-]Muster' test.txt

# Der (.) ersetzt ein beliebiges Zeichen z.B.
- findet "axxx" und auch Zxxx

grep '.xxx' test.txt

- wird der String ".xxx" gesucht, muss man ein (\) vorranstellen, der (\) nimmt Sonderzeichen ihre Bedeutung. Bei der Suche nach einem Punkt "\.", bei der Suche nach einem Backslash "\\"

grep '\.xxx' test.txt

# Der (*) steht für beliebig viele Zeichen auch keines
- findet Mustermann und auch Muster

grep 'Musterm*' test.txt

#sucht nach Programmen die nicht mehr installiert sind (Zeinenanfang ^, nicht mit [^i][^i] ii beginnt)

dpkg -l | grep '^[^i][^i]'

#sucht nach Paketen mit der Version 3.2.2, die dann in die Datei kde-paket.txt ausgegeben wird und dann mit "dpkg -r" gelöscht zu werden
COLUMNS=200 dpkg -l | grep 3\.2\.2 | awk '{print $2}' > kde-pakete.txt

dpkg -r `cat kde-pakete.txt | xargs` > 2>&1 dpkg-ausgabe.txt"

#Fehler vom X-Server Start anzeigen

cat /var/log/XFree86.0.log | grep '^(WW)'

# Die mindest- und maximalanzahl von Zeichen festlegen {1,3} von mind. 1 bis max. 3 Zeichen, auch {3} genau 3 Zeichen ist möglich. {0,} mind. kein Zeichen (entspricht dem *), {1,} mind. ein Zeichen (entspricht dem +), {0,1} das Zeichen das davor steht kommt nicht oder nur ein mal vor (entspricht dem ?)
- sucht nach Deutsche Autokennzeichen

egrep [A-Z]{1,3}-[A-Z]{1,2} [0-9]{1,3} test.txt

- sucht nach Maier, Mayer, Maier, Meier und Mair Meir

egrep 'M[ae][iy]e?r' test.txt
egrep 'M[ae][iy]e{0,1}r' test.txt

# eine ODER-Verknüpfung erreicht man mit einem senkrechten Strich
z.B.
- findet Ted Mayer, Ted Maier, Tom Mayer, Tom Maier nicht Tim Maier oder Tim Mayer

egrep '(Ted|Tom) M[ae][iy]e{0,1}r' test.txt

# Wiederholungszeichen wirken auch auf Klammern
- findet "blabla" und auch "blablabla" nicht "bla"

egrep 'bla(bla)+' test.txt
Seitenanfang

Zugriff auf MS-Dos Disketten

Befehl Beschreibung
fdformat /dev/fd0H1440 formatiert Diskette
mattrib Attribut der Datei ändern
mcd Verz. Wechsel
mcopy kopiert Datei
mdel löscht Datei
mdir zeigt Inhaltsverz.
mformat DOS Dateisystem einrichten
mlabel Diskname ändern
mmd Verz. erstellen
mrd löscht Verz.
mread kopiert Datei von DOS nach Linux
mren ändert Name der Datei
mtype zeigt Inhalt der Textdatei
mwrite kopiert Datei von Linux nach DOS
mkfs -t ext2 -c /dev/fd0H1440
mount -t ext2 /dev/fd0 /mnt
Seitenanfang

Bearbeiten von Texten

Befehl Beschreibung
cat [Datei] Dateianzeige Ausgabe von Dateien
tac [Datei] wie cat, fängt aber vom letzten Eintrag der Datei an
csplit zerlegt Text an vorgegebener Stellen in Einzeldateien
cut extrahiert Spalten aus jeder Zeile des Textes
cut -d: -f1 /etc/passwd alle Benutzer des Systems als Liste, -d: - delimiter Trennzeichen für die Spalte (Parameter -f1) festsetzen, -f1 - erste Spalte abschneiden
expand ersetzt Tabulatoren durch Leerzeichen
fromdos konvertiert DOS Zeilenende in Linux Format
grep sucht Zeichenkette in Datei
grep "detektiv" emil Zeichenkette "detektiv" in Datei emil suchen
grep text /Verz/* sucht in den Dateien des "/Verz./*" nach den enthaltenen Text "text"
grep -r text `ls -A` sucht in den Dateien des aktuellen Verzeichnisses und Unterverzeichnissen (-r) nach dem Dateiinhalt "text", versteckte Dateien werden auch berücksichtigt.
less Dateianzeige Seitenweise auch rückwärts
more Dateianzeige Seitenweise
record konvertiert zw. verschiedenen Zeichensätzen
sort sortiert Dateien
todos konv. Linux Zeilenende in DOS Format
tr ersetzt vorgegebene Zeichen durch andere Zeichen
zcat zeigt mit gzip komprimierte Textdatei an, z.B. gepackte Log Dateien wie syslog.X.gz
zless zeigt mit gzip komprimierte Textdatei an
zmore zeigt mit gzip komprimierte Textdatei an
joe Editor
wc datei Gibt 3 Zahlen aus, die Anzahl an Zeilen , Wörter und Zeichen (Byte - Grösse) der Datei.

Editor JOE
Konfigurationsdateien global /etc/joe/*
jeder User kann seine eigene Konfigurationsdatei, mit anderen Einstellungen z.B. ~/.joerc anlegen, sie wird nach der globalen Konfigurationsdatei abgearbeitet. Der Initialisierungs-File ist selbsterklärend, alle Options sind beschrieben. Insbesondere wird alles, was nicht linksbündig steht, als Kommentar interpretiert.

Seitenanfang

Komprimieren und Archivieren von Dateien

Befehl Beschreibung
cpio überträgt Archivdatei zw. unterschiedlichen Dateisystemen
compress komprimiert Dateien
gunzip dekomprimiert gzip Dateien
gzip komprimiert Dateien
mt steuert Streamer
uncompress dekomp. für compress
tar archivieren von Dateien
bzip2 archivieren von Dateien
pax archivieren von Dateien
tar Optionen
-x Archiv entpacken
-c Archiv erstellen
-u Archiv updaten
-z komprimieren (gzip) (.gz)
-j komprimieren (bzip2) (.bz2)
-f Archiv Datei angeben
-C Archiv in das angegebene Verzeichnis entpacken
-v Bildschirmausgabe (verbose)
-t Inhalt des Archives ausgeben
-h archiviert bei einem Symbolischen Link nicht den Link sondern die Datei auf die der Link zeigt
PAX Archiv
pax -wf archiv.pax /Ordner Erstellt ein Archiv "archiv.pax" (unkomprimiert) vom Ordner "Ordner" (Option -w schreiben, -f archiv Datei)
pax -wzf archiv.pax /Ordner Erstellt ein Archiv "archiv.pax" (komprimiert) vom Ordner "Ordner" (Option -w schreiben, -f archiv Datei)
pax -f archiv.pax |more Inhalt der Datei archiv.pax anzeigen.
pax -rvf archiv.pax Archiv "archiv.pax" (unkomprimiert) in den aktuellen Ordner entpacken
pax -rzvf archiv.pax Archiv "archiv.pax" (komprimiert) in den aktuellen Ordner entpacken
pax -rif archiv.pax Archiv "archiv.pax" Interaktiv (unkomprimiert) in den aktuellen Ordner entpacken (Dateien und Ordner des Archives können beim Auspacken umbenannt werden.)
pax -rzif archiv.pax Archiv "archiv.pax" Interaktiv (komprimiert) in den aktuellen Ordner entpacken
file archiv.pax Informationen zur Datei anzeigen
cd /old
mkdir /new
pax -rw . /new
Verzeichnisstruktur kopieren

TAR Archiv
tar -cvf archiv.tar ordner Archiv "archiv.tar" (unkomprimiert) vom Ordner "ordner" erstellen
tar -czvf archiv.tar.gz ordner Archiv "archiv.tar.gz" (komprimiert - gzip) vom Ordner "ordner" erstellen
tar -cjvf archiv.tar.bz2 ordner Archiv "archiv.tar.bz2" (komprimiert - bzip2) vom Ordner "ordner" erstellen
tar -tvf archiv.tar ordner Inhalt vom Archiv "archiv.tar" (unkomprimiert) anzeigen
tar -tzvf archiv.tar.gz ordner Inhalt vom Archiv "archiv.tar.gz" (komprimiert - gzip) anzeigen
tar -tjvf archiv.tar.bz2 ordner Inhalt vom Archiv "archiv.tar.bz2" (komprimiert - bzip2) anzeigen
tar -xvf archiv.tar Archiv "archiv.tar" (unkomprimiert) entpacken
tar -xzvf archiv.tar.gz Archiv "archiv.tar.gz" (komprimiert - gzip) entpacken
tar -xjvf archiv.tar.bz2 Archiv "archiv.tar.bz2" (komprimiert - bzip2) entpacken
tar -xvf archiv.tar -C /unpack Archiv "archiv.tar" (unkomprimiert) entpacken in den Ordner "unpack"
tar -xpvf archiv.tar -C /unpack Archiv "archiv.tar" (unkomprimiert) entpacken in den Ordner "unpack" und Datei-Rechte beibehalten.
tar -xpvf archiv.tar -C /unpack etc "etc" Ordner aus dem Archiv "archiv.tar" (unkomprimiert) entpacken in den Ordner "unpack" und Datei-Rechte beibehalten.
file archiv.tar Informationen zur Datei anzeigen
cd /old
mkdir /new
tar cf - . | (cd /new; tar pxvf -)
Verzeichnisstruktur kopieren

- Sicherung von den Verzeichnissen /etc, /home, /root in eine Archivdatei die das Datum der Sicherung hat, der anführende Schrägstrich "/" wird dabei entfernt.

tar czf `date +%d-%m-%Y`.tar.gz /etc /home /root

- Sicherung wie oben, aber der anführende Schrägstrich bleibt erhalten.

tar Pczf `date +%d-%m-%Y`.tar.gz /etc /home /root

- mit der Option "--exclude=proc" kann man ein Verzeichnis von der Sicherung ausschliessen, in diesem Fall das "proc" Verzeichnis. Will man mehrere Verzeichnis ausschliessen muss man mehrmals die Option "--exclude" angeben.

tar czf `date +%d-%m-%Y`.tar.gz / --exclude=proc --exclude=tmp --exclude=sys

- Verzeichnisse proc, tmp, sys werden in diesem Beispiel zwar mitgesichert, aber nicht deren Inhalt. Bei einer Rücksicherung brauch man dann diese Verzeichnisse nicht im nachhinein neu zu erstellen.

tar czf `date +%d-%m-%Y`.tar.gz / --exclude="proc/*" --exclude="tmp/*" --exclude="sys/*"

- wie oben nur das die Ausnahmen in einer Datei gespeichert sind, jede Ausnahme in einer neuen Zeile.

tar czf `date +%d-%m-%Y`.tar.gz / --exclude-from=/root/ausnahmen.txt

Beispiel ausnahmen.txt

proc/*
tmp/*
sys/*

z.B. Archiv entpacken
gzip -dc archiv.tar.gz | tar xvf -
unzip -p datei.zip | tar zx
z.B. Daten sichern (/etc) und wiederherstellen
- Sichern des /etc Verzeichnisses in ein Archiv (Archiv wird im Homeverzeichnis erstellt)
cd; tar cfz archiv.tar.gz /etc
- Wiederherstellen des gesicherten Verzeichnisses
cd /; tar xfz ~/archiv.tar.gz

Seitenanfang

Prozessverwaltung

Befehl Beschreibung
crond startet Vorgang im Hintergrund(/etc/crontab Konfigurationsdatei)(/var/spool/cron/crontab/* um z.B. einen cron Job Stündlich zu starten muss der Script in das Verz. etc/cron.hourly gelegt werden und mit chmod ausführbar gemacht werden
strace Debugging von Befehlen u.a. z.B. strace host www.domain.tld
nohup Befehl & mit nohup besteht die Möglichkeit, einen Prozess weiterlaufen zu lassen, auch wenn man die Shell mit STRG -D oder exit beendet.
sleep 1000 & mit & ein Prozess im Hintergrund starten
fg %JobID einen Hintergrundprozess wieder im Vordergrund weiterführen
bg %JobID einen Angehaltenen Prozess im Hintergrund weiterführen
jobs zeigt laufende Hintergrundprozesse an
halt -p Rechner herunterfahren und ausschalten
echo $! zuletzt gestarteter HintergrundprozessID anzeigen
halt beendet Linux hält Rechner an
kill sendet Signale an laufende Prozesse
kill -l Übersicht der kill Kommandos (oder man 7 signal)
kill -STOP $! letzten Hintergrundprozess anhalten
kill -STOP PID oder kill -19 PID einen Prozess kurz stoppen (der Prozess wird dabei nicht beendet) Signal 19, SIGSTOP
kill -CONT PID oder kill -18 PID Um den Prozess wiederzubeleben (Signal 18, SIGCONT englisch "continue", fortfahren)
kill -TERM PID oder kill -15 PID versucht einen Prozess ordnungsgemäss zu beenden (Signal 15, SIGTERM)
kill -KILL PID oder kill -9 PID einen Prozess bedingungslos beenden (Signal 9, SIGKILL)
killall -HUP inetd veranlast den Demon "inetd" seine Konfigurationsdatei neu einzulesen
killall bash alle bash Shells auf dem Rechner beenden
pgrep bash gibt ProzessID des Prozesses bash aus
vmstat Virtueller Speicher und CPU Statistik
skill -KILL user bash Prozess eines Benutzers beenden
pkill -KILL -u user bash Prozess eines Benutzers beenden
skill -STOP pts/2 ein Terminal einfrieren
skill -CONT pts/2 das Terminal wieder aktivieren (auftauen)
ulimit -a zeigt das gesetzte Limit / möglichen Optionen an
ulimit -f 100 ein Limit für die Dateigrösse setzen (hier max. 100kB)
ulimit -f unlimited Limit der Dateigrösse wieder aufheben (wenn ein Limit durch root gesetzt ist, kann ein Benutzer das Limit nur senken nicht erhöhen)
ulimit -u 20 User-Prozesse beschränken
snice +5 user Priorität aller Prozesse des Users (user) auf 5 setzen
nice -10 <Befehl> einen Befehl eine Priorität zuweisen (beim starten des Prozesses), -20 (höhste Priorität) 0 (normale Priorität) 20 (niedrigste Priorität)
renice -n 10 <Befehl> den nice Wert des Prozesses um 10 Punkte erhöhen.
renice 15 PID die Priorität eines Prozesses, oder aller Prozesse eines Users im nachhinein ändern. (renice 15 -u USER)
ionice -n 4 <Befehl> I/O Priorität festlegen 0 hoch, 1 realtime und 7 niedrige Priorität, Prozesse mit hoher Priorität z.B. realtime, dürfen vor allen anderen auf die Festplatte zugreifen.
ionice -n 4 -p <PID> I/O Priorität für ein Prozess festlegen
ps Prozesse anzeigen
ps a laufenden Prozesse aller User anzeigen
ps x eigene laufenden Prozesse anzeigen um Prozess ID zu ermitteln
ps awux ausführliche Informationen anzeigen, alle Prozesse mit Eigentümer und Rechenzeit
ps -aux | grep ^user1 | awk '{print $2}' | sudo xargs kill -9 alle Prozesse des Users user1 beenden
ps Ul user ausführliche Informationen der Prozesse des Benutzers USER.
ls -d /proc/* |grep [0-9]|wc -l; ps ax |wc -l Vergleicht die Ausgabe der Anzahl der Prozesse von ls /proc/* mit ps ax (sollten gleich sein)
w zeigt Kurzinfo zum System
fuser -u /dir/file zeigt an welcher User mit welchem Prozess die Datei benutzt
fuser -v /mnt/* User und Prozesse die auf Dateien zugreifen
top Echtzeitanzeige Systemressourcen überwachen (? für hilfe, q = Quit)
pstree Prozessstruktur mit "Vater" "Kind" Prozesse
lsof | less zeigt alle offenen Dateien des Systems an
lsof | grep cdrom zeigt benutzte Dateien im Ordner "cdrom"
lsof /dev/pts/0 was ist alles auf der Kommandozeile offen
lsof -u user -ac joe so wird nach de Prozess joe des Users "user" gesucht, bei "lsof" werden die Optionen normalerweise mit ODER-verknüpft, um eine UND-Verknüpfung zu erreichen muss bei allen die Option -a angegeben werden
lsof -i geöffnete Sockets und ihre Prozesse (ähnlich netstat -l)
lsof -i :80 geöffnete Sockets und ihre Prozesse (ähnlich netstat -l)
lsof -Pni -r 5 wie oben, -P Ports als Nummern, -n IP statt DNS-Name -r 5 alle 5 Sekunden wiederholen (Reihenfolge der Optionen beachten) Formatierungsoptionen vor dem Befehl
lsof /dev/cdrom zeigt Dateien an die auf einer CD in Benutzung sind
lsof +p PID1, PID2 geöffnete Dateien eines Prozesses mit PID
lsof -c bash geöffnete Dateien eines Prozesses mit Namen
lsof -u User geöffnete Dateien eines Users
lsof -p $$ Liste offner Dateien
cat /proc/pci > /dev/lp0 druckt PCI Geräte im System aus
cat /proc/version aktuelle Kernelversion anzeigen
umane -a aktuelle Kernelversion anzeigen
cat /proc/dma benutze DMA Adressen anzeigen
cat /proc/meminfo Speicherbelegung anzeigen
cat /proc/ioports I/O Adressen Belegung anzeigen
cat /proc/"PID"/status Info über ein Prozess anzeigen
cat /proc/"PID"/cmdline Name des Prozesses anzeigen
cat /proc/1/environ |tr '\0' '\n' Infos zum laufenden Prozess (hier ein Beispiel zum Prozess mit der Nr.1 init)
cat /procs/interrupts belegten Interrupts des Systems
ls -l /proc/kcore zeigt Grösse des RAM an (Dateigrösse/1024/1024=RAM in MB)
pstree kompletter Prozessbaum anzeigen
reboot beendet Linux, startet Rechner neu
shutdown -h now Rechner runterfahren
shutdown -r now Rechner neu starten, wird sofort ausgeführt
shutdown -r +10 Runterfahren des Systems und Reboot (-r) nach 10 Min (Meldung wird auf allen Terminals angezeigt)
shutdown -r +10 "System bootet, um neuen Kernel zu testen" mit Systemmeldung auf den Terminals "System bootet, um neuen Kernel zu testen"
shutdown -r 13:00 Runterfahren des Systems und Reboot um 13:00 Uhr
& Programm als Hintergrundprozess ausführen ( cp Datei /dev/lp1 & )
> /dev/null keine Bildschirmausgabe
uptime zeigt Prozessauslastung und -laufzeit an
hwclock Hardware-Uhrzeit anzeigen --show, auf UTC setzen --utc, auf locale Zeit setzen --localtime, Systenzeit als Hardwareuhrzeit übernehmen --systohc
date --set="12/31/04 01:20" System-Zeit und Datum setzen, auf 31.12.2004 01:20
arch zeigt die Prozessorfamilie an
watch 'ps ax | grep updatedb überwachen von laufenden Hintergrund-Prozessen (alle 2 sek wird der Befehl in einfachen Anführungszeichen ausgeführt)
watch -n5 -d 'ls -al /downlaod' Option -n gibt die Zeitspanne an, in der der Befehl wiederholt wird, Option -d zeigt die Unterschiede zwischen den Durchgängen an.
procinfo Systemübersicht
procinfo -dn5 Systemübersicht alle 5Sekunden aktualisieren
mpstat -P ALL 1 10 Leistungsanalyse jede Sekunde (1) 10 Sekunden lang (10)
iostat Statistic für Speicher und Partitionen
PID TTY STAT TIME COMMAND
1 ? S 0:13 init
....        
554 tty1 S 0:00 /sbin/getty 38400 tty1
555 tty2 S 0:00 /sbin/getty 38400 tty2
556 tty3 S 0:00 /sbin/getty 38400 tty3
557 tty4 S 0:00 /sbin/getty 38400 tty4
558 tty5 S 0:00 /sbin/getty 38400 tty5
559 tty6 S 0:00 /sbin/getty 38400 tty6
909 pts/2 S 0:00 bash
921 pts/2 R 0:00 ps x

PID steht für Process IDentifier

TTY zeigt die Nummer des Terminals oder der virtuellen Konsole an
Die erste Konsole heist /dev/tty1, ein xterm kann /dev/pts/2 sein, manche Prozesse sind keiner Konsole zugeordnet, diese haben ein ? im TTY Feld.

Feld STAT
S "sleeping" (schlafend)
R "running" (läuft gerade)
SW heißt, dass der Prozess nicht nur schläft, sondern auch noch in den Swap-Speicher ausgelagert wurde
Z "Zombie" einen Prozess, der zwar beendet ist, seinen Rückgabestatus aber nicht richtig übergeben konnte

Feld TIME verrät die verbrauchte Rechenzeit

Optionen von jobs

-l			alle Jobs mit ProzessID
-p			nur ProzessID
-r			zeigt nur laufende Prozesse
-s			zeigt nur angehaltene Prozesse

- durch STRG - Z kann man einen Prozess der im Vordergrund läuft unterbrechen.

# sleep 1000
[1]+  Stopped                 sleep 1000

- denn angehaltenen Job (mit STRG - Z) mit bg im Hintergrund weiterlaufen lassen, laufen mehrere Jobs im Hintergrund, wird beim Aufruf von bg immer der Job mit der höhsten Job-ID in den Hintergrund gelegt, man kann auch beim Aufruf eine Job-ID mit übergeben. z.B. bg %2 legt den Job mit der ID 2 in den Hintergrund.

# bg
[1]+ sleep 1000 &

# jobs -l
[1]-  1197 Angehalten              sleep 1000
[2]   1202 Running                 sleep 1000 &
[3]   1203 Running                 sleep 1001 &
[4]+  1204 Angehalten              sleep 1002

# fg %3
sleep 1001

- mit nohup kann man Prozesse ausserhalb der Loginshell starten, so kann man sich mit STRG-D oder exit abmelden und der Prozess läuft trotzdem weiter.

# nohup sleep 1000 &
[7] 1284
nohup: appending output to `nohup.out'
Seitenanfang

Verwaltung von Benutzern und Gruppen

Befehl Beschreibung
su Benutzerwechsel (root) ohne ändern der Umgebungsvariablen
su - Benutzerwechsel (root) mit ändern der Umgebungsvariablen "Logname" ua. (Langform ist su -l)
su - user Benutzerwechsel zum Benutzer "user"
su -c "less /var/log/messages" führt ein Befehl mit Administratorrechten aus (Passwort erforderlich)
sudo ähnlich su -c, aber man braucht nur das Benutzerpasswort (Konfiguration /etc/sudoers), in dieser Datei können die Recht der User und benötigten Befehl eingetragen werden.
"visudo" zum editieren
Konfiguration /etc/sudoers
root ALL=(ALL) ALL
user ALL=NOPASSWD: ALL
durch den Parameter "NOPASSWD" brach der User nicht jedesmal das Passwort eingeben
chsh -s /bin/tcsh definiert tcsh als Default-Shell
chsh -s /bin/true user Default-Shell für den Benutzer "user" setzen (mit /bin/true kann sich der User nicht mehr am System anmelden)
groups <User> zeigt die Guppenzugehörigkeit des Users an
groupadd <Gruppe> neue Gruppe erstellen
groupmod -n newgroup oldgroup Gruppe "oldgroup" in "newgroup" umbenennen
getent group <Gruppe>; alle Mitglieder der Gruppe anzeigen
id -nG $USER | sed 's/ /,/g' Liste der Gruppenzugehörigkeit des angemeldeten Benutzers, so das man diese mit usermod in einem Script verwenden.
usermod -G group1, group2 user denn Benutzer "user" der Gruppe "group1" und "group2" zuordnen
gpasswd -a <User> <Gruppe> Benutzer der Gruppe zuweisen
gpasswd -d <User> <Gruppe> Benutzer aus der Gruppe entfernen
adduser Benutzer anlegen, nach dem anlegen des Users werden die Dateien aus /etc/skel ins Home Verz. des Users kopiert.
adduser user1 disk Benutzer user1 zur Gruppe disk hinzufügen
deluser löschen eines Benutzerkontos, interaktiv
useradd ähnlich adduser, aber nicht interaktiv
useradd -m -g deaktiv -s /bin/false <username> legt einen neue User an der Mitglied der Gruppe deaktiv ist und als Shell /bin/false hat
userdel -r user löscht den Account User (-r mit seinem Homeverz.)
passwd <user> Passwort eines Benutzers ändern (nur als root kann man Passwörter anderer User ändern)
usermod -s /bin/sh <username> einem User eine andere Shell zuweisen
usermod -a -G <Gruppe> <Benutzername> Benutzer einer Gruppe zuweisen
id zeigt UserID und Gruppen des aktuellen Benutzers an
id username zeigt UserID und Gruppen des angegebenen Benutzers an.
logout Benutzer abmelden
whoami Ausgabe des Benutzernamens
users Ausgabe des Benutzernamens
who Anzeige aller eingeloggten Benutzer, des Terminals und Loginzeit
finger alle eingeloggten Benutzer anzeigen, ähnlich who
finger <Benutzername> diverse angeben zum angegebenen Benutzer
w Angemeldeten Benutzer mit Prozesse
last Liste mit IP und Uhrzeit der User letzten Logins
lastlog Liste aller im System vorhandenen Benutzer und deren letzte Loginzeit (/var/log/lastlog)
faillog -u <Benutzername> fehlgeschlagene Loginversuche des Users (/var/log/faillog)
fuser -mk /dev/hda3 alle Prozesse von Usern einer Partition beenden
newaliases bei Änderungen der /etc/aliases oder "postalias /etc/aliases" aufrufen
   
Seitenanfang

Administration des Dateisystems

Befehl Beschreibung
badblocks /dev/hdc5 testet, ob Datenträger (insb. Disk) def. Sektoren enthält
cp kopieren
chmod ändert Zugriffsrechte durch "-" oder "+" "u" (user) für die User "g" (group) für die Gruppe "o" (other) für die anderen.
chmod g+rwx info.txt Vollzugriff der Gruppe auf die Datei
chmod -w info.txt der Schreibzugriff für alle drei Kategorien ändern
chmod 754 info.txt Zugriffsrechte der Datei "info.txt" ändern
find /etc -printf 'chmod %m %p\n' >chmod-skript Rechte in einem Script, so können diese auf einem anderen System wieder eingespielt werden
chown <User> File Besitzer ändern (change owner)
chown root.users File Benutzer und Gruppen der Datei "File" ändern
chown -R <User> * Besitzer ändern (change owner), im akuellen und den Subdirectories
chgrp <Group> Gruppe ändern (change group)
usermod -G users,audio username den Benutzer "username" in die Gruppen "users" und "audio" aufnehmen
chroot /mtn ein System das unter /mnt gemountet wurde, temporär zum ROOT System machen. STRG +D beendet die chroot-Umgebung
df Gemountete Partitionen und verfügbaren Speicherplatz anzeigen
- a alle Dateisysteme anzeigen
- T mit Zusatzspalte Typ
- l nur locale Dateisysteme
- h Ausgabe in MB und GB aufrunden
- k Ausgabe in kB (default Einstellung)
- m Ausgabe in MB
- i i-node Liste anzeigen (wenn die Meldung "No space left on device" kann es sein, das nicht der Platz auf der Platte ausgeht, sondern keine I-Node mehr frei sind. Kann bei News-Servern auftreten die mit vielen kleinen Dateien belegt sind.
du -cks * |sort -rn |head -11 zeigt an welche 10 Verzeichnisse auf der Platte am meisten Platz benötigen (ab den aktuellen Verz. abwärts)
du -hs /home/user/ Grösse eines Verzeichnisses ermitteln
du -cks * |sort -rn |head -11 zeigt an welche 10 Verzeichnisse auf der Platte am meisten Platz benötigen (ab den aktuellen Verz. abwärts)
lsblk listet Informationen über ausgewählte oder alle Block Devices in einem System in einer BaumStruktur
dd kopiert Datenblöcke zwischen Device (Low Level)
dd if=/dev/hda of=/dev/hdc kopiert den Inhalte einer Platte auf eine andere (Primär Master auf Secundär Master) bis 2GB Platten Kapazität
dd if=/dev/XXX of=/dev/XXX status=progress beim kopieren mit Statusanzeige status=progress
dd if=/dev/urandom of=/dev/hdx überschreibt alle vorhandenen Daten der Platte durch Zufallswerte. kann zum sicheren Löschen von Platten verwendet werden, wie z.B. auch der Befehl wipe
dd if=/dev/zero of=/dev/hdx wie oben, Platte wird mit Nullen beschrieben
dd if=/dev/zero |buffer -S 100k | dd of=/dev/hdx Festplattenbereinigung, mit Fortschrittsanzeige
dd if=/dev/zero of=/dev/hda bs=512 count=1 sämtliche Partitionen einer Festplatte löschen
dd-lfs if=/dev/hda of=/dev/hdc kopiert den Inhalte einer Platte auf eine andere (Primär Master auf Secundär Master) über 2GB Platten Kapazität
dump2fs /dev/hda3 zeigt Infos über das Dateisystem an
e2fsck -b 32768 /dev/hda3 repariert ein ext2-Dateisystem
dumpe2fs Gerät | more Informationen zum Dateisystem anzeigen
Blocks per group: 8192 Blockgrösse des Dateisystems, kann zum ermittel der Superblockkopie herangezogen werden. Berechnung der Block-Offsets (8192 x 2 + 1) also ist die Superblockkopie an den Adressen 8193, 16385, 24577, 32769 usw.
sollte bei der Ausgabe von "dumpe2fs Gerät | more" ein anderer Offset angezeigt werden, muß dieser zur berechnug der Lage der Superblockkopie herangezogen werden.
e2fsck -f -b Offset Gerät bei Problemen mit den Superblock der Partition, wenn fsck und e2fsck nicht funktionieren, kann man e2fsck anweisen eine Kopie des Superblockes für die Reparatur zu benutzen "e2fsck -f -b 8193 /dev/hda2"
fsck.ext3 -c /dev/hdc2 Partition /dev/hdc3 auf Fehler testen
fsck.ext3 -v -f -c <Device> Partition reparieren
fdformat formatiert Disk
fdisk /dev/hdx Partitionieren einer Festplatte
fdisk -l /dev/hdx Partitionsdaten anzeigen, Angabe von Zylindern
fdisk -lu /dev/hdx Partitionsdaten anzeigen, Angabe von Sektoren
fdisk -lu /dev/hdx Partitionstabelle anzeigen, Option -u bedeutet »Anfang« und »Ende« werden in Sektoren statt in Zylindern angegeben.
parted Partitionieren einer Festplatte
gparted Partitionieren einer Festplatte, GTK-basierte Oberfläche
cfdisk /dev/sdb Partitionieren einer Festplatte grafische Oberfläche (ncurses)
gdisk /dev/sdb Partitionieren einer Festplatte
cgdisk /dev/sdb Partitionieren einer Festplatte grafische Oberfläche (ncurses)
fsck repariert ein Dateisystem
mkfifo /dev/mypipe erzeugt Named Pipes
mkfs Dateisystem einrichten
mkfs -b 32768 Dateisystem einrichten mit der Blockgrösse 32768 (die Blockgrösse muss ein vielfaches von 1024 sein)
mknod erstellt Device-Datei
mkswap richtet Datei oder Partition als Swap-Bereich ein
mount gemountete Laufwerke anzeigen
mount /mnt/cdrom Laufwerke ins Dateisystem einbinden
mount -t msdos /dev/hda2 /dos MSDos Partition ins Verz. /dos mounten
mount -n -o remount,rw / Read-Only Dateisystem als Read-Write neu mounten
mount -t nfs eine Platte aus dem Netzwerk mounten (nfs Network Filesystem)
mount -t squashfs -o loop /srv/live.squash /media/squash/ squash Dateisystem mounten
umount /dos Laufwerke abmelden
swapoff /dev/hda2 Swap-Datei oder -Partition (HDA2)
swapon /dev/hda2 aktiviert Swap-Datei oder -Partition (HDA2)
resize_reiserfs oder resize2fs ändert die Partitonsgrösse von einer ReiserFS Partition
gpart rekonstuiert beschädigte Partitonstabelle (gpart -v -l /tmp/gpart /dev/hda - untersucht die erste IDE Platte und schreibt das Ergebnis in die Datei /tmp/gpart)
debugfs stellt gelöschte Dateien wieder her (nur ext2)
cabextract entpackt *.cab Windows Dateien
ext2resize datei passt die Grösse einer Imagedatei an
zcat flash.img.gz | dd of=/dev/YYY bs=16k
MMC mit einem Image beschreiben
   
Eintragungen und Optionen in /etc/fstab
default Standardeinstellungen: rw, suid, dev, exec, auto, nouser, async
async Input/Output an das Gerät erfolgt asyncron
sync Input/Output an das Gerät erfolgt syncron
auto mit dem Befehl "mount -a" können alle mit auto markierten Einträge gemountet werden.
noauto schliesst Dateisystem vom automatischn mounten mit "mount -a" aus
exec Binärdateien auf dem System dürfen ausgeführt werden
noexec Binärdateien auf dem System dürfen nicht ausgeführt werden
suid setuid und setgid Bits auf dem Dateisystem werden interpretiert
nosuid setuid und setgid Bits auf dem Dateisystem werden ignoriert
user mounten und unmounten wird USERN gestattet
nouser nur root kann Dateisystem mounten und unmounten
rw Read-Write erlaubt
ro Read-Only (nur Lesezugriff)
Seitenanfang

Bildschirm und Terminal

Befehl Beschreibung
reset Zeichensatz reset (echo -e \\017\\033\\050B
restorefont speichert oder restauriert VGA-Zeichensatz
restorepalette restauriert VGA-Farbpalette
setfont verändert VGA-Zeichensatz
setterm verändert div. Terminal-Einstellungen
setterm -foreground white -background blue weisser Text auf Blauen Hintergrund einstellen
setterm -store aktuelle Einstellungen sichern
stty funktion taste speichert Tastenbelegung
stty -a zeigt gespeicherte Tastenbelegung an
chvt 1 wechselt auf die angegebene Konsole (hier Konsole 1)
clear > /dev/tty8 auf der Konsole tty8 den Terminalscreen löschen
clear kompletten Verlauf im Konsolenfenster löschen
clear_console Konsolenfenster Eingabe auf erste Zeile setzen, wie STRG + L
fc -l gespeicherte History anzeigen
fc -l -2 letzten 2 Einträge der History anzeigen
fc -l 6 9 Eintrag 6 - 9 anzeigen
fc 6 9 die Einträge 6 - 9 der History bearbeiten (als Standard wird der Editor vi geladen, wenn kein anderer durch die Variable FCEDIT gesetzt ist)
history -c History löschen, alle vor der Eingabe des Befehls der aktuellen Sitzung eingegebenen Befehle, werden nach dem Abmelden nicht in der ~/.bash_history abgelegt.
history gespeicherten History anzeigen
!3 führt den Befehl mit der Nummer 3 der History aus
!-2 vorletzten Befehl noch einmal ausführen
!ls den ls Befehl noch mal ausführen
!! letzten Befehl noch mal ausführen
!!:0-2:p vom letzten Befehl (!!) die ersten drei Worte nur ausgeben, nicht ausführen (:p)
!!:0-2 vom letzten Befehl (!!) die ersten drei Worte noch einmal ausführen
history | grep ls Befehlshistory nach ls durchsuchen
export HISTSIZE=0 History deaktivieren, für die aktuelle Sitzung, dieser Befehl und alle nachfolgenden werden nicht in der History abgelegt.
unset HISTFILE History deaktivieren, für die aktuelle Sitzung, dieser Befehl und alle nachfolgenden werden nicht in der History abgelegt.
set +o history History deaktivieren, für die aktuelle Sitzung, alle nachfolgenden Befehle werden nicht in der History abgelegt, die Besonderheit ist dabei, das der Befehl selber in der History erscheint.
write <User> Terminal Chat mit dem angegebenen Benutzer starten, STRG-D Chat beenden. Benutzer kann Chat unterbinden/erlauben mesg n / mesg y
wall Terminalnachricht an alle angemeldeten User schicken, Nachricht muss komplett eingegeben werden und wird erst nach STRG-D angeschickt.
    1  man history
    2  fc -l
    3  ls -al
    4  cd /tmp/

Befehle die mit einer Leerstelle am Anfang eingegeben werden, werden nicht in der History der Bash gespeichert. Dazu muss folgender Parameter gesetzt sein.

# ~/.bashrc
HISTCONTROL=ignoreboth
HISTCONTROL Parameter Beschreibung
erasedups Befehle die schon einmal in der History gespeichert sind, werden nicht mehr gespeicher
ignoredups gleiche Befehle nacheinnander eingegeben, werden nur einmal gespeichert
ignorespace Zeilen die mit einem Leerzeichen beginnen werden nicht gespeichert
ignoreboth beinhaltet ignoredups:ignorespace

- mehrere Parameter angeben

HISTCONTROL=ignoredups:ignorespace
Seitenanfang

Online-Hilfe

Befehl Beschreibung
apropos <Befehl> zeigt verfügbare MAN-Pages zu einem Begriff an
info startet info-System
hilfe Hilfe für Suse
susehelp Hilfe für Suse
man <Befehl> Hilfe zu den gesuchten Befehl
man grep z.B. Hilfe zum Befehl grep
man -t ls | lpr Druckt Manpage zum Befehl ls aus
whatis zeigt Kurzbeschreibung des Kommandos
tkman Hilfe Linux (grafisch)
Seitenanfang

System

Befehl Beschreibung
lsb_release -a Distributions-Info anzeigen
liloconfig Bootloader lilo in den Bootsector eintragen
lilo die Änderung der "/etc/lilo.conf" ins System übernehmen und Bootsector schreiben
lilo -R Linux-2.6.6 für den nächsten Start des Rechners eine andere als den Default-Kernel starten
hdparm -i /dev/hda Zeigt Infos zur Platte an
hdparm -I /dev/hda Daten der Platte anzeigen
hdparm -d 1 /dev/hda DMA Modus aktivieren
hdparm -tT /dev/hda Geschwindigkeit einer Platte testen, -T Cache-Speichersystem testen, -t Lese-test der Platte ohne Daten aus dem Cache
smartctl -A /dev/sda SMART-Informationen des Datenträgers
   
   
lspci -vv Informationen zu den erkannten PCI Geräten
lspci -nn -k mit Vendor und Device ID ausführliche Anzeige, geladene Kerneltreiber
lshw -short Hardware Übersicht
sudo lshw -html >hwliste.htm
firefox ./hwliste.htm
Hardware Übersicht als HTML Datei, diese dann mit Firefox anzeigen
hwinfo Hardware Übersicht
dmidecode Systembeschreibung, Board Modell, BIOS, Speicher, u.a.
efibootmgr UEFI Boot Einträge
   
lscpu Ausgabe CPU Daten
head /sys/devices/system/cpu/vulnerabilities/* Kernel Infos zu Sicherheitslücken der CPU
lsusb aus dem Paket usbutils, zeigt USB Device an
hwclock --utc Zeitzone einstellen, RTC in UTC (Universal Time Coordinated)
hwclock --systohc Systemzeit als Hardware-Uhrzeit übernehmen
hwclock --hctosys Hardware-Uhrzeit als Systemzeit übernehmen
date --set="02/27/2004 00:45:00" Tag und Uhrzeit der Systemzeit setzen
date --set="00:45:00" Uhrzeit der Systemzeit setzen
date +'%d.%m.%Y - %H:%M:%S' Formatierung der Ausgabe von date

wenn die Systenzeit mit "date" gesetzt wurde, muss die Zeit noch mit "hwclock --systohc" oder mit "clock -w" in die Hardwareuhr übernommen werden.

zur Identifizierung der Hardware mittels lspci nutzt Linux die Datei pci.ids in der die Hersteller gelistet sind. Meist liegt die Datei unter /usr/share, oder bei Debian unter /usr/share/misc, in Fedora unter /usr/share/hwdata. Aktualisiert wird die Datei in Debian durch das Script update-pciids

Seitenanfang

Systemtools

(bei Debian im Paket sysstat enthalten)

Befehl Beschreibung
nmon  
sar 10 10 Sekunden die CPU Auslastung messen
sar 10 -u -I ALL mit Hard und Softwareinterupts
sar 60 5 macht 5 Ausgaben, alle 60 Sekunden die CPU auslastung an, am Ende wird ein Duchschnittswert angezeigt.
/usr/lib/sysstat/sadc 10 - & alle 10 Sekunden werden Daten in die Datei /var/log/sysstat/saXX im binärformat geschrieben, XX steht für den aktuellen Tag, ansonsten kann man den Namen der Datei auch angeben, diese wird dann mittels sar -f <Dateiname> abgefragt.
   
   
   
top  
Taste P Rechenlast
Taste f oder o Sortierreihenfolge
mpstat -P ALL 1 10 Leistungsanalyse jede Sekunde (1) 10 Sekunden lang (10)
%user Benutzerkontext, Jobs die durch den Benutzer gestartet wurden
%system System oder Kernel, ein hoher Wert kann auf ein ineffizientes System hindeuten, System ist sehr mit sich selbst beschäftigt.
%iowait I/O Subsystem, z.B. Festplatte, ein hoher Wert kann auf starke Festplattenaktivitäten hindeuten

Optionen von sar

-P <Nummer> auf einen bestimmten Prozessore einschränken
-P ALL alle Prozessoren
-b Lese und Schreibzugriff auf Massenspeicher
-d nach Geräten aufgeschlüsselt
-r Hauptspeicherbelegung und Swapdatei
-R Speicher Statistik
-B Paging Statistik
-W Swap Statistik
-n Netzwerkstatistik DEV - Transfer, EDEV - Fehler, NFS - NFSClient, NFSD - NFSServer, SOCK - Socket, ALL - Alle

Systemresourcen anzeigen, dafür ist die Datei /var/log/sysstat/saXX benötigt, aus der sar die gesammelten Infos anzeigt. Diese Datei wird mit "/usr/lib/sysstat/sadc 10 - &" erstellt, für jeden Tag eine neue.
-v Zahl der genutzten Dateien, Inodes und PseudoTerminals
-w Context Switches pro Sekunde
-q gesamte, aktive Tasks

Speichersubsystem

Befehl Beschreibung
vmstat 1 120 Analysiert den Hauptspeicher jede Sekunde 120 Sekunden lang
buff I/O Puffer
cache File-System Cache
si Swap In, Kilobyte die in den Hauptspeicher gelesen werden
so Swap Out, aus den RAM in die Auslagerungsdatei
free  
ipcs -lm aktuelle Konfiguration der Hauptspeicheraufteilung
sysctl  
/proc/sys/vm/swappiness Priorität des VM-Subsystems Speicherseiten aus den RAM in die SWAP auszulagern
100% Kernel soll aggresiv Inhalte aus den Hauptspeicher auslagern
0% zuerst Cache und Pufferspeicher reduzieren

den Wert kann man mittels echo oder sysctl ändern

echo 70 > /proc/sys/vm/swappiness
sysctl -w vm.swappiness=70

die Änderung mit sysctl bleiben nach einem REBOOT erhalten.

/proc/sys/kernel/shmmax Maximum an allozierbarem gemeinsamen Speicher (in Byte) eines Speichersegmentes
/proc/sys/kernel/shmall Maximum in MemoryPages
/proc/sys/kernel/shmmni Maximum a Shared Memory Segments (sollte man auf Standard belassen)
sysctl -w sys.kernel.shmmax=8074035200
sysctl -w sys.kernel.shmall=1971200
Seitenanfang

Drucken

Befehl Beschreibung
lpr Datei Druckt eine Datei aus
lpr -Pmyprinter Datei auf einem bestimmten Drucker ausdrucken, wenn man den Namen des Druckers vergessen hat, kann man unter /var/spool/lpd oder unter /etc/printcap nachsehen
lpq Drucker Warteschlange anzeigen
lprm ZAHL Job aus der Wartesclange löschen
lprm - alle Druckjobs löschen (als root) alle des Benutzers (als User)
/usr/sbin/lpc status alle Drucker die online sind anzeigen
export PRINTER=myprinter wenn man immer den gleichen Drucker verwenden möchte, in .bashrc die Variable festlegen (Option -P hat Vorrang vor der Variable PRINTER)
lpd Drucker Spooler Dämon
Seitenanfang

X Windows Befehle und mehr

Oberflächen: KDE, FVWM95, FVWM2, FVWM, AFTERSTEP, QVWM, GNOME u.v.m.

Befehl Beschreibung
startx Linux Oberfläche starten
startx kde startet Oberfläche KDE
xev Tasten KeyCode anzeigen
ding Übersetzungsprogramm English-Deutsch
xlsfonts prüft ob alle Schriften unter X-Server gefunden werden
xwininfo -root zeigt aktuelle Auflösung und Farbtiefe an
xpdyinfo zeigt dpi-Zahl der Schriften an
fslsfonts -server unix/:7100 Fontserver testen, alle installierten Schriften werden aufgelistet
   
Seitenanfang

Netzwerk

Befehl Beschreibung
mii-tool zeigt geladene Netzwerkkarten an und deren Bezeichnung
mii-tool --restart Autonegration neustarten
netstat -plt listet alle aktiven Prozesse die auf TCP-Verbindungen warten auf
netstat -plu listet alle aktiven Prozesse die auf UDP-Verbindungen warten auf
netstat -plut Liste alle nach aussen geöffneten ServerPorts, mit DNS-Abfrage
netstat -plutn Liste alle nach aussen geöffneten ServerPorts, ohne DNS-Abfrage
netstat -tulpan Liste alle nach aussen geöffneten ServerPorts und Verbindungen, ohne DNS-Abfrage
lsof -i Listet Prozesse die Netzwerkressourcen benutzen
lsof -i udp Prozesse die UDP Protokoll nutzen
lsof -i :22 Prozesse die Port 22 (SSH) nutzen, ServerProzess sowie Verbindungen zum Server
ipchains / iptables zum Filtern von IP Paketen
nmblookup -A 192.168.0.1 zeigt Netbios Name des Rechners mit der IP192.168.0.1 (Samba-Befehl)
nmblookup -T '*' sucht im Netzwerksegment nach NetBios Name Server
nslookup domain.tld 8.8.8.8 DNS Server nach IP-Adr abfragen
host domain.tld 8.8.8.8 DNS Server nach IP-Adr abfragen
dig any domain.tld @8.8.8.8 DNS Abfrage alle Einträge (any) für den Host (domain.tld) vom angegebenen DNS Server (8.8.8.8 - GoogleDNS Server)
dig AAAA host.domain.tld DNS Server nach IPv6 IP-Adr abfragen
dig MX domain.tld Abfrage des Mailservers der angegebenen Domain
dig NS domain.tld Abfrage des DNS Server der angegebenen Domain
dig -x 8.8.8.8 Reverse Lookup Abfrage
kdig @1.1.1.1 example.com +tls DNS-over-TLS Abfrage der Domain example.com (kdig aus Paket knot-dnsutils)
echo | openssl s_client -connect 'dns11.quad9.net:853' Zertifikat des DNS-over-TLS-Resolver anzeigen
   
   
ifconfig Netzwerkkonfiguration anzeigen
ifconfig -a ausführliche Netzwerkkonfiguration anzeigen
arp -a MAC Adresse anzeigen
arp -s 192.168.0.1 01:02:03:04:05:06 MAC Adresse anzeigen
arp -n Ermittlung der Ethernet-Adresse, ohne DNs-Abfrage
traceroute <Hostname - IPv4> Route zu einem Host ermitteln
traceroute6 <Hostname - IPv6> Route zu einem Host ermitteln
route Route erstellen, löschen, anzeigen
route -n Route anzeigen ohne DNS-Abfrage
ip route add/del/show Route erstellen, löschen, anzeigen
ip -6 route add/del/show IPv6 Route erstellen, löschen, anzeigen
ip -f inet6 route add/del/show IPv6 Route erstellen, löschen, anzeigen
ip addr list/add/del IPv4 Adresse erstellen, löschen, anzeigen
ping 127.0.0.1 Kommunikation testen Loopback Adresse
ping6 ::1 Kommunikation testen IPv6 Loopback Adresse
ping6 -I eth0 fe80::207:e9ff:fe0c:5c34 Kommunikation testen IPv6 Link-local-Adresse auf Anschluss eth0
   
LinNeighborhood zum Mounten und Browsen von Netzwerkfreigaben
Ethereal Netzwerksniffer
tcpdump host 192.168.x.x and port 53 Netzwerksniffer
Ettercap Netzwerksniffer für geswitchte Netzwerke
bing testet Netzwerkdurchsatz
ngrep Netzwerküberwachungstool Option -L zeigt verfügbare NWSchnittstellen
ngrep -q GET http-GET Anfragen überwachen
nmap -v -A localhost Localhost scannen
nmap -O server OS-Fingerprint eines Rechners holen
nmap -OsS 192.168.2.0/24 ein Subnetz durchsuchen
nmap -sX 192.168.2.100 | egrep -v '^(Nmap|Starting)' > nmap.out1 mit gefilterter Ausgabe
diff -c nmap.out* unterschiede der Ausgabe ermitteln
hping2 TCP/IP Pakete erzeugen zum testen z.B. der Firewall
hping3 -c 5 -p 445 192.168.2.1 TCP/IP Pakete an Zielport 445 des Server senden
nessus Testet Rechner auf Sicherheitslücken
wlcardconfig Konfigurationsprogramm für WLAN
iwconfig gleich wlcardconfig nur an der Kommandozeile
wget www.domain.de/datei Downloader für Links
curl ftp://domain.de/README | less Datei vom Server direkt mit less anzeigen
curl -o README ftp://domain.de/README Datei vom Server laden und als README speichern
ntop stellt eine Netzwerkstatistic auf Port 3000 (Standard) zusammen
pppoe -A -I eth1 prüfen ob ein an eth1 angeschlossenes DSL Modem erreichbar ist
nc -l -p 23 Netcat auf Port 23 als Listener laufen lassen

z.B.
- IP Adresse für die Netzwerkkarte festlegen
ifconfig <interface> <IPv4 address> netmask <subnetmask> up
ifconfig <interface> add <IPv6 addr/prefixlen>
z.B.
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
- Netzwerkkarte deaktivieren
ifconfig down
- MTU Wert der Netzwerkkarte für DSL ändern
ifconfig mtu 1492

- IP-Header ID Überwachung mit hping, bei jedem Paket wird die ID um eins erhöht (je nach Betriebssystem)

hping -c 3 -p 80 192.168.2.1
len=46 ip=192.168.2.1 flags=RA seq=0 ttl=128 id=20362 win=0 rtt=0.9 ms
len=46 ip=192.168.2.1 flags=RA seq=1 ttl=128 id=20363 win=0 rtt=0.9 ms
len=46 ip=192.168.2.1 flags=RA seq=2 ttl=128 id=20364 win=0 rtt=1.0 ms

Für das Argument -a IP IP gibt man die IP des Rechners an, der angegriffen werden soll. Mit dem Befehl netstat -a überprüft man, welche Ports für den Angriff erreichbar sind (hier 139). Falls dort beispielsweise der Port 80 für einen Webserver auftaucht und dieser mit einem LAND-Angriff durch die Firewall erreichbar ist, kann man auch von außen einen Webserver per DoS stilllegen.

hping -V -c 100 -d 40 -S -k -s 139 -p 139 -a 192.168.0.1 192.168.0.1

Route erstellen
- Default Route für eine Netzwerkkarte

route add -net 0.0.0.0 netmask 0.0.0.0 gw dev eth0
ip route add default via 207.149.43.1 dev eth0

- Default Route auf ein Gateway Rechner mit IP Adr setzen

route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1

oder mit Namen des Rechners

route add default gw server2

- IPv6 Route erstellen

ip -f inet6 route add fe80::290:27ff:fee8:c0df dev eth1

- IPv6 Route für ein Tunnel erstellen

ip -f inet6 route add 3ffe::/16 dev sit1

- IPv6 Route zum nächsten Router erstellen (Beispiel für einen 6to4 Tunnel)

route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0

- IPv6 Route zum nächsten Router erstellen (in einem normalen IPv6 Netzwerk)

route -A inet6 add default gw 2001:db8::1

Route löschen
- Default Route IPv4 löschen
route del -net 0.0.0.0
- Default Route IPv6 löschen
ip -f inet6 route del ::/0 dev eth0

Route anzeigen
Route anzeigen
- IPv4
route -A inet
- IPv6
route -A inet6
- IPv4 und IPv6 Routen anzeigen
routel
- Kurzanzeige
route -n
- Lange Anzeige
route -ee
netstat -r
ip route show

Seitenanfang

sonstige Befehle

Befehl Beschreibung
alias ls='ls -l' definiert einen Alias
unalias ls entfernen des Alias
alias more=less statt den Befehl more wird less ausgeführt (Abkürzung kann für immer in /HOME/<USER>/.profile gespeichert werden
ntpdate -u ptbtime1.ptb.de stellt die Systemuhr nach dem angegebenen NTP-Server
cksum berechnet CRC-Prüfsumme zu einer Datei
date zeigt Datum und Uhrzeit
expr führt Integer-Berechnung durch
free Info über Auslastung des Arbeitsspeichers und Swap Speichers
hash zeigt Hash-Tabelle an
file mozilla-installer-bin zeigt an um welchen Dateityp es sich handelt
ldd /bin/ls zeigt die verwendeten Bibliotheken einer Anwendung (ls) und die Speicheradressen der Bibliotheken
/etc/ld.so.cache enthält den Speicherort der Bibliotheken auf der Festplatte
/etc/ld.so.conf weitere Pfade mit Bibliotheken
ldconfig aktualisiert die /etc/ld.so.cache wenn Bibliotheken von Hand nachinstalliert wurden
printenv zeigt Umgebungsvariablen an
printenv <VARIABLE> zeigt angegebene Variable an
env zeigt Umgebungsvariablen an, wie printenv
rdev verändert einige Bytes in Kernel-Datei
set zeigt bekannten Variablen der Shell an
sum berechnet Prüfsumme zu einer Datei
tty zeigt den Device-Namen des aktuellen Terminals an
type gibt Type eines Kommandos an
uname zeigt Betriebssystemnamen und die Versionsnummer an
w Info angemeldeten Benutzer
du Info belegten Speicherplatz der Dateien und Unterverzeichnisse
sync schreibt Datenpuffer auf Platte danach kann Rechner im Notfall ausgeschaltet werden
tail -f /var/log/auth.log Datei fortlaufend auzeigen
tail -n 20 /var/log/auth.log letzten 20 Zeilen der Datei anzeigen
rcnetwork STATUS Status des geladenen NW
rcnetwork RESTART NW neu starten (oder START, STOP)
export term = vt320 beim Zugriff über Terminal auf die Emulation vt320 umstellen (vt100 und andere Modi auch möglich
echo $QTDIR Variable QTDIR anzeigen
export QTDIR=/usr/lib/qt3 Variable QTDIR setzen
rsync Syncronisation von Verzeichnissen
rsync -ae ssh pc1.domain.de:/var/www /var/www Syncronisieren vom Webserver
ifport  
partimage sichern von Partitionen, im gleichnamigen Packet enthalten
partimage-server Server auf den die Images gesichert werden können
:(){ :|:&};: Tux System mit der Bash zum Absturtz bringen (Simulation Rechnerausfall)
savelog LOG Files sichern
mail -s "test" user@domain.tld Mail auf der Konsole versenden
mail -u <username> Maileingang eines Users anzeigen
mail -f <filename> eine Mail anzeigen
md5sum /dev/urandom CPU ein wenig beschäftigen
time Befehl mit Time läst sich die Laufzeit deines Befehles feststellen.
dd if=/dev/hda1 | buffer -s 64k -S 10m > image dd mit Fortschrittsanzeige "-s 64k" Daten werden in 64 KByte Blöcken übertrage, "-S 10m" alle 10 MByte wird die übertragene Datenmenge angezeigt.
kill -SIGUSR1 $(pidof dd) auf einer anderen Konsole eingegeben, wird eine Statistik der gerade übertragenen Datenmenge aller laufenden dd Befehle angezeigt
iconv -f UTF-8 -t WINDOWS-1252 /path/input > /path/output Zeichenkodierung einer Datei ändern, im Beispiel von UTF-8 nach Windows-1252, iconv -l zeigt alle unterstützten Zeichensätze

IPv6 Adresse aus einer IPv4 Adresse berechnen

ipv4="192.168.2.100"; printf "2002:%02x%02x:%02x%02x:::1\n" `echo $ipv4 | tr "." " "`

Packet chntpw
zum ändern von NT Passwörter unter Linux
1. NT Partition mounten

mount /dev/hda1

2. in das Verzeichnis der NT Registry wechseln

cd /mnt/hda1/windows/system32/config

3. bearbeiten der Dateien im Interaktiven Modus

chntpw -i sam security system

bei einer NTFS Partition
4. Partition zum zurückschreiben der Dateien mounten

mount -o remount,rw /mnt/hda1

5. Verbindung zur Partition trennen

umount /dev/hda1

6. mögliche Fehler beim zurückschreiben reparieren

ntfsfix /dev/hda1

Registry bearbeiten mit "chntpw -e software"

SSDs

Page = 4KByte
128 Pages je Block = 512KByte je Block

Linux Verwaltung per GTP
Paket gdisk

Seitenanfang

Befehls Beispiele

Befehl Beschreibung
echo + Jokerzeichen zum probieren des Jokers, alle angegebenen Dateien werden angezeigt
./Befehl Befehl im aktuellen Verzeichnis wird ausgeführt
*/. alle Dateien in Verzeichniss und Unterverz.
[abc] alle Dateien die mit a, b oder c beginnen
[a-f]* alle Dateien von a bis f
[!a-z]* alle Dateien mit Grossbuchstaben oder Sonderzeichen beginnen (durch ! wird der Ausdruck negiert also keine kleinen Buchstaben)
[!abc] keines der angegebenen Zeichen
[^abc] keines der angegebenen Zeichen
*[hc] alle Dateien die mit c oder h enden
*/*.tex alle *.tex Dateien die sich im Unterverzeichnis des aktuellen Verz. befinden (nur eine Ebene)
/usr/*bin/* alle Dateien im Verzeichnis /usr/bin und /usr/sbin
echo .[!.]* alle unsichtbaren Dateien (Konfig-Dateien) alle Dateien die mit einem Punkt beginnen und mindestens ein oder weiteres Zeichen haben das kein Punkt ist
find . -name '.*' Groß/Kleinschreibung wird berücksichtigt
find / -iname "*.jpg" sucht alle Dateien die auf .jpg enden, Groß/Kleinschreibung wird nicht berücksichtigt
find / -name httpd.conf Suche der Datei httpd.conf von der Wurzel abwärts
finde / -name "*.conf" alle Dateien mit Ändung .conf von der Wurzel an anzeigen
find /home -name "*~" -exec rm "{}" \; alle Dateien mit Endung ~ werden gelöscht im Home Verzeichnis ( "{}" die aktuell von find bearbeitete Datei wird durch diese Zeichen an den Befehl rm weitergeleitet und somit gelöscht) ( \; zeigt an das die Befehlszeile endet)
find /home -name "*~" -ok rm "{}" \; vor dem Ausführen von rm wird zur Bestätigung aufgefordert
find / -empty leere Dateien oder Verzeichnisse finden
find /tmp \! -type d -atime +3 -exec ls -l {} \; zeigt alle Dateien an, die in den letzten 3 Tagen nicht benutzt wurden (-atime +3)
find -inum 12345 inode Nummer einer Datei suchen
ls -al Verzeichnis-Inhalt auflisten
ls -al --sort=time /etc Dateien nach Datum sortiert anzeigen
ls -al |lpr -Plp1 Verzeichnis-Inhalt drucken auf Drucker mit Namen LP1
ps ax|grep httpd zeigt an ob der Apache Server läuft und die ProzessID dazu
mkdir -p /usr/local/share Option -p legt Verzeichnisse mit Unterverzeichnissen an
cat /proc/sys/net/ipv4/tcp_ecn zeigt an ob das System ECN benutzt
find /etc/. -type f | xargs grep "Bezeichnung" sucht im Verzeichnis /etc in den Dateien nach "Bezeichnung"
ls -l | joe - Ausgabe von ls an den Editor joe zu Bearbeitung weitergeben
for a in *.bz2; do tar xvfj "$a"; done for-Schleife entpackt alle *.bz2 Dateien eines Verzeichnisses
find / -perm +6000 -type f -exec ls -ld {} \; > setuid.txt & setuid und setgid Binaries finden
dd if=/dev/hda of=bootsector.bin bs=512 count=1 Bootsector sichern IDE Platte
dd if=/bootsector.bin of=/dev/hda Bootsector wieder zurückschreiben IDE Platte
netstat -lnp Liste aller offenen Ports (-l) und der Programme dazu (-p)
...
tcp 0 0 0.0.0.0:199 0.0.0.0:* LISTEN 785/snmpd
...
ps auwex | grep -w 785 zeigt wer den Prozess (785) gestartet hat, der den Port 199 belegt.
lsof -p 785 welche Dateien hält der Prozess (-p) 785 offen
lsof -c snmpd das gleiche nur mit Namen des Prozesses
html2text -o datei.txt datei.htlm wandelt die Datei.html in eine lesbare Textdatei um
screen klont eine Konsole
ttysnoop wie screen klont es eine Konsole, kann aber auch als Loginshell genutzt werden, so das jemand immer die Eingaben überwachen kann.
dd if=/dev/mem bs=512 skip=2 count=1 | hexdump -C bei manchen PCs ist es möglich, mit diesem Befehl das BIOS Passwort anzeigen zu lassen
_(){ _|_& };_ Forkbombe (legt den Rechner lahm)

Shell-Globbing - Ordnerstruktur anlegen

mkdir -vp /tmp/{PROJECT_1,PROJECT_2}
/tmp/PROJECT_1
/tmp/PROJECT_2
mkdir -vp /tmp/{PROJECT_1,PROJECT_2}/{bin,docs,sources}
/tmp/PROJECT_1
	|- bin
	|- docs
	|- sources
/tmp/PROJECT_2
	|- bin
	|- docs
	|- sources
mkdir -vp /tmp/{PROJECT_1/docs/{bim,bam},PROJECT_2,PROJECT_3}
/tmp/PROJECT_1
	|- docs
	   |- bim
	   |- bam
/tmp/PROJECT_2
/tmp/PROJECT_3
ls -Al PROJECT_[1-2]
PROJECT_1:
insgesamt 4
drwxr-xr-x 4 root root 4096 Jan  1 17:58 docs

PROJECT_2:
insgesamt 0

- Ausgabe von which wird an file übergeben

which rmdir | xargs file
file `which rmdir`
mount -t iso9660 -o ro,loop=/dev/loop0 /home/user/test.iso /mnt/iso

- Um die ISO-Datei "test.iso" in Ihrem Home-Verzeichnis mit "mount" einzubinden, geben Sie am Bash-Prompt dieses Kommando ein

echo -e "Bitte alle abmelden \nServer wird neu gestartet" | wall

- Sichert Dateien in ein Archiv mit aktuellem Datum

alias sichern='if [ ! -d /srv/backup ];then mkdir -p /srv/backup;fi; cd /srv/backup; tar cfz \
 `date +%d-%m-%Y`.tar.gz /etc /home /root;cd -'
route add default gw 192.168.0.1

Systemweiten Alias festlegen

# /etc/profile.d/alias.sh
# oder besser in Datei
# /etc/bash.bashrc
#
# Systemweiten ALIAS setzen
#
# Variablen setzen
export LS_OPTIONS='--color=auto'

#
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias la='ls $LS_OPTIONS -SAhl --group-directories-first'
# alias ld='ls $LS_OPTIONS -d */'
#
alias inet='route add -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1'
alias out='route del -net 0.0.0.0 netmask 0.0.0.0 gw 192.168.0.1'
alias mountc='mount -t smbfs -o username=user,password=geheim //192.168.0.1/freigabe /mnt/c'
alias mountd='mount -t smbfs -o username=user,password=geheim //192.168.0.1/freigabe /mnt/d'
alias umountc='umount /mnt/c'
alias umountd='umount /mnt/d'
alias bootsec='update-grub2 /dev/sda2;mount /mnt/sda1;dd if=/dev/sda2 bs=512 \
 count=1 of=/mnt/sda1/Tools/Konfig/linux.sec;sync;umount /mnt/sda1'