Foxwiki:Artikel:Erstellen: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Thomaskarras (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Dieser Artikel beschreibt, wie ihr ein Wiki-Artikel erstellt und welche Syntax dafür erforderlich ist.
== Wie wird ein Prozess generiert ==
und wie sieht sein weiterer Weg aus?


=Seiten/Kategorien erstellen=
    Die beiden wesentlichen Aktionen bei der Prozessentstehung sind die Systemaufrufe '''fork'''() und '''exec'''(). Mittels '''fork'''() wird ein neuer Prozess erzeugt, der zunächst dasselbe Programm wie sein Elternprozess ausführt.
# Prüfen, ob es eine ähnliche Seite bereits gibt
    Erst mit dem Aufruf von '''exec'''() wird ein Prozess das alte Programm durch ein neues ersetzen und dessen Ausführung beginnen.
# Mit dem Suchfeld (oben rechts) den Namen der neuen Seite suchen
    Der '''exec'''() Aufruf hat seinen Weg auch in den Funktionsumfang der in die Shell eingebauten Kommandos gefunden:
# Wenn es die Seite nicht gibt, kann hier die neue Seite erstellt werden (rot markierter Link)


==Platzieren von Seiten==
exec ls
login:


===Seite in eine Kategorie platzieren===
1.2.1.1 Erklärung


# Schreibe in deiner Seite den Syntax <nowiki>[[Category:Kategoriename]]</nowiki>.
    Im Beispiel wurde das Programm des laufenden Prozesses durch das Kommando '''ls''' ersetzt.
# Deine Seite ist nun in der genannten Kategorie zu finden. Die Wiki sortiert jede Seite in einer Kategorie alphabetisch.
    Da der aktive Prozess die Shell selbst ist, wird diese beendet und nachdem nun auch '''ls''' seine Tätigkeit abgeschlossen hat, finden wir uns auf der Login-Konsole wieder (sofern es sich um die Login-Shell selbst handelte).
# Man kann auch einer Seite unter mehreren Kategorien platzieren.
'''fork'''() existiert nicht als eigenständiges Kommando. Eine Shell wird diesen Systemruf immer tätigen, um ein Programm innerhalb eines neuen Prozesses auszuführen.


===Seitennamen ändern===
    Eine Shell vermag (fast) beliebig viele Prozesse zu starten, jedoch wartet sie in den häufigsten Fällen auf die Terminierung des zuletzt gestarteten Prozesses:


# Der Befehl ''Verschieben'' unter dem Reiter ''Mehr'' kann einen Seitennamen verändern.
'''sleep''' 100
# Klickt man auf ''Verschieben'' kommt ein Menü. Unter ''Neuer Titel:'' neben ''(Seite)'' den neuen Seitennamen eingeben und auf ''Seite verschieben'' klicken.
# 100 Sekunden verstreichen, die Shell wartet...
# Beachtet dabei, dass nur eine neue Seite mit dem Inhalt der alten Seite erstellt wurde. Die alte Seite ist noch da.
# Sofern ihr nicht auf einer Kategorieseite euren Seitennamen geändert habt, bleibt der alte Seitenname erhalten, allerdings werdet ihr weitergeleitet zur neuen Seite.


=Formatierung=
    Uns als Anwender steht es nun zu, einem Prozess zu signalisieren, dass er sich z.B. regulär beenden [Ctrl]-[D] , ist i.A. programmabhängig) oder seine Verarbeitung abbrechen ([Ctrl]-[C]) soll:


==Schrift==
'''cat'''
Die Eingabe muss mittels [Ctrl]-[D] beendet[Enter]
Die Eingabe muss mittels [Ctrl]-[D] beendet
oder mit [Ctrl]-[C] abgebrochen werden[Enter]
oder mit [Ctrl]-[C] abgebrochen werden
[Ctrl]-[C]


Mit <nowiki>''Text''</nowiki> wird die Schrift ''kursiv''.
Anmerkung 'Das reguläre Beenden eines Prozesses kann auf verschiedenen Wegen erfolgen. '


Mit <nowiki>'''Text'''</nowiki> wird die Schrift '''fett'''.
    In obigem Beispiel ist das Programm '''cat''' eigentlich dazu gedacht, aus einer Datei zu lesen, und beendet sich, sobald das Dateiende erreicht ist.
    Wird jedoch von der Standardeingabe eingelesen, und ist diese wie in diesem Fall mit der Tastatur verbunden, so muss der Nutzer dem Programm signalisieren, dass das »Dateiende« erreicht wurde.
    Dies erfolgt mit dem End-of-File-Zeichen (kurz '''EOF'''), das auf der Tastatur mit der Tastenkombination [Ctrl]-[D] generiert wird.
    In solchen Fällen bestünde keine Möglichkeit, beliebig viele Prozesse quasi-parallel zu starten, da der soeben initiierte Prozess die Shell für weitere Eingaben blockiert.
    Die Lösung des Problems liegt im Verschieben des Prozesses in den Hintergrund.
    Dabei wird er von der Ein- und Ausgabe der Shell abgekoppelt und läuft im Hintergrund weiter, bis er sich selbst beendet, oder aber auf Grund einer notwendigen Interaktion mit dem Benutzer zum Anhalten    gezwungen ist.


Mit <nowiki>'''''Text'''''</nowiki> wird die Schrift '''''fett und kursiv'''''.
# Start eines Hintergrundprozesses, der keine Eingaben erwartet
ls -lR > /dev/null &
[1] 706
"beliebiges Arbeiten auf der Kommandozeile" [Enter]
[1]+  Done          ls $LS_OPTIONS -lR >/dev/null


Es wird empfohlen, wichtige Details in kursiv zu schreiben. Fett sollte nur in Maßen eingesetzt;'''''fett und kursiv ist unangebracht'''''.
# Start eines Hintergrundprozesses, der Eingaben erwartet
(ls -Rl >/dev/null; cat)&
[1] 720
[Enter]


----
[1]+  Stopped      (ls $LS_OPTIONS -Rl >/dev/null; cat)
fg
(ls $LS_OPTIONS -Rl >/dev/null; cat)
hallo[Enter]
hallo
[Ctrl]-[D]


Will man ein Eingabebefehl oder eine Shell-Ausgabe als Code darstellen
    Jedes im Hintergrund laufende Programm wird als Job bezeichnet.
    Nach Beendigung der Eingabe des Kommandos mit [Enter] gibt die Bash auf der Standardfehlerausgabe eine Zeile mit Jobinformationen aus, wie am Beispiel zu erkennen ist.
    Diese beinhaltet in eckigen Klammern eine fortlaufende, von der Shell vergebene Jobnummer und die vom System dem Prozess zugeordnete Prozessnummer (PID).
    Mit dem Kommando jobs kann man Informationen über die derzeit auf einer Shell laufenden Hintergrundprozesse erlangen:


  so muss man vor der Textzeile ein Leerzeichen setzen.
cat &
 
  [1] 1343
Soll ein <code>Befehl</code> oder eine <code>Datei</code> als Code in einem normalen Text dargestellt werden, so muss man <nowiki><code>Text</code></nowiki> schreiben
 
==Überschrift==
   
   
Eine Überschrift kann man so setzen:
[1]+  Stopped            cat
 
<nowiki>=Überschrift=</nowiki>
 
Dabei wird gleichzeitig ein "Anker" festgelegt, der zur automatischen Gliederung dient.
 
Ein Kapitel unter einer Überschrift ist:
 
<nowiki>==Kapitel==</nowiki>
 
Und ein Unterkapitel unter einem Kapitel ist:
 
<nowiki>===Unterkapitel===</nowiki>
 
So kann man für seine Seite eine Gliederung erstellen.
 
Hier gilt:
 
# Kapitel und Unterkapitel in Maßen einsetzen!
# Überschriften werden auf keinen Fall noch zusätzlich formatiert!
# Überschriften werden nicht nummeriert!
 
==Listen==
 
* Ein <nowiki>*</nowiki>
* am Anfang
* jeder Textzeile
* listet auf,
** weitere <nowiki>**</nowiki> gibt Einrückungen
 
----
 
# Ein <nowiki>#</nowiki>
# nummeriert
# die Auflistung
## Weitere <nowiki>##</nowiki> fügt Unterpunkte
# Eine Leerzeile
 
# beendet die Liste bzw. startet eine Neue.
 
Es ist übrigens guter Stil, nicht mehr als 5 Aufzählungspunkten zu nutzen. Zu viele Punkte können den Leser ermüden.
 
----
 
Wie eine Wiki-Seite nicht aussehen soll:[[Hilfe:So soll eine Seite auf keinen Fall aussehen!!|Hier!]]
 
Für weitere Infos siehe:[https://www.mediawiki.org/wiki/Help:Formatting/de Hilfe:Formatierung-MediaWiki]
 
=Links setzen=
 
==Interne Links setzen==
 
#Öffne den Artikel, in dem der Link erstellt werden soll und klicke auf "Bearbeiten" im oberen Bedienfeld.
#Schreibe den Artikel, der verlinkt werden soll, mit folgender Syntax in das Textfeld: <nowiki>[[Name des Artikels]]</nowiki>.
 
Beispiel.:<br>
<nowiki>[[Hauptseite]]</nowiki>
 
[[Hauptseite]]
 
----
 
Man kann auch einen verdeckten Link erstellen mit einer passenden Beschreibung:
   
   
<nowiki>[[Name des Artikels|Beschreibung]]</nowiki>
time dd count=1000000 if=/dev/zero of=/dev/null &
 
[2] 1346
Beispiel:
jobs
 
[1]+  Stopped            cat
<nowiki>[[Hauptseite|Wenn man hier draufklickt, geht es zurück zur Hauptseite]]</nowiki>
[2]- Running            time dd count=1000000 if=/dev/zero of=/dev/null &
 
1000000+0 Records ein
[[Hauptseite|Wenn man hier draufklickt, geht es zurück zur Hauptseite]]
1000000+0 Records aus
 
Der Name des Artikels wird dann durch die Beschreibung ersetzt, verweist aber immer noch weiterhin auf den verlinkten Artikel.
 
----
 
Wenn ihr einen Link erstellen wollt, der auf ein Kapitel in einer Seite verweisen soll müsst ihr eintippen:
 
<nowiki>[[Name des Artikels#Name des Kapitels|Beschreibung]]</nowiki>
 
Beispiel:
 
<nowiki>[[Netzwerke:IPv4:Subnetting#Herausfinden der IP-Bereiche (Ranges)|Wenn man hier draufklickt, geht es zur Subnetting-Seite auf den Kapitel Herausfinden der IP-Bereich(Ranges)]]</nowiki>
 
[[Netzwerke:IPv4:Subnetting#Herausfinden der IP-Bereiche (Ranges)|Wenn man hier draufklickt, geht es zur Subnetting-Seite auf den Kapitel Herausfinden der IP-Bereich(Ranges)]]
 
==Externe Links setzen==
 
:1. Öffne den Artikel, in dem der Link erstellt werden soll und klicke auf "Bearbeiten" im oberen Bedienfeld.
 
:2. Schreibe die URL, die verlinkt werden soll, mit folgender Syntax in das Textfeld: <nowiki>[[URL gewünschter Name des Links]]</nowiki>.
 
Beispiel:<br>
<nowiki>[https://ausbildung.foxtom.de/wiki/index.php?title=Hauptseite Das ist der Link zur Hauptseite unseres Wikis]</nowiki>
 
[https://ausbildung.foxtom.de/wiki/index.php?title=Hauptseite Das ist der Link zur Hauptseite unseres Wikis]
 
Gibt man keinen Namen ein, wird stattdessen eine Nummer angezeigt.
 
----
 
Will man keinen Link erstellen, sondern nur die URL der Internetseite anzeigen, schreibt man dies mit folgender Syntax: <nowiki>"<nowiki>"</nowiki>URL<nowiki>"</nowiki>"</nowiki>.
Dies verhindert die Interpretierung von Zeichen als Formatierung.
 
Beispiel:<br>
<nowiki><nowiki>https://ausbildung.foxtom.de/wiki/index.php?title=Hauptseite</nowiki></nowiki>
 
<nowiki>https://ausbildung.foxtom.de/wiki/index.php?title=Hauptseite</nowiki>
 
Für weitere Informationen zum Verlinken:
[https://www.mediawiki.org/wiki/Help:Links/de Hilfe:Links-MediaWiki]
 
=Tabellen erstellen=
 
==Syntax==
 
{|class="wikitable"
!Zeichen !! Beschreibung
|-
| <nowiki>{|</nowiki> || Beginn einer Tabelle
|-
| <nowiki>|+</nowiki> || Tabellenbeschriftung, '''Ist nur zwischen Tabellenanfang und erster Tabellenzeile einzufügen'''
|-
| <nowiki>|-</nowiki> || Tabellenzeile, nicht notwendig um die erste Zeile zu machen, macht Wiki automatisch
|-
| <nowiki>!</nowiki> || Tabellenkopfzelle
|-
| <nowiki>|</nowiki> || Tabellenzelle bzw. eine weitere Spalte
|-
| <nowiki>|}</nowiki> || Ende einer Tabelle
|}
 
==Beispiele==
 
'''Beispiel 1'''
 
<nowiki>{|</nowiki></br>
<nowiki>|+ Tabelle </nowiki></br>
<nowiki>|Eins</nowiki></br>
<nowiki>|Zwei</nowiki></br>
<nowiki>|-</nowiki></br>
<nowiki>|Drei</nowiki></br>
<nowiki>|Vier</nowiki></br>
<nowiki>|}</nowiki></br>
 
{|
|+ Tabelle
|Eins
|Zwei
|-
|Drei
|Vier
|}
 
----
 
'''Beispiel 2'''
 
Mit <nowiki>"||"</nowiki> ist es möglich, die Zellen nebeneinander zu schreiben, um eine bessere Übersicht zu behalten.
 
<nowiki>{|</nowiki></br>
<nowiki>|+ Tabelle </nowiki></br>
<nowiki>|Eins||Zwei</nowiki></br>
<nowiki>|-</nowiki></br>
<nowiki>|Drei||Vier</nowiki></br>
<nowiki>|}</nowiki></br>
 
{|
|+Tabelle
|Eins||Zwei
|-
|Drei||Vier
|}
 
----
 
'''Beispiel 3'''
 
Mit <code>class="wikitable"</code> kann man ein Grundstyling erhalten, was die Tabelle visuell übersichtlicher darstellt.
   
   
<nowiki>{|class="wikitable"</nowiki></br>
  real    0m13.817s
<nowiki>|+ Tabelle </nowiki></br>
  user    0m9.430s
<nowiki>|Eins ||Zwei</nowiki></br>
  sys    0m4.040s
<nowiki>|-</nowiki></br>
  [2]- Done              time dd count=1000000 if=/dev/zero of=/dev/null
<nowiki>|Drei ||Vier</nowiki></br>
exit
<nowiki>|}</nowiki></br>
exit
 
There are stopped jobs.
{|class="wikitable"
jobs
|+ Tabelle
[1]+  Stopped            cat
|Eins||Zwei
exit
|-
# Shell wurde beendet
|Drei||Vier
|}
 
 
Weblinks
* [https://www.mediawiki.org/wiki/Help:Tables/de Hilfe:Tabelle-MediaWiki]
* [http://www.tablesgenerator.com/mediawiki_tables Tablesgenerator]
 
 
'''<big>5 <big>Bilder hinzufügen</big>'''
 
  :1. Klicke auf "Datei hochladen" im linken Bedienfeld unter der Kategorie Werkzeuge.
 
  :2. Wähle dort die gewünschte Datei zum Hochladen aus über die Schaltfläche "Durchsuchen" und
  starte den Upload.  
  Beachte, dass das Wiki nur bestimmte Dateiformate akzeptiert, die bei "Datei hochladen" aufgeführt sind.
 
  :3. Zum Einfügen des Bildes, navigiere zum gewünschten Artikel und öffne das Texteingabefeld                           
  über"Bearbeiten" im oberen Bedienfeld.
 
  :4. An der Stelle, wo das Bild anzeigt werden soll, füge es mit folgender Syntax ein: <nowiki>    [[Datei:Bildername.Dateiformat|Skalierung|Eigenschaften|Beschreibung]]</nowiki>
[[Datei:mediact.png|150px|thumb|Beispielbild]]
'''Beispiel'''
 
<nowiki>[[Datei:mediact.png|150px|thumb|Beispielbild]]</nowiki>
 
Für weitere Optionen bei Formatierung von Bildern und für weitere Informationen:
[https://www.mediawiki.org/wiki/Help:Images/de Hilfe:Bilder-MediaWiki]
 
=Textfluss stoppen=
 
Gelegentlich ist es wünschenswert, zu verhindern, dass Text (oder andere nicht floatende Inline-Bilder) um ein floatendes Bild herum Fließen. Abhängig von der Bildschirmauflösung des Webbrowsers und dergleichen kann der Textfluss auf der rechten Seite eines Bildes dazu führen, dass rechts neben dem Bild eine Abschnittsüberschrift (z. B. == My Header ==) angezeigt wird, anstatt darunter, wie man es erwarten würde. Der Textfluss kann gestoppt werden, indem <nowiki><br clear=all></nowiki> (oder falls bevorzugt, <nowiki><div style="clear: both"></div></nowiki>) vor dem Text platziert wird, der unter dem floatenden Bild beginnen soll. (Dies kann auch ohne eine Leerzeile geschehen, indem der Abschnitt mit den floatenden Bildern mit <nowiki><div style="overflow: hidden">…</div></nowiki> umbrochen wird, wodurch alle Floats innerhalb des div-Elements gelöscht werden.)
 
Alle Bilder werden als Blöcke gerendert (einschließlich zentrierter, nicht floatender Bilder, links oder rechts floatender Bilder sowie gerahmter Bilder oder floatender Vorschaubilder) unterbrechen implizit die umgebenden Textzeilen (beenden den aktuellen Textblock vor dem Bild und erstellen einen neuen Absatz für den Text danach). Sie werden dann vertikal entlang ihres linken oder rechten Ausrichtungsrandes (oder entlang der Mittellinie zwischen diesen Rändern von zentrierten Bildern) gestapelt.
 
=WikiEditor=
 
Der WikiEditor ist eine Erweiterung, die es ermöglicht, einfacher eine Wiki-Seite zu erstellen. Oben im Editor ist nun ein Reiter vorhanden. Unter "Erweitert" findet ihr Funktionen, um Formatierungen, Auflistungen, Bilder oder Tabellen zu erstellen. Unter dem Reiter "Sonderzeichen" findet ihr verschiedene Sonderzeichen. Unter dem Reiter "Hilfe" findet ihr eine kurze Hilfe zur Wiki-Syntax.
 
=Quellenangaben=
# https://www.mediawiki.org/wiki/Help:Formatting/de
# https://www.mediawiki.org/wiki/Help:Links/de
# https://www.mediawiki.org/wiki/Help:Images/de
# https://www.mediawiki.org/wiki/Help:Tables/de
 
[[Category:Wiki]]

Version vom 16. Oktober 2020, 09:25 Uhr

Wie wird ein Prozess generiert

und wie sieht sein weiterer Weg aus?

   Die beiden wesentlichen Aktionen bei der Prozessentstehung sind die Systemaufrufe fork() und exec(). Mittels fork() wird ein neuer Prozess erzeugt, der zunächst dasselbe Programm wie sein Elternprozess ausführt.
   Erst mit dem Aufruf von exec() wird ein Prozess das alte Programm durch ein neues ersetzen und dessen Ausführung beginnen.
   Der exec() Aufruf hat seinen Weg auch in den Funktionsumfang der in die Shell eingebauten Kommandos gefunden:

exec ls login:

1.2.1.1 Erklärung

   Im Beispiel wurde das Programm des laufenden Prozesses durch das Kommando ls ersetzt.
   Da der aktive Prozess die Shell selbst ist, wird diese beendet und nachdem nun auch ls seine Tätigkeit abgeschlossen hat, finden wir uns auf der Login-Konsole wieder (sofern es sich um die Login-Shell selbst handelte).

fork() existiert nicht als eigenständiges Kommando. Eine Shell wird diesen Systemruf immer tätigen, um ein Programm innerhalb eines neuen Prozesses auszuführen.

   Eine Shell vermag (fast) beliebig viele Prozesse zu starten, jedoch wartet sie in den häufigsten Fällen auf die Terminierung des zuletzt gestarteten Prozesses:

sleep 100

  1. 100 Sekunden verstreichen, die Shell wartet...
   Uns als Anwender steht es nun zu, einem Prozess zu signalisieren, dass er sich z.B. regulär beenden [Ctrl]-[D] , ist i.A. programmabhängig) oder seine Verarbeitung abbrechen ([Ctrl]-[C]) soll:

cat

Die Eingabe muss mittels [Ctrl]-[D] beendet[Enter]
Die Eingabe muss mittels [Ctrl]-[D] beendet
oder mit [Ctrl]-[C] abgebrochen werden[Enter]
oder mit [Ctrl]-[C] abgebrochen werden
[Ctrl]-[C] 

Anmerkung 'Das reguläre Beenden eines Prozesses kann auf verschiedenen Wegen erfolgen. '

   In obigem Beispiel ist das Programm cat eigentlich dazu gedacht, aus einer Datei zu lesen, und beendet sich, sobald das Dateiende erreicht ist.
   Wird jedoch von der Standardeingabe eingelesen, und ist diese wie in diesem Fall mit der Tastatur verbunden, so muss der Nutzer dem Programm signalisieren, dass das »Dateiende« erreicht wurde.
   Dies erfolgt mit dem End-of-File-Zeichen (kurz EOF), das auf der Tastatur mit der Tastenkombination [Ctrl]-[D] generiert wird.
   In solchen Fällen bestünde keine Möglichkeit, beliebig viele Prozesse quasi-parallel zu starten, da der soeben initiierte Prozess die Shell für weitere Eingaben blockiert.
   Die Lösung des Problems liegt im Verschieben des Prozesses in den Hintergrund.
   Dabei wird er von der Ein- und Ausgabe der Shell abgekoppelt und läuft im Hintergrund weiter, bis er sich selbst beendet, oder aber auf Grund einer notwendigen Interaktion mit dem Benutzer zum Anhalten     gezwungen ist.
  1. Start eines Hintergrundprozesses, der keine Eingaben erwartet

ls -lR > /dev/null & [1] 706 "beliebiges Arbeiten auf der Kommandozeile" [Enter] [1]+ Done ls $LS_OPTIONS -lR >/dev/null

  1. Start eines Hintergrundprozesses, der Eingaben erwartet

(ls -Rl >/dev/null; cat)& [1] 720 [Enter]

[1]+ Stopped (ls $LS_OPTIONS -Rl >/dev/null; cat) fg (ls $LS_OPTIONS -Rl >/dev/null; cat) hallo[Enter] hallo [Ctrl]-[D]

   Jedes im Hintergrund laufende Programm wird als Job bezeichnet.
   Nach Beendigung der Eingabe des Kommandos mit [Enter] gibt die Bash auf der Standardfehlerausgabe eine Zeile mit Jobinformationen aus, wie am Beispiel zu erkennen ist.
   Diese beinhaltet in eckigen Klammern eine fortlaufende, von der Shell vergebene Jobnummer und die vom System dem Prozess zugeordnete Prozessnummer (PID).
   Mit dem Kommando jobs kann man Informationen über die derzeit auf einer Shell laufenden Hintergrundprozesse erlangen:

cat &

[1] 1343

[1]+  Stopped            cat

time dd count=1000000 if=/dev/zero of=/dev/null &
[2] 1346
jobs
[1]+  Stopped            cat
[2]-  Running            time dd count=1000000 if=/dev/zero of=/dev/null &
1000000+0 Records ein
1000000+0 Records aus

real    0m13.817s
user    0m9.430s
sys     0m4.040s
[2]-  Done               time dd count=1000000 if=/dev/zero of=/dev/null
exit
exit
There are stopped jobs.
jobs
[1]+  Stopped            cat
exit
  1. Shell wurde beendet