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
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
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 |
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 |
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
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. |
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
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
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
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.
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
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'
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 |
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) |
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
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) |
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
(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
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
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 |
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 |
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
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"
Page = 4KByte
128 Pages je Block = 512KByte je Block
Linux Verwaltung per GTP
Paket gdisk
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) |
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
# /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'