Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Linux@Unina

47 views

Published on

Intro a Linux tenuta all'università degli studi di Napoli Federico II. Speaker: Gabriele Previtera - https://www.linkedin.com/in/gabriele-previtera-6657648b/

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Linux@Unina

  1. 1. GNU/Linux@UNINA
  2. 2. ● Educazione Complementare ○ Fare pratica! ○ Utile per i colloqui ○ Soft Skill ● Linux ○ Esami e Lavoro ○ Scegliere cos’è meglio per te! ● To Be Continued! Stay tuned Perchè questo seminario!?
  3. 3. Perché sono cosi forti: ● Distribuzioni: Kernel + Applicazioni del progetto GNU ● Progetto GNU e F.O.S.S. ○ 4 Libertà fondamentali ● FreeSoftware vs OpenSource ○ Free come libero! ● Linux e Linus Cos’è GNU/Linux?
  4. 4. Perché sono cosi forti:Monolitico vs Microkernel
  5. 5. Perché sono cosi forti:Architettura
  6. 6. Perché sono cosi forti:Black… all the shell have a black background
  7. 7. Perché sono cosi forti:Come interagiamo normalmente con un sistema Shell Kernel Hardware
  8. 8. Perché sono cosi forti:Shell ● Implementa l’interfaccia a riga di comando ; ● Si tratta di un interprete di comandi che permette all'utente di comunicare col sistema operativo attraverso una serie di funzioni predefinite; ● Concatena vari comandi, costruendo l’equivalente di una catena di montaggio, realizzando così un comando complesso partendo da comandi più semplici ; ● Permette di eseguire programmi e script .
  9. 9. Perché sono cosi forti:Shells??? la shell è un programma come qualsiasi altro pertanto si possono avere diverse versioni di shell su sistema : ● sh (prima shell dei sistemi Unix); ● bash (shell degli attuali sistemi GNU/Linux); ● ash (shell minimale per sistemi con risorse limitate). ● shell fatte da voi !
  10. 10. Perché sono cosi forti:Utility sistema : Filosofia Ogni strumento necessario al funzionamento del sistema è un programma, che fa una cosa nel miglior modo possibile! Ad esempio : ● mv ( move ) ; ● cp ( copy ) ; ● le altre core-utils ( coltellino svizzero ) ; ● interprete dei comandi.
  11. 11. Perché sono cosi forti:Shell : Ready ??? GO!! ● Apri terminale ○ Digita i seguenti comandi : ■ ls /; ■ ps ; ■ top ; ■ cat /etc/passwd ; 1 2 3
  12. 12. Perché sono cosi forti:Filesystem hierarchy standard
  13. 13. Perché sono cosi forti: ● Regular file [ - ]: un file che contiene dei dati ● Directory [ d ]: contiene una lista di nomi associati a degli inode. ● Symbolic link [ l ]: contiene un riferimento ad un altro file o directory. ● Char Device [ c ]: identifica una periferica ad accesso a caratteri. ● Block device [ b ]: identifica una periferica ad accesso a blocchi. ● fifo o pipe [ p ]:identifica una linea di comunicazione unidirezionale. ● socket [ s ]: identifica una linea di comunicazione bidirezionale. Everything is a file
  14. 14. Perché sono cosi forti:Users and Permission ● Utenti e UID: /etc/shadow ● Gruppi e GUID: /etc/group ● Informazioni sui file: ls -n
  15. 15. Perché sono cosi forti:Sudo users ● Root vs Sudo ● Aggiungere un nuovo utente: ○ # adduser nomeutente ● Aggiungerlo al gruppo degli utenti sudo ○ # usermod -aG sudo nomeutente ● visudo /etc/sudoers ○ Definire regole per utenti e gruppi
  16. 16. Perché sono cosi forti:Installiamo! ● Sistemi Debian Like : APT, dpkg (.deb) ● RedHat: yum, DNF (rpm) ● Arch: Pacman ● Multi distribuzione: ○ Snap ○ Flatpack ○ Compilare ○ Script
  17. 17. Perché sono cosi forti:Man : reference manuals ● Molti programmi hanno un manuale che ne descrive il suo comportamento e le opzioni. ● Proviamolo : ○ man ls ; ○ man ps ; ○ man semop; ○ man semget; ○ man top ; Navigare in man: ● premere “q” per uscire; ● premere “/” per entrare in modalità ricerca
  18. 18. Perché sono cosi forti:Struttura di un comando base ls -a -l --color=no main.c ● ls : comando; ● -a,-l : opzioni in forma abbreviata; ● --color= : opzione in forma estesa; ● no : valore dell’opzione ● main.c valore in input al comando
  19. 19. Perché sono cosi forti:La redirezione dell’I/O ● Cosa succede quando un comando viene lanciato? ○ Esso si aspetta di avere disponibili e già aperti i seguenti file : ■ standard input filedescriptor: 0 ■ output filedescriptor: 1 ■ error filedescriptor: 2 In un sistema GNU/LInux tutto è un FILE! Cosa è un fd ? -- man fopen
  20. 20. Perché sono cosi forti:Redirezione dell’output sul file ● aprire due finestre di terminale ● nella prima ○ touch test ; ○ tail -f test . ● Nella seconda ○ echo “ciao” > test ; ○ echo “mondo” > test ; ○ echo “ciao mondo” >> test ; ○ cat test ⇐⇒ cat < test .
  21. 21. Perché sono cosi forti:Proviamo tail con apache ● # apt-get update ● # apt-cache search apache ● # apt-get install apache2 ○ # service apache2 status ○ # service apache2 restart ○ tail -f < /var/log/apache2/access.log ● aprire nel browser 127.0.0.1 Il # indica che il comando deve essere eseguito come con i privilegi di superutente. Il comando sudo sta per super user do
  22. 22. Perché sono cosi forti:Redirezione dell’I/O (NextLevel) ● nella prima finestra: ○ nc -lnvp 4444 ● nella seconda ○ cd /etc/ ○ bash -i >& /dev/tcp/127.0.0.1/4444 0>&1 ■ bash -i : esegue la shell in modalità interattiva ; ■ >&: “ redirezione lo standard output e lo standard error di bash sulla socket “, invio i risultati dei comandi a nc; ■ 0 >&1: “muove il file descriptor dello standard output della socket nello standard input del terminale “,(da i comandi a bash!). /dev/tcp/127.0.0.1/4444 è un file!!
  23. 23. Perché sono cosi forti:Redirezione dell’output NextLevel
  24. 24. Perché sono cosi forti:La pipe “|” ● La pipe ○ ls -al | grep "main.c" ○ ifconfig wlo1 | grep "inet " ○ ifconfig wlo1 | grep "inet " | awk '{print $2}'
  25. 25. Perché sono cosi forti:Le variabili ● echo $PATH ● export TEST=”ciao mondo” ○ echo $TEST ○ unset $TEST ● export RES=$( ls -al /bin/ | grep mv | awk '{line=$1" "$3" "$9;print line}') ○ echo $RES
  26. 26. Perché sono cosi forti:Script Uno script può contenere : ● una semplice lista di comandi ● funzioni ● cicli ● istruzioni condizionali
  27. 27. Perché sono cosi forti:Base di uno Script La prima cosa da indicare in uno script è il percorso dell’interprete che si vuole utilizzare per eseguire i comandi preceduto dalla direttiva #! . Ad esempio se si vuole utilizzare bash: #! /bin/bash Ogni riga dello script, a meno che non presenti dei caratteri di escape, viene interpretata come un comando!
  28. 28. Perché sono cosi forti:Commenti Le righe di commento iniziano con #. Ad esempio : #! Questo è un commento !
  29. 29. Perché sono cosi forti:Variabili Bash è un linguaggio a tipizzazione dinamica, non è richiesto indicare il tipo dei dati che la variabile conterrà. Per dichiarare una variabile basta indicare il nome e il valore, utilizzando la seguente sintassi: NomeVariabile=Valore Attenzione agli spazi !! La sintassi di bash non prevede l’utilizzo degli spazi prima e dopo il segno di =
  30. 30. Perché sono cosi forti:Variabili Per utilizzare una variabile si utilizza la seguenti sintassi : $NomeVariabile # Variabile X=2019 # Uso della variabile echo $X
  31. 31. Perché sono cosi forti:Stringe Le stringhe possono andare sia tra “” che tra ‘’. Quando si usano i ‘’ il parser considera i caratteri speciali di bash come normali caratteri e non come direttive per la shell. Ad esempio : X=2019 echo “Anno : $X” #Stampa il valore della variabile X echo ‘Anno : $X’ #Stampa $X
  32. 32. Perché sono cosi forti:Array Per definire un array basta sintassi : NomeArray=(valore1 valore2 ….) # Array X=(‘NaLUG’ ‘Workshop’ ‘2019’) # Uso echo ${X[*]}
  33. 33. Perché sono cosi forti:Uso degli Array Per gestire un array basta di solito la seguente sintassi : ● ${arr[*]} # Tutti gli elementi nell’array ● ${!arr[*]} # Tutti gli indici dell’array ● ${#arr[*]} # Numero di elementi nell’array ● ${#arr[0]} # Length of item zero
  34. 34. Perché sono cosi forti:Variabili di built-in ● $# : Numero di argomenti passati in input ● $$ : pid del comando corrente ; ● $0 : nome del comando in esecuzione ; ● $* (* ∈ N-{0} ) : variabili in ingresso ; ● $@ : Tutti i parametri in ingresso ; ● $? : Stato di uscita dell’ultimo comando.
  35. 35. Perché sono cosi forti:Operazioni tra numeri Bash prevede una sintassi particolare per eseguire operazioni tra numeri interi, in particolare una qualsiasi operazione va tra $(( )) X=3 Y=4 #Stampo la somma tra i valori di X e Y echo “$(( $X+$Y))”
  36. 36. Perché sono cosi forti:Comando Test Il comando test è utilizzato per valutare il valore di un'espressione logica. test “ciao” != “Ciao” test 1 == 2 [ “ciao” != “ciao” ] Il risultato viene in una delle variabili di built-in della shell. in particolare in $? viene salvato il valore di ritorno dell’ultimo comando eseguito ( 0 eseguito senza errori )
  37. 37. Perché sono cosi forti:Come scrivere le condizioni?? man test
  38. 38. Perché sono cosi forti:Struttura dell’ IF if [ condizione ] ; then elif [ condizione ] ; then else fi
  39. 39. Perché sono cosi forti:Struttura del while e del for while [ condizione ] do done for i in $(seq 0 n) ; do done
  40. 40. Perché sono cosi forti:Esempio Proviamo a realizzare uno script che ci fornisce l’indirizzo ip di un interfaccia di rete presente nel nostro sistema. L’interfaccia viene passata come parametro di input.
  41. 41. Perché sono cosi forti:Esempio #!/bin/bash #Controllo il numero di parametri in input if [ $# -eq 1 ]; then INTERFACE=$1 IP=$(sudo ifconfig $INTERFACE | grep "inet " | awk '{print $2}') echo “L’ip dell’interfaccia $INTERFACE è $IP” fi chmod +x ./getIP.sh wlo1
  42. 42. Perché sono cosi forti:Proviamo a fare uno script Contiamo il numero di occorrenze di una data parola nei file .txt in una cartella.
  43. 43. Perché sono cosi forti:Continua ad esercitarti a casa ● https://explainshell.com ● http://www.pluto.it/files/ildp/HOWTO/Bash-Prog-Intro-HO WTO/Bash-Prog-Intro-HOWTO.html ● https://www.fis.uniroma3.it/CALCOLO_DOC/unix/appuntil inux/alndx.htm
  44. 44. Perché sono cosi forti:Contattaci /NaLinuxUsersGroup http://www.nalug.net info@nalug.net
  45. 45. Perché sono cosi forti:That’s all Folks! Attribuzione - Non commerciale - Condividi allo stesso modo Questa licenza permette a terzi di modificare, redistribuire, ottimizzare ed utilizzare la tua opera come base non commerciale, fino a che ti diano il credito e licenzino le loro nuove creazioni mediante i medesimi termini

×