G8TBQ


5x5 (Unix Pentaaklid)
=====================

Pentaaklid:

  Üldalused

    + Matemaatika
    + Füüsika
    + Informaatika (Computer Science)
    + Riistvara
    + Inimkeeled (eesti, inglise, vene)

  Unix-i alused

    + Käsud
    + Regulaaravaldised
    + Ussiaugud ja sümbolite tabelid (ASCII, Unicode,..)
    + Teksti redaktorid (sed, ed, vi, emacs)
    + Skriptid (Bash, Python)

  Taylori seadused

    + Ära kirjuta seda "C"-s. Tee seda "awk"-s, kui vähegi võimalik;
    + Ära tee seda "awk" abil, kui "sed" saab sellega hakkama;
    + Ära kasuta "sed"-i kui "tr" saab seda tööd teha;
    + Kunagi ära tugine "tr"-le kui "cat" on piisav;
    + Väldi "cat"-i, kui vähegi võimalik.

  Õpiväljundid (7.5 EKAP)

    + paigaldamine (1.5 EKAP)
    + deemonite seadistamine (1.5 EKAP)
    + kasutajad (1.5 EKAP)
    + infrastruktuur- ja tarkvaralahendused (1.5 EKAP)
    + õppe- ja ingliskeelne terminoloogia (1.5 EKAP)

  EucipEx

    + unistus
    + projekt
    + ehitamine
    + kasutamine
    + hävitamine


Who Is The Boss?
================

            On 10 tüüpi inimesi selles maailmas:
            -- Need, kes mõistavad binaararve,
            -- Need, kes ei mõista, ning..
            -- Need, kes ei oodanud, et selle nalja aluseks on 3.
              
            leitud 
              https://www.raspberrypi.org/forums/viewtopic.php?t=125367

Arvutiga suhtlemise käigus osalevad kasutaja (inimene) ja arvuti (masin).

Juhul, kui kasutaja jätab juhtiva rolli arvutile, siis kasutaja valib GUI (Graphical User Interface) põhineva tarkvara. Selliseid programme on mugav kasutada, kuna igal sammul valitakse nende optsioonide hulgast, mis on ekraanile kuvatud . Ebamugavaks asi muutub siis, kui sama protseduuri on vaja korrata mitmel arvutil (koolis on neid ~500). Sellel juhul programm peaks olema võimeline genereerima skripte tehtud tööst. Selline praktika on kasutusel RAD (Rapid Application Development) tööriistadel, kuid teiste programmide puhul esineb üsna harva.

Juhul, kui arvuti jätab juhtiva rolli kasutajale :), siis kasutaja valib CLI (Command Line Interface). Selleks kasutaja peab valdama programmeerimiskeeli (kas või skriptimise tasemel), saada aru konfiguratsioon- ning log- failide sisust. See tee tundub olema ebamugavam, kuna arvutiga suheldakse üsna veidrates keeltes (kuid erinevalt inimkeeltest nad ei võimalda tõlgendada öeldut erinevat moodi -- lause võib sisaldada vigu (deny) või seda täidetakse :).

Näide: Debian Linux

  root@debian:~# apt-get remove libc6:amd64
  ..
  You are about to do something potentially harmful.
  To continue type in the phrase 'Yes, do as I say!'
  ?] Yes, do as I say!
  .. 
  SYSTEM CRASHED..

Ajalooliselt oli võimalik kasutada

  1. CLI + man pages # õpiti pähe tohutu hulga käske jne..
  2. Menu + Forms (curses, hiljem GUI) # õpiti pähe kus mis asub..
  3. Otsingu mootoreid (WEB nagu Google, hiljem lokaalsed)

Tänapäeval (eduka probleemi lahendamiseks) tuleb kalkuleerida summaarset aega: mida otsida, mida mäletada (cache on kiirem!), ning mida välja nuputada (leida valmiskujul ei õnnestu). Asja töö muutmiseks tasub mõista, kuidas see töötab (kui leidsid peaaegu seda, mida tahtsid ning on vaja ainult natuke muuta või lisada).


Ajalugu. Unix (unix-aeg alates 1.1.1970 00:00:00 *0)
====================================================

        Selleks, et muuta minevikku, on vaja poliitilist otsust.

Ajalugu
-------

  Unix -------
              |
   |          |
   v          v

  BSD        Linux                    Konteinerid/Virtualiseerimine
             
  MacOS      Android                  VMWare
  iOS        ChromeOS                 VirtualBox
             SailFish                 Hyper-V
  FreeBSD    Debian/Ubuntu/Mint..     Parallels
  OpenBSD    Redhat/Fedora/Centos..
  NetBSD     Suse                     LXC/LXD/Docker
  PCBSD      Solaris/OpenIndiana/..   Windows 10 RedStone I,II WSL*1

-----------

*0) Windows Subsystem For Linux:

   Settings -> Update/Security -> For Developers
      (*) Developer Mode
      
   Control Panel -> Turn Windows Features On/Off
      [v] Windows Subsystem For Linux
      
   CMD: bash

        lxrun /uninstall /full
        lxrun /install
        
*1) Calculating milliseconds from epoch

  var milliseconds = (new Date).getTime();

Ma arvan, et sa tahad oma sekundit jagada 1000-ga korrutamise asemel?


Unix time. Märkimisväärsed sündmused [4]
----------------------------------------
  
  + Kell 06:28:16 UTC neljapäeval, 7. veebruaril, 2036, "Network Time Protocol" alustab järgmist epohhi.

  + Kell 03:14:08 UTC teisipäeval, 19 jaanuaril, 2038, (7FFFFFFF või 2147483647) 32-bit loendur läheb -1 (80000000 või 2147483648), mis on 20:45:52 reede 13 detsember, 1901 UTC.

  + Kell 06:28:15 UTC pühapäeval, 7 veebruaril, 2106, Unix aeg jõuab FFFFFFFF või 4294967295 sekundini. Järgmine sekund tõlgitakse nagu 00:00:00 neljapäev 1. jaanuar 1970 UTC.


Hindamisest
===========

Kui õppija sooritab edukalt RHCE, LPIC1 ja LPIC2, CLA või samaväärse sertifikaadieksami, siis arvestatakse mooduli õppetulemuseks hinne 5.

Näide. LPIC1- ja LPIC2- s käsitletavad teemad:

  + Sissejuhatus Linuxi
  + Töö Linux Shell-iga
  + vi tekstiredaktori Kasutamine
  + Linux failide ja kataloogide haldus
  + Linuxi paigaldamine
  + Linuxi laadimisprotsessi haldus
  + Graafilise keskkonna haldus
  + Linux tarkvara haldus
  + Linux Kasutajate ja gruppide haldus
  + Linux Failisüsteemide haldus
  + Ownership, Permissions and Quotas
  + Riistvara seadistamine Linuxis
  + Linux protsesside haldus
  + Shelliskriptide kirjutamine
  + Võrgu konfigureerimine Linuxis
  + Võrgu teenuste konfigureerimine Linuxis
  + Securing Linux
  + Krüpteerimise kasutamine


Lisa A. My First JavaScript [3]
===============================

`  <html>
`  <body>
`  <h1>My First JavaScript</h1>
`  <button type="button"
`          onclick="document.getElementById('demo').innerHTML = 
`                       Math.floor((new Date()).getTime()/1000)">
`      Click me to display Date and Time.
`  </button>
`  <p id="demo"></p>
`  </body>
`  </html> 
      
  näide: 1,472,463,991


Lisa B. Xubuntu 16.04 virtualbox'is 
===================================

Host: Windows 10 x86-64 version 1607 (OS Build 14.393.82)
      Virtual Box version 5.1.4r110228 (Qt5.5.1)

Note: Host Port 22 busy (WSL?)

    General
      Basic
>>      Name:    [ Xubuntu ]
>>      Type:    [ Linux ]
>>      Version: [ Ubuntu (64-bit) ]
      Advanced
        Snapshot folder: [ ... ]
>>      Shared clipboad: [ Bidirectional ]
        Drag'n'Drop:     [ Disabled ]
      Description
        Empty
      Encryption
        [ ] Enable Encryption
        
    System
      Motherboard
>>      Base Memory: 2048 MB
        Boot Order: [v]Floppy
                    [v] Optical
                    [v] Hard Disk
                    [ ] Network
        Chipset:           [ PIIX3 ]
        Pointing Device:   [ USB Tablet ]
        Extended Features: [v] Enable I/O APIC
                           [ ] Enable EFI (special OSes only)
                           [v] Hardware Clock in UTC Time
      Processor
        Processor(s): 1 CPU
        Execution Cap: 100%
        Extended Featues [ ] Enable PAE/NX
      Acceleration
        Paravirtualization Interface [ Default ]
        Hardware Virtualization: [v] Enable VT-x/AMD-V
                                 [v] Enable Nested Paging
                               
    Display
      Screen
        Video memory:  128MB
        Monitor Count: 1
        Scale Factor:  100%
        Acceleration   [ ] Enable 3D Acceleration
        Acceleration   [ ] Enable 2D Video Acceleration
      Remote Display
        [ ] Enable Server
              Server Port: 3389
              Authentication Method: Null
              Authentication Timeout: 5000
              Extended Features: [ ] Allow Multiple Connections
      Video Capture
        [ ] Enable Video Capture
              File Path: [ ... ]
              Frame Size: 1024x768 (4:3)
              Frame Rate: 25 fps
              Quality:    512 kbps
              Screens: [v] Screen 1

    Storage
      Storage Tree
        Controller: IDE
          Empty
        Controller: SATA
          XUbuntu-18GB.vhd
      Attributes
        Name: IDE Type: PIIX4 [v] Use Host I/O Cache
        Optical Drive: [ IDE Secondary Master ] 
                       [ ] Live CD/DVD
            Information
              Type: --
              Size: --
              Location: --
              Attached to: --
              
        Name: SATA
          Type: ACHI
          Port Count: 1
          [ ] Use Host I/O Cache
        
        HArd Disk: [ Sata Port 0 ]
          [ ] Solid State Drive
          [ ] Hot-pluggable
          Information
          
              Type (Format): Normal (VHD)
              Virtual Size:  18.00 GB
              Actual Size: 4.27 GB
              Details: Dynamically allocated storage
>>            Location: ...
              Attached to: XUbuntu
              Encrypted with key: --
              
    Audio
      [v] Enable Audio
      Host Audio Driver: [ Windows DirectSound ]
      Audio Controller: ICH AC97
      
    Network
      Adapter 1
         [v] Enable Network Adapter
            Attached to: [ NAT ]
              Name: [    ]
         Advanced
            Adapter Type: [ Intel PRO/1000 MT Desktop (8254OEM) ]
            Promicious Mode: Deny
            MAC Address: ...
            [v] Cable Connected
            Port Forwarding
>>            Port Forwarding Rules
>>            Name  Protocol  Host IP   Host Port  Guest IP  Guest Port
>>            Rule1 TCP       127.0.0.1 2222       10.0.2.15 22
      Adapter 2
         [ ] Enable Network Adapter
      Adapter 3
         [ ] Enable Network Adapter
      Adapter 4
         [ ] Enable Network Adapter

    Serial Port
      [ ] Enable Serial Port
      
    USB
      [v] Enable USB Controller
        ( ) USB 1.1 (OCHI) Controller
        ( ) USB 2.0 (ECHI) Controller
        ( ) USB 3.0 (xCHI) Controller
      USB Device Filters
        Empty
        
>> Shared Folders
>>   Folder List
>>      Name  Path       Auto-mount  Access
>>      ...   ...        Yes         Full
    
    User Interface
      File    Machine   View    Input   Devices   Debug   Help    [v]
        [v] Preferences
        [v] Network Operations Manager
        [v] Reset All Warnings
      Mini ToolBar [v] Show in Full-screen/Seamless
                   [ ] Show at Top pf Screen


Lisa C. Ubuntu 14.10 does not install in virtualbox
===================================================

  http://askubuntu.com/questions/541006
       /ubuntu-14-10-does-not-install-in-virtualbox

Hit Right Ctrl+F1 (you will see the shell) and then Right Ctrl+F7. You are good to proceed with the installation.


Viited
======

  1. Unix Time Calculator
        https://www.aelius.com/njh/unixtime/
        
  2. Calculating milliseconds from epoch
        http://stackoverflow.com/questions/9011758
             /calculating-milliseconds-from-epoch
        http://stackoverflow.com/questions/9575790
             /how-to-get-time-in-milliseconds-since-
             the-unix-epoch-in-javascript
             
  3. JavaScript Tutorial
        www.w3schools.com/js/

  4. https://en.wikipedia.org/wiki/Unix_time#Notable_events_in_Unix_time
  
  5. Virtualbox Images
        http://www.osboxes.org/

Ülesanded

1. Sorteerida järgnevad käsud gruppidesse:

   käsud
   
    apt        ld         sed         break   
    awk        lex        sh          exit
    cat        lint       sort        return
    cc         head       su          if/elif/fi/then
    chmod      kill       sudo        case/esac
    chown      ln         sync        test
    chgrp      ls         tail        TRUE
    cmp        m4         tar         FALSE
    cp         make       tee         for/in
    date       man        time        while/until
                                      
    dd         mkdir      touch       do/done
    df         mkfs       true        seq
    du         mount      uniq        {}       
    echo       mv         vi          function
    ed         nice       wc          ifconfig
    expr       od         who         ip 
    file       passwd     whoami      netstat 
    find       paste      xxd         nslookup
    free       ps         yacc        dig
    grep       rm         yum/dnf     nmap    

2. iga p.1 käsu jaoks leida olulisemad võtmed. näiteks

  echo 
    -n --
    -e --
