GNU/LinuxConcetti di base
2GNU/Linux: concetti di base
Sommario
• GNU/Linux• Open Source e GPL• Login/Logout• Shell e comandi• Files• Stdin, stdout• Redirezione e pipe• Filesystem
3GNU/Linux: concetti di base
Cos'è Linux
● Linux è basato su UNIX (filosofia, comandi, convenzioni)
● Linux Kernel (by Linus Torvalds) + GNU utilities
● Distribuzioni Linux (RedHat, NethServer, Ubuntu, Fedora, Slackware, ...)
4GNU/Linux: concetti di base
Architettura UNIX
5GNU/Linux: concetti di base
OpenSource e GPL
• Concetto di Software Open Source
• Licenze Open (GPL, MIT, BSD, …)
• GitHub
6GNU/Linux: concetti di base
Login e Logout
• Login• Login grafico (X)• Shell
• Logout• exit• Ctrl+D
7GNU/Linux: concetti di base
Shell
• Strumento veloce, flessibile e potente
• bash
• readline, history, scripting, wildcards
• manuale comandi (man)
8GNU/Linux: concetti di base
Comandi
• Sono dei file eseguibili
• Possono accettare argomenti (es. echo Hello friend!)
• Case sensitive!
9GNU/Linux: concetti di base
Alcuni comandi utili
• Cambiare la password ad un utente: passwd
• Diventare root: su -
• Chi sono? whoami, id
• Chi c'è? w, who, last
10GNU/Linux: concetti di base
Tutto è un file
• In Linux è tutto un file (dispositivi, stdin, stdout, …)
• Possono contenere dati (testo, binari, …)
• Ogni file ha un nome ([A-z0-9-._])
• Alcuni comandi sui file: ls, ln, cp, mv
11GNU/Linux: concetti di base
Stdin/out
• stdin <
• stdout >
• stderr 2>
12GNU/Linux: concetti di base
Redirezione e pipe
• cat > lista_nomi
• cat lista_nomi > /dev/null
• ridirigere lo stdout sullo stdin: pipe• cat lista_nomi | grep giovanni
13GNU/Linux: concetti di base
• ext2, ext3, ext4, …
• directory, file e link• device files (/dev)• special files (/proc)
• Journaling (ext3, ext4, NTFS, reiserFS, jfs, ...)
Filesystem
14GNU/Linux: concetti di base
• fdisk -l /dev/sda
• pwd, cd, ls, mkdir, rmdir, rm
• Mount/unmount
• mkfs, fsck
• du, df
Comandi utili (filesystem)
15GNU/Linux: concetti di base
• / Radice (root)
• /rootHome dell'utente root
• /boot immagini del kernel e file indispensabili al bootstrap
• /etc file di configurazione del sistema e dei programmi installati
• /home home degli utenti tranne root
• /usr binari, documentazione, librerie e sorgenti della maggior parte dei programmi
• /var informazioni dinamiche come log, pid file, directory di spool
• /proc File system virtuale contiene dati dinamici sul sistema e sui processi
• /dev file per la gestione dei device
• /sbincomandi e programmi riservati a root (anche /usr/sbin/ )
• /bin comandi e programmi base per tutti gli utenti (/usr/bin/ )
Struttura filesystem
16GNU/Linux: concetti di base
Sommario
• Editor di testo• Utenti e permessi• Processi• Servizi e demoni• Schedulatore cron
17GNU/Linux: concetti di base
• Editor di testo: vi, nano
Editor di testo
18GNU/Linux: concetti di base
vi
• Creato per Unix nel 1976• Numerosi cloni • Veloce• Potente• Lo troviamo in tutti i sistemi• Vim• Non è semplice da usare
19GNU/Linux: concetti di base
nano
• Semplice• Molto leggero• È presente in quasi tutti i sistemi
20GNU/Linux: concetti di base
• Sistema multiutente• User• Group• Other
• Read• Write• Execute
UGO rwx
21GNU/Linux: concetti di base
Utenti e permessi
• ls -l-rw-rw-r-- 1 test test 0 9 ott 12:54 test_file
Gruppo Utente
Permessi “Other” Permessi “Group” Permessi “User” Tipo di file
• Comandi: chown, chgrp, chmod
22GNU/Linux: concetti di base
Processi
• Comando = processo• PID PPID• ps e top• kill, killall e segnali• priorità (da -20 a +19), nice, renice
23GNU/Linux: concetti di base
Processi
init
ready running
zombie
terminated
sleeping
swapped
creazione terminazione
24GNU/Linux: concetti di base
• Init è il primo processo che il kernel manda in esecuzione
• Avvia i demoni ed i servizi• I demoni eseguono compiti in
background, senza che l'utente debba preoccuparsene
• Non usano stdin/stdout/stderr
Servizi e demoni
25GNU/Linux: concetti di base
• Servizi demoni tipici• Cron• Httpd• Asterisk• Dovecot• Ardad
Servizi e demoni
26GNU/Linux: concetti di base
• Demone che lancia comandi in un momento specificato
• File di configurazione: /etc/crontab• cron.d un file per task, stessa sintassi• cron.daily, cron.monthly... crontab fa
eseguire a cron gli script in queste cartelle
Schedulatore cron
27GNU/Linux: concetti di base
• 55 3 * * * root squid -k rotate comando
utente Giorno della settimana (0-7) mese (1 - 12) giorno del mese (1 - 31) Ore (0 – 23) minuti (0 - 59)
Schedulatore cron
28GNU/Linux: concetti di base
Sommario 2
• Bash• Rete - tcpdump• Archivi• Distribuzione software• Log e troubleshooting
29GNU/Linux: concetti di base
Bash
• History (CTRL-R, frecce su/giù)• TAB completion• Wildcard (*)
• ls /var/log/*.log
30GNU/Linux: concetti di base
Rete
• Nomi:• ethX (es. eth0, eth1)• pppX, brX, ethX:Y
• Manipolazione interfacce:• File di configurazione• ifconfig
• Rotte:• route
31GNU/Linux: concetti di base
Rete - Troubleshooting
• Raggiungibilità • ping• tracepath / traceroute• arp -an
• Risoluzione nomi• host• dig
32GNU/Linux: concetti di base
Rete - Troubleshooting
• Pacchetti TCP/IP• tcpdump
• Connessioni e porte aperte• netstat• nc
33GNU/Linux: concetti di base
Archivi di file
• Formati• zip• tar• tar.gz (tgz), tar.bz2 (tbz2)
• Comandi• tar cvzf file.tgz file1 file2• gzip file
34GNU/Linux: concetti di base
Distribuzione software
• Pacchetti Linux:• RPM (Red Hat / CentOS)• DEB (Debain / Ubuntu)• Firmati digitalmente• Risoluzione dipendenze
• Repository • apt (Debian / Ubuntu)• yum (Red Hat / CentOS)
35GNU/Linux: concetti di base
Log
• /var/log/messages• dmesg• Manipolazione file di testo
• cat• grep• less• tail• cut• sort• wc
36GNU/Linux: concetti di base
Riferimenti
• Google• TLDP - http://www.tldp.org/
• ILS - http://www.linux.it/
• Appunti di informatica libera - http://a2.swlibero.org/
37GNU/Linux: concetti di base
• Demone che lancia comandi in un momento specificato
• File di configurazione: /etc/crontab• cron.d un file per task, stessa sintassi• cron.daily, cron.monthly... crontab fa
eseguire a cron gli script in queste cartelle • 55 3 * * * root squid -k rotate
Schedulatore cron