+++ title = "Linux and shell" outputs = ["Reveal"] +++ ### intro su sistemi operativi - cosa sono? - che fanno? ---- ### software libero, kernel, distro. - [Software Libero](https://it.wikipedia.org/wiki/Software_libero) - [Distribuzioni](https://it.wikipedia.org/wiki/Distribuzione_Linux) ---- ### Come si installa un OS? BOOT --- | Marca | Tasto | |-------|-------| | Acer | F12, F9, F2, Esc | | Apple | Option | Asus | Esc Dell | F12 HP | F9 Huawei | F12 Lenovo | F12 others… | F12, Esc ---- ### metodi di interazione, UI, GUI, CLI Quando ci relazioniamo agli strumenti c'e' un linguaggio che usiamo per interagire con loro, questo modo di relazionarsi è la User Interface: permette alle persone (user) di interfacciarsi ai computer. [link](https://techlearningcollective.com/foundations/command-line-basics/commands-versus-buttons) ---- ### GUI punta e clicca, pochissima espressività. nelle gui devi manipolare gli oggetti a cui vuoi riferirti puntandoli direttamente, fisicamente. siamo obbligati ad usare un dito, il puntatore. inoltre non puoi accedere a cio' che non e' mostrato. se non si vede non puoi manipolarlo. ---- ### CLI Tutta l'espressività e la potenza di un linguaggio naturale! {{% note %}} - esempio del ristorante, scelta del menu. - come si descrivono le operazioni, nella gui ci si mette un sacco a scrivere e a ripetere - per la cli e' autoesplicativo quando si conosce il linguaggio, non c'e' ambiguita' e' deterministico {{% /note %}} ---- ### CLI base - tutto imperativo, si chiama command line appunto - ogni comando finisce con un invio - spesso i comandi necessitano argomenti ---- ### Iniziamo ``` ls ``` [link](https://techlearningcollective.com/foundations/linux-journey/the-shell) ---- ### Attributi ``` ls --help ls --all ls -t ``` ---- ### Argomenti ``` ls Musica ``` ---- ### Autocompletamento Usa il TAB! ---- #### Help ``` man ls ``` ---- ### echo ``` echo ciao ``` ---- ### che giorno è ``` ???? ``` ---- ### Filesystem ``` pwd cd . cd .. cd ~ cd - cd dir ``` ---- ### Files ``` less cat ``` ---- ### History su e giù ``` history ``` ctrl+r --- #### Ancora files e dirs ``` cp mv rm tree mkdir ``` ---- #### Cercare ``` find grep ``` ---- #### Redirect ``` echo 120g zucchero > ricetta_tiramisu.txt ``` la \> è una redirezione, ci permette di cambiare dove finisce l'output ---- #### Redirect II ``` echo 120g zucchero >> ricetta_tiramisu.txt ``` ---- #### PIPE ``` grep sort wc tail head ```