\input{configpres} \title{\lq Wichtige Kommandos / Werkzeuge \rq} \maketitle \subsection{wichtige Kommandos / Werkzeuge} \subsubsection{Basiskommandos} \begin{frame} \frametitle{Grundlegende Kommandos} \begin{center} \begin{tabular}{|l|p{8cm}|} \hline \textbf{Kommando} & \textbf{Beschreibung} \\ \hline cd DIR & In das Verzeichnis DIR wechseln \\ \hline ls DIR & Inhalt von Verzeichnis DIR Anzeigen \\ \hline pwd & Aktuelles Verzeichnis ausgeben \\ \hline cat FILE & Datei ausgeben \\ \hline tac & Datei rückwärts ausgeben ;-) \\ \hline \end{tabular} \end{center} \end{frame} \begin{frame} \frametitle{Grundlegende Kommandos} \begin{center} \begin{tabular}{|l|p{8cm}|} \hline \textbf{Kommando} & \textbf{Beschreibung} \\ \hline mkdir DIR & Verzeichnis DIR anlegen \\ \hline rmdir DIR & Verzeichnis DIR löschen \\ \hline rm & Löschen \\ \hline touch FILE & Leere Datei mit dem Namen FILE anlegen \\ \hline date & Datum ausgeben \\ \hline \end{tabular} \end{center} \end{frame} \begin{frame} \frametitle{Grundlegende Kommandos} \begin{center} \begin{tabular}{|l|p{8cm}|} \hline \textbf{Kommando} & \textbf{Beschreibung} \\ \hline mount & Filesystem in Verzeichnisbaum einhängen \\ \hline umount & Filesystem von Verzeichnisbaum trennen \\ \hline cp & Dateien / Verzeichnisse kopieren \\ \hline mv & Datei / Verzeichnis verschieben \\ \hline ln & Link anlegen \\ \hline \end{tabular} \end{center} \end{frame} \subsubsection{Prozesse überwachen} \begin{frame}[containsverbatim] \frametitle{Prozessliste anzeigen mit ps} \begin{lstlisting}[basicstyle=\ttfamily\fontsize{7}{7}\selectfont] $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 3056 1356 ? Ss 09:31 0:01 /sbin/init root 2 0.0 0.0 0 0 ? S< 09:31 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? S< 09:31 0:01 [ksoftirqd/0] root 4 0.0 0.0 0 0 ? S< 09:31 0:00 [watchdog/0] \end{lstlisting} \end{frame} \begin{frame} \frametitle{Gängige ps Optionen} \begin{center} \begin{tabular}{|l|p{8cm}|} \hline \textbf{Option} & \textbf{Bedeutung} \\ \hline a & Alle Prozesse (nicht nur die ''eigenen Prozesse'') anzeigen \\ \hline u & ''user-oriented'' format \\ \hline x & Auch Prozesse ohne TTY anzeigen \\ \hline f & ASCII art Prozess Hierarchie \\ \hline \end{tabular} \end{center} \end{frame} \begin{frame}[containsverbatim] \frametitle{top} \begin{lstlisting}[basicstyle=\ttfamily\fontsize{7}{7}\selectfont] $ top top - 12:35:14 up 3:03, 5 users, load average: 0.25, 0.32, 0.27 Tasks: 141 total, 3 running, 138 sleeping, 0 stopped, 0 zombie Cpu(s): 13.0%us, 4.5%sy, 0.6%ni, 71.6%id, 10.1%wa, 0.1%hi, 0.1%si Mem: 515144k total, 494964k used, 20180k free, 50928k buffers Swap: 1020088k total, 150524k used, 869564k free, 124764k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 5760 root 20 0 118m 42m 8824 S 15.5 8.4 3:51.74 Xorg 6560 jan 20 0 2412 1080 792 R 3.9 0.2 0:00.02 top 7345 jan 20 0 15112 1620 1396 S 1.9 0.3 0:49.15 esd [...] \end{lstlisting} \end{frame} \subsubsection{Arbeiten mit Text} \begin{frame}[containsverbatim] \frametitle{Suche nach Text} \begin{lstlisting}[language=bash] # In der Datei /etc/hosts nach dem # Wort localhost suchen grep localhost /etc/hosts # Nach localhost am Zeilenanfang suchen grep '^localhost' /etc/hosts # Nach localhost am Zeilenende suchen grep 'localhost$' /etc/hosts \end{lstlisting} \end{frame} \begin{frame}[containsverbatim] \frametitle{Ausgaben umleiten} \begin{lstlisting}[language=bash] # Pipes ps aux | grep Xorg # stderr in ein file umleiten ./myprog 2> error.log # stderr nach stdout umleiten ./myprog 2>&1 # Alle Ausgaben verwerfen ./mygrog > /dev/null 2>&1 \end{lstlisting} \end{frame} \begin{frame}[containsverbatim] \frametitle{Die Pager: more und less} \begin{lstlisting}[language=bash] # Display output per page ps aux | less # be careful: more is less effective ;-) ps aux | more \end{lstlisting} \end{frame} \begin{frame}[containsverbatim] \frametitle{Text bearbeiten mit sed} \begin{lstlisting}[language=bash] # Mehrfache Leerzeichen durch eines ersetzen cat file.txt | sed 's/ */ /g' # Zeilen loeschen, die mit X enden ps aux | sed '/X$/d' # Direkt auf Datei arbeiten sed --in-place 's/ */ /g' file.txt \end{lstlisting} \end{frame} \section{Mit Archiven arbeiten} \begin{frame}[containsverbatim] \frametitle{Archive} \begin{lstlisting}[language=bash] # Extract a bz2 compressed archive tar xjvf linux-2.6.32.tar.bz2 # Extract a gzip compressed archive tar xzvf linux-2.6.32.tar.gz # Create a bz2 compressed archive tar cjf linux-2.6.32.tar.bz2 linux-2.6.32/ # Display the contents of a gzip archive zcat linux-2.6.32.tar.gz | tar -t # or tar -tzf linux-2.6.32.tar.gz \end{lstlisting} \end{frame} \subsubsection{diff und patch} \begin{frame}[containsverbatim] \frametitle{diff} \begin{lstlisting}[language=bash] # Unified diff zwischen datei alt.txt und neu.txt diff -u alt.txt neu.txt # Rekursive diffs erzeugen diff -uprN directory_old directory_new \end{lstlisting} \end{frame} \begin{frame}[containsverbatim] \frametitle{Diffs / Patche anwenden} \begin{lstlisting}[language=bash] # mydiff.diff anwenden # + 1. Directory Level ignorieren patch -p1 < mydiff.diff # bz2 gepackten diff anwenden bzcat patch-2.6.31.13.bz2 | patch -p1 \end{lstlisting} \end{frame} \input{tailpres}