Kurzanleitung zur UNIX Shell



Ähnliche Dokumente
Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1

Vorsemesterkurs Informatik

Arbeiten mit der Shell Teil 1

2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1

Das CIP der Mathematik

Grundbefehle. LPI Zertifizierung. Auf dem Weg: Certified Linux

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

Dateien und Verzeichnisse

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

Linux-Einführung Übung

Das CIP der Mathematik

Arbeiten in der Unix-Kommandozeile

Arbeiten in der Unix-Kommandozeile

SCI Linux Einführung

Informatik für Schüler, Foliensatz 1 Einführung bis...

ZWEITE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

Arbeiten in der Unix-Kommandozeile

Vorlesung Unix-Praktikum

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l

Einführung in das wissenschaftliche Rechnen

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

Basiskonzepte des Rechnerbetriebs

Die Shell. [prompt]> <command> <flags> <args>

Linux eine Einführung

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck

C-Programme erstellen und ausführen

BASIC Tutorial für Anfänger

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

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

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

Einführung Linux-Kurs der Unix-AG

Finder > 'Programme' > 'Dienstprogramme' > 'Terminal'

Einführung ins Praktikum Wissenschaftliches Rechnen I

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

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

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

Technische Praxis der Computersysteme. Technische Praxis der Computersysteme

Einführung in die Angewandte Bioinformatik

SelfLinux Dateien unter Linux

Einführung in die Kommandozeile

Programmierkurs. Steffen Müthing. October 15, Interdisciplinary Center for Scientific Computing, Heidelberg University

Terminal Was ist ein Terminal?:

Arbeiten mit der Shell Teil 2

Objektorientierte Programmierung. Anhang A: Kurze Einführung in Linux

Merkblatt System-C Installation Linux

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

Infrastruktur. INE1-Praktikum 1. Einführung. Augabe 1: Programme starten und konfigurieren. INE1 Informatik für Ingenieure 1

SelfLinux Dateien unter Linux

Bioinformatik für Lebenswissenschaftler

Leitfaden zum Erstellen von C-Programmen

Kommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum

Grundlagen der Programmierung

U1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Arbeiten mit Linux und an der Kommandozeile

Bedienungshinweise für XEmacs, make und GNU Debugger

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

LINUX Gesamtmitschrift

Computer & GNU/Linux Einführung Teil 1. Simon Haller iis.uibk.ac.at

Systemverwaltung mittels Skripts

Linux Tutorium I IT-SICHERHEIT WS1617 BENJAMIN KUHNERT

Bioinformatik für Biochemiker

Bioinformatik für Biochemiker

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

Linux Kurs Vorlesung 2 - Terminal

Softwareentwicklung I

Compilieren und Linken von C- und C++-Dateien

Literatur. Einführung in Unix. Login. Passwort. Mag. Thomas Griesmayer. Benutzererkennung und Passwort Case-Sensitiv Prompt

Objektorientiertes Programmieren mit Suse Linux

Fortgeschrittene GIS-Arbeitstechniken mit GRASS (Geographic Analysis Support Sytem) unter Linux. inhaltlicher Kontext: Landschaftsbewertung

Linux Grundlagen. Wolfgang Scheicher. 20. Mai 2006

Linux Grundlagen. Wolfgang Scheicher 20. Mai Allgemeines Bootvorgang Verzeichnisstruktur... 2

Vorbereitungskurs Informatik - Tag 1

Wie man eigene Programme erstellt

Simple Filesystem Helper

Benutzung wichtiger Konsolenbefehle auf dem Raspberry Pi und anderen Linux Systemen

Eine kleine Makefile Einführung

Informatik I - Einstiegskurs

Einführung in die Kommandozeile

Eprog Starthilfe. 5. Oktober Einleitung 2

Toolbox Workshop 2013

Datei kopieren / verschieben. Prinzip:

1 Linux-Befehlsübersicht

cat more less tail head

Übung 00 Einrichten der Entwicklungsumgebung

UNIX Die wichtigsten Befehle

Dateisystem 2, RegEx, Manpages

Übungsblatt 1: Zur Benutzung von Computern im CIP-Pool der Informatik

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

Wichtige Lizenzen, Shell Teil 2

Erste Schritte zum lauffähigen Java-Programm

Transkript:

Kurzanleitung zur UNIX Shell Institut für Mikroelektronik, 8. Oktober 009 1 GNU/Linux Shell Die Shell unter GNU/Linux ist mit einem Eingabeaufforderungs- bzw. DOS-Fenster unter Windows vergleichbar. Es gibt mehrere Shells unter GNU/Linux, die man verwenden kann. Diese Einführung wird sich mit der bash (Bourne-again shell) beschäftigen. Um zur Shell zu gelangen, ist ein Terminal-Fenster in den Übungen terminal, in manchen Linux Umgebungen auch konsole oder gnome-terminal zu öffnen. Dateisystem.1 Allgemein Im Vergleich zu Windows ist das Dateisystem anders aufgebaut. Es gibt keine Laufwerksbuchstaben sondern nur das root-verzeichnis (/) und Unterordner. Verzeichnisse werden im Gegensatz zu Windows nicht mit \ (Backslash) sondern mit / (Slash) getrennt. Festplatten, Abbildung 1: Dateibaum / cdrom home usr progxxx bin uebung1 uebung src das CDROM-Laufwerk, etc. können unter jedem beliebigen Unterordner eingehängt (mount) werden. Wird z.b. das CDROM-Laufwerk unter /cdrom eingehängt, so wird der Inhalt der CD im Ordner /cdrom angezeigt. In den folgenden n wird der Dateibaum aus Abbildung 1 verwendet. 1

. Dateinavigation Der Name des aktuellen Ordners kann mit dem Befehl pwd (print working directory) angezeigt werden. Um zu einem anderen Ordner zu navigieren, muss man (wie unter DOS) den Befehl cd (change directory) verwenden. Um in das Home-Verzeichnis zu gelangen, muss man cd ohne Argument ausführen. Der Befehl ls (list segments) zeigt den Inhalt eines Ordners an. Wird kein Argument übergeben, so wird der Inhalt des aktuellen Ordners angezeigt. Alle Ordnerangaben können relativ vom aktuellen Verzeichnis aus oder absolut mit beginnendem / angegeben werden. 1 progxxx@lsxxx ~ $ pwd /home/progxxx/ 3 progxxx@lsxxx ~ $ ls 4 uebung1 uebung 5 progxxx@lsxxx ~ $ cd uebung1/src 6 progxxx@lsxxx ~/uebung1/src $ cd 7 progxxx@lsxxx ~ $ cd /cdrom 8 progxxx@lsxxx /cdrom $ cd.. 9 progxxx@lsxxx / $ progxxx@lsxxx ~ $ ist der Prompt, den die Shell ausgibt. progxxx steht dabei für den aktuellen Usernamen, lsxxx für den Rechnernamen und ~ für das aktuelle Arbeitsverzeichnis. Tabelle 1: Pfadangaben. Das aktuelle Verzeichnis.. Das übergeordnete Verzeichnis ~ Das Heimverzeichnis (in unseren n /home/progxxx /home/progxxx/uebung1 Eine absolute Pfadangabe uebung1/src Eine relative Pfadangabe.3 Dateisystemoperationen Ordner können mit dem Befehl mkdir (make directory) angelegt werden. Analog zu mkdir kann man mit rmdir (remove directory) einen Ordner löschen. Der Ordnerinhalt muss dazu leer sein! Dateien können mit dem Befehl rm (remove) gelöscht werden. rm unterstützt weiters die Option -r mit der das Verzeichnis und sämtliche Unterverzeichnisse gelöscht werden. Ähnlich wie bei DOS werden die Wildcards * (steht für eine beliebige Zeichenfolge) und? (steht für ein beliebiges Zeichen) unterstützt. Achtung! Es gibt keinen Papierkorb! Dateien, die gelöscht wurden, sind nicht wiederherstellbar. Also immer darauf achten, dass die richtigen Dateinamen angegeben werden. Linux fragt beim Löschen von Dateien nicht nach, ob diese wirklich gelöscht werden sollen. Hierbei ist besonders mit der -r Option Vorsicht geboten. Ein Tippfehler kann fatale Folgen haben. Dateien und Ordner können mit dem Befehl mv (move) verschoben beziehungsweise umbenannt werden.

1 progxxx@lsxxx ~ $ mkdir uebung3 progxxx@lsxxx ~ $ cd uebung3 3 progxxx@lsxxx ~/uebung3 $ mkdir src 4 progxxx@lsxxx ~/uebung3 $ cd.. 5 progxxx@lsxxx ~ $ mkdir uebung3/tmp 6 progxxx@lsxxx ~ $ ls 7 uebung1 uebung uebung3 8 progxxx@lsxxx ~ $ ls uebung3 9 src tmp 10 progxxx@lsxxx ~ $ mv uebung3 old 11 progxxx@lsxxx ~ $ ls 1 old uebung1 uebung 13 progxxx@lsxxx ~ $ rm old 14 rm: cannot remove old : Is a directory 15 progxxx@lsxxx ~ $ rmdir old 16 rmdir: failed to remove old : Directory not empty 17 progxxx@lsxxx ~ $ rm -r old 18 progxxx@lsxxx ~ $ ls 19 uebung1 uebung.4 Dateien betrachten Um Dateien in der Shell betrachten zu können, gibt es zwei wichtige Befehle: cat (concatenate) und less. cat gibt die ganze Datei auf dem Bildschirm aus. Hingegen zeigt less nur so viel an, wie in den Bildschirm passt und man kann mit den Cursortasten scrollen. Mit less kann man auch in einer Datei suchen. Dazu / gefolgt vom Schlagwort und eingeben. Sind vom Schlagwort weitere Ergebnisse vorhanden, n (next) drücken um zum nächsten Treffer zu gelangen. Das Programm kann mit der Taste q verlassen werden..5 bash-hilfen Die letzten Befehle können mit Hilfe von den Cursortasten nochmals aufgerufen werden. Weiters ist die Shell in der Lage Befehle und Dateien mittels Tab-Taste zu vervollständigen. Drückt man die Tab-Taste zwei mal schnell hintereinander, so werden alle Möglichkeiten aufgelistet, vorausgesetzt es gibt mehrere. 3 Befehlshilfe Ein weiterer wichtiger Befehl ist: man (manual). Zur Betrachtung der Hilfedateien man eingeben. Es existieren auch Hilfedateien zu C-Header und zu C-Funktionen. Die Hilfeseiten sind in mehrere Kategorien eingeordnet, die mit Zahlen bezeichnet sind. 1 für die Befehle und 3 für die C-Funktionen. Die Kategorie muss man nur dann angeben, wenn ein und derselbe Name in mehreren Kategorien existiert (zum Beispiel printf ). 1 progxxx@lsxxx ~ $ man 3 printf progxxx@lsxxx ~ $ man strcpy 3 progxxx@lsxxx ~ $ man string Zeile 3 zeigt die Hilfeseite zur Includedatei string.h an. man stellt die Hilfeseiten mit Hilfe von less dar. 3

Die Hilfeseiten können und sollen während allen Übungen verwendet werden. Sie enthalten eine detaillierte Beschreibung der Funktionen, des Funktionsaufrufs mit genauer Parameterdefinition, in welchen Header Dateien sie zu finden sind und Erklärungen zum Rückgabewert. 4 Ausführen von Programmen Programme kann man mit der Eingabe des Befehls gefolgt von der -Taste ausführen. In den vorherigen n wurde das schon öfter durchgeführt (man, ls, cd,... sind alles Programme). Der Text, der nach dem Programm angegeben wird, sind die Argumente. Um Optionen von anderen Programmparametern leichter unterscheiden zu können, werden Optionen mit einem einzelnen - bzw. bei mehrbuchstabigen Optionen mit -- angegeben. Zum Beispiel rm -r test beziehungsweise rm --recursive test. Es können nur Programme auf diese Weise ausgeführt werden, die in dafür konfigurierten Verzeichnissen liegen. Will man Programme ausführen, die im aktuellen Verzeichnis bzw. Unterverzeichnissen liegen, so muss man den Pfad dazu angeben: 1 progxxx@lsxxx uebung1/src $./uebung1 progxxx@lsxxx ~ $ uebung1/src/uebung1 Im Beispiel ist uebung1 im Verzeichnis uebung1/src eine ausführbare Datei. Mit./ kann man das aktuelle Verzeichnis ansprechen. 5 Kompilieren von Programmen mit gcc Mit Hilfe des Programmes gcc (GNU Compiler Collection bzw. früher GNU C Compiler) können C-Programme in ausführbaren Maschinencode übersetzt werden. 1 progxxx@lsxxx ~ $ gcc uebung1.c progxxx@lsxxx ~ $ gcc -o test uebung1.c 3 progxxx@lsxxx ~ $ gcc -c uebung1.c 4 progxxx@lsxxx ~ $ gcc -o test uebung1.o Die Erzeugung eines ausführbaren Programms kann in den eigentlichen Compiliervorgang, bei dem C-Code in eine Objektdatei übersetzt wird, und das Linken, bei dem (auch mehrere) Objektdateien zu einem Executable zusammengeführt werden, unterteilt werden. Standardmäßig wird ein ausführbares Programm a.out erzeugt (Anweisung 1). Mit der Option -o kann man den Namen der Ausgabedatei angeben. Durch Angabe der Option -c wird nur der eigentliche Compiliervorgang ausgeführt. Anweisung erzeugt eine ausführbare Datei mit dem Namen test, Anweisung 3 eine Objektdatei mit dem Namen uebung1.o und Anweisung 4 erzeugt aus der Objektdatei uebung1.o die ausführbare Datei test. Weitere Informationen befinden sich im Kapitel 3 des Buches. 6 Texteditor Linux verfügt über eine Reihe von Editoren, von welchen sich einige nur durch kryptische Tastenkombinationen bedienen lassen. Auf den Übungsrechnern ist der Editor gedit vorhanden, der sich aber sehr einfach bedienen lässt und auch die C-Syntax geeignet darstellt. Durch Eingabe von gedit prog1.c wird die Datei prog1.c zum Editieren geöffnet. Auf anderen Linux Derivaten gibt es zum Beispiel kate. 4

7 make Damit der Compiler nicht jedesmal von Hand aufgerufen werden muss, gibt es das Programm make. make kann auch Abhängigkeiten auflösen, führt also alle Befehle und Regeln in der richtigen Reihenfolge aus und auch nur die Regeln, die Dateien betreffen, die sich seit dem letzten Aufruf von make verändert haben. 7.1 Um make verwenden zu können, muss man im betroffenen Verzeichnis die Datei anlegen. Diese muss folgenden Inhalt besitzen: 1 Regelname1: Abhaengigkeit1 Abhaengigkeit Aktion1 3 Aktion 4 5 Regelname: Abhaengigkeit3 6 Aktion3 Achtung! Die Aktion muss mit einem Tabulator ( ) eingerückt sein. Ein kann beliebig viele Regeln enthalten. Abhängigkeiten können Regeln und Dateien sein. Mehrere Abhängigkeiten müssen dabei mit Leerzeichen getrennt sein. Die Aktionen (eine Liste von Befehlen) werden von make beim Ausführen einer Regel abgearbeitet. Folgendes erzeugt aus der Datei hello.c das ausführbare Programm hello_world. 1 all: hello.c gcc -o hello_world hello.c Zeile 1 erstellt eine Regel mit dem Namen all, die von der Datei hello.c abhängt. Danach wird die Aktion in Regel all, also der Befehl gcc -o hello_world hello.c, ausgeführt. An make kann die Regel übergeben werden, die ausgeführt werden soll. Wird keine Regel übergeben, so führt make die erste in der Datei aus. Das vollständige inklusive einer Regel für die Generierung der Objekdatei hello.o würde so aussehen: 1 all: hello.o gcc -o hello_world hello.o 3 hello.o: hello.c 4 gcc -c -o hello.o hello.c Beispielaufruf 1 progxxx@lsxxx ~ $ make gcc -c -o hello.o hello.c 3 gcc -o hello_world hello.o 4 progxxx@lsxxx ~ $ ls 5 hello.c hello_world 5

make besitzt darüber hinaus eine Reihe vordefinierter, automatischer Regeln. Folgendes generiert ebenfalls aus der Datei hello.c das ausführbare Programm hello_world. Mit dieser hierbei verwendeten vordefinierte Regel wird automatisch aus C-Dateien die jeweils dazugehörende Objektdatei erzeugt. 1 all: hello.o gcc -o hello_world hello.o Zeile 1 erstellt eine Regel mit dem Namen all, die von der Datei hello.o abhängt. Da die Datei hello.o nicht vorhanden ist, verwendet make die bereits vordefinierte Regel, um aus hello.c die Datei hello.o zu erzeugen. Danach wird die Aktion in Regel all, also der Befehl gcc -o hello_world hello.o, ausgeführt. Ein weiteres Beispiel: 1 all: part1 part part1: hello.o 3 gcc -o hello_world hello.o 4 part: bsp.o 5 gcc -o rechner bsp.o In diesem Beispiel können mit make part1 bzw. make part die zwei Programme kompiliert werden. Durch die Eingabe von make all oder make werden automatisch beide Programme erstellt. 6

8 Cheatsheet 8.1 Verzeichnisoperationen Befehle: ls Verzeichnisinhalt anzeigen cd Verzeichnis wechseln cd - In vorheriges Verzeichnis wechseln pwd Aktuellen Pfad anzeigen mkdir Verzeichnis erstellen rmdir Verzeichnis löschen Spezielle Pfade:. Aktuelles Verzeichnis.. Übergeordnete Verzeichnis ~ Heimverzeichnis 8. Dateioperationen rm rm -r cp cp -r mv cat less Datei löschen Ordnerstruktur löschen Datei kopieren Ordnerstruktur kopieren Datei/Ordner umbenennen/verschieben Datei betrachten Datei betrachten (siehe less) 8.3 less Tastenkombinationen in less: Einen Bildschirm nach unten scrollen Eine Zeile nach unten scrollen / Suchen (Richtung Dateiende) n Zum nächsten Vorkommen springen? Suchen (Richtung Dateianfang) N Zum vorherigen Vorkommen springen Es können auch die Pfeiltasten verwendet werden. 8.4 Shellbefehle Vorheriger Befehl Befehl/Datei vervollständigen Vervollständigungsmöglichkeiten anzeigen ctrl r In den vergangenen Befehlen suchen 8.5 Hilfe man thema bzw. man 3 thema für C-Funktionen. 8.6 gcc gcc -o ausgabedatei datei1.c datei.c Optionen: -o datei Ausgabedatei -c Nicht linken