kurse:ef05a-2021:js:webupload

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
kurse:ef05a-2021:js:webupload [2022/04/27 13:53]
Ivo Blöchliger created
kurse:ef05a-2021:js:webupload [2022/05/05 09:34] (current)
Ivo Blöchliger [Benfords law auf Dateigrössen]
Line 4: Line 4:
     * Namensauflösung (DNS) -> liefert IP-Adresse von ofi.tech-lab.ch, Verbindung mit IP, Anfrage von Verzeichnis 2022/EF05a/     * 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)   * 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 ===== ===== Upload der Dateien =====
Line 16: Line 18:
 </code> </code>
  
 +<WRAP todo>
 +  * 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.
 +</WRAP>
 +
 +===== Verbindung auf die Kommandozeile =====
 +<code bash>
 +ssh -p 40199 hansli@tech-lab.ch
 +</code>
 +
 +===== 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ür ''img08.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 anzeigen
 +    * ''ls -l'' Mehr Infos
 +    * ''ls -a'' Alle Dateien (auch solche, die mit ''.'' beginnen).
 +    * ''ls -lh'' human readable filesizes
 +    * ''ls -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 wechseln
 +    * ''cd ..'' ins übergeordnete Verzeichnis wechseln.
 +    * ''cd'' ins Homeverzeichnis wechseln.
 +  * ''cp source dest'', wobei ''source'' mehrere Dateien sein können, dann muss aber ''dest'' ein Verzeichnis sein.
 +  * ''mv source dest'', umbenennen, bzw. verschieben wenn ''dest'' ein Ordner ist. ''source'' können mehrere Dateien sein
 +    * ''mmv'' mehrere Dateien auf einmal umbenennen, nicht standard
 +  * ''rm datei'', Datei(en) unwiderruflich löschen
 +  * ''mkdir ordner'' Ordner anlegen
 +  * ''rmdir ordner'' leeren Ordner löschen
 +    * ''rm -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.
 +
 +<hidden Beispiel: Meine häufigsten Kommandos>
 +<code bash>
 +cut -f1 -d' '  ~/.bash_history | sort | uniq -c | sort -nr | head -n 40
 +</code>
 +<code txt>
 +    548 ls
 +    288 cd
 +    265 git
 +    102 vim
 +     52 host
 +     50 make
 +     47 less
 +     42 ssh
 +     42 okular
 +     33 sudo
 +     29 exit
 +     23 bg
 +     22 cp
 +     22 adb
 +     21 grep
 +     19 ruby
 +     18 mkdir
 +     17 mount
 +     17 libreoffice
 +     17 bash
 +     16 cat
 +     15 mv
 +     15 gwenview
 +     14 ping6
 +     14 apt
 +     13 telnet
 +     13 rm
 +     12 pdftk
 +     12 ip
 +     10 for
 +      8 touch
 +      8 ps
 +      8 asy
 +      7 teams
 +      7 irb
 +      7 inkscape
 +      6 scp
 +      6 pwd
 +</code>
 +</hidden>
 +
 +==== 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'' ;-)
 +
 +<code bash>
 +find /usr -type f -printf "%s\n" | cut -c 1 | sort | uniq -c
 +</code>
 +Mit Gnuplot (der Skalierungsfaktor 190000 ist Handgelenk mal $\pi$):
 +<code bash>
 +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)"
 +</code>
 +
 +{{kurse:ef05a-2021:js:ersteziffer-dateigroesse-benfords-law.svg}}
 +
 +<hidden Ausgabe mit Gnuplot auf dem Terminal>
 +<code txt>
 +                                                                                                                                                                                             
 +  160000 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+   
 +                                                                                                                                                                           
 +                                                                                                                                                                 '-' using 2:1 ******* |   
 +                                                                                                                                                             190000*log(1+1/x) ####### |   
 +         |*                                                                                                                                                                              |   
 +  140000 |-*                                                                                                                                                                           +-|   
 +          *                                                                                                                                                                            |   
 +                                                                                                                                                                                       
 +         |#                                                                                                                                                                            |   
 +         | #                                                                                                                                                                             
 +  120000 |-+#                                                                                                                                                                        +-|   
 +           #                                                                                                                                                                           
 +            #                                                                                                                                                                        |   
 +             #                                                                                                                                                                         
 +              ##  **                                                                                                                                                                     
 +  100000 |-+      ##  *                                                                                                                                                                +-|   
 +                  #  *                                                                                                                                                                   
 +                   ## *                                                                                                                                                                |   
 +                     ##                                                                                                                                                                
 +                       ##                                                                                                                                                              |   
 +   80000 |-+               ###                                                                                                                                                         +-|   
 +                          * ##                                                                                                                                                           
 +                            ####                                                                                                                                                       
 +                            *     ###                                                                                                                                                  |   
 +                                     ####                                                                                                                                              |   
 +                             *********   ###                                                                                                                                             
 +   60000 |-+                            ***** ######                                                                                                                                   +-|   
 +                                           ****** #####                                                                                                                                |   
 +                                                 **    #####                                                                                                                             
 +                                                   *********#########                                                                                                                  |   
 +                                                            *****    #########                                                                                                           
 +   40000 |-+                                                       ******       ###########                                                                                            +-|   
 +                                                                       **                ############                                                                                  |   
 +                                                                         ****************************################                                                                  |   
 +                                                                                                                *****#######################                                             
 +                                                                                                                     ********************** ###############################            |   
 +   20000 |-+                                                                                                                                 ********************************############  
 +                                                                                                                                                                                         
 +                                                                                                                                                                                         
 +                                                                                                                                                                                         
 +                                                                                                                                                                           
 +       0 +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+   
 +                                                                                                                                                                           
 +</code>
 +</hidden>
 +==== 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
 +
 +
 +    
 +  
  • kurse/ef05a-2021/js/webupload.1651060415.txt.gz
  • Last modified: 2022/04/27 13:53
  • by Ivo Blöchliger