Oft feinere / flexiblere Regelung der Zugriffsrechte gewünscht ACLs = access control lists Features:

Ähnliche Dokumente
Oft feinere / flexiblere Regelung der Zugriffsrechte gewünscht ACLs = access control lists Features:

Ein erstes eigenes Unix-Programm (Hello World)

Ein erstes eigenes Unix-Programm (Hello World)

Shells: Was passiert mit einem Kommando?

Shells: Was passiert mit einem Kommando? Prozeßkontrolle. Aliases. Variable. Wichtige Environment-Variablen. Shell durchläuft folgenden Zyklus:

Grundlagen der Programmierung

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Okt 10, 16 17:29 UNIX/Linux Lösung

UNIX/Linux Lösung. Mär 14, 17 20:40 Seite 1/6. Prozeßsynchronisation (was ist das?, wo kommt es vor?, Beispiel?):

Werkzeuge der Informatik Einführung in Unix/Linux

UNIX Die wichtigsten Befehle

Programmierung I Einführung in Unix/Linux

Linux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting

Crashkurs Kommandozeile

Arbeiten mit der Shell Teil 2

Werkzeuge der Informatik Einführung in Unix/Linux

Einführung Unix Shell

Ein- und Ausgabeumlenkung

Exkurs: Unix Programme

Arbeiten in der Unix-Kommandozeile

Computergrundlagen Einführung in UNIX 1

Werkzeuge der Informatik WS 09/10

Unix/Linux Grundlagen für Einsteiger

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum

Der Standard-Editor vi

Shell-Programmierung

Arbeiten in der Unix-Kommandozeile

Okt 02, 17 12:28 UNIX/Linux Lösung

Linux I II III Res/Pro WN/TT Reguläre Ausdrücke Editoren Scripting. Linux II. 2 Linux II. Reguläre Ausdrücke Editoren Scripting. Ressourcen-Vorkurs

Computernutzung für Experimentalphysiker Frei progammierbare Rechner als Werkzeuge in der Experimentalphysik Teil 2

Vorlesung Unix-Praktikum

UNIX/Linux-Minikurs. Ralf Seidler, Daniel Walther, Torsten Bosse. Institut für Informatik Friedrich-Schiller-Universität Jena

D.2 Sonderzeichen (2)

Debian GNU/Linux. Unix Grundlagen und Betrieb. Christian T. Steigies

Basiskonzepte des Rechnerbetriebs

4. Desktop, Betriebssystem u.a.

Computer & GNU/Linux Einführung Teil 3

I Grundlagen der System-Administration 8

Linux I II III Res WN/TT NLTK XML Weka E Theorie Terminal Ein- und Ausgabe. Linux I. 1 Linux I. Theorie Terminal Ein- und Ausgabe. Ressourcen-Vorkurs

Suchen in Files mittels Grep

Vorlesung Unix-Praktikum

L A TEX, Linux, Python

Kommandozeilen effizient nutzen und verstehen

LINUX Gesamtmitschrift

Die Architektur von UNIX/Linux- Betriebssystemen. Mag. Lukas Feiler, SSCP

Unterschiede in Dateien mit diff

Linux I II III Res/Pro WN/TT Theorie Terminal Ein- und Ausgabe. Linux I. 1 Linux I. Theorie Terminal Ein- und Ausgabe. Ressourcen-Vorkurs

Übungen zu Systemprogrammierung I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2003 C-Uebung1.fm

Basiskonzepte des Rechnerbetriebs. 6 Die Shell: Der UNIX-Kommandointerpreter

Computer & GNU/Linux Einführung Teil 4

Benutzer- und Rechtevergabe

Das Kommando zum suchen nach Files unter bestimmten Kriterien Häufigste Verwendung:

Einführung in das Arbeiten an Unix-Rechnern

SHELL WE BEGIN? EINE EINFÜHRUNG IN DIE SHELL. Max Rosin - ANKÜNDIGUNGEN

UNIX Grundlagen. Sascha Frank SS August 2006 UNIX I. Sascha Frank. Einführung. Basic Befehle. Quellen

Vorsemesterkurs Informatik

Linux Kurs Vorlesung 2 - Terminal

1 Linux-Befehlsübersicht

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.

Linux-Einführung Übung

Technische Praxis der Computersysteme I 3. Vorlesung

Linux Prinzipien und Programmierung

Kommandos im Unix-Grundkurs Digicomp-UXE. Inhalt

Arbeiten in der Unix-Kommandozeile. PeP et al. Toolbox Workshop

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker

Linux Kommandozeile: Einfache Skripte. 1 Wiederhohlung. 2 Einfache Skripte

Lernziele Dateiverwaltung Bearbeiten von Textdateien Sichere Anmeldung per SSH-Schlüssel. Linux für Anfänger

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Pipes. 1 Prozessverwaltung. 2 Pipes. 3 Rechteverwaltung. 4 Secure Shell Fernsteuern anderer Rechner. 5 Kommandos, Kommandos, Kommandos,...

Einführung in die Angewandte Bioinformatik

ÜBUNG Regeln für die Hausaufgaben. Was gibt es im UNIX-Pool zu beachten? Der erste Besuch im UNIX-Pool

Desktop ade: Me and my shell

Strukturiertes Programmieren

Werkzeuge der Informatik Einführung in Unix/Linux


Arbeiten mit der Shell Teil 1

C-Programme erstellen und ausführen

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

SelfLinux Dateien unter Linux

Linux - a bit advanced

Prozesse, Logs und Systemverwaltung

Teil 1: Einführung in die Shell. Was ist die Shell? Wichtige Kommandos (1) Einführung in die Shell. Grundlagen der Shell-Programmierung

Eine kurze Einführung in Vim

Stata I: Analyseorganisation und erste Schritte

Unix-Shells. mehrere Befehle in einer Zeile. bash: Grundlagen. Ein- und Ausgaben umlenken. Befehle: Dateien und Verzeichnisse (1)

Informatik I - Einstiegskurs

cs106 Informatiklabor Teil 1: Java-Installation

Wichtige UNIX Kommandos

Einführung in die Kommandozeile

Hochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.

Da einige Befehle gerne in Vergessenheit geraten werden hier einige essentielle und nützliche Befehle aufgelistet.

Arithmetik in der tcsh

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Stream EDitor SED und Reguläre Ausdrücke

Aufgabensammlung IT Shellprogrammierung Teil I

SelfLinux Dateien unter Linux

Transkript:

Exkurs: ALs Oft feinere / flexiblere Regelung der Zugriffsrechte gewünscht ALs = access control lists Features: Individuelle Permissions pro User möglich Selbst-definierte ruppen Permissions pro selbst-definierter ruppe Für rel. kleine Arbeitsgruppen ist das "normale" Unix-PermissionsModell völlig ausreichend. Zachmann 41 Weitere File-Attribute Zeiten: Modification (write): ls -l reation: ls -lc Access (read): ls -lu /home/rob% ls l file -rw-r----- 1 rob student 343 Dec 5 13:51 file röße, Links,. Zachmann mod time 42 1

Prozesse Programm, das gerade läuft, schläft, oder hängt Jeder Prozeß führt ein Environment mit sich: Prozeß-ID (PID), User-ID (UID), roup-id (ID), u.a. IDs current working directory (WD, manchmal auch PWD) Environment-Variablen (Paare von Strings) Relative Pfade werden bzgl. des WD's des Prozesses interpretiert. Zachmann 43 Spawning processes Ein Prozeß wurde immer von einem anderen erzeugt Heißt Vater-Prozeß (parent process) Vorgang heißt engl. to spawn hild process erbt das komplette Environment (außer seinen IDs u.ä.) top in der Shell. Zachmann 44 2

Prozesse aus Sicht der Shell 3 Zustände eines Prozesses (aus Sicht der Shell) Foreground: Default - Ausgabe (stdout) des Prozesses erscheint im Terminal-Fenster - Eingabe (stdin) des Prozesses kommt vom Keyboard Background: - Ausgabe erscheint im Fenster - Eingabe nicht erlaubt estoppt: - Prozeß schläft. Zachmann 45 Kommandos zur Prozesskontrolle Befehl Funktion ps ps -edfjw ps -auxw kill pid kill -9 pid command & jobs trl- trl-z fg bg trl-s trl-q top Prozesse anzeigen Alle Prozesse anzeigen dito für einige andere Unix-Varianten Prozeß mit PID pid abbrechen (wie trl-) wenn der Prozeß trotzdem nicht aufhören will Prozeß im Hintergrund starten Prozesse im Hintergrund anzeigen Foreground-Prozeß abbrechen (interrupt) Foreground-Prozeß anhalten (stoppen) Zuletzt angehaltenen Prozeß im Foreground weiterlaufen lassen Angehaltenen Prozeß im Background weiterlaufen lassen Ausgabe des Foreground-Prozesses anhalten (Pr. läuft weiter!) Ausgabe weiterlaufen lassen tabellarische Ansicht aller Prozesse und deren PU-Verbrauch. Zachmann 46 3

Bash vs. tcsh Annahme im folgenden: tcsh (csh)! Sehr häufig ist auch bash, aber IMHO für interaktive L-Nutzung nicht so komfortabel Wie stellt man fest, welche Shell man gerade hat? Einfach 'set' eingeben: Resultat unter tcsh % set tcsh 6.14.00 version tcsh 6.14.00 Resultat unter bash % set BASH=/bin/bash BASH_VERSINFO=([0]="3" BASH_VERSION='3.2.17(1)- Wer bash hat: das Kommando tcsh eingeben. Zachmann 47 Shells: Was passiert mit einem Kommando? Shell durchläuft folgenden Zyklus mit jedem eingegebenen Befehl: 1. Kommando wird aus der Eingabezeile oder einem Script gelesen 2. Aliases werden expandiert 3. Variable Substitutions werden vorgenommen 4. Wildcards (File-Patterns) werden expandiert 5. Das Kommando wird ausgeführt: - Entweder von der Shell selbst (built-in commands) - Oder in einem neuen Prozeß. Zachmann 48 4

1. Aliases Ersatz für häufige / längliche Kommandos Beispiel: % alias mo less % alias uni "ssh l zach X hera.uni-bonn.de % mo program.cpp % uni alias zeigt alle Aliases an Alias 'uni' wird ersetzt Alias 'mo' wird ersetzt Definiert Alias 'uni' Definiert Alias 'mo'. Zachmann 49 2. Variablen Variable = Name + Wert, Wert = Zeichenkette 2 Arten: Normale Shell-Variablen Environment-Variablen, sind auch in Kind-Prozessen (child process) bekannt Setzen: % setenv TMP "/tmp" % set tmpdir = "/home/stud/zach/tmp" Verwenden: % cp file ${tmpdir} % echo ${TMP}. Zachmann 50 5

Anhängen: % setenv PATH ${PATH}:${HOME}/bin % setenv PATH ${HOME}/bin:${PATH}. Zachmann 51 Wichtige Environment-Variablen Variable DISPLAY HOME PRINTER TMP PATH MANPATH PWD Bedeutung Display, auf dem neue Fenster geöffnet werden (Bsp.: aurikel:0.0) Home-Verzeichnis Default-Drucker Verzeichnis für temporäre Files Suchpfad für Kommandos Suchpfad für Man-Pages Aktuelles Verzeichnis, in dem man sich gerade befindet (WD) printenv druckt alle Environment-Variablen aus echo $VAR druckt Wert dieser Environment-Variablen. Zachmann 53 6

4. File Patterns File-Name mit Wildcards: *? [] Wildcard? * {0,1,2} [0-9] [a-za-z0-9] [^0-9] Bedeutung enau ein beliebiges Zeichen Beliebig viele beliebige Zeichen (auch 0) enau ein Zeichen aus der Menge {0,1,2} enau ein Zeichen aus der Menge {0,,9} enau ein Zeichen aus der Menge {a,,z,a,,z,0,,9} enau ein Zeichen nicht aus der Menge {0,,9} Beispiele: % ls *.cpp *.h % ls [0-9][0-9]*.ppt % ls *[^a-za-z0-9_.,-]*. Zachmann 54 Kleine Warnung zu rm Task: Shoot Yourself in The Foot The proliferation of modern programming languages (all of which seem to have stolen countless features from one another) sometimes makes it difficult to remember what language you're currently using. This handy reference is offered as a public service to help programmers who find themselves in such a dilemma. % ls foot.c foot.h foot.o toe.c toe.o % rm *.o rm:.o no such file or directory % ls %. Zachmann 55 7

Quotation Achtung: das Kommando sieht die Wildcards nie! Shell expandiert Wildcards Quotation verhindert, daß Wildcards (allg. Meta-Zeichen) von der Shell expandiert werden Arten: \ verhindert Expansion des folgenden Zeichens % echo \*.ppt \$PATH " " verhindert Expansion der Wildcards, erlaubt Variablen % echo "*.ppt $PATH" ' ' verhindert jegliche Expansion (Wildcards, Variablen, ) % echo '*.ppt $PATH'. Zachmann 56 5. Wie die Shell ein Kommando ausführt 1. Built-in: Shell führt Kommando selbst aus Beispiel: echo 2. Sonst: externes Programm Beispiel: ls dir 3. command in PATH (Environment-Variable) suchen 4. Falls nicht gefunden, Fehlermeldung 5. Kind-Prozeß erzeugen Erinnerung: erbt Environment des Vater-Prozesses (Shell) 6. Argumente (Zeichenketten) dem Prozeß bereitstellen Argumente werden durch Space (i.a.) getrennt 7. Warten bis Kind-Prozeß beendet. Zachmann 57 8

Suchpfade Environment-Variable mit Liste von durch : getrennten Verzeichnissen Beispiel: % echo $PATH.:/usr/bin:/bin:/usr/local/bin:/home/II/zach Kommandos werden in PATH gesucht File mit Namen des Kommandos im ersten Verzeichnis und executable? ausführen Sonst: nächstes Verzeichnis in PATH untersuchen Analog für Man-Pages und andere. Zachmann 58 File-"Viewer" more, less Interaktiv, zeigen *jeden* File-Typ im Terminal-Fenster an Unter Linux/Mac ist more = less Suchen mit '/', weitersuchen mit 'n', rückwärts 'N', u.v.m. Environment-Variable: setenv PAER 'less -l' Nicht-interaktiv: cat ("concatenate" = aneinanderhängen) head, tail = ersten / letzten paar Zeilen anzeigen. Zachmann 59 9

Editoren Programmierer schreiben ASII, insbesondere Software Nur für reines ASII (kein "Markup" irgendwelcher Art) Für kleine Listen Zum Editieren irgendwelcher Text-Files - Z.B.: VisualStudio-Project-Files, XML-Files, HTML-Files - Vor allem zum "remote" Editieren Heiliger Krieg, welches der beste ist Ein Programmier-Editor sollte Effizientes UI haben (i.a. nicht intuitiv!) - Wenige Tasten / Mauskilometer für die häufigen Aktionen Syntax Highlighting Makros Reguläre Ausdrücke zum Suchen und Ersetzen ross-platform sein. Zachmann 60 Einige Editoren zur Auswahl vim / gvim (Obermenge von vi, welcher immer installiert ist) Effizientester Editor, steilste Lernkurve Die Homepage von vim: www.vim.org emacs/xemacs (extrem umfangreich) "Emacs wäre gar kein so schlechtes Betriebssystem, wenn es nur einen brauchbaren Editor hätte" kate oder nedit (kein non-ui-mode taugt nicht zum remote Editieren, sonst durchaus eine Alternative). Zachmann 61 10

Meine Empfehlung: Für diejenigen, die sog. "power user" werden wollen: suchen Sie sich einen mächtigen, effizienten, und cross-plattform ASII-Editor aus, und lernen Sie diesen beherschen (dauert eine Weile) -vim, emacs / xemacs, nedit, Für alle anderen: nehmen Sie den im Menü angebotenen Editor - Unter Linux: kedit myfile.txt (oder vom "K"-Menü aus) - Falls Sie remote editieren möchten / müssen: mcedit Reference-ards für VIM und Emacs auf der Homepage der Vorlesung. Zachmann 62 Die wichtigsten Befehle in vi / vim / gvim Besonderheit: Vim ist Mode-basiert!! Default- ("Home"-) Modus = Kommando-Modus Aus jedem anderen Mode kommt man mit <Esc> dorthin zurück Tasten: 'i' Insert-Mode = Einfügen von Text an der aktuellen ursor-pos. 'R' Replace-Mode = Überschreiben 'x' aktuelles Zeichen löschen :w File speichern :q Vim verlassen '/' suchen 'n' nächstes Vorkommen suchen '.' letztes Kommando wiederholen. Zachmann 63 11

Standard-I/O Shell etabliert 3 Kanäle zu / vom Prozeß: Standard Input (stdin) Standard Output (stdout) Program Standard Error (stderr) Default-mäßig mit Terminal (Fenster & Keyboard) verbunden. Zachmann 64 Redirection Verbindet Standard-I/O mit Files Prozeß (Programm) bemerkt davon nichts! Redirection Bedeutung > file >> file >& file < file stdout wird nach file geschrieben stdout wird an file angehängt stdout und stderr umlenken Programm liest aus file, nicht von Keyboard Shell bietet noch viele weitere Möglichkeiten Beispiel: % ls l > dir-listing % sort dir-listing % ps -edfyl > procs.log. Zachmann 65 12

Pipelines Effiziente Möglichkeit, komplexere Kommandos aus einfacheren zusammenzubauen! Selber Mechanismus wie bei Redirection, um Prozesse miteinander zu verbinden: stdout Utility or User Program pipe stdin Utility or User Program Syntax: % command command command. Zachmann 66 Beispiele Listings weiterverarbeiten: % ls sort more % ls -1 *.cpp wc l % ls -1 *.cpp sort > sorted-dir % ls -1 tr -s "_" Tip: Bauen Sie eine Pipeline immer eine Stufe nach der anderen auf!!. Zachmann 67 13

Unix-Philosophie "Small is beautiful" Make each tool do one thing only Make it do it well Read from stdin, write to stdout (if sensible) Use ASII-Files. Zachmann 68 Filter Sind hauptsächlich dazu gedacht, um damit Pipelines aufzubauen enerelle Verwendung: Filter lesen von stdin, schreiben auf stdout Arbeiten oft zeilenweise Utility Funktion cut fmt sort uniq wc tr grep rev Felder oder Zeichenspalten ausschneiden Auf 72 Zeichen umformatieren Zeilenweise sortieren (auch nach Teil-Key) Duplikate entfernen Zeichen, Wörter, und Zeilen zählen Zeichen ersetzen Zeichenketten in der Eingabe suchen (s.u.) Reihenfolge der Zeichen umkehren (zeilenweise). Zachmann 69 14

Beispiel Alle Filegrößen in einen File ausgeben: % ls -l tr -s " " cut -d' ' -f5 > sizes.txt Nur die letzten paar Zeilen eines langen Directory-Listings: % ls -l tail -10. Zachmann 70 15