Webserver
- Computer der Webseiten ausliefert, im einfachsten Fall einfach Dateien, in der URL sichtbar
-
- Namensauflösung (DNS) → liefert IP-Adresse von ofi.tech-lab.ch, Verbindung mit IP, Anfrage von Verzeichnis 2022/EF05a/
- http, bzw. https («s» für secure, mit authentifizierter und verschlüsselter Verbindung)
- Spezielle Datei
index.html
, bzw.index.php
: Existiert so eine Datei im Verzeichnis, wird anstatt des Listings aller Dateien diese ausgeliefert. - Spezielle Datei
.htaccess
. Regelt Einstellungen des Webservers für das entsprechende Verzeichnis, z.B. Zugriff nur aus den Kanti-Netzen.
Upload der Dateien
Nur mit scp
oder sftp
. Entweder via Kommandozeile oder mit Hilfe von FileZilla.
# Lokal zum Server: (im KSBG-wild muss der Port 23 anstatt 40199 verwendet werden). scp -P 40199 datei.html hansli@tech-lab.ch:verzeichnis/. # Vom Server zu lokal (das aktuelle Verzeichnis ist der Punkt .) scp -P 40199 hansli@tech-lab.ch:verzeichnis/datei.html .
- Laden Sie Ihr JavaScript Projekt auf den Webserver. Sie können Ihre html-Datei in
index.html
umbenennen, damit diese direkt geladen wird. - Wenn Sie möchten, dass Ihre Seite von überall zugänglich ist, löschen Sie die Datei .htaccess.
Verbindung auf die Kommandozeile
ssh -p 40199 hansli@tech-lab.ch
Wichtigste Kommandos
Generelle Bemerkungen:
- Die Tabulator-Taste (Tab) vervollständigt Dateinamen so weit wie eindeutig. Zweimaliges Drücken zeigt die verbleibenden Möglichkeiten an.
- Leerzeichen sind Trennzeichen. Vermeiden Sie diese in Dateinamen (sonst sind die Dateinamen zwischen
“
zu schreiben. - Optionen beginnen mit einem Minuszeichen
-
. Manchmal auch–
für ausgeschriebene Optionen. - Pfeiltaste nach oben geht die Historie der eingegebenen Kommando durch.
- Unix-Philosophie:
- Ein Programm kann ein Ding
- Programme lesen Text als Input und produzieren wieder Text als Output
- Vom «Standard input» (STDIN) wird gelesen, aus «Standard output» wird geschrieben.
- Ein- und Ausgabe können umgeleitet werden (z.B. von oder zu Datei oder von oder zu einem Programm)
- Pipe:
|
Umleitung in nächstes Programm >
Umleitung in Datei (überschreiben),»
Umleitung in Datei (anhängen)<
lesen aus Datei (anstatt STDIN)
- Gross-/Kleinschreibung ist relevant!
- Dateinamen können mit Wildcards spezifiziert werden:
*
steht für eine Folge aus beliebigen Zeichen (auch keine)?
seht für genau ein beliebiges Zeichen[a-z]
steht für genau einen Kleinbuchstaben a-z{txt,TXT}
steht für txt oder TXT (z.B. *.{txt,TXT} bedeutet alle Dateien, die mit .txt oder .TXT enden).img{08..12}.jpg
steht fürimg08.jpg img09.jpg img10.jpg img11.jpg img12.jpg
- Der aktuelle Ordner ist
.
, der übergeordnete Ordner ist..
. - Das Homeverzeichnis kann mit
~
abgekürzt werden.
Datei-Manipulation
ls
Dateien anzeigenls -l
Mehr Infosls -a
Alle Dateien (auch solche, die mit.
beginnen).ls -lh
human readable filesizesls -ltrh
Sortierung nach Datum, neueste zuletzt.ls -lSrh
Sortierung nach Grösse, grösste zuletzt.
pwd
Print working directory (aktuelles Verzeichns anzeigen)cd ordner
Verzeichnis wechselncd ..
ins übergeordnete Verzeichnis wechseln.cd
ins Homeverzeichnis wechseln.
cp source dest
, wobeisource
mehrere Dateien sein können, dann muss aberdest
ein Verzeichnis sein.mv source dest
, umbenennen, bzw. verschieben wenndest
ein Ordner ist.source
können mehrere Dateien seinmmv
mehrere Dateien auf einmal umbenennen, nicht standard
rm datei
, Datei(en) unwiderruflich löschenmkdir ordner
Ordner anlegenrmdir ordner
leeren Ordner löschenrm -r ordner
Ordner mit allem Inhalt unwiderruflich löschen
chmod [ugo]{+,-}[rwx] datei
Berechtigung auf Datei ändern:u
ser,g
roup,o
ther,r
ead,w
rite,e
xecute.
Benfords law auf Dateigrössen
Die erste Ziffer $d$ von Dateigrössen ist nicht gleichverteilt, sondern ungefähr $P(d) = \log_{10}\left(1+\frac{1}{d}\right)$
Untersuchen Sie diesen Zusammenhang mit allen Dateien unterhalb /usr auf dem Server (oder auf Ihrem Computer, wenn folgende Tools verfügbar sind).
Lesen Sie dazu die Dokumentation zu den folgenden Kommandos und deren Optionen (entweder online oder mit man kommando
)
find
mit-type
und-printf
cut
mit-c
sort
uniq
mit-c
Erstellen Sie einen entsprechenden Graphen in einer Tabellenkalkulation oder gleich mit gnuplot
find /usr -type f -printf "%s\n" | cut -c 1 | sort | uniq -c
Mit Gnuplot (der Skalierungsfaktor 190000 ist Handgelenk mal $\pi$):
find /usr -type f -printf "%s\n" | cut -c 1 | grep -v 0 | sort | uniq -c | gnuplot -e "set terminal dumb $COLUMNS $LINES; plot '-' using 2:1 with lines, 190000*log(1+1/x)"
Links auf Schülerwebseiten auf der Kommandozeile
Im und unterhalb des Verzeichnisses /srv/www/ofi/2022/EF05a werden Dateien gesucht, die in .html enden und in den letzten 30 Tagen erstellt wurden:
cd /srv/www/ofi/2022/EF05a find . -name \*.html -ctime -30
Es gibt noch backup-Dateien der index.html Datei. Diese werden noch herausgefiltert:
find . -name \*.html -ctime -30 | grep -v back
Jetzt müssen wir die Dateinamen noch in Links verpacken. Die kann z.B. in einem schlauen Text-Editor erfolgen oder ebenfalls auf der Kommandozeile:
for a in `find . -name \*.html -ctime -30 | grep -v back`;do echo "<a href='$a'>$a</a><br>"; done
Schlussendlich leiten wir die Ausgabe in eine Datei um (wofür Sie nicht die Berechtigung haben):
for a in `find . -name \*.html -ctime -30 | grep -v back`;do echo "<a href='$a'>$a</a><br>"; done > projects.html