]> git.plutz.net Git - vhs_kurs/blob - Tag_3.short
move document sections to recapture first day
[vhs_kurs] / Tag_3.short
1 [html
2 [head [title Linux für Anwendungsentwicklung]]
3 [body
4   [footer Paul Hänsch | Linux für Anwendungsentwicklung | damago GmbH]
5
6 [slide [h1 Linux für Anwendungsentwicklung - Teil 3]]
7
8 [slide [h2 Themen]
9   [ul
10     [li Prozessverwaltung]
11     [li Prozesse und Benutzer]
12     [li Netzwerke]
13   ]
14 ]
15
16 [slide [h1 Prozesse und Prozessmanagement]]
17
18 [slide [h2 Prozesse und Prozessmanagement]
19   [pre ~$ mousepad]
20 ]
21
22 [slide [h2 Prozesse und Prozessmanagement]
23   [ul
24     [li [pre Strg + Z]]
25     [li [pre ~$ fg]]
26   ]
27 ]
28
29 [slide [h2 Prozesse und Prozessmanagement]
30   [ul
31     [li [pre Strg + Z]]
32     [li [pre ~$ bg]]
33   ]
34 ]
35
36 [slide [h2 Prozesse und Prozessmanagement]
37   [ul
38     [li [pre ~$ pidof mousepad]]
39     [li [pre ~$ fg]]
40     [li [pre Strg + C]]
41   ]
42 ]
43
44 [slide [h2 Prozesse und Prozessmanagement]
45   [ul
46     [li [pre ~$ mousepad &]]
47     [li [pre ~$ pidof mousepad]]
48     [li [pre ~$ kill ...]]
49   ]
50 ]
51
52 [slide [h2 Prozesse und Prozessmanagement]
53   [pre ~$ htop]
54 ]
55
56 [slide [h2 Prozesse und Prozessmanagement]
57   [ul
58     [li [pre ~$ ps]]
59     [li [pre ~$ ps -e]]
60     [li [pre ~$ ps -eo pid,user,command]]
61   ]
62 ]
63
64 [slide [h2 Prozesse und Prozessmanagement]
65   [ul
66     [li [pre ~$ pstree]]
67     [li [pre ~$ pstree -u -p]]
68     [li Prozesse laufen in einer [strong Prozesshierarchie]]
69   ]
70 ]
71
72 [slide [h1 Prozesse und Benutzer]]
73
74 [slide [h2 Prozesse und Benutzer]
75   [ul .uncover
76     [li [pre ~$ touch /home/live/datei1][br]]
77     [li [pre ~$ touch /datei1][br]]
78     [li "live" hat keine Schreibrechte im Stammverzeichnis]
79   ]
80 ]
81
82 [slide [h2 Prozesse und Benutzer]
83   [pre ~$ ls -lh /usr/bin/sudo]
84 ]
85
86 [slide [h2 Prozesse und Benutzer]
87   [h3 Zugriffsrechte]
88   [pre /usr/bin/sudo]
89   [table
90     [tr [th Typ] [th Eigentümer [strong (root)]] [th Gruppe [strong (root)]] [Andere]]
91     [tr [td -] [td rw[strong s]] [td r-x] [td r-x]]
92   ]
93   [p]
94   [ul .uncover
95     [li sudo wird immer mit den Rechten von "root" ausgeführt]
96   ]
97 ]
98
99 [slide [h2 Prozesse und Benutzer]
100   [ul
101     [p [em sudo] gestattet die Ausführung eines Programms als [em root]. Je nach konfiguration fragt es dabei nach dem Benutzerpasswort, und gestattet oder verwährt bestimmte Aktionen.]
102     [li [pre
103     ~$ whoami
104     live] [br]]
105     [li [pre
106     ~$ sudo whoami
107     root]]
108   ]
109 ]
110
111 [slide [h2 Prozesse und Benutzer]
112   [ul .uncover
113     [li [pre ~$ sudo touch /home/live/datei2][br]]
114     [li [pre ~$ sudo touch /datei2]]
115   ]
116 ]
117
118 [slide [h2 Prozesse und Benutzer]
119   [ul .uncover
120     [li [pre ~$ echo Hallo > /home/live/datei2][br]]
121     [li [pre ~$ echo Hallo > /datei2]]
122   ]
123 ]
124
125 [slide [h2 Prozesse und Benutzer]
126   [ul .uncover
127     [li [pre ~$ sudo echo Hallo > /home/live/datei2][br]]
128     [li [pre ~$ sudo echo Hallo > /datei2][br]]
129     [li → ???]
130   ]
131 ]
132
133 [slide [h2 Prozesse und Benutzer]
134   [table [tr
135     [th] [th Programm] [th Parameter 1] [th Parameter 2] [th Umleitung] [th Ziel]
136   ][tr
137     [td [pre ~$]] [td [pre sudo]] [td [pre echo]] [td [pre Hallo]] [td [pre \>]] [td [pre datei2]]
138   ][tr
139     [td ] [td nimmt die Identität root an] [td wird von sudo als root ausgeführt] [td Geht als [em Parameter 1] an echo] [td wird von der Shell abgewickelt] [td wird von der Shell geschrieben]
140   ]]
141   [p]
142   [ul .uncover
143     [li → Die Shell läuft selbst als Benutzer]
144   ]
145 ]
146
147 [slide [h2 Zusammenfassung]
148   [ul .uncover
149     [h3 Prozesse]
150     [li Prozesse können auf dem Terminal im Hintergrund und im Vordergrund laufen]
151     [li Prozesse sind hierarchisch angeordnet]
152     [li jeder Prozess ist einem Systembenutzer zugeordnet]
153     [li [strong Kommandos:] [em jobs], [em fg], [em bg], pidof, kill, ps, pstree, htop]
154   ]
155 ]
156
157 [slide [h1 [strike Linux Verstehen][br]
158                    Netzwerk Verstehen]
159 ]
160
161 [slide [h2 Netzwerk - Beispiel]
162   [h3 Wir rufen eine Webseite auf]
163   [pre
164 ~$ telnet plutz.net 80
165 GET / HTTP/1.1
166 Host: plutz.net
167 ]
168 ]
169
170 [slide [h2 Netzwerk - Beispiel HTTP]
171   [ul
172     [li HTTP ist ein Netzwerkprotokoll]
173     [li Wir benutzen es für eine Anwendung - zum Aufrufen von Webseiten]
174     [li HTTP ist ein Applikationsprotokoll]
175   ]
176 ]
177
178 [slide [h2 Netzwerk - Routing]
179   [h3 Was ist plutz.net?]
180   [pre ~$ nslookup plutz.net]
181 ]
182
183 [slide [h2 Netzwerk - Routing]
184   [ul
185     [li Jeder [em Internethost] hat eine IP-Adresse]
186     [li IP ist das Internetprotokoll]
187     [li Das Internet ist eine Verbindung [em zwischen] Netzwerken - Inter Net]
188     [li IP ermöglicht Routing zwischen Netzwerken und Routenfindung im Internet]
189   ]
190 ]
191
192 [slide [h2 Netzwerk - Routing]
193   [h3 Unser Rechner hat auch eine IP-Adresse]
194   [pre ~$ ip address]
195 ]
196
197 [slide [h2 Netzwerk - Routing]
198   [h3 Unser Rechner wird über ein [em Gateway] ins Internet geroutet]
199   [pre ~$ ip route list]
200 ]
201
202 [slide [h2 Netzwerk - Routing]
203   [ul
204     [li Ein Gateway bzw. Router vermittelt zwischen IP-Netzen]
205     [li Unser Rechner benutzt das Gateway um andere Netze im Internet zu erreichen]
206   ]
207 ]
208
209 [slide [h2 Netzwerk - Link]
210   [h3 Im lokalen Netz gibt es auch Link-Addressen]
211   [pre ~$ arp -n]
212 ]
213
214 [slide [h2 Netzwerk - Link]
215   [ul
216     [li Link-Adressen werden auch Hardware- oder MAC-Adressen genannt]
217     [li Link-Adressen werden [strong nicht] zwischen Netzwerken geroutet - dazu dienen nur IP-Adressen]
218     [li Über Link-Adressen können nur Rechner im selben Netzwerk erreicht werden]
219     [li Link-Adressen sind idR. in der Netzwerkhardware fest eingestellt]
220     [li Ein Netzwerk sind Rechner, die über Kabel und [em Switches] verbunden sind]
221   ]
222 ]
223
224 [slide [h2 Netzwerk - Transport]
225   [ul
226     [h3 Eine Sache fehlt noch:]
227     [li Das [em Transport]-Protokoll]
228     [li [pre ~$ telnet plutz.net [strong 80]]]
229   ]
230 ]
231
232 [slide [h2 Netzwerk - Transport]
233   [ul .uncover
234     [li HTTP ist ein Applikationsprotokoll auf Port 80]
235     [li ... auf Port 80 von TCP, dem Transmission Control Protocol]
236     [li TCP ist ein Transportprotokoll]
237     [li TCP-"Adressen" werden Ports genannt, und erlauben es an einem einzelnen Internethost mehrere [em Dienste] bzw. Applikationen zu unterscheiden]
238   ]
239 ]
240
241 [slide [h2 Netzwerk - Transport]
242   [ul
243     [li IP bricht Netzwerkdaten in Pakete auf]
244     [li TCP ermöglicht es Paketverluste zu erkennen und eine Neuübertragung durchzuführen]
245     [li TCP ordnet vertauschte Pakete in der richtigen Reihenfolge an]
246     [li TCP ermöglicht damit [em Verbindungen] und [em Streams]]
247   ]
248 ]
249
250 [slide [h2 Netzwerk - Transport]
251   [ul
252     [li Ein anderes Transportprotokoll ist UDP]
253     [li UDP ist Sinnvoll für Übertragungen in einzelnen Paketen]
254     [li Ein Applikationsprotokoll auf UDP ist z.B. Namensauflösung (DNS, Port 53)]
255     [li [pre ~$ nslookup plutz.net]]
256   ]
257 ]
258
259 [slide [h2 Netzwerk - IP-Konfiguration]
260   [ul .uncover
261     [li [em Link-Adressen sind idR. in der Netzwerkhardware fest eingestellt]]
262     [li Eine IP-Adresse ist abhängig von dem Netz, in dem sich ein Rechner befindet]
263     [li ebenso die Adresse des Gateways]
264     [li und ggf. der [em Nameserver]]
265     [li und ggf. Gateways zu anderen lokalen Netzen]
266     [li usw...]
267   ]
268 ]
269
270 [slide [h2 Netzwerk - IP-Konfiguration]
271   [ul .uncover
272     [li zur automatischen IP-Konfiguration dient das Protokoll DHCP]
273     [li sobald ein Link besteht kann ein Rechner eine IP-Konfiguration via DHCP erfragen]
274     [li ein DHCP-Server sendet als Antwort die IP-Konfiguration]
275     [li Unter GNU/Linux gibt es versciedene Hilfsmittel zur IP-Konfiguration]
276     [li Der Dienst [em NetworkManager] enthält diverse Automatismen]
277     [li Beispiel für manuellen DHCP-Request: [pre ~$ sudo dhclient -v eth0]]
278   ]
279 ]
280
281 [slide [h2 Netzwerk - Problembehebung]
282   [ul .uncover
283     [h3 Ein Netzwerkdienst (eine Webseite) kann nicht erreicht werden]
284     [li geht mein Link?]
285     [li geht das Gateway?]
286     [li geht die Namensauflösung?]
287     [li geht der Internethost?]
288     [li geht der Dienst?]
289   ]
290 ]
291
292 [slide [h2 Netzwerk - Problembehebung]
293   [ul
294     [h3 Programme zur Diagnose]
295     [li [pre ~$ ip address]]
296     [li [pre ~$ ip route list]]
297     [li [pre ~$ nslookup] oder [pre ~$ dig]]
298     [li Gateway pingen, Nameserver pingen, bekannte IP-Adresse pingen
299         [pre ~$ ping]]
300     [li [pre ~$ nmap]]
301   ]
302 ]
303
304 [slide [h1 SSH - Die Secure Shell]]
305
306 [slide [h2 SSH]
307   [pre ~$ ssh live@hostname]
308   ("hostname" ist die IP-Adresse an der Tafel)
309 ]
310
311 [slide [h2 SSH]
312   [pre ~$ tmux a]
313 ]
314
315 [slide [h2 SSH]
316   [pre ~$ ssh -X live@hostname]
317   [pre ~$ mousepad]
318 ]
319
320 [slide [h2 SSH - Dateiübertragung]
321   [ul .uncover
322     [li [pre ~$ ssh live@hostname ls]]
323     [li [pre ~$ ssh live@hostname cat datei1]]
324     [li [pre ~$ ssh live@hostname cat datei1 > datei1]]
325   ]
326 ]
327
328 [slide [h2 SSH - Dateiübertragung]
329   [pre scp live@hostname:datei1 ./]
330 ]
331
332 [slide [h2 SSH - Dateiübertragung]
333   [p Dateimanager → sftp://live@hostname]
334 ]
335
336 [slide [h2 SSH - Dateiübertragung]
337   [pre
338     ~$ mkdir mount
339     ~$ sshfs live@hostname: mount
340     ~$ ls mount]
341 ]
342
343 [slide [h1 \...]
344   Webserver..., Netcat..., tar..., inetd...
345 ]
346
347 [slide [h2 Nächster Teil]
348   [ul
349     [li Softwareinstallation]
350     [li Anwendungsprogramme]
351   ]
352 ]
353
354 ]]