Skip to content
Snippets Groups Projects
Commit bda45bd8 authored by Moritz Holtz's avatar Moritz Holtz
Browse files

Doku: Teilweise Korrektur

parent 60a42f0b
No related branches found
No related tags found
No related merge requests found
......@@ -12,6 +12,8 @@
\usepackage{courier}
\usepackage{listingsutf8}
\usepackage{xcolor}
\usepackage{verbatim}
\lstset{language=bash, numbers=left, basicstyle=\ttfamily\color{white},breaklines=true,backgroundcolor=\color{black},numberstyle=\small\color{darkgray},literate={ö}{{\"o}}1{ä}{{\"a}}1{ü}{{\"u}}1}
......
#!/bin/bash
set -e
#options for GUI are kdialog zenity none
GUI=none
if [ -z "$GUI" ]; then
echo "\$GUI is not set. Auto detecting GUI..."
if command -v zenity 2>&1 > /dev/null && test -n "$DISPLAY"; then
GUI=zenity
elif command -v kdialog 2>&1 > /dev/null && test -n "$DISPLAY"; then
GUI=kdialog
else
GUI=none
fi
fi
echo "Using GUI=$GUI."
if [ "$GUI" == "none" ]; then
NOGUI=yes
fi
MY_DIR="$( readlink -f "$( dirname "${BASH_SOURCE[0]}" )" )"
HIVE_DIR="$MY_DIR/../hive/" #we assume here that the LIP install stick is mounted at /media/MultiBoot... better idea?
#images already installed
PREINSTALLED_PKGS="thunderbird vlc x2goclient p7zip-full unrar-free kile vim htop git gparted"
#Liste, in der alle Pakete verzeichnet werden, die vom Skript tatsächlich installiert werden; Pseudo-Pakete sind "all-capital"
INSTALLED_PKGS="HEADER COMMON $PREINSTALLED_PKGS"
#Paketlisten zur Installation/Auswahl, nur Pakete die im Repo liegen.
#Hive-Programme (z.B. anaconda) müssen extra behandelt werden
#Der Textinstaller installiert _ausschließlich_ Pakete bei denen Preinstalled gesetzt ist!
#Syntax: preinstalled? pkgname description
COMMON_PKGS=(\
"TRUE" "gufw" "Firewall Frontend" \
"TRUE" "pwgen" "Tool um Passwoerter zu generieren" \
"TRUE" "inkscape" "Bildbearbeitung (Vektorbasiert)" \
"TRUE" "gimp" "Bildbearbeitung (Pixelbasiert)" \
"TRUE" "subversion" "Versionsverwaltungstool (zentral)" \
"TRUE" "graphviz" "Tool zum visualisieren von Graphen" \
"TRUE" "gnome" "GNOME3 Desktop Umgebung" \
"TRUE" "xubuntu-desktop" "Xubuntu Desktop Umgebung und standard Programme" \
"TRUE" "fityk" "Tool zum Daten-Fitting und Analyse" \
"TRUE" "openssh-server" "SSH-Server (s. KISS)" \
"TRUE" "linux-firmware-nonfree" "Properitäre Firmware fuer exotische Notebooks/Hardware" \
"TRUE" "zsh" "Alternative Shell" \
"TRUE" "zsh-doc" "Dokumentation von zsh" \
"TRUE" "lftp" "FTP-Client" \
"TRUE" "gddrescue" "Falls Daten gelöscht, letzte Option vor dem Tod der Hoffnung" \
"TRUE" "liblapack-dev" "LAPACK ist eine Standard-Numerik-Bibliothek für Physiker und Numeriker" \
"TRUE" "liblapack-doc" "LAPACK Dokumentation (s. oben)" \
)
PH_PKGS=(\
"TRUE" "python-numpy" "Numeric Bibiliothek für Python" \
"TRUE" "python-simpy" "Simulationsframework für Python" \
"TRUE" "python-scipy" "Bibliothek für scientific computing" \
"TRUE" "python-matplotlib" "Schnittstelle zum Plotten mit Python" \
"TRUE" "ipython" "Interaktiver Python Interpreter mit Tab-Vervollständgung" \
"TRUE" "gnuplot" "Programm um Funktions- und Datenplots anzufertigen" \
"TRUE" "wxmaxima" "Graphische Benutzeroberfläche für das Maxima Computer Algebra System" \
"TRUE" "root-system" "Datenanalyse Framework vom CERN" \
"TRUE" "bpython" "Ein weiterer interaktiver Python Interpreter" \
"TRUE" "spyder" "Python IDE (die, die in Anaconda benutzt wird)" \
)
IF_PKGS=(\
"TRUE" "postgresql" "Datenbank-Server. Nett um in der Datenbanken-Vorlesungen Dinge auszuprobieren.\n Aber relativ groß." \
"TRUE" "dia" "Graphisches Tool, um UML/ER Diagramme für die Vorlesungen Softwaretechnik und Datenbanken anzufertigen" \
"TRUE" "ghc" "Glaskow Haskell Compiler für die Vorlesung Programmierung" \
"TRUE" "default-jdk" "Java JDK für die Vorlesung Programmierung" \
"TRUE" "swi-prolog" "Prolog Interpreter/Compiler für die Vorlesung Programmierung" \
)
M_PKGS=(\
"TRUE" "singular" "Tool für die Vorlesung Computeralgebra" \
)
preinstalledpkgs() {
local pkglist=$1[@]
local take="FALSE"
local step=0
for i in "${!pkglist}"
do
case $step in
0) take="$i"
step=1
;;
1) if [ $take = "TRUE" ]; then
echo -n " $i"
fi
step=2
;;
*)
step=0
;;
esac
done
}
bright() {
# gruen
echo -ne "\033[1m$@\033[0m"
}
ok() {
echo
echo -ne "\033[32;7m" # gruen
echo -n "$@"
echo -e "\033[0m" # normal
}
warn() {
echo
echo -ne "\033[33;7m" # gelb
echo -n "$@"
echo -e "\033[0m" # normal
}
case "$GUI" in
none)
askyesno() {
# while true
# do
# read -n1 -p "$1 [j,n]"
# echo
# case "$REPLY" in
# y|Y|j|J) return 0;;
# n|N) return 1;;
# *) echo 'Antworte bitte mit "j" für "Ja" oder "n" für "Nein"' ;;
# esac
# done
return 0
}
pressenter() {
echo $@
echo "Drücke <Enter> um fortzufahren (Strg-C zum Abbrechen)"
# read
}
err() {
echo
echo -ne "\033[31;7m" # rot
echo -n "$@"
echo -e "\033[0m" # normal
}
install_pkgs() {
#ACHTUNG: nicht vorausgewählte Pakete werden _nie_ installiert!
local arg=$3[@]
pkglist=$(preinstalledpkgs $3)
if [ -n "$pkglist" ]; then
INSTALLED_PKGS="$INSTALLED_PKGS $4" #register pseudo package
apt-install $pkglist
ok "$pkglist installiert"
else
ok "Keine Pakete installiert"
fi
}
ask_license() {
#TODO dumm Benutzer kann evtl nicht ganze Lizenz lesen...
cat "$1"
askyesno "Die obige Lizenzvereinbarung akzeptieren?"
return $?
}
;;
zenity)
askyesno() {
zenity --question --text "$@" 2> /dev/null
}
err() {
zenity --error --text "$@" 2> /dev/null
}
pressenter() {
zenity --info --text "$@" 2> /dev/null
}
install_pkgs() {
local pkglist=$3[@]
INSTALL=$(zenity --list --title "$1" --text "$2" --checklist --separator=" " --width=786 --height=400 --column "Installieren?" --column "Paket" --column "Beschreibung" "${!pkglist}" 2> /dev/null || true)
if [ -n "$INSTALL" ]; then
INSTALLED_PKGS="$INSTALLED_PKGS $4" #register pseudo package
apt-install $INSTALL
ok "$INSTALL installiert"
else
ok "Keine Pakete installiert"
fi
}
ask_license() {
zenity --text-info \
--title="Lizenzvereinbarung akzeptieren" \
--filename="$1" \
--checkbox="Ich habe die Lizenzvereinbarung gelesen und akzeptiere sie."
return $?
}
;;
kdialog)
askyesno() {
kdialog --yesno "$@" 2> /dev/null
}
err() {
kdialog --error "$@" 2> /dev/null
}
pressenter() {
kdialog --msgbox "$@" 2> /dev/null
}
install_pkgs() {
local pkglist=$3[@]
declare -a kdlist
local tag=""
local text=""
local use=""
local n=0
local i=0
for e in "${!pkglist}"; do
case $n in
0)
if [ "$e" == "TRUE" ]; then
use="on"
else
use="off"
fi
n=1
;;
1)
tag="$e"
n=2
;;
2)
text="$e"
kdlist[$i]="$tag"
i=$((i+1))
kdlist[$i]="$tag: $text"
i=$((i+1))
kdlist[$i]="$use"
i=$((i+1))
n=0
;;
esac
done
INSTALL=$(kdialog --geometry 786x400 --title "$1" --checklist "$2" "${kdlist[@]}" 2> /dev/null || true)
if [ -n "$INSTALL" ]; then
INSTALLED_PKGS="$INSTALLED_PKGS $4" #register pseudo package
apt-install $(echo $INSTALL | tr -d \")
ok "$INSTALL installiert"
else
ok "Keine Pakete installiert"
fi
}
ask_license() {
kdialog --title="Lizenzvereinbarung akzeptieren" \
--yes-label "Ich habe die Lizenz gelsen und akzeptiere sie." \
--no-label "Abbrechen" --yesno "$(cat "$1")"
return $?
}
;;
*)
echo "Ungültige GUI Option '$GUI'. Möglich Werte sind 'kdialog', 'zenity' oder 'none'"
exit 1
;;
esac
# Verbose error trapping
showerr() {
err "Bei der Installation ist ein Fehler aufgetreten. Frage einen Helfer."
}
trap showerr ERR
apt-install() {
INSTALLED_PKGS="$INSTALLED_PKGS $@"
}
install_common() {
install_pkgs "Allg. Pakete installieren?" "Programme, die der OSAK/die ALUG für sinnvoll hält, sind bereits zur Installation vorselektiert.\nWenn du keine Pakete aus der Liste installieren willst, einfach Abbrechen.\nBitte beachten: Das LIP-Script deinstalliert keine Pakete, insbesondere also keine Pakete die in einem früheren Lauf aktiv waren,\nund diesmal nicht ausgewählt sind!" COMMON_PKGS ""
}
install_ph() {
install_pkgs "Pakete für Physiker installieren?" "Programme, die der OSAK/die ALUG sowie Lehrstühle der Physik für sinnvoll hält, sind bereits zur Installation vorselektiert.\nWenn du keine Pakete aus der Liste installieren willst, einfach Abbrechen.\nBitte beachten: Das LIP-Script deinstalliert keine Pakete, insbesondere also keine Pakete die in einem früheren Lauf aktiv waren,\nund diesmal nicht ausgewählt sind!" PH_PKGS "PHYSIK"
}
install_m() {
install_pkgs "Pakete für Mathematiker installieren?" "Programme, die der OSAK/die ALUG für sinnvoll hält, sind bereits zur Installation vorselektiert.\nWenn du keine Pakete aus der Liste installieren willst, einfach Abbrechen.\nBitte beachten: Das LIP-Script deinstalliert keine Pakete, insbesondere also keine Pakete die in einem früheren Lauf aktiv waren,\nund diesmal nicht ausgewählt sind!" M_PKGS "MATHEMATIK"
}
install_if() {
install_pkgs "Pakete für Informatiker/Programmierung installieren?" "Programme, die der OSAK/die ALUG für sinnvoll hält, sind bereits zur Installation vorselektiert.\nWenn du keine Pakete aus der Liste installieren willst, einfach Abbrechen.\nBitte beachten: Das LIP-Script deinstalliert keine Pakete, insbesondere also keine Pakete die in einem früheren Lauf aktiv waren,\nund diesmal nicht ausgewählt sind!" IF_PKGS "INFORMATIK"
}
install_anaconda() {
echo "foo"
}
create_doc()
{
DOCUDIR="$MY_DIR/../Doku"
if [ ! -f "$DOCUDIR/HEADER.tex" ]; then #HEADER muss ex. sonst kommt auf keinen Fall was sinnvolles bei rum
echo "Leider ist keine Dokumentation auf dem LIP-Stick vorhanden..."
return 0 #linuxparty.sh soll auch ohne Doku Verzeichnis laufen
fi
#DOCFILE=$(mktemp --suffix='.tex')
WORKING_DIR=$(mktemp -d)
cp -a "$DOCUDIR/." "$WORKING_DIR"
for PACKAGE in $INSTALLED_PKGS; do
#zenity and kdialog return quoted package names; nice for apt call but bad here
CLEAN_PACKAGE_NAME=$(echo "$PACKAGE" | tr -d "\" ")
echo "Dokumentation fuer $PACKAGE von ${WORKING_DIR}/${CLEAN_PACKAGE_NAME}.tex"
if [ -f "${WORKING_DIR}/${CLEAN_PACKAGE_NAME}.tex" ]; then
echo "\\input{${CLEAN_PACKAGE_NAME}.tex}" >> "$WORKING_DIR/DOCUMENTATION.gen.tex"
#cat "${DOCUDIR}/${CLEAN_PACKAGE_NAME}.tex" >> "$DOCFILE"
fi
done
pushd "$WORKING_DIR"
pdflatex -output-directory "$WORKING_DIR" "DOCUMENTATION.gen.tex"
pdflatex -output-directory "$WORKING_DIR" "DOCUMENTATION.gen.tex" # ja, ist Absicht
if [ $? -ne 0 ]; then
err "Fehler beim kompilieren der Dokumentation."
return 1
fi
popd
USER_HOME=$(getent passwd "${SUDO_USER:-$USER}" | cut -d ':' -f6)
cp "${WORKING_DIR}/DOCUMENTATION.gen.pdf" "${USER_HOME}/Deine-LIP-Dokumentation.pdf"
RC=$?
pressenter "Dokummentation der von dir installierten Paktete wurde in deinem Benutzerverzeichnis ($HOME) als 'Deine-LIP-Dokumentation.pdf' abegelegt."
return $RC
}
echo
echo "Auf dem Install-USB-Stick liegen viele der zu installierenden Pakete"
bright "Es ist dringend empfohlen, jetzt einen Instaĺl-USB-Stick einzustecken"
echo
echo "Sonst muß aus dem Internet heraus installiert werden. Das ist langsam, geht aber auch."
HAVELIPSTICK=0
#Offline-Repo einbinden
#if bash "$MY_DIR/infuse_offline_repo.sh"
#then
# HAVELIPSTICK=1
# ok "USB-Repository gefunden und eingebunden"
#else
# if [[ $? -eq 2 ]]
# then
# # Exit code 2 is handed up from mount-stick-repo.sh -> "Installation abbrechen"
# err "Installation abgebrochen"
# exit 2
# else
# #warn "LIP-Install-USB-Stick nicht nutzbar."
# #warn "Stelle eine Internetverbindung her und mache weiter (langsames Installieren)"
# #warn "Wenn Du nicht weiter weißt, frage einen Helfer."
# #pressenter
# pressenter "LIP-Install-USB-Stick nicht nutzbar.\nStelle eine Internetverbindung her und mache weiter (langsames Installieren)\nWenn Du nicht weiter weißt, frage einen Helfer."
# fi
#fi
HAVELIPSTICK=1
# Paketquellen bereitlegen.
echo
echo "Bereitstellung der Paketquellen"
# Entweder apt-get update
# Oder apt-clone restore
#if [[ $HAVELIPSTICK -eq 1 ]]
#then
# infuse script has already done our job here
#echo "Nutze Pakete vom USB-Repository"
# echo "Bereite apt-clone vor"
# dpkg -GERi "/var/cache/apt/archives/dpkg-early-install" >/dev/null 2>&1
# APT_CLONE_BACKUP="$(mktemp --tmpdir="$HOME" --suffix='.apt-clone.tar.gz')"
# echo "Erstelle Backup der apt Paketquellen in ${APT_CLONE_BACKUP}"
# apt-clone clone "${APT_CLONE_BACKUP}" >/dev/null 2>&1
# echo "Wende apt-clone an"
# apt-clone restore "/var/cache/apt/archives/apt-clones/ftp-halifax.apt-clone.tar.gz" >/dev/null 2>&1 || true
#else
#echo "Update der Paketquellen aus dem Internet mit 'apt-get update'"
# Wie sichert man apt-get update ab ?
# apt-get -o Dir::Etc::SourceList=/etc/apt/sources.list.d/lipoffline.list,Dir::Etc::SourceParts="" update
#fi
# System absichern
if askyesno "Netzwerk: Soll die Ubuntu Firewall (ufw/gufw) aktiviert werden ?"
then
echo $DEBUG ufw enable
fi
echo "Installation:"
echo "Programme, die für alle Fachrichtungen interressant sind (7zip, gimp, git, ... )"
if [ -z "$NOGUI" ] || (askyesno "Sollen diese Programme installiert werden ?"); then
install_common
fi
#Fachrichtung wählen
echo
echo "Auswahl fachspezifischer Software:"
if askyesno "Software für Vorlesung 'Programmierung' (Pflicht für Informatiker) installieren ?"
then
#apt-install haskell-platform java7-jdk swi-prolog
#ok "Haskell, Java, Prolog und Eclipse wurden installiert"
install_if
fi
if askyesno "Software für Mathematik installieren ?"
then
#apt-install haskell-platform java7-jdk swi-prolog
#ok "Haskell, Java, Prolog und Eclipse wurden installiert"
install_m
fi
if askyesno "Software für Physiker (Python-SciPy,-NumPy,diverse Plot-Programme) installieren ?"
then
#apt-install python-numpy python-simpy python-scipy python-matplotlib ipython python-dev gnuplot wxmaxima
#ok "Python-SciPy, -NumPy, -Matplotlib, ipython, gnuplot, und WxMaxima wurden installiert"
install_ph
#if askyesno "Anaconda installieren (für die DV Vorlesung in der Physik) ?"
#then
# install_anaconda
#fi
fi
echo
pressenter "Installation abgeschlossen!\n\nFalls Du doch noch mehr Software installieren möchtest, starte $0 erneut."
echo
#Folgende Pakete koennen auch fuer Helfer waehrend der Installation interessant sein:
PKGS_EXTRA="fityk openssh-server linux-firmware-nonfree zsh zsh-doc lftp graphviz gddrescue smartmontools"
echo "Auf dem Installer-USB-Stick sind außerdem noch die folgenden Pakete enthalten:"
echo ${PKGS_EXTRA}
echo "Installiere diese Pakete bei Bedarf bitte selbst mit 'sudo apt-get install <Paketname>' "
echo "Deaktiviere LIP Software Repository"
#bash $MY_DIR/liprepoctl.sh off
INSTALLED_PKGS="$INSTALLED_PKGS FOOTER"
create_doc
echo "Installierte Pakete: $INSTALLED_PKGS"
echo
#end;
\subsection{java7-jdk}
Java7-JDK installiert einen Java7-Compiler und das Java7-Runtime-Environment welches benötigt wird um Java-Code zu kompilieren und auszuführen. Des weiteren werden auch Standard-Bibliotheken installiert. Java7 wird in der Vorlesung \enquote{Programmierung} eingeführt und benötigt.
~
Java7-JDK installiert einen Java7-Compiler und das Java7-Runtime-Environment, welches benötigt wird um Java-Code zu kompilieren und auszuführen. Des Weiteren werden auch die Standard-Bibliotheken installiert. Java7 wird in der Vorlesung \enquote{Programmierung} eingeführt und benötigt.
Beispielaufruf im Terminal mit: \texttt{javac java1.java} zum kompilieren\\
\texttt{java java1} um die nun kompilierte Datei auszuführen.
......
\subsection{dia}
~
Dia ist ein Programm mit grafischer Oberfläche zur Erstellung verschiedener Diagramme; zum Beispiel UML-Diagramme (für Klassen und Usecases), Programmablaufdiagramme und vieles mehr.
Es ist hilfreich in der Vorlesung Softwaretechnik.
Dia bietet verschiedene Exportmöglichkeiten zum Beispiel nach \LaTeX sowie in die gängigen Bildertypen, sodass es universell verwendtbar ist.
Dia bietet verschiedene Exportmöglichkeiten zum Beispiel nach \LaTeX{} sowie in die gängigen Bilderformate, sodass es universell verwendbar ist.
Das Programm arbeitet nach dem Prinzip "`What you see is what you get"'.
Mehr Infos unter \url{https://wiki.gnome.org/Apps/Dia}
~
Aufzurufen in der Kommondozeile mit: \texttt{dia}
Aufzurufen in der Kommondozeile oder im \startmenu{} mit: \texttt{dia}
\subsection{fityk}
~
Fityk ist ein Programm mit grafischer Oberfläche um Messdaten als Graphen zu fitten. Es zeichnet sich dadurch aus, dass es sehr robuste Fits produziert. Grundsätzlich beherrscht es einen Skripting-Modus.
Fityk ist wahrscheinlich nur dann das Tool der Wahl, wenn andere Fit-Systeme an der Komplexität des Problemes scheitern, da für jeden Fit einiges an "`Handarbeit"' erforderlich ist.
Fityk sollte im Anwendungsmenü unter "`Bildung"' zu finden sein.
~
Aufzurufen im Terminal mit: \texttt{fityk}
\subsection{gddrescue}
\textbf{G}NU \textbf{ddrescue} ist ein Datenrettungs-Tool, welches gelöschte und beschädigte Dateien, wenn möglich, wieder herstellen kann. Auch können mit ddrescue ganze Partitionen gespiegelt werden.
\textbf{G}NU \textbf{ddrescue} ist ein Datenrettungs-Tool, welches beschädigte Dateien, Partitionen oder sogar ganze Festplatten 1:1 kopiert. Im Unterschied zu anderen Kopier-Programmen bietet es die Option, bei Lesefehlern den Kopierversuch zu wiederholen.
ddrescue ist ein Komandozeilentool, welches im Terminal mit \texttt{ddrescue 'Optionen' 'Quelle' 'Ziel' 'Logdatei'} aufgerufen werden kann.
Mit der Logdatei kann nach einem Abbruch des Vorgangs mittels Ctrl+C der Vorgang an der gleichen Stelle fortgesetzt werden, sie muss aber nicht angegeben werden.
Schnelle Datenrettung:
\begin{lstlisting}
ddrescue -r0 -n /path/to/source /path/to/target /path/to/logfile-rw
ddrescue -r1 /path/to/source /path/to/target /path/to/logfile-rw
\end{lstlisting}
Um beispielsweise zu Versuchen, eine nicht mehr lesbare Datei zu retten kann mittels \texttt{ddrescue -v kaputte\_datei.txt zieldatei.txt} versucht werden, die Datei \texttt{kaputte\_datei.txt}, soweit möglich, in die Datei \texttt{zieldatei.txt} zu kopieren. \texttt{-v} sorgt dabei dafür, dass mehr infos auf dem Terminal ausgegeben werden, die nützlich sein können.
Mit der Logdatei kann nach einem Abbruch des Vorgangs mittels Ctrl+C der Vorgang an der gleichen Stelle fortgesetzt werden, sie muss aber nicht angegeben werden.
Weitere Optionen und Anwendungsbeispiele kannst du unter \url{http://wiki.ubuntuusers.de/gddrescue}
\ No newline at end of file
Weitere Optionen und Anwendungsbeispiele kannst du unter \\\url{http://wiki.ubuntuusers.de/gddrescue}
\subsection{git}
Git ist ein dezentrales (nicht zwingend Server-basiertes) Versionsverwaltungssystem. Es eignet sich zur Verwalung von Sofwtareprojekten, besonders wenn in gruppen gearbeitet wird. Es wird hauptsächlich pber die Kommandozeile bedient. Obwohl ein Verwaltungsserver nicht zwingend vorhanden sien muss wird dennoch häufig einer verwendet.
Git ist ein dezentrales (nicht zwingend Server-basiertes) Versionsverwaltungssystem. Es eignet sich zur Verwaltung von Softwareprojekten, besonders wenn in Gruppen gearbeitet wird. Es wird hauptsächlich über die Kommandozeile bedient. Obwohl ein Verwaltungsserver nicht zwingend vorhanden sein muss wird dennoch häufig einer verwendet.
Meistens bekommst du zum Arbeiten in einem Projekt eine URL. Mittels \texttt{git clone URL} holst du dir eine lokale Kopie des Arbeitsverzeichnisses, in dem du Änderungen tätigen kannst.\\
Nachdem du den Quelltext / die Dateien angepasst hast kannst du mittels \texttt{git add DATEI} die Änderungen dem Git-System mitteilen.\\
Nachdem SVN über Änderungen informiert wurde, kannst du diese mit \texttt{git commit} zu einer Beschreibung zusammenfassen.\\
Nachdem Git über Änderungen informiert wurde, kannst du diese mit \texttt{git commit} zu einer Beschreibung zusammenfassen.\\
Mittels \texttt{git push} kannst du diese Zusammenfassungen der Änderungen an den Server übertragen.\\
Bevor du anfängst an einem Projekt weiterzuarbeiten solltest du alle änderungen auf dem Server abfragen. Dies kanst du mittels \texttt{git pull} erledigen\\
Wenn du wissen willst, welche dateien sich bei dir geändert haben, kannst du \texttt{git status} verwenden um informiert zu werden.\\
Bevor du anfängst an einem Projekt weiterzuarbeiten solltest du alle Änderungen von anderen Mitarbeitern auf dem Server abfragen. Dies kanst du mittels \texttt{git pull} erledigen.\\
Wenn du wissen willst, welche Dateien sich bei dir geändert haben, kannst du \texttt{git status} verwenden um informiert zu werden.\\
Für Hilfe: \texttt{git help}. Im Internet findest du weitaus umfangreichere tutorials, z.b. auf http://git-scm.com/docs/gittutorial (english)
Für Hilfe: \texttt{git help}. Im Internet findest du weitaus umfangreichere Tutorials, z.B. auf \\\url{http://git-scm.com/docs/gittutorial} (englisch).
\subsection{graphviz}
Graphviz ist ein Programm zur Erstellung von Graphen. Dazu nutzt es seine eigene Beschreibungssprache \enquote{DOT} welche im Klartext gespeichert wird. Das Speichern im Klartextformat ist hilfreich für Versionsverwaltungssystem wie git oder svn und ermöglicht das der Graph auch ohne spezielle Software zu Lesen und zu Bearbeiten.\\
Eine ausführliche Einführung findest du unter http://www.graphviz.org/pdf/dotguide.pdf\\
Graphviz ist ein Programm zur Erstellung von Graphen. Dazu nutzt es seine eigene Beschreibungssprache \enquote{DOT} welche im Klartext gespeichert wird. Das Speichern im Klartextformat ist hilfreich für Versionsverwaltungssystem wie git oder svn und ermöglicht das Lesen und Bearbeiten des Graphen auch ohne spezielle Software.\\
Eine ausführliche Einführung findest du unter \url{http://www.graphviz.org/pdf/dotguide.pdf}.
\begin{samepage}
Beispiel:\\
Datei beispiel.dot:
\begin{verbatim}
......@@ -15,4 +17,4 @@ digraph G {
\end{verbatim}
wird mit dem Kommandozeilenaufruf \texttt{dot -T png beispiel.dot -o beispiel.png} zu\\
\includegraphics[scale=0.5]{graph.png}
\end{samepage}
......@@ -9,3 +9,5 @@ Aufruf über Kommandozeile mit \texttt{gufw} und im \startmenu\ als \enquote{Fi
\begin{center}
\includegraphics[width=0.5\linewidth]{screenshot/gufw}
\end{center}
Alternative: Konfiguration der Firewall über die Kommandozeile mit \texttt{sudo ufw [optionen]}.
\subsection{htop}
htop ist ein Kommandozeilenprogramm, das die aktuell laufenden Prozesse, die Prozessor- und Arbeitsspeicherauslastung sowie weitere Informationen anzeigt. Es erlaubt das Filtern nach Namen, Anzeigen als Baumstruktur, Sortieren nach verschiedenen Kriterien, Änderung der Priorität und Abschießen von Prozessen mit verschiedenen Signalen.
\texttt{htop} ist ein Kommandozeilenprogramm, das die aktuell laufenden Prozesse, die Prozessor- und Arbeitsspeicherauslastung sowie weitere Informationen anzeigt. Es erlaubt das Filtern nach Namen, Anzeigen als Baumstruktur, Sortieren nach verschiedenen Kriterien, Änderung der Priorität und Abschießen von Prozessen mit verschiedenen Signalen.
Alternativen hierzu sind \texttt{top} und \texttt{atop}.
\subsection{Inkscape}
Inkscape ist ein vektorbasiertes Bildbearbeitungs- und Zeichenprogramm mit grafischer Oberfläche. Der Standardfiletyp ist SVG (Scaleable Vector Graphic).
Inkscape ist damit kompatibel zu anderen Vektorbasierten Bildprogrammen wie zum Beispiel (Adobe Illustrator).
Inkscape ist ein vektorbasiertes Bildbearbeitungs- und Zeichenprogramm mit grafischer Oberfläche. Der Standardfiletyp ist SVG (Scaleable Vector Graphic), was von den meisten Webbrowsern nativ dargestellt werden kann. Als Vektorformat ist SVG ebenfalls zur Druckaufbreitung sehr gut geeignet, wenn Poster, Skripte, Bücher etc. gedruckt werden müssen.
Auch Diagramme lassen sich gut mit Inkscape erstellen.
Inkscape ist kompatibel zu vielen anderen vektorbasierten Zeichenprogrammen wie zum Beispiel Adobe Illustrator oder AutoCAD.
Viele Zeichnungen in der Wikipedia wurden damit erstellt. Ein sinnvolle Tutorial findet sich unter \url{http://inkscape.org/doc/basic/tutorial-basic.de.html}
Inkscape kann im Terminal oder im \startmenu als \texttt{inkscape} aufgerufenwerden.
Inkscape kann im Terminal oder im \startmenu{} als \texttt{inkscape} aufgerufenwerden.
\begin{center}
\includegraphics[width=0.8\linewidth]{screenshot/inkscape}
\end{center}
......@@ -3,9 +3,10 @@
Kile ist ein Standard \LaTeX-Editor mit grafischer Oberfläche, welcher die wichtigsten Librarys und Funktionen mitbringt. \\
\includegraphics[scale=0.4]{screenshot/kile.png}\\
\LaTeX\ ist eine mächtige Textbeschreibungssprache die sich zum Erstellen von Dokumenten eignet. Dokumente werden in Klartext erstellt und anschließend nach PDF compiliert. Das Speichern im Klartextfo rmat ist hilfreich für Versionsverwaltungssystem wie git oder svn und ermöglicht das Dokument auch ohne spezielle Software zu Lesen und zu Bearbeiten.\\
Du kannst dir auch das \LaTeX-Kompendium (https://de.wikibooks.org/wiki/LaTeX-Kompendium) anschauen.
\includegraphics[width=0.95\linewidth]{screenshot/kile.png}\\
\LaTeX\ ist eine mächtige Textbeschreibungssprache die sich zum Erstellen von Dokumenten eignet. Dokumente werden in Klartext erstellt und anschließend nach PDF compiliert. Das Speichern im Klartextformat ist hilfreich für Versionsverwaltungssysteme wie \textsl{git} oder \textsl{svn} und ermöglicht das Dokument auch ohne spezielle Software zu lesen und zu bearbeiten.\\
Du kannst dir auch das \LaTeX-Kompendium \\\url{https://de.wikibooks.org/wiki/LaTeX-Kompendium} anschauen. Für weiterführende Informationen sei auch das englische \LaTeX Wikibook empfohlen: \\\url{http://en.wikibooks.org/wiki/LaTeX} .
Aufzurufen über die grafische Oberfläche oder im Terminal mit:
\texttt{kile}
......
......@@ -4,6 +4,6 @@ Zusätzlich zu FTP kann lftp auch noch FTPS, HTTP, HTTPS, HFTP, FISH, SFTP und B
LFTP besitzt keine graphische Benutzeroberfläche und wird im Terminal mit \texttt{lftp} gestartet.
Es unterstützt im Gegensatz zu \texttt{ftp} Tab-Completion. D.h. man kann durch drücken der Tabulator-Taste Dateinamen vervollständigen.
Es unterstützt im Gegensatz zu \texttt{ftp} Tab-Completion. D.h. man kann durch Drücken der Tabulator-Taste Dateinamen vervollständigen.
Zum Beenden drückt man entweder \texttt{STRG+D} oder gibt \texttt{exit} ein. Mit \texttt{help} kann die integrierte Hilfe angezeigt werden.
......@@ -3,9 +3,7 @@
Sie gehört zu den Standard-Bibliotheken bei allen Numerikern.
~
Nutzung:
\paragraph{Nutzung:}
Grundsätzlich ist die Bibliothek als Header im Programmquelltext einzubinden. In \texttt{C++} würde dies durch die Zeile
\begin{verbatim}
......@@ -20,14 +18,8 @@ g++ main.cpp -llapack
LAPACK wird normaler Weise zusammen mit anderen Bibliothen verwendet; insbesondere mit "`BLAS"' (Basic Linear Algebra Subprograms), dessen Funktionen in den Lapack-Funktionen verwendet werden. Hier müssen gegebenenfalls weitere Header eingebunden werden und weitere Compiler-Flags gesetzt werden. Genaueres erfährt man hierzu in den Dokumentationen.
~
Für Hilfe:
LAPACK ist nicht hinreichend dokumentiert auf \url{http://www.netlib.org/lapack/}, zum tieferen Verständnis der Funktion sollte der Fortran-Sourcecode betrachtet werden. Alternativ findet man auch schon etliche Beispiele in der Manpage, die man über
\texttt{man lapack}
\paragraph{Für Hilfe:}
erreicht.
LAPACK ist auf seiner Homepage \url{http://www.netlib.org/lapack/} nicht hinreichend dokumentiert. Zum tieferen Verständnis der Funktion sollte der Fortran-Sourcecode betrachtet werden. Alternativ findet man auch schon etliche Beispiele in der Manpage, die man über \texttt{man lapack} erreicht.
\subsection{linux-firmware-nonfree}
~
Linux-firmware-nonfree installiert proprietäre Treiber (keine freien Treiber). Wenn die Hardware im Laptop/Desktop-PC nicht von den freien Linux-Treibern unterstützt wird ist es sinnvoll diese zu installieren.
Das Paket \texttt{linux-firmware-nonfree} installiert proprietäre Treiber (nicht freie Treiber). Wenn die Hardware im Laptop/Desktop-PC nicht von den freien Linux-Treibern unterstützt wird ist es sinnvoll diese zu installieren.
\subsection{openssh-server} \label{ch_sshd}
In dem nachinstallierbaren Packet \texttt{openssh-server} ist ein Server für den auf Port 22 laufenden SSH-Dienst. Dann kannst du dich mit dem Kommandozeilenprogramm \texttt{ssh} oder unter windows mit Putty von anderen Rechnern aus auf die Kommandozeile deines Rechners verbinden.
In dem Paket \texttt{openssh-server} ist ein Server für den auf Port 22 laufenden SSH-Dienst. Dann kannst du dich mit dem Kommandozeilenprogramm \texttt{ssh} oder unter Windows mit Putty von anderen Rechnern aus auf die Kommandozeile deines Rechners verbinden.
Du kannst dich auf diese Weise bspw. von unterwegs zu deinem Rechner zu Hause verbinden.
\textbf{Achtung:} Wenn du den Server falsch konfigurierst, was leider sehr schnell passiert, kann es passieren, das Fremde Zugriff auf deinen Rechner bekommen!
Weitere Infos, insbesondere auch Konfigurationhinweise, finden sich auch unter \url{http://wiki.ubuntuusers.de/SSH#Der-SSH-Server}.
Weitere Infos, insbesondere auch Konfigurationhinweise, finden sich auch unter \\\url{http://wiki.ubuntuusers.de/SSH#Der-SSH-Server}.
\subsection{root}
root-system installiert Root, das zur Analyse von Daten in der Teilchenphysik entwickelt wurde, aber heute viele zusätzliche Möglichkeiten, wie das Erstellen von Graphen oder Kurvenfitting, bietet.
\subsection{ROOT}
root-system installiert ROOT, das zur Analyse von Daten in der Teilchenphysik entwickelt wurde, aber heute viele zusätzliche Möglichkeiten, wie das Erstellen von Graphen oder Kurvenfitting, bietet.
Root kann über das Terminal oder über eine graphische Oberfläche bedient werden.
......
\subsection{Subversion}
Subversion (SVN) ist ein zentrales (Serverbasiertes) Versionsverwaltungssystem für die Kommandozeile. Es eignet sich besonders für gemeinsames Programmieren von Software und wird hauptsächlich per Kommandozeile bedient.
Subversion (SVN) ist ein zentrales (serverbasiertes) Versionsverwaltungssystem für die Kommandozeile. Es eignet sich besonders für gemeinsames Programmieren von Software und wird hauptsächlich per Kommandozeile bedient.
Meistens bekommst du zum Arbeiten eine URL von einem bestehenden Projekt.
Mittels \texttt{svn checkout URL} holst du dir eine lokale Kopie des Arbeitsverzeichnisses, in der du Änderungen tätigen kannst.\\
Nachdem du den Quelltext / die Dateien angepasst hast kannst du mittels \texttt{svn add} die Änderungen dem SVN-System mitteilen.\\
Nachdem SVN über Änderungen informiert wurde, kannst du diese mit \texttt{svn commit} an den zentralen Server übertragen.\\
Bevor du anfängst an einem Projekt weiterzuarbeiten solltest du alle änderungen auf dem Server abfragen. Dies kanst du mittels \texttt{svn update} erledigen\\
Bevor du anfängst an einem Projekt weiterzuarbeiten solltest du alle Änderungen auf dem Server abfragen. Dies kanst du mittels \texttt{svn update} erledigen\\
Nachdem du Änderungen hinzugefügt hast ist es sinnvoll die änderungen nochmal zu checken. Dies kannst du mit \texttt{svn status} erledigen\\
Für weitere, umfangreichere Hilfe sollte man am besten die Hilfe mittels \texttt{svn help} oder das Handbuch mittels \texttt{man svn} konsultieren.
......
......@@ -4,6 +4,8 @@
~
Thunderbird ist dein Standardmailprogramm, damit kannst du beispielsweise deine RWTH-Mails abrufen.
Eine Anleitung, wie du Thunderbird einrichtest findest du unter \url{https://doc.itc.rwth-aachen.de/display/EML/Thunderbird+14+bis+Thunderbird+31}
Eine Anleitung, wie du Thunderbird einrichtest findest du unter
\scalebox{0.9}{\url{https://doc.itc.rwth-aachen.de/display/EML/Thunderbird+14+bis+Thunderbird+31}}
\subsection{unrar-free}
Unrar-free ist ein Kommandozeilen-Tool zum entpacken von Rar-Archiven. Es wird unter anderem vom KDE Tool Ark, welches in den Dateimanager integriert ist, verwendet.
Unrar-free ist ein Kommandozeilen-Tool zum Entpacken von Rar-Archiven. Es wird unter anderem vom KDE Tool Ark, welches in den Dateimanager integriert ist, verwendet.
Aufzurufen mit: \texttt{unrar-free 'Argumente'}.
Eine übersicht der möglichen Argumente gibt es im Handbuch des Paketes, welches auf der Kommandozeile über \texttt{man unrar-free} angezeigt werden kann.
Eine Übersicht der möglichen Argumente gibt es im Handbuch des Paketes, welches auf der Kommandozeile über \texttt{man unrar-free} angezeigt werden kann.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment