Übung 1: Unix Werkzeuge Robert Sombrutzki sombrutz@informatik.hu-berlin.de
Unix Werkzeuge Warum? Diese Frage sollten Sie sich immer mal wieder stellen! Denkbare Antworten Weil Sie diese Werkzeuge immer wieder benötigen werden. Weil Sie mit diesen Werkzeugen ihre Produktivität erheblich steigern können. Weil andere Personen Ihnen in dieser Sprache erklären werden, was Sie tun sollen. es lohnt sich, die Werkzeuge gleich zu Anfang richtig zu erlernen. [2]
login/logout login/logout. Schützt System/Daten vor unbefugtem Zugriff Erfordert Benutzernamen und Passwort (Rechnerbetriebsgruppe) Q. Was mache ich, wenn ich mich nicht anmelden kann? Q. Woran erkenne ich, dass ich mich richtig abgemeldet habe? Übung 1: Unix Werkzeuge 26.10.2012
login/logout who Wer arbeitet gerade auf diesem Rechner? Auch zu sehen: Anmeldezeitpunkt whoami Wer bin ich? Who am I? Übung 1: Unix Werkzeuge 26.10.2012
Unix Verzeichnisstruktur Verzeichnis als Baum strukturiert Root (/) ist Wurzel der Verzeichnisstruktur [5]
ls, cd, pwd ls LiSt directory content Zeigt den Inhalt eines Verzeichnisses an Beispiel: ls /usr/local Mögliche Argumente -l lange/ausführliche Ausgabe -i Ausgabe der Index-Nummer -a Anzeigen aller Dateien (auch versteckte Dateien) -s Ausgabe der Dateigrösse in Blöcken Beispiel: ls l i s a ls lisa funktioniert nicht für alle Kommandos! [6]
ls [7]
Owner Group Others Rechte Jede Datei gehört einem Nutzer und einer Gruppe Lese-, Schreib- & Ausführungsrechte für Eigentümer, Gruppe und allen anderen [8]
Rechte [9]
Wiederholung: ls, cd, pwd cd Change Directory Wechseln in ein anderes Verzeichnis Beispiel: cd /tmp cd cd ~ cd.. wechseln in das Verzeichnis /tmp wechseln in das Homeverzeichnis wechseln in das Homeverzeichnis Verzeichnisbaum eine Stufe nach oben pwd Print Working Directory Ausgabe des aktuellen Verzeichnisses [10]
cd & pwd [11]
ls Q. Alle Dateien in /usr/local ausgeben A1. ls /usr/local A2. cd /usr; ls local A3. cd /usr/local; ls A4. ls /usr/local/../local/../local [12]
Kommandos Groß / Kleinschreibung wichtig? Probieren wir es aus! [13]
Shell-Globbing Shell-Globbing. Komplettierung eines Dateinamens. Tabulator-Taste löst Komplettierung aus Spart Tipparbeit Weniger Fehler bei langen/komplizierten Dateinamen Q. Was passiert, wenn es mehrere Möglichkeiten zur Komplettierung gibt? [14]
Wildcards Wildcards. Menge von Dateien auswählen. ls *q* ls [a-c]*[a-c] [15]
Test: Wildcards Q1. Alle Dateien anzeigen, die auf.doc enden A1. ls *.doc Q2. Alle Dateien anzeigen, die mit einem A beginnen A2. ls A* Q3. Alle Dateien anzeigen, die mit einem kleinem oder einem großen A enden A3. ls *[aa] [16]
Weitere einfache Kommandos cat datei Gibt eine Datei aus cat datei1 datei2 Gibt mehrere Dateien hintereinander aus wc Word Count. Zählt Buchstaben und Worte in einer Datei Argumente: -l Anzahl der Zeilen ausgeben -c Anzahl der Zeichen ausgeben [17]
Weitere einfache Kommandos [18]
Test: cat & wc Q1. Datei /etc/passwd anzeigen A1. cat /etc/passwd Q2. Anzahl der Zeilen in /etc/passwd anzeigen A2. man wc lernen daraus, dass wir wc mit -l aufrufen müssen wc l /etc/passwd [19]
Umlenkung der Ein/Ausgabe Ausgabe eines Kommandos in eine Datei schreiben ls > datei cat datei Eingabe für ein Kommando aus einer Datei lesen wc < datei /dev/null - Pseudo-Datei. Das Daten-Nirvana. ls > /dev/null [20]
Umlenkung der Ein/Ausgabe Pipe Ausgabe eines Kommandos wird Eingabe für ein weiteres Kommando. Symbol: [21]
Test: Aus/Eingabeumlenkung Q. Wie viele Zeilen haben /etc/passwd und /etc/services zusammen? A. cat /etc/passwd /etc/services wc -l [22]
less less Ausgabe von Dateien (interaktiv) Beispiel: less /var/log/messages Shift+7 (/): Suchen Space: nächste Seite [23]
head & tail head Ausgabe des ersten Teils einer Datei Optionen: -n : ersten n Zeilen -c : ersten c Bytes Beispiel: head n 10 /var/log/messages tail Ausgabe des letzten Teils einer Datei Optionen: -n : letzten n Zeilen -c : letzten c Bytes Beispiel: tail n 10 /var/log/messages [24]
head & tail [25]
grep grep Ausgabe von Zeilen, die einem Muster entsprechen. Allgemein: grep Muster [Datei] Beispiel grep mail /etc/services grep mail /etc/services grep tcp [26]
find find Suchen von Dateinamen, die einem Muster entsprechen. Allgemein: find Startverzeichnis [Muster] Beispiele find /home name "*.jpg" (.jpg Dateien in /home) find /home iname "*.jpg" (.jpg und.jpg Dateien in /home) [27]
Kommandos im Vordergrund / Hintergrund ausführen & am Ende der Zeile startet Programm im Hintergrund ps zeigt alle gerade laufenden Programme an Konzept der Prozess-ID ps au grep gdp wait wartet auf ein Hintergrundprogramm kill -9 terminiert ein Hintergrundprogramm ^Z bg fg ^C stoppt ein Programm (ohne es zu terminieren) befördert Programm nachträglich in den Hintergrund läßt das Programm (im Vordergrund) weiterlaufen terminiert das Vordergrundprogramm [28]
Kommandos im Vordergrund / Hintergrund ausführen [29]
Kommandos im Vordergrund / Hintergrund ausführen [30]
Welche Kommandos gibt es? Kommandos sind ausführbare Dateien Wo befinden sich diese ausführbaren Dateien? z.b. ls /usr/bin Was macht wc? man wc In welchen Verzeichnissen wird nach Programmen gesucht? printenv PATH $PATH ändern setenv PATH /usr/bin ls geht nicht mehr setenv PATH /usr/bin:/bin ls geht wieder [31]
Shell-Variablen Jedes laufende Programm hat Zugriff auf eigenen Satz von Umgebungsvariablen: Konfigurationsmöglichkeit Setzen von Umgebungvariablen: export/setenv Löschen von Umgebungsvariablen: unset Anzeigen aller Umgebungsvariablen: printenv Zugriff auf Umgebungsvariable: $NAME_OF_VAR Besondere Umgebungsvariablen (Bsp.): $HOME : Home-Verzeichnis des Benutzers $PATH : Liste aller Verzeichnisse in denen nach Ausführbaren Dateien gesucht werden soll $SHELL : aktuelle Shell $USER : Benutzername [32]
Shell-Variablen echo. Ausgabe der Argumente als Textzeile echo Hallo Welt echo Hallo Welt wc echo Hallo Weld > text echo text cat text Warum? Beispiele echo $PATH echo $HOME ist mein Home-Verzeichnis echo $foobar [33]
Shell-Variablen [34]
Shell-Variablen read. Eingabe lesen und in einer Variablen speichern read var echo Sie haben eingegeben: $var [35]
Zugriff auf entfernte Ressourcen scp Secure Copy Datei(en) zwischen Rechnern kopieren Z.B. zwischen zu Hause und dem Institut scp [[user1@]host1:]file1 [[user2@]host2:]file2 Host(1/2): Rechner (IP/Name), von/auf welchem kopiert wird User(1/2): Benutzernamen auf den entfernten Rechnern File(1/2): Name der Quell- bzw. Zieldatei Beispiel: scp my_file.txt gruenau.informatik.hu-berlin.de:. scp root@gruenau.informatik.hu-berlin.de:file.txt. [36]
Zugriff auf entfernte Ressourcen ssh Secure Shell (remote login program) Einloggen auf einem anderen Rechner z.b. um von zu Hause die Rechner im Institut zu nutzen ssh [user@]host [befehl] Host: Rechner (IP/Name), auf welchem man sich einloggen will User: Nutzer auf dem entfernten Rechner Befehl: Kommando, welches auf dem entfernten Rechner ausgeführt werden soll Beispiel: ssh root@gruenau.informatik.hu-berlin.de ssh alex pwd [37]
Zugriff auf entfernte Ressourcen [38]