Linux Basics, Security & Hacking
willi moser (2005-12-12)


 

Shell / Kommandointerpreter

Ist man auf der Kommandozeile angelangt, so findet man einen ein weissen bzw. schwarzen Block oder einen nervös blinkenden Unterstrich vor; beide werden als ''Cursor'' bezeichnet und markieren die Stelle, an der die eingetippten Zeichen erscheinen.

Die Shell oder auch der Kommandointerpreter ist ein Prozess der nach dem Anmelden (Login) an einer Unixmaschine gestartet wird und die Interaktion des Benutzers mit dem Betriebssystem erlaubt. Diese Shell bringt bereits etliche Funktionalitäten mit. Sie interpretiert die Kommandoaufrufe seitens der Benutzer und erlaubt einfache Shell- (bzw. Batch-)programmierung zur Erleichterung bei sich wiederholenden Tätigkeiten. Sie stellt weiterhin über Umgebungsvariablen Programmen bestimmte Informationen zur Verfügung.

Die Kommandozeile beginnt meistens etwa so:

meier@hermes:~/kursunterlagen >

Zu Anfang steht der Username, mit dem man/frau am System angemeldet ist. Dann folgt der Rechnername und anschliessend das Verzeichnis, in dem man sich befindet.

Die Shell dient zum Aufruf der Programme, mit denen man eigentlich arbeiten will. Ein typischer Programmaufruf sieht etwa so aus:

meier@hermes:~/kursunterlagen > less -MMI kurs01.txt

Zuerst steht das Kommando, dann folgen mit einem Leerzeichen (white space) die Optionen des Kommandos und der Dateiname, so einer übergeben werden soll. Es ist dabei immer auf die Leerzeichen zu achten, da sonst die Shell Kommandos nicht von ihren Optionen oder nachfolgenden Dateinamen unterscheiden kann.

 

Einfache Shell-Commandos

Achtung:
Jeder korrekt ausgeführte Befehl wird bis auf wenige Ausnahmen sofort, ohne Rückfragen und ohne Rückmeldungen ausgeführt.

ls list   listet Verzeichnisinhalte im Blockformat auf
ls -l list -l(Parameter)   listet Verzeichnisinhalte als Liste mit Details auf
mkdir make dir   Erstellt ein Verzeichnis
rmdir remove dir   Löscht ein Verzeichnis
cd change dir   Wechselt zum Verzeichnis
mc midnight commander   ein "textbasierender Explorer" wie Norton Commander unter DOS
mcedit     Aufruf des Midnight Commanders zum editieren einer Datei
cat concatenate   Gibt den Inhalt einer Datei aus
mk make   Erstellt eine Datei
rm remove   Löschen einer Datei
mv move   Verschieben (Datei oder Verzeichnis)
cp copy   kopieren (Datei oder Verzeichnis)
touch     Erstellt ebenfalls eine Datei
       
       

 

Erweiterte Shell-Commandos

Beispiele

mv mydat /root/xy   Verschiebt die Datei mydat in das Unterverzeichnis xy im Verzeichnis root
cp mydat /root/xy   Kopiert die Datei mydat in das Unterverzeichnis xy im Verzeichnis root
rm -rf xy/   Löscht das gesamte Verzeichnis xy samt der darin enthaltenen Unterverzeichnisse und Dateien
mcedit mydat   Erstellt, oder öffnet zum Editieren, die Textdatei mydat
 which   Zeigt den Pfad an wo diese Datei zu finden ist z.B.   which httpd liefert: /usr/sbin/httpd
     
     

  

Übung 1 - Basic-commands

[root@blue root]# ls
anaconda-ks.cfg Desktop XXXXX
[root@blue root]# mkdir info
[root@blue root]# ls
anaconda-ks.cfg Desktop info XXXXX
[root@blue root]# rmdir info
[root@blue root]# ls
anaconda-ks.cfg Desktop XXXXX
[root@blue root]# mkdir info
[root@blue root]# ls
anaconda-ks.cfg Desktop info XXXXX
[root@blue root]# cd info
[root@blue info]# ls
[root@blue info]# mcedit meine.informationsdatei.heute
[root@blue info]# cat meine.informationsdatei.heute
Meine Informationsdatei.
[root@blue info]# rm meine.informationsdatei.heute
rm: remove `meine.informationsdatei.heute'? y
[root@blue info]# ls
[root@blue info]#
[root@blue info]# mcedit info.alex
[root@blue info]# ls
info.alex
[root@blue info]# mv /root info.alex
mv: cannot overwrite non-directory `info.alex' with directory `/root'
[root@blue info]# mv /root/ info.alex
mv: cannot overwrite non-directory `info.alex' with directory `/root/'
[root@blue info]# mv /root/info.alex info.alex
mv: cannot stat `/root/info.alex': No such file or directory
[root@blue info]# mv info.alex /root
[root@blue info]#
[root@blue info]#
[root@blue info]# ls
[root@blue info]# cd ..
[root@blue root]# ls
anaconda-ks.cfg Desktop info info.alex XXXXX
[root@blue root]# cp info.alex info
[root@blue root]# cd info
[root@blue info]# ls
info.alex
[root@blue info]# cd ..
[root@blue root]# mkdir move
[root@blue root]# ls
anaconda-ks.cfg Desktop info info.alex move XXXXX
[root@blue root]# mv -R info move/info
mv: invalid option -- R
Try `mv --help' for more information.
[root@blue root]# mv info move
[root@blue root]# cd move
[root@blue move]# ls
info
[root@blue move]#


Linux Basics, Security & Hacking
willi moser (2005-12-12)