Toolbox Workshop 2013

Ähnliche Dokumente
Arbeiten in der Unix-Kommandozeile

Arbeiten in der Unix-Kommandozeile

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

Arbeiten in der Unix-Kommandozeile

Automatisierung mit make

Änderungen verwalten mit git

git Änderungen verwalten mit git

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1

Arbeiten mit der Shell Teil 1

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

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

Toolbox Workshop. PeP et al. Toolbox Workshop. PeP et al. e.v. Physikstudierende und ehemalige Physikstudierende

Toolbox Workshop. PeP et al. e.v. Nützliche Programme für Physikstudenten. Igor Babuschkin Kevin Dungs Christian Gerhorst.

BASIC Tutorial für Anfänger

Git - Fast Version Control System

Basiskonzepte des Rechnerbetriebs

Shellkurs Shell, SSH, Skripte... Justus Pfannschmidt, Carola Bothe, Samuel Domiks Freie Universität Berlin

Tutorium SS17 EINFÜHRUNG + BREAKOUT

Versionsverwaltung mit SVN

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

Linux Kurs Vorlesung 2 - Terminal

LINUX Gesamtmitschrift

Betriebssysteme Ein Überblick

Grundbefehle. LPI Zertifizierung. Auf dem Weg: Certified Linux

Das CIP der Mathematik

1 Linux-Befehlsübersicht

Das CIP der Mathematik

Vorsemesterkurs Informatik

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

Linux eine Einführung

Vorlesung Unix-Praktikum

Inhaltsverzeichnis Erste Schritte Grundprinzipien in Linux

UNIX Die wichtigsten Befehle

Versionsverwaltung mit git

Dateien und Verzeichnisse

Software Engineering

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

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

SelfLinux Dateien unter Linux

Praktikum Ingenieurinformatik (PI)

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

SelfLinux Dateien unter Linux

Grundlagen der Programmierung

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Versionsverwaltung mit Git. Eine Einführung ins Source Code Management

SCI Linux Einführung

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018

Linux Grundlagen. Wolfgang Scheicher. 20. Mai 2006

Einführung in Linux Ein Untertitel

Git-Grundlagen für Entwickler. Thomas Claudius

Kommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum

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

Einführung zu Git. Das Nötigste für die Studienarbeit im Modul Datenkommunikation. Ege Inanc

pwd mkdir Zeigt das aktuelle Verzeichnis an Beispiel: pwd

Technische Praxis der Computersysteme. Technische Praxis der Computersysteme

Vorlesung Unix-Praktikum

Benutzung wichtiger Konsolenbefehle auf dem Raspberry Pi und anderen Linux Systemen

Verteilte Versionskontrolle mit. Einführung und Nutzung von SVK FrOSCon 24./25. Juni 2006

Unix und Shell. Linux für Informatik-Erstsemester. Nico Grashoff,

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

Arbeiten mit der Shell Teil 2

Enes Kurnaz, Oliver Nagel Institut für Mathematik und Informatik. Versionsverwaltung mit Git

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

Vorbereitungskurs Informatik - Tag 1

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

Vorbereitungskurs Informatik - Tag 1

Praktikum RO1 Einführung Linux / Ubuntu / Bash

Semesterprojekt Entwicklung einer Suchmaschine für Alternativmethoden zu Tierversuchen. Versionierung und Bugtracking mit GitHub

Einführung in die Angewandte Bioinformatik

Einführung in das wissenschaftliche Rechnen

Versionsverwaltung. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2009

Apache Subversion (SVN)

Versionierung und Bugtracking mit Git(Hub)

SLT Schwabacher Linuxtage 2009 Herzlich willkommen. Peter Botschafter / sudo

Versionsverwaltung mit Mercurial für Einsteiger

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

Programmieren 1 11 Versionsverwaltung mit Git - Grundlagen -

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

Einführung in Git. master. Initial commit

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l

Versionskontrolle mit Subversion

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

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

Einführung ins Praktikum Wissenschaftliches Rechnen I

Versionsverwaltung mit Eclipse. PR1 - Medizinische Informatik (IMB) Dennis-Immanuel Czogalla

T.Bosse. COMA Übung 1. T.Bosse. Einführung in Linux Dateisystem Graphische. Textbasierte

Arbeiten mit dem Versionsverwaltungssystem. Jannik Kramer Proseminar Werkzeuge für das wissenschaftliche Arbeiten

Fakultät für Informatik Praktische Einführung in die Versionsverwaltung mit Eclipse

Versionskontrolle mit SVK

Programmieren 2 05 Versionsverwaltung mit Git

Terminal Was ist ein Terminal?:

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

Vorlesung Unix-Praktikum

Einführung in die Kommandozeile

Transkript:

Toolbox Workshop 2013 Igor Babuschkin Kevin Dungs Ismo Toijala 2. Oktober 2013

www.pep-dortmund.org Absolventen, Studierende, Mitarbeiter, Freunde und Förderer der Fakultät Physik Mission: Netzwerk aufbauen 2 / 43

PeP et al. Aktivitäten Stipendien Stammtisch Bachelorkolloquium Absolventenfeier Rhetorik-Workshop Toolbox-Workshop Sommerakademie... 3 / 43

Motivation Arbeitserleichterung Gute Tools Kein Excel! Teamarbeit++ best practices 4 / 43

Auswertung der Umfrage

Vorherige Programmierkentnisse? Nie Python 26.0% 15.0% 59.0% Andere Sprache(n) 6 / 43

Bekannte Programmiersprachen Arduino AutoIt BASIC C C# C++ Delphi Java JavaScript Lua Matlab ObjC PHP 0 2 4 6 8 10 12 14 7 / 43

Besondere Interessen Autom. Fehlerrechnung Matplotlib Automatisierung (make) Kommandozeile Auswerten mit Python Versionskontrolle 0 5 10 15 20 25 30 8 / 43

Virtuelle Maschine? Nein 38.0% 62.0% Ja 9 / 43

Was mich sonst noch interessiert Alles, was ich fürs 3. Semester brauche Warum matplotlib, wenn wir eine Woche später GnuPlot kennenlernen? Braucht man das wirklich alles? Umgang mit Linux Warum soll Ubuntu/Linux soviel besser als Windows sein? 10 / 43

Wissenschaftliches Arbeiten mit Python

Warum Python? Leicht zu lernen Sehr produktiv (man ist schneller fertig) Häufig in der Wissenschaft verwendet (gute Bibliotheken) Guter interaktiver Interpreter (IPython) 12 / 43

Themen 1 Plots Erstellen mit Python (matplotlib) 2 Einführung in die Programmierung mit Python 3 Wissenschaftliche Bibliotheken: Numpy, SciPy Zwischendurch: kurze Aufgaben 13 / 43

Aber zuerst: Umgang mit IPython

Unix Shell

Dateisystem bildet einen Baum beginnt bei / (root) / trennt Teile eines Pfads auf Groß-/Kleinschreibung achten! es gibt ein aktuelles Verzeichnis relative vs. absolute Pfade spezielle Verzeichnisse:. das aktuelle Verzeichnis.. das Oberverzeichnis ~ das Homeverzeichnis 16 / 43

man, pwd, cd man topic pwd cd directory manual : zeigt die Hilfe für ein Programm print working directory : zeigt das aktuelle Verzeichnis change directory : wechselt in das angegebene Verzeichnis 17 / 43

ls ls [directory] ls -l ls -a list : zeigt den Inhalt eines Verzeichnisses an long : zeigt mehr Informationen über Dateien und Verzeichnisse all : zeigt auch versteckte Dateien (fangen mit. an) 18 / 43

mkdir, touch mkdir directory mkdir -p directory touch file make directory : erstellt ein neues Verzeichnis parent : erstellt auch alle notwendigen Oberverzeichnisse erstellt eine leere Datei 19 / 43

cp, mv, rm, rmdir cp source destination cp -r source destination mv source desination rm file rm -r directory rmdir directory copy : kopiert eine Datei recursive : kopiert ein Verzeichnis rekursiv move : verschiebt eine Datei (Umbenennung) remove : löscht eine Datei (Es gibt keinen Papierkorb!) recursive : löscht ein Verzeichnis rekursiv remove directory : löscht ein leeres Verzeichnis 20 / 43

cat, less, grep, echo cat file less file grep pattern file grep -i pattern file grep -r pattern directory echo message concatenate : gibt Inhalt einer (oder mehr) Datei(en) aus (besser als more): wie cat, aber navigabel g/re/p: sucht in einer Datei nach einem Muster case insensitive recursive : suche rekursiv in allen Dateien gibt einen Text aus 21 / 43

Ein- und Ausgabe command > file command >> file command < file command1 command2 überschreibt Datei mit Ausgabe fügt Ausgabe einer Datei hinzu Datei als Eingabe Ausgabe als Eingabe (Pipe) 22 / 43

Tastaturkürzel Ctrl-C Ctrl-D Ctrl-L beendet das laufende Programm EOF (end of file) eingeben, kann Programme beenden leert den Bildschirm 23 / 43

Globbing * wird ersetzt durch alle passenden Dateien {a,b} bildet alle Kombinationen Beispiele: *.log foo.log bar.log foo.{tex,pdf} foo.tex foo.pdf 24 / 43

Auswertungen automatisieren mit make

GNU Make 30 Jahre GNU! 26 / 43

Automatisierte, reproduzierbare Prozesse Problem: kurz vor Abgabe noch neue Korrekturen einpflegen Tippfehler korrigieren, Plots bearbeiten T E X ausführen, ausdrucken vergessen, Plots neu zu erstellen 27 / 43

Automatisierte, reproduzierbare Prozesse Lösung: Make! sieht, welche Dateien geändert wurden berechnet nötige Operationen führt Python-Skript aus, führt T E X aus 28 / 43

Makefile Datei heißt Makefile, keine Endung! bei Windows Dateiendungen einschalten! (http://support.microsoft.com/kb/865219/de) besteht aus Rules: Rule target: prerequisites recipe target Datei(en), die von dieser Rule erzeugt wird prerequisites Dateien, von denen diese Rule abhängt recipe Befehle: prerequisites target (mit Tab eingerückt) 29 / 43

Beispiel all: report.pdf plot.pdf: plot.py daten.txt python2 plot.py report.pdf: report.tex plot.pdf latex report.tex wenn nur make gestartet wird, wird der erste Target erstellt, hier all; um ein anderes Target zu erstellen, startet man make target all braucht report.pdf, also wird latex report.tex ausgeführt report.pdf braucht noch plot.pdf, also wird Python ausgeführt 30 / 43

Änderungen verwalten mit git

Wie arbeitet man am besten an einem Protokoll zusammen?

Idee: Austausch über Mails

Mails: Probleme Risiko, dass Änderungen vergessen werden, ist groß Bei jedem Abgleich muss jemand anders aktiv werden Stört Es kommt zu Verzögerungen Fazit: Eine sehr unbequeme / riskante Lösung 34 / 43

Idee: Austausch über Dropbox

Dropbox: Probleme Man merkt nichts von Änderungen der Anderen Gleichzeitige Änderungen gehen verloren Fazit: Besser, aber hat deutliche Probleme 36 / 43

Lösung: Änderungen verwalten mit git

Ein Version Control System Ursprünglich entwickelt, um den Programmcode des Linux-Kernels zu verwalten (Linus Torvalds) Hat sich gegenüber ähnlichen Programmen (SVN, mercurial) durchgesetzt 38 / 43

Was bringt git für Vorteile? Arbeit wird für andere sichtbar protokolliert Erlaubt Zurückspringen an einen früheren Zeitpunkt Kann die meisten Änderungen automatisch zusammenfügen Wirkt nebenbei auch als Backup Einziges Problem: Man muss lernen, damit umzugehen 39 / 43

Zentrales Konzept: Das Repository Erzeugen mit git init Working directory git add Index git commit History 40 / 43

Mit anderen Repositories kommunizieren Repository kopieren: git clone Neue Änderungen holen: git pull Eigene Änderungen hochladen: git push 41 / 43

Achtung: Merge conflicts Don t Panic Entstehen, wenn git nicht automatisch mergen kann (selbe Zeile geändert, etc.) 1 Die betroffenen Dateien öffnen 2 Markierungen finden und die Stelle selbst mergen (meist 2,3 Zeilen) 3 git commit ausführen um zu bestätigen 42 / 43

Weitere nützliche Befehle Änderungen ansehen: git diff Vergangenheit betrachten: git log Änderungen kurz zur Seite schieben: git stash 43 / 43