Der Standard-Editor vi

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

Arithmetik in der tcsh

Ein- und Ausgabeumlenkung

Vorlesung Unix-Praktikum

Linux-Einführung Übung

Basiskonzepte des Rechnerbetriebs

Grundlagen der Programmierung

Arzu Sanli Ibrahim Canakci

Skripte. Beispiel. M. Fyta Computergrundlagen 73/93

Shell-Programmierung

Unix/Linux Grundlagen für Einsteiger

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

Linux / Unix - Shells

SelfLinux Was ist eine Shell?

Linux und Shell-Programmierung Teil 5

Bash-Skripting Linux-Kurs der Unix-AG

Shell-Scripting Linux-Kurs der Unix-AG

Aufgabensammlung IT Shellprogrammierung Teil I

Crashkurs Kommandozeile

Shell-Scripting Linux-Kurs der Unix-AG

Einführung Unix Shell

Fachhochschule Frankfurt am Main Fachbereich 2: Informatik WS 2008/2009

105.1 Shell, Scripting

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

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

1.103 Grundlagen der Dateibearbeitung mit vi

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Desktop ade: Me and my shell

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

UNIX Die wichtigsten Befehle

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

Kommandozeilen effizient nutzen und verstehen

Das CIP der Mathematik

Basiskonzepte des Rechnerbetriebs

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

Bash-Skripting Linux-Kurs der Unix-AG

Linux Prinzipien und Programmierung

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

unix command line HOWTO.txt

4. Desktop, Betriebssystem u.a.

Vorsemesterkurs Informatik

Bash-Scripting Linux-Kurs der Unix-AG

Das Handbuch zu KCron

Ergänzende Praxistipps. Skript erzeugt mit Targeteam

Arbeiten mit der Shell Teil 1

Shell-Programmierung fur Unix und Linux

D.2 Sonderzeichen (2)

Arbeiten in der Unix-Kommandozeile

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

UNIX Shell-Programmierung

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

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

Arbeiten mit der Shell Teil 1

cs106 Informatiklabor Teil 1: Java-Installation

Grundlagen der Informatik Vorlesungsskript

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

L A TEX, Linux, Python

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

Arbeiten in der Unix-Kommandozeile

Benutzer- und Rechtevergabe

Einführung in die Kommandozeile

Computer & GNU/Linux Einführung Teil 1

Computergrundlagen Einführung in UNIX 1

FH Frankfurt am Main WS 2007/2008. Unix-Praktikum

Linux-Camp: Remote-Zugriff

Shell-Scripting Linux-Kurs der Unix-AG

Shell Programmierung. Was ist die Shell überhaupt?

Arbeiten mit der Shell Teil 1

Shellprogrammierung. Einführung in Linux. Antonia Blanke. Shellprogrammierung Die Linux Shell Besondere Zeichen Pipes Variablen Bedingungen und Tests

Übung 1: Wichtige Kommandos unter Linux

Computer & GNU/Linux Einführung Teil 4

Unix Grundlagen (Teil 1.b)

Einige Eigenschaften der Bourne-Shell und der bash

Shell-Scripting Linux-Kurs der Unix-AG

Computer & GNU/Linux Einführung Teil 3

Hochschule Harz Vorlesung Grundlagen der Informatik 2 vi-editor Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Nils Nause (Student Informatik)

S hel I-S kri pt- Program m ieru ng

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

1 EINLEITUNG Übersicht zum Buch... 5

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

Kommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum

Shell-Programmierung für Unix und Linux

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

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

Effektives Arbeiten ohne Maus

Der Novell Open Enterprise Server

Arbeiten mit der Shell Teil 2

Python 3.6. Erste Schritte auf dem Mac. Syshack. 22. Juni 2017 Version 2.0. Python Erste Schritte auf dem Mac Syshack, 22.

Arbeiten mit der Shell Teil 2

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

Arbeiten mit der Shell Teil 1

Shell-Skript-Programmierung

Kurzanleitung zum Editor vi

Arbeiten mit der Shell Teil 1

(Unix) Shell Programmierung

Hierfür sind mit dem Content Management System (CMS) Joomla in Verbindung mit SIGE Pro Inhalte angelegt worden, die genau diesen Zweck erfüllen.

Betriebssysteme I WS 2016/17. Prof. Dr. Dirk Müller. 5 Shell-Programmierung

Transkript:

Der Standard-Editor vi unabhängig von Terminaltyp, Shell und Graphik Aufruf durch vi oder vi <dateiname> bearbeitet Kopie der Datei im Hauptspeicher zwei (drei) Betriebsmodi Kommandomodus i,a,o,i,a,o ESC Eingabemodus 34

Kommandomodus Manövrieren des Cursors mit Cursortasten oder h ein Zeichen nach links l ein Zeichen nach rechts j eine Zeile nach unten k eine Zeile nach oben 0 Zeilenanfang $ Zeilenende ng in die n-te Zeile G in die letzte Zeile 35

Löschen x Zeichen unter Cursor X Zeichen vor Cursor d0 bis Zeilenanfang d$ bis Zeilenende dd eine Zeile dg alle Zeilen ab aktueller Zeile d1g alle Zeilen bis zur aktuellen Zeile Die Kommandos x, X und dd können durch Voranstellen einer Zahl (z.b. 3dd) mehrfach angewendet werden (z.b. 3 Zeilen löschen). 36

eine Auswahl weiterer Kommandos r Zeichen unter Cursor ersetzen R alle Zeichen ersetzen bis ESC J Zeilenumbruch beseitigen yy Zeile in Puffer speichern p Zeile im Puffer als nächste Zeile einfügen P Zeile im Puffer oberhalb einfügen :w [datei] Speichern [in datei] :r datei Einlesen von datei :q[!] Beenden [ohne Speichern] :! cmd Shell-Kommando cmd ausführen Mehrfachausführung von yy möglich (nyy) 37

Aufgabe: Die UNIX-Shells Kommunikation mit dem Benutzer (Schnittstelle Benutzer System) Eingabeprompt Kommandointerpretation Aufruf von Programmen oder Systemaufrufe Verarbeitung von Kommandostapeln aus Shell-Skripten ( Programmiersprache ) Arten: sh: Bourne-Shell (Steve Bourne, Bell Labs) csh: C-Shell (Bill Joy, University of California) tcsh: Tenex C-Shell bash: Bourne-again-Shell (LINUX-Standard-Shell) Korn-Shell ksh, Z-Shell zsh, Almquist-Shell ash,... In diesem Kurs: hauptsächlich tcsh. 38

Login- vs. Subshell Bei der Anmeldung eines Benutzers wird automatisch ein Shell-Prozess gestartet: die Login-Shell. in einer Terminal-Umgebung: Die Login-Shell wird im (einzigen) Terminalfenster ausgeführt. (keine Graphik!) bei graphischer Oberfläche: Die Login-Shell wird nicht angezeigt. In jedem Terminal, das als Fenster geöffnet wird, startet eine Subshell, die von der Login-Shell abstammt. Jede Subshell kann weitere Subshells erzeugen, z.b. durch Aufruf eines Shellprogramms /bin/sh, /bin/tcsh,... Shellsprung, Aufruf von anderen Programmen. 39

Anlaufdateien.login legt den Umgebungsbereich fest.tcshrc konfiguriert die Shell und modifiziert ggf. den Umgebungsbereich beim Start einer Login-Shell:.login,.tcshrc beim Start einer Subshell:.tcshrc zuvor können entsprechende Dateien aus /etc ausgeführt werden (Einstellungen für alle Benutzer) können die Ausführung weiterer Dateien bewirken (z.b..login.solaris,.cshrc,.aliases) 40

Funktionsweise der Shell 1. Anlaufdateien abarbeiten 2. Prompt ausgeben, Eingabe lesen 3. Analyse der Kommandozeile 4. Kommando ausführen (als shell builtin oder ausführbare Datei) 5. Exit-Status speichern (wichtig für Shell-Programmierung), ggf. Fehlermeldungen in stderr schreiben; zu (2) 41

Shellvariablen Shell- vs. Umgebungsvariablen lokale Variablen (nur in der aktuellen Shell gültig) set set variable = wert unset variable Umgebungsvariablen werden an Subshells vererbt env setenv Variable Wert unsetenv Variable Anzeige eines einzelnen Variablenwertes: echo $variable 42

Einige (System-) Umgebungsvariablen GROUP USER HOME TERM PATH SHLVL MANPATH MAIL PWD OSTYPE HOST TZ Name der Benutzergruppe, zu der der Benutzer gehört Name des Benutzers Login-Verzeichnis des Benutzers Bezeichnung des Terminaltyps Suchpfad für Programme und Dateien Schachtelungstiefe der aktuellen Shell Suchpfad für Manualpages Mailbox des Benutzers aktuelles Verzeichnis Bezeichnung des Betriebssystems Name des Rechners, auf dem die Shell läuft lokale Zeitzone 43

Einige (System-) Shellvariablen group Name der Benutzergruppe, zu der der Benutzer gehört user Name des Benutzers home Login-Verzeichnis des Benutzers term Bezeichnung des Terminaltyps path Suchpfad für Programme und Dateien (als Wortliste) shlvl Schachtelungstiefe der aktuellen Shell cwd aktuelles Verzeichnis owd vorheriges Verzeichnis tty Terminal, auf dem die Shell läuft prompt Festlegung des Eingabeprompt history Anzahl der gespeicherten Kommandos : direktes Analogon im Umgebungsbereich 44

Substitutionen Auf der Kommandozeile werden eine Reihe von Substitutionen durchgeführt, bevor der eigentliche Programmaufruf erfolgt. 1. Variablensubstitution $variable wird durch den Wert von variable ersetzt 2. Dateinamenexpandierung Wildcards (Joker) werden durch passende Dateinamen ersetzt (versteckte).-dateien werden nicht in die Expandierung einbezogen gesonderte Expandierung von Mustern mit. als erstes Zeichen 45

Wildcard Bedeutung * beliebeige Zeichenkette (auch die leere)? ein beliebeiges Zeichen [...] ein Zeichen aus der Menge, z.b. [aeiou] [von-bis] ein Zeichen zwischen von und bis [^...] ein Zeichen außerhalb der Menge, z.b. [^0-9] ^... Negation der gesamten Wildcard {wort1,...,wortn} eines der Wörter ~ absoluter Pfadname des (eigenen) Login-Verzeichnisses ~user abs. Pfadname des Login-Verzeichnisses von user 46

3. Kommandosubstitution Ein in... eingeschlossenes Kommando wird auf der Kommandozeile durch seine Ausgabe ersetzt. 4. Historysubstitution einige Aspekte history zeigt die gespeicherte Befehlsliste an (shell-built-in) Bei der Historysubstitution wird auf Kommandos aus dieser Liste zurückgegriffen. Aufrufschema:!event[:wort][[:modifier]...] event bezeichnet Befehl (Event) aus der Liste wort bezeichnet Wörter des Events modifier legt die Art der Verwendung fest Standard: Event ausführen 47

z.b.: event Bedeutung!! letzter Befehl!n n-ter Befehl!-n n-ter Befehl vom Ende der Liste!string letzter Befehl, der mit string beginnt!?string? letzter Befehl, der string enthählt wort n n-tes Wort (0 = Kommandoname ) $ letztes Wort * alle Wörter außer Kommandoname modifier p gib Kommandozeile aus, ohne sie auszuführen 48

Es gibt für Zugriffe auf Wörter des letzten Befehls Abkürzungen, z.b.!* für!!:* 5. Aliassubstitution alias zur Anzeige vereinbarter Alias-Kommandos alias name kommando bei Aufruf von name wird kommando ausgeführt Soll in kommando eine Historysubstitution ausgeführt werden, so bezeichnet!! den Befehl, mit dem der Alias aufgerufen (verwendet) wurde. Das!-Symbol ist dabei zu quotieren. unalias name zum Löschen des Aliaskommandos \name zum einmaligen Außerkraftsetzen des Alias 49

Reihenfolge der Substitutionen in der tcsh 1. Historysubstitution 2. Aliassubstitution 3. Variablensubstitution 4. Kommandosubstitution 5. Dateinamenexpandierung Achtung: In einigen anderen Shells gibt es abweichende Reihenfolgen. 50

Apostrophiermechanismen/Quoting Zeichen mit Sonderbedeutung in der (t)csh (Metazeichen): & ; < > ( ) [ ] { } "!? * $ ~ \ & ^ space, tab, newline Unterdrückung der Sonderbedeutung: \ schützt das direkt folgende Zeichen,... schützt alle eingeschlossenen Zeichen, "..." schützt alle eingeschlossenen Zeichen außer \, $,! und vor einer Interpretation durch die Shell. 51