-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShellReferenz.tex
More file actions
executable file
·151 lines (130 loc) · 4.42 KB
/
ShellReferenz.tex
File metadata and controls
executable file
·151 lines (130 loc) · 4.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
\section {Arbeiten mit Dateien}
Entsprechend der UNIX--Philosophie gilt auch in GNU/Linux: ``Alles ist eine Datei.'' (Naja, fast alles.) D.h. alle Ein- und Ausgabegeräte, Laufwerke und Schnittstellen werden durch Dateien im Dateisystem repräsentiert. Nicht zuletzt aus diesem Grund ist es sehr wichtig den Umgang mit Dateien auch im Terminal zu beherrschen.
\subsection {Ortsbezeichnungen im Dateisystem}
Das GNU/Linux--Dateisystem ist (wie auch in Windows) als Baum organisiert. Man beachte, dass im Gegensatz zu Windows hier '/' anstelle von '\textbackslash' als Trennzeichen für Pfade verwendet wird. \footnote{Die Verwendung von '/' wird aber von den meisten Windows--Programmen ebenfalls geduldet.} Die ``Wurzel'' des Baumes heißt sinngemäß ``root'' und wird konsequenterweise mit einem einfachen '/' abgekürzt. Man unterscheidet:
\begin{itemize}
\item absolute Pfade, die mit '/' beginnen, diese beziehen sich immer auf die Wurzel, und
\item relative Pfade, die sich auf das aktuelle Verzeichnis beziehen.
\end{itemize}
In der folgenden Tabelle sind einige besondere Pfade zusammengefasst:\par
\begin{tabularx}{1\textwidth}{|l|l|X|}
\hline
\textbf{Ziel} & \textbf{Zeichen} & \textbf{Beispiel} \\
\hline
Hauptverzeichnis (Root) & \lstinline$/$ & \lstinline$/home/username/Dokumente$ \\
Persönlicher Ordner (\lstinline|/home/username|) & \textapprox & \textapprox\lstinline$/Dokumente$ \\
Dieser Ordner & \lstinline$.$ & \lstinline$./Dokumente$, \lstinline$./run.sh$ \\
Übergeordnetes Verzeichnis & \lstinline$..$ & \lstinline$../Dokumente$ \\
\hline
\end{tabularx}
\par
Einige wichtige Systempfade:\par
\begin{tabularx}{1\textwidth}{|l|X|}
\hline
\textbf{Pfad} & \textbf{Beschreibung} \\
\hline
\lstinline|/bin, /sbin| & grundlegende Systemprogramme \\
\lstinline|/boot| & Bootloader (GRUB) \\
\lstinline|/dev| & Gerätedateien \\
\lstinline|/etc| & hauptsächlich Konfigurationsdateien \\
\lstinline|/home| & Benutzerverzeichnisse \\
\lstinline|/lib| & Programmbibliotheken \\
\lstinline|/media| & externe Festplatten, USB-Sticks, ... \\
\lstinline|/opt| & zusätzliche Programme (manuell installiert) \\
\lstinline|/tmp| & temporäre Dateien \\
\lstinline|/usr| & Programme, Bibliotheken, Dokumentation, ... \\
\lstinline|/var| & Logdateien, ... \\
\hline
\end{tabularx}
\subsection {Befehle zur Navigation im Dateisystem}
\textbf{Verzeichnis wechseln}
\begin{lstlisting}[style=terminal]
bob@computer:~$ cd Dokumente/
bob@computer:~/Dokumente$ cd ..
bob@computer:~$
\end{lstlisting}
\textbf{Ornderinhalte auflisten}
\begin{lstlisting}[style=terminal]
bob@computer:~$ ls
Bilder Dokumente Downloads
\end{lstlisting}
\begin{lstlisting}[style=terminal]
bob@computer:~$ ls -al
drwxr-xr-x 177 bob bob 118784 Dez 1 11:19 .
drwxr-xr-x 4 root root 4096 Dez 9 2013 ..
drwxr-xr-x 4 bob bob 4096 Nov 20 18:03 Bilder
drwxr-xr-x 11 bob bob 4096 Nov 16 13:31 Dokumente
drwxr-xr-x 3 bob bob 4096 Nov 04 19:22 Downloads
\end{lstlisting}
\textbf{Ordner und Dateien als Baum darstellen}
\begin{lstlisting}
$ tree
\end{lstlisting}
\subsection {Interaktion mit Dateien und Ordnern}
\begin{multicols}{2}
Zeigt den Inhalt einer Datei an
\begin{lstlisting}
$ cat file
\end{lstlisting}
\columnbreak
Zeigt die Unterschiede zwischen zwei Dateien an
\begin{lstlisting}
$ diff file1 file2
\end{lstlisting}
\end{multicols}
\begin{multicols}{2}
Text ausgeben / Datei erzeugen
\begin{lstlisting}
$ echo "TextTextText" > file
\end{lstlisting}
\columnbreak
Einen Ordner erstellen
\begin{lstlisting}
$ mkdir folder
\end{lstlisting}
\end{multicols}
\begin{multicols}{2}
Eine Datei löschen
\begin{lstlisting}
$ rm file
\end{lstlisting}
\columnbreak
Einen Ordner mit Inhalt löschen
\begin{lstlisting}
$ rm -r folder
\end{lstlisting}
\end{multicols}
\begin{multicols}{2}
Eine Datei kopieren
\begin{lstlisting}
$ cp file folder
\end{lstlisting}
\columnbreak
Einen Ordner samt Inhalt kopieren
\begin{lstlisting}
$ cp -r folder1 folder2
\end{lstlisting}
\end{multicols}
\begin{multicols}{2}
Eine Datei/Ordner verschieben/umbenennen
\begin{lstlisting}
$ mv file folder
\end{lstlisting}
\columnbreak
Lange Dateien/Inhalte ansehen
\begin{lstlisting}
$ cat file | less
\end{lstlisting}
\end{multicols}
\begin{multicols}{2}
Nach Dateien/Ordnern suchen
\begin{lstlisting}
$ find basefolder -iname "word"
\end{lstlisting}
\columnbreak
Innerhalb einer Datei/Text suchen
\begin{lstlisting}
$ cat file | grep "word"
\end{lstlisting}
\end{multicols}
% TODO mount, umount, cd /media/usr/..., evtl etc/fstab