at.linux-FAQ

Programmieren unter Linux



Wo finde ich Doku zu Shell-Programmierung?

UNIX Shellprogrammierung

http://kris.koehntopp.de/artikel/unix/shellprogrammierung/

Bourne-Shell als Kommando- und Programmiersprache

http://www.tu-chemnitz.de/urz/kurse/unterlagen/shell-progr/bourne/bourne.html

SHELLdorado - your UNIX shell scripting resource

http://www.shelldorado.de/links/index.html#tutorials

Advanced Bash-Scripting Guide

http://www2.uibk.ac.at/linuxdoc/LDP/guides.html#abs

Bash Guide for Beginners

http://tille.xalasys.com/training/bash/book1.html

System shells on various Unix flavours

http://www.in-ulm.de/~mascheck/various/

Und nicht zu vergessen: man 1 bash

Was hat es mit !# /bin/sh auf sich?

Darf da ein Leerzeichen stehen? Oder muss da gar ein Leerzeichen stehen portable Lösung?

http://www.in-ulm.de/~mascheck/various/shebang/#specialities

Schleife über Dateien mit Sonderzeichen im Namen?

Die portable Lösung.

find . -type f | while read -r file; do
  echo "[$file]"
done

Die Lösung für GNU und FreeBSD kommt auch mit Zeilenwechsel im Dateinamen zurecht.

find .  -type f -print0 | while read -rd $'\0' file; do
  echo "[$file]"
done

Was funktionieren find, -exec und xargs?

find durchsucht eine oder mehrere Verzeichnishierarchien nach Dateien (oder Verzeichnissen) mit bestimmten Eigenschaften, und führt damit bestimmte Aktionen aus. Interessant wird es, wenn man eigene Kommandos auf die gefundenen Dateien anwenden will. Dazu gibt es zwei Ansätze:

-exec   command   ;

Dadurch wird für jede gefundene Datei command gestartet. Der Zeichenkette {} in command wird dabei durch den Dateinamen ersetzt.

Der Nachteil dieser Lösung ist die Geschwindigkeit. Viele Programme können von sich aus mit mehreren Argumenten in einer Kommandozeile umgehen. Für jedes einzelne Argument einen separaten Prozess zu starten ist ineffizient.

-exec   command   {}   +

Hier wird command mit soviel Argumenten, wie in die Kommandozeile passen, aufgerufen. Leider gibt es diese Option nicht überall. GNU find unterstützt das erst seit kurzem.

-print   |   xargs   command

-print0   |   xargs   -0   command

http://www.gnu.org/software/findutils/manual/find.html

Wo finde ich Doku zu C & C++?

FAQ von de.comp.lang.c

http://www2.informatik.uni-wuerzburg.de/dclc-faq/

FAQ von comp.lang.c

http://c-faq.com/

FAQ von de.comp.lang.iso-c++

http://www.voyager.prima.de/cpp/

C++ FAQ Lite

http://www.inf.uni-konstanz.de/~kuehl/c++-faq/

Literatur und Sammlungen zu C

http://herbert.the-little-red-haired-girl.org/c-links/index.html

Bit Twiddling Hacks

http://graphics.stanford.edu/~seander/bithacks.html

OOPWEB.com: C/C++ Directory

http://oopweb.com/CPP/Files/CPP.html

Programmieren unter Unix & Linux?

LDP programming HOWTOs

http://www2.uibk.ac.at/linuxdoc/LDP/HOWTO/HOWTO-INDEX/programming.html

Unix Programming FAQ

http://www.erlenstar.demon.co.uk/unix/faq_toc.html

Home Page of Dennis M. Ritchie

http://cm.bell-labs.com/cm/cs/who/dmr/

Home Page of W. Richard Stevens

http://www.kohala.com/start/

Davin's collection of Unix programming links

http://www.cs.buffalo.edu/~milun/unix.programming.html