24.02.2013 Aufrufe

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

Einf ¨uhrung in UNIX - CIS

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

92 2 <strong>UNIX</strong><br />

pr<strong>in</strong>t $1<br />

pr<strong>in</strong>t $2<br />

pr<strong>in</strong>t ${9:-nichts}<br />

pr<strong>in</strong>t $x<br />

pr<strong>in</strong>t $TERM<br />

pr<strong>in</strong>t Ende $0<br />

Programm 2.9 : Shellscript zur Anzeige von Positionsparametern<br />

Nun e<strong>in</strong> umfangreicheres Beispiel. Das Shellscript userlist wertet die<br />

Files /etc/passwd und /etc/group aus und erzeugt zwei Benutzerlisten,<br />

die man sich ansehen oder ausdrucken kann:<br />

# Shellscript userlist, 30. Okt. 86<br />

# Dieses Shellskript erzeugt e<strong>in</strong>e formatierte Liste der<br />

# User und schreibt sie <strong>in</strong>s File userlist. Voraussetzung<br />

# ist, dass die Namen der User aus m<strong>in</strong>destens e<strong>in</strong>em Buch-<br />

# staben und e<strong>in</strong>er Ziffer bestehen. Usernamen wie root,<br />

# b<strong>in</strong>, who, gast werden also nicht <strong>in</strong> die Liste auf-<br />

# genommen. Die Liste ist sortiert nach der UID. Weiterh<strong>in</strong><br />

# erzeugt das Skript e<strong>in</strong>e formatierte Liste aller Gruppen<br />

# und ihrer Mitglieder und schreibt sie <strong>in</strong>s File grouplist.<br />

# cat liest /etc/passwd<br />

# cut schneidet die gewuenschten Felder aus<br />

# grep sortiert die gewuenschten Namen aus<br />

# sort sortiert nach der User-ID<br />

# sed ersetzt die Doppelpunkte durch control-i (tabs)<br />

# expand ersetzt die tabs durch spaces<br />

pr<strong>in</strong>t Start /etc/userlist<br />

pr<strong>in</strong>t "Userliste ‘date ’+%d. %F %y’‘\n" > userlist<br />

cat /etc/passwd | cut -f1,3,5 -d: |<br />

grep ’[A-z][A-z]*[0-9]’ | sort +1.0 -2 -t: |<br />

sed -e "s/[:]/ /g" | expand -12 >> userlist<br />

pr<strong>in</strong>t "\n‘cat userlist | grep ’[A-z][A-z]*[0-9]’ |<br />

cut -c13-15 | uniq |<br />

wc -l‘ User. Userliste beendet" >> userlist<br />

# cat liest /etc/group<br />

# cut schneidet die gewuenschten Felder aus<br />

# sort sortiert numerisch nach der Group-ID<br />

# sed ersetzt : oder # durch control I (tabs)<br />

# expand ersetzt tabs durch spaces<br />

pr<strong>in</strong>t "Gruppenliste ‘date ’+%d. %F %y’‘\n" > grouplist<br />

cat /etc/group | cut -f1,3,4 -d: |<br />

sort -n +1.0 -2 -t: | sed -e "s/:/ /g" |<br />

sed -e "s/#/ /g" | expand -12 >> grouplist

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!