...
exit
Die Standardshell des Users wird in /etc/passwd
festgelegt.
Linux unterscheidet drei Arten von Zugriffsberechtigungen. Die des Besitzers (user), der Gruppe (group) und allen anderen (others).
Jeder User gehört mindestens einer Gruppe (Hauptgruppe) an. Kann aber zu mehreren Gruppen gehören.
Zu welcher Hauptgruppe der User gehört steht in /etc/passwd
Beispielzeile aus /etc/passwd
:
gabi:x:500:100:Gabi Maier:/home/gabi:/bin/bash gabi
login-Namex
Eigentlich das Passwort des Users, steht aber mittlerweile verschlüsselt in/etc/shadow
.500
Interne Nummer (UID) des Users. (Intern arbeitet Linux nicht mit dem Namen eines Users sondern nur mit Nummern.)100
Interne Nummer (GID) der Gruppe.(vgl./etc/group
)Gabi Maier
Spezialfeld. Enthält bie SuSE Linux den vollen Namen des Users./home/gabi
Homeverzeichnis des Users./bin/bash
Programm, dass bei der Anmeldung des Users gestartet wird. In der Regel die Standard-Shell.
Beispielzeile aus /etc/group
:
users:x:100:klaus, sabine users
Name der Gruppe.x
Spezialfeld. Meistens leer.100
Interne Nummer (GID) der Gruppe.klaus, sabine
Liste der Mitglieder der Gruppe.
Es wird unterschieden:
/etc/passwd
eingetragen wird./etc/group
Jede Datei die ein User anlegt wird automatisch dem User und seiner primären Gruppe
zugeordnet. Mit newgrp
kann der User seine aktive Gruppe wechseln.
...
tee
Beispiele:
ls -l | tee inhalt ls -l | tee
Ausgabe vonls -l
wird an das Programmtee
weitergeleitet.tee inhalt
tee
gibt die Eingabe (hier die Ausgabe vonls -l
) zweimal aus. Auf dem Bildschirm (Standardausgabe) und in die Dateiinhalt
.
ls -l | tee inhalt1 > inhalt2 Die Ausgabe vonls -l
wird in die beiden Dateieninhalt1
undinhalt2
geschrieben.
ls -l | tee inhalt1 | sort +4 > inhalt2 Die Ausgabe vonls -l
wird in die Dateieinhalt1
geschrieben und an das Programmsort
weitergeleitet.sort
sortiert die Ausgabe vonls -l
nach der fünften Spalte (Dateigröße). Das Ergebnis der Sortierung wird in der Dateiinhalt2
gespeichert. undinhalt2
geschrieben.
Beispiel:
find / -name '*.sh' &> ergebnis & find / -name '*.sh'
Sucht vom Wurzelverzeichnis/
ausgehend alle Dateien deren Namen mitsh
endet.&> ergebnis
Ergebnis der Suche wird inklusive Fehlermeldungen in die Dateiergebnis
geschrieben.Bildschirmausgabe:&
Startet das Kommando als Hintergrundprozess.
[1] 334 [1]
Nummer des Hintergrundprozesses.Tip:334
PID-Nummer zur Prozessidentifikation. (vgl.ps -ax
und/proc
)
MitStrg-z
kann das Programm unterbrochen und anschließend mitbg
als Hintergrundprozeß fortgesetzt werden.
Beispiel:
find / -name '*.sh' &> ergebnis & ls Das Kommandofind / -name '*.sh' &> ergebnis
wird als Hintergrundprozeß ausgeführt. Gleichzeitig wird das Kommandols
ausgeführt.
Beispiel:
ls; date Die beiden Kommandosls
unddate
werden nacheinander ausgeführt.
Beispiel:
(ls; date) > inhalt Durch das Klammern werden beide Kommandos zwangsweise in einr Shell ausgeführt und liefern so ein gemeinsames Ergebnis, dass in die Dateiinhalt
umgeleitet wird.
Tritt bei der Ausführung eines Kommandos ein Fehler auf, so erzeugt das
Kommando einen Rückgabewert (exit status) der ungleich 0 ist. Erfolgt die
Ausführung des Kommandos fehlerfrei wird eine 0 zurückgegeben.
Durch diese Eigenschaft von Linux ist es möglich die Ausführung von
zwei Kommandos logisch miteinander zu verknüpfen.
Kommando_1 && Kommando_2 Kommando_2
wird nur fehlerfrei ausgeführt, wennKommando_1
ohne Fehler terminierte.
Kommando_1 || Komamndo_2 Kommando_2
wird nur ausgeführt, wennKommando_1
mit einem Fehler terminierte.
Beispiele:
(1) ls -nl
--> erzeugt keinen Fehler (2) ls -j
--> erzeugt einen Fehler
ls -nl && ls -y (1) und (2) werden ausgeführt
ls -y && ls -nl nur (2) wird ausgeführt
ls -nl || ls -y nur (1) wird ausgeführt
ls -y || ls -nl (2) und (1) werden ausgeführt
Im Gegensatz zu DOS wird die Auswertung der Kommandozeile bei Linux nicht vom aufrufenden Programm sondern von der Bash vorgenommen.
Beispiel DOS:
dir *.txt Das Kommandodir
wertet*.txt
aus.
Beispiel Linux:
Vorteile:
ls *.txt Die bash ermittelt aus*.txt
ein Liste mit realen Dateinamen und gibt die anls
weiter.
ls
wird also z. B. wie folgt aufgerufen:
ls apfel.txt birne.txt kirsche.txt
Die Möglichkeiten der bash zur Bildung von Dateinamen:Tip:
- müssen nicht für jedes Kommando neu Programmiert werden
- stehen allen Kommandos zur Verfügung
- sind wesentlich umfangreicher als die von DOS
Nachset-x
wird jedes Kommando vor der Ausführung angezeigt.
(set -
beendet die Anzeige)
Beispiele:
echo /*
/bin /boot /cdrom /cdserv /dev /etc /export /floppy /home /images /knox /lib /lost+found /media /misc /mnt /net /ntserv /opt /pcimages /proc /prog /root /sbin /tftpboot /tmp /usr /var /www
echo /*/*
/bin/arch /bin/ash /bin/ash.static /bin/awk /bin/basename /bin/bash /bin/cat /bin/chgrp /bin/chmod /bin/chown /bin/chvt /bin/compress /bin/cp /bin/cpio /bin/csh /bin/date /bin/dd /bin/deallocvt
...
/var/run /var/spool /var/squid /var/squidGuard /var/state /var/tmp /var/ucd-snmp /var/yp /www/bin /www/docs /www/htmlecho /*[a-c]*
Zeigt alle Einträge im Wurzelverzeichnis an, die mindestens ein a, b oder c im Dateinamen enthalten.
/bin /boot /cdrom /cdserv /etc /images /lib /media /misc /pcimages /proc /sbin /tftpboot /var
echo /[a,b,e-h]*
Zeigt alle Einträge im Wurzelverzeichnis an, die mit a, b, e, f, g oder h beginnen.
/bin /boot /etc /export /floppy /home
echo [^a,b]*
Zeigt alle Einträge im aktuellen Verzeichnis an, die nicht mit a oder b beginnen.
/cdrom /cdserv /dev /etc /export /floppy /home /images /knox /lib /lost+found /media /misc /mnt /net /ntserv /opt /pcimages /proc /prog /root /sbin /tftpboot /tmp /usr /var /www
echo /etc/?b*
Zeigt alle Einträge in /etc an, deren zweiter Buchstabe ein b ist.
/etc/fb.modes /etc/vbox
Beispiele:
echo {a,b} {1,2,3} a b 1 2 3
echo {a,b}{1,2,3} a1 a2 a3 b1 b2 b3
echo {a,b,c}{e,f,g}.{txt,html} ae.txt ae.html af.txt af.html ag.txt ag.html be.txt be.html bf.txt bf.html bg.txt bg.html ce.txt ce.html cf.txt cf.html cg.txt cg.html
Mögliche Operatoren sind:echo $[2+3]
5
+ plus == gleich - minus != ungleich * mal < kleiner / geteilt <= kleiner gleich % modulo > größer ! nicht >= größer als && und >> shift right || und << shift left
Alle Berechnungen werden für 32-Bit Intergerzahlen ausgeführt.Beispiele:
(+/- 2.147.483.648)
echo $[12<<1]
24
echo $[12>>1]
6
ls -l $(find /usr -name '*README*' 2> /dev/null)
-r--r--r-- 1 root root 8240 Sep 23 2001 /usr/X11R6/lib/X11/doc/README
-r--r--r-- 1 root root 2542 Sep 23 2001 /usr/X11R6/lib/X11/doc/README.DECtga
-r--r--r-- 1 root root 13813 Sep 23 2001 /usr/X11R6/lib/X11/doc/README.DGA
-r--r--r-- 1 root root 47034 Sep 23 2001 /usr/X11R6/lib/X11/doc/README.DRI
-r--r--r-- 1 root root 21922 Sep 23 2001 /usr/X11R6/lib/X11/doc/README.DRIcomp
-r--r--r-- 1 root root 3262 Sep 23 2001 /usr/X11R6/lib/X11/doc/README.I128
-r--r--r-- 1 root root 4389 Sep 23 2001 /usr/X11R6/lib/X11/doc/README.SiS
...
Das Kommando in $(...)
wird durch sein Ergebnis substituiert.
Anmerkung:
find /usr -name '*README*' 2> /dev/null | ls -l
Geht nicht, daAndere Lösung mit xargsls
keine Eingabe über die Standardeingabe erwartet.
find /usr -name '*README*' 2> /dev/null | xargs ls -l
ab* $huhu
?
rm 'ab* $huhu'
Alle Zeichen zwischen den Hochkommas werden als Zeichenkette interpretiert.Alternativ gehen auch "Gänsefüßchen".
echo "Das ist der Zugriffspfad: $PATH"
" "
ist weniger restriktiv, hier wird zum Beispiel
der Inhalt der Variablen $PATH
ausgegeben.
Tipp:
Einzelne Sonderzeichen werden durch ein vorangestelltes\
als normales Zeichen interpretiert.
Beispiel:rm abc\*ef\$ghi
Letzte Änderung: 05.06.2001 - (c) Dipl.-Gwl., Dipl.-Ing.
(FH) H. Bäurle - Elektronikschule Tettnang