Shell Befehle


Shell Befehlsübersicht und Kommandoreferenz mit Beispielen.




man


Manpages über Programm anzeigen (beenden mit q).


man apache2

Haupt Manpage von „apache“ aufrufen.

man:apache2

Manpages im Konqueror ausgeben.

FIXME



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




Dieses Kommando folgt keinen symbolischen Links.




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






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.



FIXME

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.






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
...




Das Programm „tree“ ist weitaus mächtiger, es können u.a. „tree“ Objekte erstellt werden. Weitere Informationen in der Manpage von „tree“.





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.




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/“




Um Nicht leere Verzeichnisse zu löschen kann rm -r [verz] angewendet werden.



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:

FIXME



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.




Standardmäßig wird die Größe von „byte“ in Bytes interpretiert. Das kann durch hinzufügen von Präfixe geändert 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.




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:

FIXME



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.




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.




„cut“ muß wissen welches Zeichen als Trenner (Delimiter) zwischen den Spalten verwendet wird. [-b], [-c] und [-f] können nicht gemeinsam verwendet werden.




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.




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.




Die Reihenfolge der Optionen spielt mit Ausnahme von [-f] keine Rolle. [-f] (file = Datei) muss immer die letzte Option sein.




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.

Es werden hier jedoch keine Unterverzeichnisse 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.


Mit „zcat“ kann man die entkomprimierte Datei auf der Standardausgabe ausgeben, die komprimierte Datei bleibt dabei unberührt.





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.




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






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






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.




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






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.




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.

Angaben in rechteckigen Klammern repräsentieren immer ein Zeichen. Einige Metazeichen müssen durch einen Backslash geschützt werden. Wenn man nach Zeilen mit Pfadangaben suchen will, muß man auch die Slashes schützen.



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