Wie funktioniert Linux?


  Die Praxis: Tools


[Was ist ein Tool?] [Häufig gebrauchte Kommandos] [Das Pipeline-Konzept] [Suchen von Text] [Reguläre Ausdrücke] [Leistungsfähige Tools] ["Command not found"] [Shell-Programmierung]


Was ist ein Tool?

Die Kommunikation mit einem Rechner erfolgt üblicherweise mit einer grafischen Oberfläche, z.B. KDE!
Was aber, wenn für die Lösung eines Problems keine entsprechende Applikation gefunden wird? In Linux kein Problem.

Eine der grundlegenden Eigenschaften eines Linux-Systems ist das "Baukastensystem".

Unter einer Vielzahl von "Bausteinen" findet sich sehr wahrscheinlich auch eine Lösung für mein Problem. Falls nicht, kann eine Lösung "zusammengebaut" werden, die "Bausteine" werden Tools genannt.
 

Häufig gebrauchte Kommandos

# Leserechte für Eigentümer und  für Gruppe setzen
#  Kontrolle mittles ls -l
morgana% chmod u+r,g+r mess
morgana% ls -l mess
-rw-r-----  1 czi urz    1705 Mär  4 14:24 mess
morgana% 

Das Pipeline-Konzept

Pipes und Filter
 
morgana% cat /etc/passwd | wc
20   21   742
morgana% 
# zwei mittels pipe kommunizierende Kommandos
# Ausgabe von wc
# (Prompt)

Suchen von Text

Kommandos der grep-Familie (grep, egrep, agrep) für die Textsuche
( g/regular expression/p )
 
Syntax:
grep [ -option ...] [muster] [ file ... ]

Suchen nach muster in file ... und Ausgabe entsprechend option ...
 
# Suchen der Zeichenfolge "hda" in /etc/fstab
morgana% grep hda /etc/fstab
/dev/hda6 /res      ext  defaults   1 2
/dev/hda5 /usr/vice ext2 defaults   1 2
/dev/hda3 swap      swap defaults   0 0
morgana% 

# Zeilen suchen, die die Zeichenfolge  "hda" nicht enthalten (Option -v) 
morgana% grep -v hda /etc/fstab
/dev/fd0   /mnt/floppy ext2    noauto    0 0
/dev/cdrom /mnt/cdrom  iso9660 noauto,ro 0 0
none       /proc       proc    defaults  0 0
morgana% 

Reguläre Ausdrücke

Regulärer
Ausdruck
Bedeutung Bemerkung
zu Shells
x Zeichen x selbst, x ist kein Metazeichen dto.
\x Zeichen x selbst, x kann Metazeichen sein dto.
^r regulärer Ausdruck r am Anfang der Zeile
z.B.: ^Am
-
r$ regulärer Ausdruck r am Ende der Zeile
z.B.: Ende$
-
. ein beliebiges Zeichen ?
[s] ein Zeichen aus der nichtleeren Zeichenfolge s
s ist eine Folge einzelner Zeichen
z.B.: [abc], [123456789]
Zeichenbereiche werden in der Form [x1-x2] angegeben
z.B.: [a-z], [A-Z], [0-9]
Besonderheit: wenn ] oder - als erstes Zeichen in s stehen, werden sie als Element von s betrachtet
wenn ^ nicht als erstes Zeichen von s auftritt, wird es als Element von s betrachtet
dto.
[^s] jedes beliebige Zeichen, daß nicht in s enthalten ist
s wie oben
z.B.: [^a] - jedes Zeichen außer a
[^abc] - jedes Zeichen außer a, b oder c
[^a-z] - jedes Zeichen, nur kein kleiner Buchstabe
[!s]
r* 0, 1 oder mehrmaliges Auftreten des regulären Ausdrucks r
z.B.: a* - 0, 1 oder beliebig viele a
.* - 0, 1 oder beliebig viele Zeichen
-

*

rt regulärer Ausdruck r gefolgt von regulärem Ausdruck t
z.B.: [a-z][A-Z] - ein kleiner Buchstabe gefolgt von einem großen Buchstaben
[a-zA-z] - ein Buchstabe (klein oder groß)
[^a-zA-Z0-9] - ein Sonderzeichen
dto.
r\{m,n\} m bis n maliges Auftreten des regulären Ausdruck r -
r\{m\} genau m maliges Auftreten von r -
r\{m,\} mindestens m maliges Auftreten von r
z.B.: a\ {1,2\ } - a oder aa
[^a-zA-Z0-9]\ {3\ } - Folge von 3 Sonderzeichen
-
\(r\) der reguläre Ausdruck r selbst
z.B.: \ ([a-z][0-9]\ )\ {4\ } - viermal die Folge Kleinbuchstabe Ziffer
-
\n n - ganze Zahl von 1-9
\ n in einem regulären Ausdruck steht für den r.A. t, der vorher im verketteten r.A. als n-ter in \ ( und \ ) eingeschlossene r.A. angegeben ist
Diese Form wird besonders für Substitutions-Kommandos von Editoren benutzt.
-

Anmerkungen:

Beispiel:
# Verzeichniswechsel nach /var/log
# nach Zeilen mit Muster 07:00 bis 09:59 suchen
morgana% cd /var/log
morgana% grep '0[7-9]:[0-5][0-9]:' messages
Mar  2 07:14:34 morgana PAM_pwdb[10913]: ...
Mar  2 08:08:32 morgana PAM_pwdb[10463]: session ...
Mar  2 08:13:36 morgana init: Switching to runlevel: 6
morgana% 

Leistungsfähige Tools

"Command not found" und ...

Kommandoeingabe und die Shell (bash)