Shell Befehle
Shell Befehlsübersicht und Kommandoreferenz mit Beispielen.
Manuals, Hilfedateien, Programminfos
man
Manpages über Programm anzeigen (beenden mit q).
man apache2
Haupt Manpage von „apache“ aufrufen.
man:apache2
Manpages im Konqueror ausgeben.
whereis
Das Kommando „whereis“ zeigt informationen über Speicherorte von Programmen. Wo ist der Pfad zu ausführbaren Programme, Quellcodes und Manpages?
Syntax:
- whereis [opt] [name]
Optionen:
- -b ⇒ sucht nur Binärdateien.
- -m ⇒ sucht nach Manualpages.
- -s ⇒ sucht nach Quelldateien.
- -u ⇒ sucht nach ungewöhnlichen Einträgen.
Beispiele:
root@home:~# whereis apache2 apache2: /usr/sbin/apache2 /etc/apache2 /usr/lib/apache2 /usr/share/apache2 /usr/share/man/man8/apache2.8.gz
beatrice@home:~$ whereis -m screen screen: /usr/share/man/man1/screen.1.gz
which
„which“ lokalisiert ein zum Befehl gehörendes Kommando das bei der Eingabe ausgeführt wird. Bevorzugt wird der Befehl, der in der $PATH Variable nach der Reienfolge im Pfad zuerst zugewiesen wird.
beatrice@home:~$ echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Syntax:
- which [opt] [name]
Optionen:
- -a ⇒ zeigt alle Dateipfadnamen an.
Rückgabewerte:
- 0 ⇒ alle ausführbaren Kommandos wurden gefunden.
- 1 ⇒ einer oder mehr Kommandos wurden nicht gefunden oder sind nicht ausführbar.
- 2 ⇒ Ungültige Option.
Beispiel:
beatrice@home:~$ which -a screen /usr/bin/screen
whatis
Zeigt das Programmnamensfeld an. Eine Kurzbeschreibung des Programms.
Syntax:
- whatis [opt] [pfad] [arg]
Optionen:
- -d ⇒ Fehlerinformationen ausgeben.
- -r ⇒ Interpretiert jedes Schlüsselwort als regulären Ausdruck.
- -w ⇒ Wildcards als regulären Ausdruck verwenden.
- -m [system] ⇒ Manualseiten eines anderen Betriebssystems anzeigen.
- -M [pfad] ⇒ Gibt die Manualpfade an. Diese Option überschreibt die Umgebungsvariable $MANPATH.
- -h ⇒ Hilfe anzeigen.
- -V ⇒ Version.
Beispiel:
beatrice@home:~$ whatis screen screen (1) - screen manager with VT100/ANSI terminal emulation
beatrice@home:~$ whatis -V whatis 2.5.7
apropos
Sucht die Manualkurzbeschreibung in der Indexdatenbank. Syntax wie bei „whatis“.
rudi@host:~$ apropos geany geany (1) - a small and lightweight IDE
Programme zum finden von Dateien
find
Mit dem Programm „find“ kann nach Dateien und Verzeichnissen gesucht werden. Hierbei können auch Wildcards verwendet werden. Für einige Optionen, deren genauer Wert nicht bekannt ist können Vorzeichen +, -, = gesetzt werden. Eine Ausführlichere Beschreibung findet man in der Manpage von „find“.
Syntax:
- find [pfad] [opt] [args]
Optionen:
- -name ⇒ sucht nach Dateinamen.
- -iname ⇒ sucht nach Dateinamen. Es wird jedoch Groß und Kleinschreibung ignoriert.
- -amin [min] ⇒ sucht nach Dateien auf die vor „min“ Minuten zugegriffen wurde.
- -mmin [min] ⇒ sucht nach Dateien, deren Inhalt vor „min“ Minuten bearbeitet wurde.
- -cmin [min] ⇒ sucht nach Dateien, deren Dateiname, Zugriffsrechte u.s.w. vor „min“ Minuten geändert wurde.
- -atime [tage] ⇒ sucht nach Dateien auf die vor „tage“ Tage zugegriffen wurde.
- -mtime [tage] ⇒ sucht nach Dateien, deren Inhalt vor „tage“ Tage bearbeitet wurde.
- -ctime [tage] ⇒ sucht nach Dateien, deren Dateiname, Zugriffsrechte u.s.w. vor „tage“ Tage geändert wurde.
- -empty ⇒ sucht nach leeren Dateien und Verzeichnissen.
- -user [nutzer] ⇒ sucht nach Dateien, die „nutzer“ Nutzer gehören.
- -nouser ⇒ sucht nach Dateien, die keinem im System eingetragenen Nutzer gehören.
- -group [gruppe] ⇒ sucht nach Dateien, die zur Gruppe „gruppe“ gehören.
- -nogroup ⇒ sucht nach Dateien, die zu keiner im System eingetragenen Gruppe gehören.
- -gid [gid] ⇒ sucht nach Dateien, die zur GruppenId „gid“ gehören.
- -perm [berechtigung] ⇒ sucht nach Dateien mit den angegebenen Berechtigungen. Sie können als Oktalzahl (644) oder mit denen in chmod beschriebenen Kennungen angegeben werden.
- -size [+,-,=,[x]M] ⇒ sucht nach Dateien, deren Größe größer, kleiner, gleich x Megabyte entspricht.
Beispiele:
bettina@home:~$ find /home -user bettina -name shell*txt /home/bettina/Dokumente/Linux/Shell/shell.txt
Sucht nach Datei „shell*txt“ die „bettina“ gehören.
ford@home:~$ find /home/ford -name datei1 /home/ford/datei1 /home/ford/workspace/datei1
Sucht nach „datei1“ im Verzeichnis „/home/ford“.
ford@home:~$ find /home/ford -mmin -10 /home/ford /home/ford/datei1
Sucht Dateien und Verzeichnisse im Verzeichnis „/home/ford“, die vor weniger als 10 Minuten bearbeitet wurden.
zaphod@galaxy:~$ find /home/zaphod -perm 750 /home/zaphod/Bilder /home/zaphod/Dokumente
Sucht nach Dateien und Verzeichnisse von „zaphod“ mit den Berechtigungen „750“.
pete@home:~$ find /home/pete -perm +4000 /home/pete/datei1
Sucht Dateien mit gesetzten SUID Bit im Verzeichnis „/home/pete“.
arthur@home:~$ find /home -size +200M | xargs ls -l ... -rw-r--r-- 1 arthur arthur 256000000 20. Okt 01:38 /home/arthur/datei42 ...
Findet Dateien in „/home“, die größer als 200 MB sind.
locate
Das Kommando „locate“ verewndet für die Suche die Datenbank „/var/lib/mlocate/mlocate.db“ und ist erheblich schneller als „find“, „locate“ kann aber nur nach Suchmuster und nicht nach anderen Eigenschaten suchen.
Basis ist eine Datenbank die mit „updatedb“ erstellt oder aktualisiert werden kann.
updatedb
Aktualisiert Datenbank „mlocate.db“.
Syntax:
- locate [opt] [datei|verz]
Optionen:
- -e ⇒ listet db Inhalte die auf der Festplatte sind.
- -i ⇒ groß und Kleinschreibung ignorieren.
hans@home:~$ locate datei1 /home/hans/datei1.txt ...
updatedb
Durch das Kommando „updatedb“ wird eine Datenbank erstellt b.z.w. aktualisiert. Diese Datenbank wird als Binärdatei in „/var/lib/mlocate/mlocate.db“ gespeichert. Die Konfiguration von „updatedb“ wird in der Datei „/etc/updatedb.conf“ vorgenommen.
Beispiel einer „updatedb.conf“:
PRUNE_BIND_MOUNTS="yes" # PRUNENAMES=".git .bzr .hg .svn" PRUNEPATHS="/tmp /var/spool /media" PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs" # NETPATHS="/public" # NICE=10
- PRUNEPATHS ⇒ Enthält Verzeichnisse, die updatedb nicht durchsuchen soll.
- PRUNEFS ⇒ Hier stehen die Dateisystemtypen, die von der Indizierung ausgeschlossen werden sollen.
- NETPATHS ⇒ Indiziert Verzeichnisse, die auf einem anderen System liegen (im Beispiel ein NFS Verzeichnis, wird es verwendet, sollte man NFS in PRUNEFS herausnehmen).
- NICE ⇒ Nicewert von updatedb festlegen.
Navigation im Dateisystem und Inhalte auflisten
pwd
Das Kommando „pwd“ Print-Working-Direktory gibt das aktuelle Verzeichnis aus.
Syntax:
- pwd
Beispiel:
nadine@home:~$ pwd /home/nadine
ls
Das Kommando „ls“ liest Verzeichnisinhalte aus.
Syntax:
- ls [opt] [verz]
Optionen:
- -a ⇒ all + versteckte Dateien und Verzeichnisse anzeigen.
- -A1, -a1 ⇒ untereinander Ausgeben (eine Datei pro Zeile).
- -l ⇒ mit Dateirechte, Besitzer und Gruppenzugehörigkeit auslesen.
- -g ⇒ wie -l, jedoch Besitzer nicht auflisten.
- -o ⇒ wie -l, jedoch Gruppe nicht auflisten.
- -la ⇒ wie l, zeigt auch versteckte Dateien.
- -i ⇒ Dateien und Verzeichniss mit Inodenummer ausgeben.
- -lt ⇒ aktuellsten Oben.
- -ltr ⇒ ältesten Oben.
- -LAS ⇒ sortiert auslesen.
- -R ⇒ Rekursiv auslesen.
- -B ⇒ --ignore-backups. Einträge, die mit „~“ enden nicht ausgeben.
- -h ⇒ Human readable.
- -m ⇒ Ausgabe durch eine Kommagetrennte liste.
- -s ⇒ Größe jeder Datei in Blöcke ausgeben.
- -S ⇒ nach Dateigröße sortieren.
- --help ⇒ kurze Hilfe anzeigen.
- --version ⇒ Programmversion anzeigen.
Beispiele:
user@home:~# ls /etc acpi fstab mail rc0.d adduser.conf gai.conf mailcap rc1.d adjtime gconf mailcap.order rc2.d aliases gnome-vfs-2.0 mailname rc3.d .....
user@home:~# ls -l /etc insgesamt 1032 drwxr-xr-x 3 root root 4096 28. Aug 01:06 acpi -rw-r--r-- 1 root root 2986 28. Aug 00:49 adduser.conf ....
user@home:~$ ls -i /etc 489026 acpi 488870 locale.gen 488868 adduser.conf 490616 localtime 488956 adduser.conf.dpkg-save 488936 logcheck ...
tree
Verzeichnisbaum mit „tree“ anzeigen.
Syntax:
- tree [opt] [verz]
Optionen:
- -d ⇒ keine Dateien anzeigen.
Beispiel:
tom@home:~$ tree -d /etc /etc |-- acpi | `-- events |-- alternatives | |-- glx -> /usr/lib/nvidia | `-- nvidia -> /usr/lib/nvidia/current |-- apache2 | `-- mods-available ...
cd
Aktuelles Verzeichnis wechseln mit Change Directory „cd“. Mit „cd“ können relative und absolute Pfade verarbeitet werden.
Syntax:
- cd [verz]
Beispiele:
hans@home:~$ cd /etc
Wechselt ins Verzeichnis „/etc“.
hans@home:~$ cd
hans@home:~$ cd ~
Wechselt ins Homeverzeichnis des akt. Nutzers.
hans@home:~$ cd .
Wechsel ins aktuelle Verzeichnis.
hans@home:~$ cd ..
hans@home:~$ cd ../../
Wechselt ins erste übergeordnete Verzeichnis oder zweites übergeordnetes Verzeichnis u.s.w.
hans@home:~$ cd -
Wechselt ins letzte Verzeichnis.
Dateien und Verzeichnisse erstellen / löschen / kopieren / verschieben
mkdir
Verzeichnis(se) mit „mkdir“ erstellen. Ohne die Option [-m] werden neu erstellte Verzeichnisse mit den rechten des eingestellten „umask“ Wertes erstellt.
Syntax:
- mkdir [opt] [verz]
Optionen:
- -m [rechte(oktal)] ⇒ Setzt r,w,x Rechte auf Verzeichnis.
- -p ⇒ Erstellt Verzeichnisse mit Unterverzeichnissen.
- -v ⇒ Für jedes erstellte Verzeichnis eine Meldung ausgeben.
- --help ⇒ Hilfe anzeigen.
- --version ⇒ Programmversion anzeigen.
Beispiele:
user@home:~$ mkdir verz1
Erstellt im aktuellen Verzeichnis verz1.
user@home:~/verz1$ mkdir -p verz2/subverz1/subverz2
user@home:~/verz1$ tree . `-- verz2 `-- subverz1 `-- subverz2 3 directories, 0 files
Verzeichnis mit Unterverzeichnissen erstellen.
user@home:~/verz1$ mkdir -m 750 verz3
pippi@home:~/verz1$ ls -l insgesamt 8 drwxr-xr-x 3 pippi pippi 4096 21. Okt 17:10 verz2 drwxr-x--- 2 pippi pippi 4096 21. Okt 17:19 verz3
Verzeichnis mit angegebenen Rechten anlegen.
rmdir
Mit „rmdir“ können leere Verzeichnisse gelöscht werden.
Syntax:
- rmdir [opt] [verz]
Optionen:
- -p ⇒ leeres Verzeichnis mit Elternverzeichnissen löschen.
- -v ⇒ verbose mode.
Beispiel:
anna@home:~/verz1/verz2$ rmdir -v subverz1/ rmdir: Verzeichnis wird entfernt, „subverz1/“
user@home:~$ rmdir verz1 rmdir: konnte „verz1“ nicht entfernen: Das Verzeichnis ist nicht leer
user@home:~$ rm -r verz1
Löscht „verz1“ mit allen Unterverzeichnissen und Dateien.
touch
Erstellen von leeren Datei(en) und Zeitstempel ändern mit dem Kommando „touch“. Ohne Optionen wird eine leere Datei nach umask erstellt.
Syntax:
- touch [opt] [datei]
Optionen:
- -a [CC[YY]MMDDhhmm[SS]] ⇒ Zugriffszeit der Datei ändern.
- -m [CC[YY]MMDDhhmm[SS]] ⇒ Dateiänderungszeit neu setzen.
- -r [datei] ⇒ Die Zeiten dieser Datei anstatt der aktuellen Zeit verwenden.
- -t [CC[YY]MMDDhhmm[SS]] ⇒ Setzt aktuellen Zeitstempel für Datei.
Beispiele:
nadine@home:~/workspace$ touch datei1 nadine@home:~/workspace$ ll insgesamt 0 -rw-r--r-- 1 nadine nadine 0 21. Okt 18:21 datei1
Datei „datei1“ wird mit aktuellem Zeitstempel erstellt.
nadine@home:~/workspace$ touch -t 201010101010 datei1 nadine@home:~/workspace$ ll insgesamt 0 -rw-r--r-- 1 tf tf 0 10. Okt 2010 datei1
Der aktuelle Zeitstempel der Datei „datei1“ wird auf den 10.10.2010 um 10 Uhr 10 min gesetzt.
rm
Löschen von Dateien und Verzeichnissen mit dem Kommando „rm“.
Syntax:
- rm [opt] [datei|verz]
Optionen:
- -f ⇒ (force) Nicht vorhandene Dateien ignorieren, nie nachfragen. Versucht auch Dateien zu löschen, die gerade benutzt werden.
- -i ⇒ Jedesmal nachfragen.
- -r, -R ⇒ Rekursives löschen. Entfernt auch Verzeichnisse und deren Dateien!
- -v ⇒ Verbose Mode, durchgeführte Tätigkeiten werden erklärt.
- --help ⇒ Hilfe anzeigen.
- --version ⇒ Programmversion anzeigen.
Beispiele:
holger@home:~/workspace$ rm -v datei1 „datei1“ entfernt
Löscht „datei1“.
holger@home:~$ tree workspace/ workspace/ `-- verz1 |-- datei1 |-- uverz1 `-- uverz2 3 directories, 1 file
holger@home:~$ rm -r workspace/verz1
holger@home:~$ ls -l workspace/ insgesamt 0
Löscht „verz1“, alle Unterverzeichnisse und Dateien.
cp
Dateien und Verzeichnisse kopieren mit „cp“.
Syntax:
- cp [opt] [Quelle] [Ziel]
Optionen:
- -i ⇒ interaktiv (fragt nach, ob evtl. existierende Datei überschrieben werden soll).
- -v ⇒ verbose.
- -u ⇒ Zieldatei nur überschreiben, wenn Quelle aktueller ist.
- -p ⇒ Eigenschaften, Besitzer, Gruppe, Zugriffsrechte und Zeitstempel werden vom Orginal unverändert an die Kopie übergeben.
- -r, -R ⇒ rekursives Kopieren von Verzeichnissen mit Inhalt.
- -f ⇒ force erzwingt den Schreibvorgang im Verzeichnis.
- -l ⇒ Hardlink erzeugen, statt kopieren.
- -s ⇒ Softlink erzeugen, statt kopieren.
Beispiel:
tom@home:~$ cp -v /home/tom/Desktop/datei1 /home/tom/Dokumente/ „/home/tom/Desktop/datei1“ -> „/home/tom/Dokumente/datei1“
Die „datei1“ wird vom Desktop nach Dokumente kopiert.
mv
Verschieben oder umbenennen von Dateien mit „mv“.
Syntax:
- mv [opt] [Quelle] [Ziel]
Optionen:
- -i ⇒ Interaktiv (fragt nach, ob evtl. existierende Datei überschrieben werden soll).
- -f ⇒ Vor dem Überschreiben nicht nachfragen.
- -v ⇒ Verbose.
- -b ⇒ Backup vor dem Verschieben.
- -u ⇒ Nur Überschreiben wenn Quelle neuer als Ziel.
Beispiele:
inka@home:~/workspace$ l datei1 inka@home:~/workspace$ mv datei1 datei11 inka@home:~/workspace$ l datei11
Die Datei „datei1“ wird in „datei11“ umbenannt.
inka@home:~/workspace$ mv -v datei11 /home/inka/Desktop/ „datei11“ -> „/home/inka/Desktop/datei11“
Datei „datei11“ wird von „~/workspace“ nach „~/Desktop“ verschoben.
rename
Datei(en) umbenennen mit „rename“.
Syntax:
- rename [opt] [alt] [neu]
Optionen:
- -v ⇒ Verbose Mode.
- -f ⇒ Überschreibt existierende Datei.
Beispiel:
dd
Mit „dd“ (Disk Dump) kann man Dateien, Dateisysteme, Partitionen erstellen, kopieren, sichern und in eine andere Blockgröße konvertieren. Es können ganze Betriebssysteme zwischen Festplatten kopiert werden, sogar der MBR wird mitkopiert (es sollte eine gleich große Zielfestplatte verwendet werden).
Syntax:
- dd if=[quelle] of=[ziel] [opt]
- if ⇒ input file.
- of ⇒ output file.
Optionen:
- ibs=[byte] ⇒ Lesen von Blöcken in byte (Voreinstellung: 512).
- obs=[byte] ⇒ Schreiben von Blöcken in byte.
- bs=[byte] ⇒ Blöcke mit der Größe byte lesen und schreiben.
- count=[blöcke] ⇒ Wieviele blöcke werden durch bs, obs, ibs festgelegten Größe gelesen und/oder geschrieben.
- skip=[blöcke] ⇒ Blöcke die mit ibs oder bs festgelegten Größe zu Beginn des Lesevorgangs übersprungen werden.
- seek=[blöcke] ⇒ Blöcke die mit obs oder bs festgelegten Größe zu Beginn des Schreibvorgangs übersprungen werden.
Dezimalpräfixe | Binärpräfixe |
---|---|
Kilobyte (kB) = 103 Byte = 1.000 Byte | 1K = 1024 Byte |
Megabyte (MB) = 106 Byte = 1.000.000 Byte | 1M = 1048576 Byte (1024 * 1024) |
Gigabyte (GB) = 109 Byte = 1.000.000.000 Byte | 1G = 1073741824 Byte (1024 * 1024 * 1024) |
Terrabyte (TB) = 1012 Byte = 1.000.000.000.000 Byte | 1T = 1099511627776 Byte (1024 * 1024 * 1024 * 1024) |
Die Präfixe gelten auch für Blöcke, mit „count=1K“ werden 1024 Blöcke gelesen/geschrieben, mit „count=1MB“ 1000000 Blöcke.
Beispiele:
root@home:~# dd if=/dev/sdb2 of=/dev/sdc3
Partition „sdb2“ nach „sdc3“ sichern.
root@home:~# dd if=/dev/sdb1 of=/dev/sdc2 bs=1K count=10
Hier werden die ersten zehn 1024 Byte großen Blöcke von der erste Partition von „/dev/sdb1“ auf die Partition „/dev/sdc2“ kopiert.
root@home:~# dd if/dev/hda of=mbr.backup ibs=512 count=1
Master Boot Record sichern, „ibs“ entspricht der Blockgröße und „count“, die zu lesenden Blöcke.
root@home:~# dd if=/dev/sdb2 of=/dev/sdc3 ibs=2KB obs=2KB skip=50
2000 Byte große Blöcke werden von der zweiten Partition von „/dev/sdb“ auf die dritte Partition von „/dev/sdc“ kopiert, wobei beim Einlesen die ersten 50 Blöcke (50 * 2000 = 100000 Byte) übersprungen werden, der Lesevorgang fängt bei Byte 100.001 an.
Dateien ausgeben
Kommandos zur Ausgabe von Dateien.
cat
Mit dem Kommando „cat“, Dateien aneinanderhängen und in die Standardausgabe der Konsole schreiben.
Syntax:
- cat [opt] [datei] [datei2]
Optionen:
- -n ⇒ Nummeriert alle Ausgabezeilen.
- -s ⇒ Unterdrückt aufeinander folgende Leerzeilen.
- -b ⇒ Nichtleere Ausgabezeilen nummerieren.
- -E ⇒ Gibt ein $ am Ende jeder Zeile aus.
- -T ⇒ Tabulatoren werden als ^I ausgegeben.
- -v ⇒ Es werden alle Steuerzeichen außer LF (Linefeed) und Tabulatoren ausgegeben.
- --help ⇒ Gibt eine kurze Hilfe aus.
- --version ⇒ Versionsnummer von cat.
Beispiele:
user@home:~$ cat datei1 datei2 > datei_komplett
Datei2 wird an Datei1 angehängt und in „datei_komplett“ geschrieben.
user@home:~$ cat datei1.tar.gz datei2.tar.gz > datei_komplett.tar.gz
Hier werden zwei komprimierte Dateien zusammengeführt.
tac
Dateien aneinanderhängen und umgekehrt ausgeben mit „tac“.
Syntax:
- tac [opt] [datei] …
Optionen:
- -b ⇒ Trennzeichen vorher statt hinterher einfügen.
- -r ⇒ Das Trennzeichen als regulären Ausdruck interpretieren.
- --help ⇒ Hilfe anzeigen und beenden.
- --version ⇒ Versionsinformation anzeigen und beenden.
Beispiel:
nadine@home:~$ datei1 datei2 3: Rose 2: Weisswein 1: Rotwein 3: Grüner Veltiner 2: Doppelkorn 1: Lutter und Wegener
more
„more“ gibt Textdateien seitenweise auf dem Bildschirm aus. Nach jeder Bildschirmseite wird die Ausgabe angehalten und auf eine Eingabe des Nutzers gewartet.
Syntax:
- more [opt] [+Zeilennummer] [+/Muser] [datei]
Optionen:
- -[zahl] ⇒ Zeilen je Bildschirm festlegen.
- -p ⇒ scrollen unterdrücken.
- +[zahl] ⇒ Auszugebende Zeile.
- = ⇒ Zeigt aktuelle Zeilennummer an.
- h ⇒ Zeigt eine Übersicht über die more Kommandos.
- v ⇒ Startet den Editor vi mit der aktuellen Datei in der aktuellen Zeile.
- q ⇒ Beendet more.
less
Seitenweise Ausgabe einer Datei auf die Standardausgabe mit dem Kommando „less“. Im Unterschied zu „more“ kann man mit „less“ in Texten auch zurückblättern.
Syntax:
- less [tastaturkommandos] [opt] datei
Tastaturkommandos:
- h | H ⇒ Gibt Hiletext aus.
- leerzeichen | Strg+V | Strg+F | f ⇒ Blättert eine Seite vorwärts.
- z ⇒ Wie leerzeichen. Mit vorangestellter Zahl kann Seitenlänge definiert werden.
- return | Strg+N | Strg+E | Strg+j ⇒ Scrollt die Seite zeilenweise weiter.
- Strg+D | d ⇒ Blättert einen halben Bildschirm weiter.
- Strg+V | b ⇒ Blättert einen halben Bildschirm zurück.
- u | Strg+U ⇒ Blättert einen halben Bildschirm zurück.
- w ⇒ Zurückblättern.
- y | Strg+Y | Strg+P | Strg+K ⇒ Scrollt die Seite zeilenweise zurück.
- r | Strg+R | Strg+L ⇒ Schreibt den aktuellen Bildschirm neu.
- R ⇒ Schreibt den aktuellen Bildschirm neu. Gepufferte Eingaben werden verworfen.
- /muster ⇒ Sucht vorwärts nach muster. Muster kann reguläre Ausdrücke enthalten.
- !muster ⇒ Sucht nach Zeile, die muster nicht enthält.
- *muster ⇒ Durchsucht mehrere Dateien.
- ?muster ⇒ Sucht rückwärts nach muster.
- n ⇒ Wiederholt die letzte Suche.
- N ⇒ Wiederholt die letzte Suche in umgekehrter Richtung.
- :n ⇒ Zeigt nächste Datei aus der Kommandozeilenliste an.
- :p ⇒ Zeigt vorherige Datei aus der Kommandozeilenliste an.
- v ⇒ Startet einen Editor mit der aktuellen Datei.
Optionen:
- -? ⇒ Kommandoübersicht von less anzeigen.
- -e ⇒ Beendet less automatisch, wenn das Dateiende zum zweiten mal erreicht ist.
- -E ⇒ Beendet less automatisch beim Dateiende.
- -f ⇒ Erzwingt Anzeige auch von nicht druckbaren Zeichen.
- -i ⇒ Groß und Kleinschreibung werden beim suchen ignoriert. Wird ein Buchstabe im Suuchmuster groß geschrieben, wird diese Option ignoriert.
- -j [nr] ⇒ Die Zielzeile wird beim suchen oder Positionierung an der Stelle angezeigt.
- -m ⇒ Zeigt aktuelle Dateiposition in Prozent oder Bytes als Eingabeaufforderung nach jeder Seite.
- -M ⇒ Zeigt aktuelle Dateiposition in Zeilen und den Dateinamen als Eingabeaufforderung.
- -n ⇒ Keine Zeilennummern anzeigen.
- -N ⇒ Jeder Zeile wird in der Anzeige eine Zeilennummer vorangestellt.
- -o [datei] ⇒ Kopiert die gelesene Eingabe in datei, wenn aus einer Pipe gelesen wird.
- -O [datei] ⇒ Wie -o, jedoch vor dem Überschreiben einer existierenden Datei wird nicht nachgefragt.
- -p [muster] ⇒ Sucht sofort das erste Auftreten vom muster in der ersten aufgerufenen Datei.
- -s ⇒ Mehrere Leerzeilen werden zu einer einzigen Leerzeile zusammengefasst.
- -q ⇒ Beendet less.
nl
Zeilen von Dateien nummerieren mit „nl“.
Syntax:
- nl [opt] [datei]
Optionen:
file
Dateitypen mit dem Befehl „file“ anzeigen.
Syntax:
- file [opt] [datei]
Optionen:
- -i ⇒ mimetype.
Beispiel:
hans@home:~$ file -i lorem lorem: text/plain; charset=us-ascii
wc
Mit Word Count „wc“, die Anzahl der Zeilen, Wörter und Byte für jede Datei ausgeben.
Syntax:
- wc [opt] [datei]
Optionen:
- -m ⇒ Buchstaben zählen.
- -c ⇒ Bytes zählen.
- -l ⇒ Zeilen zählen.
- -w ⇒ Wörter zählen.
- -L ⇒ was ist die Längste Zeile.
Beispiele:
hans@home:~$ wc datei 11 410 2557 datei
Bei der Ausgabe stehen die drei Zahlen für Zeilen, Wörter, Zeichen.
hans@home:~$ wc -m datei 2557 datei
Buchstaben der „datei“ zählen.
head
Mit dem Befehl „head“ können die [x] ersten Zeilen einer Datei ausgegeben werden.
Syntax:
- head [opt] [datei]
Optionen:
- -c[bytes] ⇒ Die ersten bytes der Datei ausgeben.
- -n[zeilen] ⇒ Die ersten Zeilen der Datei ausgeben.
- -v ⇒ Immer Kopfzeilen mit den Dateinamen ausgeben.
Beispiel:
hans@home:~$ head -n3 lorem Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
Die ersten drei Zeilen der Datei „lorem“ ausgeben.
tail
Die letzten Zeilen von Dateien ausgeben mit dem Befehl „tail“.
Syntax:
- tail [opt] [datei [en]]
Optionen:
- -c[bytes] ⇒ Die letzten x Bytes einer Datei ausgeben.
- -f ⇒ Angefügte Dateien ausgeben, wenn die Datei wächst.
- -n[zeilen] ⇒ Die letzten x Zeilen ausgeben. Standard 10 Zeilen.
- -s[sec] ⇒ Mit -f sleep Interval in Sekunden.
Beispiele:
root@home:~# tail -fs5 /var/log/messages ... Dec 6 18:56:28 home kernel: [ 23.556522] ppdev: user-space parallel port driver Dec 6 18:56:33 home kernel: [ 28.825711] ip_tables: (C) 2000-2006 Netfilter Core Team Dec 6 18:56:33 home kernel: [ 28.933575] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
Neuere Dateien werden angehängt mit einem Intervall von fünf Sekunden.
nina@home:~$ tail -c10 Desktop/lorem voluptua.
Die ersten 10 Bytes ausgeben.
sort
Zeilen von Textdateien sortieren mit „sort“.
Syntax:
- sort [opt] [datei]
Optionen:
- -b ⇒ Führende Leerzeichen ignorieren.
- -d ⇒ Nur Leer‐ und alphanumerische Zeichen berücksichtigen.
- -g ⇒ Nummerierte Sortierung.
- -f ⇒ Groß und Kleinschreibung ignorieren.
- -r ⇒ Ergebnis Reihenfolge umkehren.
- -M, –month-sort ⇒ Reihenfolge: (unbekannt) < JAN < … < DEZ.
- -n, –numeric-sort ⇒ Anhand des numerischen Werts der Zeichenkette vergleichen.
- -u, –unique ⇒ Mit -c auf strikte Ordnung prüfen; ohne -c nur den Ersten von mehreren Gleichen ausgeben.
- -c, –check, –check=diagnose-first ⇒ Überprüfen, ob die Eingabe sortiert ist; nicht sortieren.
Beispiel:
nina@home:~$ ls -s Desktop/ | sort -n insgesamt 7012 4 hosts-online 4 iptab 4 links 4 lorem 4 usb-uuid 4 uvesafb-nvidia 48 history1 68 locale.pdf 108 el-repos.pdf 124 konsolen-auflösung.pdf
Dateien nach Größe sortieren.
cut
Ausgabe einzelner Spalten einer Datei mit „cut“.
Syntax:
- cut [opt] [datei]
Optionen:
- -b[bytes] ⇒ Nur diese Bytes auswählen.
- -c[zeichen] ⇒ Nur diese Zeichen auswählen.
- -d[trennzeichen] ⇒ Trennzeichen als Feldtrennzeichen benutzen. Leerzeichen ' '.
- -f[feld[1,2,3,..]] ⇒ Nur diese Felder auswählen. Mehrere Felder werden durch Komma getrennt.
- -s ⇒ Keine Zeilen ausgeben, die keine Trennzeichen enthalten.
Beispiel:
willi@home:~$ cut -d: -f1,3 /etc/passwd root:0 daemon:1 bin:2 ...
In der Datei „passwd“ werden Feld1 Username und Feld3 Userid ausgegeben.
Archivieren, Komprimieren, Dekomprimieren
tar
„tar“ ist ein Programm, das Dateien hintereinander(sequenziell) zu einem Archiv zusammenfasst. Hinzugefügte Dateien werden immer an das Ende gehängt, so dass es möglich ist, Dateien mit gleichem Namen, jedoch in einer anderen Version vorhanden sein können. Früher wurde „tar“ verwendet um Dateien auf ein Bandlaufwerk zu sichern.
Syntax:
- tar [opt] [Datei(en)]
- tar [opt] [archiv/zieldatei] [quelldatei]
Optionen:
- -x ⇒ (extract) extrahiert Dateien aus einem Archiv.
- -z ⇒ Archiv komprimieren mit gzip, entkomprimieren mit gunzip.
- -Z ⇒ Archiv zusätzlich mit compress (de)komprimieren.
- -v ⇒ (verbose) geschwätzig.
- -c ⇒ erstellt neues Archiv.
- -d ⇒ Dateien in Archiv und Dateisystem vergleichen.
- -k ⇒ beim extrahieren aus einem Archiv das überschreiben existierender Daten verhindern.
- -p ⇒ Dateirechte bein extahieren erhalten.
- -r ⇒ Dateien an Archiv anhängen.
- -u ⇒ nur neuere Dateien an Archiv anhängen.
- -w ⇒ jede Aktion bestätigen.
- -t ⇒ gibt inhalt des Archivs aus.
- -j ⇒ (bzip, bunzip) komprimieren mit bzip2, entkomprimieren mit bunzip2.
- -f ⇒ wenn Archivierung in Datei geschehen soll (ansonsten versucht tar in ein Bandlaufwerk zu sichern).
- -A ⇒ Inhalt eines Archivs in ein anderes kopieren.
- -M ⇒ Mehrteiliges Archiv anlegen - anzeigen - extrahieren.
- -L ⇒ Medium wechseln wenn x kbytes geschrieben sind.
- -W ⇒ Archiv nach erstellung prüfen.
- --help ⇒ Übersicht über Optionen.
- --verson ⇒ installierte tar Version.
Beispiele:
user@home:~/Desktop/docs$ tar -cf pdf-archiv.tar *.pdf
Archiv mit allen PDF Dateien anlegen.
user@home:~/Desktop$ tar -cf archiv.tar docs/
Archiv mit dem Verzeichnis „docs“, inklusive aller Unterverzeichnisse und Dateien anlegen.
wiebke@home:~/Desktop$ tar -tf archiv.tar docs/ docs/links docs/iptab docs/history1 docs/locale.pdf ...
wiebke@home:~/Desktop$ tar -tvf archiv.tar drwxr-xr-x wiebke/wiebke 0 2010-12-07 00:59 docs/ -rw-r--r-- wiebke/wiebke 45 2010-09-12 13:16 docs/links -rw-r--r-- wiebke/wiebke 1813 2010-11-30 13:52 docs/iptab -rw-r--r-- wiebke/wiebke 46967 2010-10-05 14:20 docs/history1 -rw-r--r-- wiebke/wiebke 61871 2010-11-21 02:29 docs/locale.pdf ...
Inhalt eines tar Archives ausgeben.
wiebke@home:~/Desktop$ tar -uf archiv.tar datei
Datei zu Archiv hinzufügen. Archiv aktualisieren, hierbei werden nur neuere Dateien berücksichtigt.
hans@home:~/Desktop$ tar -rf archiv.tar datei
Datei zu Archiv hinzufügen.
wiebke@home:~/Desktop$ tar -dvf archiv.tar docs/ docs/links docs/iptab docs/history1 docs/locale.pdf befehle datei ...
Archivinhalt mit Dateisystem vergleichen.
Folgender Befehl sollte nur in dem Verzeichnis ausgeführt werden, in dem sich die Archivdateien befinden.
hans@home:~/Desktop$ tar -xf archiv.tar
Extrahiert alle Dateien aus Archiv.
hans@home:~/Desktop$ tar -czf archiv.tar.gz docs/
Archiv anlegen und mit „gzip“ komprimieren.
hans@home:~/Desktop$ tar -xzf archiv.tar.gz
Extrahiert alle Dateien aus „gzip“ komprimierten Archiv.
hans@home:~/Desktop$ tar -xzf archiv.tar.gz docs/links
Eine Datei aus Archiv extrahieren.
hans@home:~/Desktop$ tar -cvjf archiv.tar.bz2 docs/
Archiv anlegen und mit „bzip2“ komprimieren.
hans@home:~/Desktop$ tar -tvjf archiv.tar.bz2
Anzeigen des Archivinhalts.
hans@home:~/Desktop$ tar -xvjf archiv.tar.bz2
Extrahieren aller Dateien aus dem Archiv.
gzip
Bei „gzip“ handelt es sich um ein Programm, das einzelne Dateien komprimieren kann. Will man mehrere Dateien mit gzip als ein Archiv komrimieren, können diese vorher mit „tar“ zusammengefasst werden. Ohne Optionen erstellt gzip eine „*.gz“ Datei und löscht das Orginal. Beim entpacken wird das Archiv gelöscht. Es können auch mehrere Dateien durch Leerzeichen getrennt oder Wildcards angegeben werden.
Syntax:
- gzip [opt] [datei [en]]
Optionen:
- -d ⇒ Dekomprimieren einer mit gzip komprimierten Datei.
- -r ⇒ (Ent)Packt alle Dateien rekursiv in allen Unterverzeichnissen.
- -c ⇒ Schreibt die Datei auf die Standardausgabe.
- -1 .. -9 ⇒ Komprimierungsgrad der Datei 1=Schnell und kleiner Kompgrad, 9=Langsam hoher Kompgrad(Standard = 5).
- -l ⇒ Zeigt Details zum Archiv, wie Kompressionsrate, Größe der unkomprimierten Datei usw.
- -f ⇒ Vorhandene Dateien werden ohne Rückfrage überschrieben.
- -t ⇒ Prüft die Integrität der angegebenen Datei.
- -v ⇒ Gibt den Kompressionsfaktor für jede Datei aus.
- -q ⇒ Warnmeldungen werden unterdrückt.
Beispiele:
user@home:~$ gzip datei
Datei wird gepackt und das Orginal gelöscht.
user@home:~$ gzip -c datei > datei.gz
Datei wird gepackt, das Orginal bleibt erhalten.
user@home:~/Desktop$ gzip -l datei.gz compressed uncompressed ratio uncompressed_name 27 0 0.0% datei1
Zeigt Details zum Archiv.
user@home:~$ gzip -d datei.gz
Dekomprimieren einer Datei.
gunzip
Mit „gunzip“ kann man mit „gzip“ komprimierte Dateien entpacken. Dies verhält sich wie „gzip -d“.
user@home:~$ gunzip datei.gz
bzip2
Das Programm „bzip2“ benutzt einen anderen Kompressionsalgorytmus als „gzip“, die Optionen gleichen dem Programm jedoch „gzip“.
Syntax:
- bzip2 [opt] [datei [en]]
bunzip2
Entspricht „bzip2 -d“ zum dekomprimieren einer mit „bzip2“ komprimierten Datei.
Benutzerinformationen
whoami
Mit „whoami“ kann der Benutzername ausgeben werden, der zu der aktuellen effektiven Benutzer‐ID gehört.
paul@home:~$ whoami paul
logname
Mit „logname“ den Namen des aktuellen Benutzers ausgeben.
anna@home:~$ logname anna
who
Mit „who“ können Informationen über gerade angemeldete Benutzer ausgegeben werden. Dabei wird die Binärdatei „/var/run/utmp“ gelesen.
Syntax:
- who [opt] [datei] [args]
Optionen:
- -b ⇒ Bootzeit des Rechners.
- -d ⇒ Tote Prozesse anzeigen.
- -q ⇒ Benutzer anzeigen.
- -t ⇒ zuletzt geänderte Systemzeit.
- -a ⇒ All.
- -H ⇒ Zeile mit Spaltenbezeichnungen ausgeben.
- -r ⇒ Aktuellen Runlevel ausgeben.
- -u ⇒ Angemeldete Benutzer auflisten.
Beispiele:
root@jupiter:~# who tf tty7 2010-02-07 17:03 (:0) tf pts/0 2010-02-08 03:03 (:0.0) root pts/2 2010-02-08 04:33 (:0.0)
root@home:~# who -r Runlevel 2 2010-02-07 17:03 last=S
last
„last“ zeigt die zuletzt angemeldeten Benutzer an und liest dabei die Binärdatei „/var/log/wtmp“.
Syntax:
- last [opt] [args]
Optionen:
- -10 ⇒ Zeigt letzten zehn angemeldeten Benutzer.
- -f [datei] ⇒ Letzte benutzung von einer Datei.
- -t [YYYYMMDDHHMMSS] ⇒ Zeigt angemeldete Nutzer zu einer bestimmten Zeit.
- -t 3 ⇒ Anmeldungen der letzten drei Tage.
- -d ⇒ Zeigt Logins von entfernten Hosts.
- -F ⇒ Zeigt Datum von allen logins und logoutzeiten der Nutzer.
- -w ⇒ Zeigt Nutzer und Domainnamen.
- -x ⇒ Zeigt Runlevel wechsel und System shutdowns.
Beispiel:
root@home:~# lastlog Benutzername Port Von Letzter root pts/0 host Mo Okt 18 20:52:06 +0200 2010 daemon **Noch nie angemeldet** bin **Noch nie angemeldet** sys **Noch nie angemeldet**
finger
Nutzerinfos können mit „finger“ angezeigt werden.
Syntax:
- finger [opt] [user] [user@host]
Optionen:
- -s ⇒ Zeigt Loginname, Vollen Namen, Terminal, Status.
- -l ⇒ Zeigt zusätzlich Telefonnummern, Login Shell, Mail Status.
Beispiel:
bettina@home:~$ finger bettina Login: bettina Name: name Directory: /home/bettina Shell: /bin/bash On since Mon Oct 18 20:26 (CEST) on tty7 from :0 8 hours 1 minute idle On since Mon Oct 18 20:47 (CEST) on pts/0 from :0.0 3 minutes 5 seconds idle On since Mon Oct 18 23:54 (CEST) on pts/1 from :0.0 No mail. No Plan.
w
Mit „w“ kann man sich anzeigen lassen, wer am System angemeldet ist und was sie/er gerade tut. Das Kommando nutzt hierbei Informationen aus den Dateien „/var/run/utmp“ und „/proc“.
Syntax:
- w [opt] [nutzer]
Optionen:
- -h ⇒ Kopfzeile nicht ausgegeben.
- -s ⇒ Kurzes Ausgabeformat. Anmeldenamen, JCPU und PCPU werden nicht ausgegeben.
Beispiel:
root@home:~# w 04:17:36 up 7:27, 1 user, load average: 0,02, 0,05, 0,03 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 host 20:52 0.00s 0.54s 0.00s w
System, Verzeichnis und Prozessinformationen
weitere Informationen in Prozessverwaltung.
df (Disk Free)
Mit dem Kommando „df“, können Partitionstabellen und freier Speicher angezeigt werden.
Syntax:
- df [opt] [datei]
Optionen:
- -a ⇒ Alles anzeigen. Unechte Dateisysteme einschließen.
- -B[byte] ⇒ Byte große Blöcke verwenden.
- --total ⇒ Gesamtsumme erstellen.
- -h ⇒ In menschlich lesbarer Form ausgeben.
- -hT ⇒ Human readable + Partitionstyp.
- -i ⇒ Zeigt belegung der Inodes statt Blocks.
- -m ⇒ Zeigt Blöcke in m statt k an.
Beispiel:
user@home:~$ df -h Dateisystem Size Used Avail Use% Eingehängt auf /dev/sda1 9,2G 254M 8,5G 3% / tmpfs 252M 0 252M 0% /lib/init/rw udev 247M 184K 247M 1% /dev tmpfs 252M 0 252M 0% /dev/shm /dev/sda2 4,6G 154M 4,3G 4% /boot /dev/sda3 24G 5,4G 17G 25% /home /dev/sda11 19G 557M 17G 4% /usr/local /dev/sda5 6,5G 143M 6,0G 3% /opt /dev/sda10 19G 14G 3,5G 80% /public /dev/sda7 37G 342M 35G 1% /srv /dev/sda9 7,4G 145M 6,9G 3% /tmp /dev/sda6 9,2G 805M 8,0G 10% /usr /dev/sda8 14G 742M 13G 6% /var
du (Disk Usage)
Mit „du“, den Platzverbrauch von Dateien anzeigen lassen.
Syntax:
- du [opt] [datei]
Optionen:
- -a ⇒ Zeigt auch die belegung von Dateien an.
- -k ⇒ Zeigt Blöcke in Kilo an.
- -m ⇒ Zeigt Anzahl der Blöcke in Megablocks an.
- -h ⇒ Human readable.
- -c ⇒ Zeigt zusätzlich Summe gelisteter Einträge.
- -s ⇒ Zeigt nur die Einträge angegebener Verzeichnisse.
Beispiele:
user@home:~$ du -h /public ... 14G /public
root@home:~# du -sch /home/* 20K /home/user1 532K /home/user2 552K insgesamt
free
Die momentane Speicherauslastung eines Systems kann mit „free“ ausgegeben werden.
Syntax:
- free [opt]
Optionen:
- -b ⇒ Ausgabe in bytes.
- -k ⇒ Ausgabe in kbytes.
- -m ⇒ Ausgabe in MB.
- -g ⇒ Ausgabe in GB.
- -l ⇒ Details aus High und Lowmemory anzeigen.
- -o ⇒ Altes Format verwenden.
- -t ⇒ Summe Total für swap und RAM.
- -s ⇒ Aktualisierung in sek. (free -s 4).
- -v ⇒ verbose (geschwätzig).
Beispiel:
root@home:~# free total used free shared buffers cached Mem: 516344 318156 198188 0 30736 130296 -/+ buffers/cache: 157124 359220 Swap: 859436 0 859436
Laufzeit und Systemstatus
uptime
Mit „uptime“ kann man sich darüber informieren, wie lange ein System bereits läuft.
user@home:~# uptime 03:14:46 up 6:24, 1 user, load average: 0.03, 0.04, 0.00
Als erstes wird die Systemzeit, wie lange das System läuft, wieviele Benutzer sind angemeldet und weiviele Jobs die letzten 1,5,15 Minuten ausgeführt wurden, ausgegeben.
Systemzeit
date
Mit „date“ kann die Systemzeit und das Datum ausgegeben oder gesetzt werden.
Syntax:
- date [opt] [+format]
- date [opt] [args]
Optionen:
- -s ⇒ --set (Zeichenkette) setzt die Zeit, wie beschrieben.
- -d ⇒ --date (Zeichenkette) zeigt die Zeit wie beschrieben an.
- -f [datei] ⇒ --file liest Zeilenweise aus Datei.
- -R ⇒ Datum und Zeit werden im RFC-Format angezeigt (Mon, 25 Jun 2012 18:36:35 +0200).
- --rfc-3339 [d|s|n] ⇒ Datum und Zeit werden im RFC-3339-Format angezeigt. Hierbei sind drei Argumente zur Formatierung erlaubt: date, seconds und ns.
- -u ⇒ --utc, UTC anzeigen oder setzen.
- --help ⇒ kurze Hilfe.
- --version ⇒ Versionsinformationen anzeigen.
Beispiele:
hans@home:~$ date Di 19. Okt 03:16:35 CEST 2010
Gibt Datum und Uhrzeit formatiert aus.
hans@home:~$ date +%s 1340647939
Linux Timestamp. Sekunden seit »1970-01-01 00:00:00 UTC« ausgeben.
date -s 20:36:40
Setzt Zeit wie oben.
hans@home:~$ date --rfc-3339 d 2012-06-25 hans@home:~$ date --rfc-3339 s 2012-06-25 18:42:39+02:00 hans@home:~$ date --rfc-3339 n 2012-06-25 18:42:23.175261688+02:00
Ausgabeformate:
- %% ⇒ Ein Prozentzeichen.
- %a ⇒ Abgekürzte Ausgabe des Wochentags (Mi).
- %A ⇒ Volle Ausgabe des Wochentags (Mittwoch).
- %b ⇒ Abgekürzter Monatsname (Jun).
- %B ⇒ Voller Monatsname (Juni).
- %c ⇒ Datum und Zeit (Mo 25 Jun 2012 19:07:30 CEST).
- %C ⇒ Ersten beiden Stellen von Jahrhundert (20).
- %d ⇒ Tag des Monats.
- %D ⇒ Amerikanisches Datumsformat (%m/%d/%y) (06/25/12).
- %e ⇒ Tag des Monats mit Leerzeichen wie(%_d) (25).
- %F ⇒ Komplettes Datum wie(%Y-%m-%d) (2012-06-25).
- %g ⇒ Letzten beiden Stellen des Jahres (12).
- %G ⇒ Jahr (2012).
- %h ⇒ gleich mit %b.
- %H ⇒ Stunde (00…23) (19).
- %I ⇒ Stunde (01…12) (07).
- %j ⇒ Tag des Jahres (177).
- %k ⇒ Stunde (0…23) (19).
- %l ⇒ Stunde (1…12) ( 7).
- %m ⇒ Monat (01…12) (06).
- %M ⇒ Minute (00…59) (33).
- %n ⇒ Zeilenumbruch.
- %N ⇒ Nanosekunden (000000000…999999999) (158772592).
- %p ⇒ Das Äquivalent von AM oder PM der Locale. Leer, wenn unbekannt.
- %P ⇒ wie %p, jedoch kleingeschrieben.
- %r ⇒ Zeit im 12h Format (07:39:43).
- %R ⇒ Stunden, Min im 24h Format (19:41).
- %s ⇒ Linux Timestamp. Sekunden seit »1970-01-01 00:00:00 UTC« (1340646139).
- %S ⇒ Sekunde (00…60) (28).
- %t ⇒ Tabulator.
- %T ⇒ Zeit (%H:%M:%S) (19:44:47).
- %u ⇒ Tag der Woche (1…7) 1=Montag (1).
- %U ⇒ Wochennummer des Jahres (01…53) 1=Sonntag (26).
- %V ⇒ ISO Wochennummer (01…53) 1=Montag (26).
- %w ⇒ Tag der Woche (0…6) 0=Sonntag (1).
- %W ⇒ Wochennummer des Jahres Montag=1. Tag der Woche (00…53) (26).
- %x ⇒ Datumspräsentation der Locale (25.06.2012).
- %X ⇒ Zeitpräsentation der Locale (19:55:20).
- %y ⇒ Letzten zwei Ziffern des Jahres (12).
- %Y ⇒ Jahr (2012).
- %z ⇒ +hhmm numerische Zeitzone (+0200).
- %:z ⇒ +hh:mm numerische Zeitzone (+02:00).
- %::z ⇒ +hh:mm:ss numerische Zeitzone (+02:00:00).
- %:::z ⇒ Numerische Zeitzone, die soviele »:« enthält, wie zur Präzision notwendig sind.
- %Z ⇒ Alphabetische Zeitzonenabkürzung (CEST).
Standardmäßig füllt date numerische Felder mit Nullen. Die unten aufgeführten optionalen Schalter können »%« folgen.
- - ⇒ (Minus) Feld nicht auffüllen.
- _ ⇒ (Unterstrich) Mit Leerzeichen auffüllen.
- 0 ⇒ (Null) Mit nullen füllen.
- ^ ⇒ wenn möglich Großbuchstaben benutzen.
- # ⇒ wenn möglich Großbuchstaben und Kleinbuchstaben vertauschen.
Beispiel:
hans@home:~$ date +%s 1340581923 hans@home:~$ date +%c Mo 25 Jun 2012 19:07:30 CEST hans@home:~$ date +%a Mo
Ströme, Pipes & Umleitungen
Pipes / Umleitungen [|]
Pipes oder Umleitungen [|] verbinden Befehle miteinander, dass die Ausgabe (stdout) eines Befehls direkt als Eingabe (stdin) in einen nächsten Befehl weitergeleitet werden. Umleitungen und Pipes können auch untereinander Kombiniert werden.
Beispiele:
marvin@home:~$ grep user /var/log/auth.log | less
Leitet die Ausgabe an „less“ weiter.
tee
Mit dem Kommando „tee“ kann der Datenstrom eines Programms gleichzeitig auf der Konsole und in eine Textdatei ausgegeben werden.
Syntax:
- tee [opt] [datei]
Optionen:
- -a ⇒ An existierende Dateien anhängen und nichts überschreiben.
- -i ⇒ Unterbrechnungssignale ignorieren.
Beispiel:
inka@home:~$ ls -l docs/ | tee /home/inka/docs_ls
Hier wird eine Liste der Dateien in „docs“ in der Standardausgabe der Konsole ausgegeben und in die Datei „docs_ls“ gespeichert.
xargs
Mit „xargs“ kann man Ergebnisse eines Programms mit mehrzeiliger Ausgabe, einem anderem Programm übergeben.
Beispiel:
cut -d " " -f1 /var/log/apache2/access.log | sort | uniq | xargs -n1 host
Hier wird überprüft, von welchen Host auf dem Webserver zugegriffen wurde. Mit „cut“ wird die erste Spalte der „access.log“ (IP Adressen) ausgeschnitten. Dabei sortiert „sort“ die IP Adressen und „uniq“ gibt gleiche Zeilen nur einmal aus.
Diese Liste kann nicht direkt zur Namensauflösung nach „host“ abgegeben werden, da „host“ nur ein Argument erwartet. „xargs“ übergibt die IP Adressen einzeln. Für jede Adresse wird „xargs“ einmal aufgerufen.
Dateien durchsuchen
grep
Mit „grep“ (Globally for Regular Expressions and Print out) kann man Zeilen einer Datei durchsuchen, auch mit Verwendung regulärer Ausdrücke.
Syntax:
- grep [opt] [muster] [datei]
Optionen:
- -v ⇒ invertiert die Ausgabe (Es werden Zeichen ausgegeben auf die das Muster nicht zutrifft).
- -n ⇒ Ausgabe mit Zeilennummern.
- -E ⇒ aktiviert erweiterten regex, wie egrep.
- -c ⇒ Zählt die Anzahl der übereinstimmungen auf.
- -i ⇒ Ignoriert Groß und Kleinschreibung.
Beispiele:
asja@home:~$ grep Stefan adressen
Sucht in Datei adressen Zeilen, die Stefan enthalten.
asja@home:~$ grep [Ss]te[f][ph]an
Sucht in Datei „adressen“ Zeilen, die Stefan, stefan, Stephan, stephan enthalten.
asja@home:~$ grep [#] /etc/updatedb.conf
Gibt in der Datei „updatedb.conf“ alle Zeilen aus, die [#] enthalten.
asja@home:~$ grep -v [#] /etc/updatedb.conf
asja@home:~$ grep [^#] /etc/updatedb.conf
Gibt in der Datei „updatedb.conf“ alle Zeilen aus, die [#] nicht enthalten.
asja@home:~$ grep ^[^#] /etc/updatedb.conf
asja@home:~$ grep -v ^[#] /etc/updatedb.conf
Das Dach steht für den Zeilenanfang. Dieses Kommando gibt in der Datei „updatedb.conf“ alle Zeilen aus, die [#] nicht am Anfang der Zeile enthalten.
asja@home:~$ grep 'wort[1-9]*\>' datei
Gibt entweder die Zeichenkette „wort“ alleine oder gefolgt von beliebig vielen Ziffern von „1-9“ (z.B. wort, wort1, wort42, wort1042). Ein [\] hinter dem Zeichen [*], entschärft das [>].
asja@home:~$ grep '^Oct 10' /var/log/messages
Gibt alle Einträge vom 10. Okt aus.
asja@home:~$ grep '1\{3,5\}' datei1
Gibt die Zeilen aus, die drei, vier oder fünf aufeinanderfolgende einser enthalten.
asja@home:~$ grep '\/var\/log\/' datei
Die Programme „egrep“ (extended) und „fgrep“ (fixed) waren Varianten von „grep“ mit zusätzlichen Fähigkeiten. Heute kann man mit „grep“ und Optionen gleiche Aufgaben ausführen. „egrep“ unterstützt mehrere Metazeichen, „fgrep“ interprtiert Metazeichen als normale Zeichen. „zgrep“ sucht in komprimierten Archiven.
Cloud