GNU/Linux Concetti di base
Sommario GNU/Linux Open Source e GPL Login/Logout Shell e comandi Files Stdin, stdout Redirezione e pipe Filesystem 2
Cos'è Linux Linux è basato su UNIX (filosofia, comandi, convenzioni) Linux Kernel (by Linus Torvalds) + GNU utilities Distribuzioni Linux (RedHat, NethServer, Ubuntu, Fedora, Slackware,...) 3
Architettura UNIX 4
OpenSource e GPL Concetto di Software Open Source Licenze Open (GPL, MIT, BSD, ) GitHub 5
Login e Logout Login Login grafico (X) Shell Logout exit Ctrl+D 6
Shell Strumento veloce, flessibile e potente bash readline, history, scripting, wildcards manuale comandi (man) 7
Comandi Sono dei file eseguibili Possono accettare argomenti (es. echo Hello friend!) Case sensitive! 8
Alcuni comandi utili Cambiare la password ad un utente: passwd Diventare root: su - Chi sono? whoami, id Chi c'è? w, who, last 9
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 10
Stdin/out stdin < stdout > stderr 2> 11
Redirezione e pipe cat > lista_nomi cat lista_nomi > /dev/null ridirigere lo stdout sullo stdin: pipe cat lista_nomi grep giovanni 12
Filesystem ext2, ext3, ext4, directory, file e link device files (/dev) special files (/proc) Journaling (ext3, ext4, NTFS, reiserfs, jfs,...) 13
Comandi utili (filesystem) fdisk -l /dev/sda pwd, cd, ls, mkdir, rmdir, rm Mount/unmount mkfs, fsck du, df 14
/ Radice (root) /root Home 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 Struttura filesystem /sbincomandi e programmi riservati a root (anche /usr/sbin/ ) /bin comandi e programmi base per tutti gli utenti (/usr/bin/ ) 15
Sommario Editor di testo Utenti e permessi Processi Servizi e demoni Schedulatore cron 16
Editor di testo Editor di testo: vi, nano 17
vi Creato per Unix nel 1976 Numerosi cloni Veloce Potente Lo troviamo in tutti i sistemi Vim Non è semplice da usare 18
nano Semplice Molto leggero È presente in quasi tutti i sistemi 19
UGO rwx Sistema multiutente User Group Other Read Write Execute 20
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 21
Processi Comando = processo PID PPID ps e top kill, killall e segnali priorità (da -20 a +19), nice, renice 22
Processi creazione ready running terminazione init zombie swapped sleeping terminated 23
Servizi e demoni 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 24
Servizi e demoni Servizi demoni tipici Cron Httpd Asterisk Dovecot Ardad 25
Schedulatore cron 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 26
Schedulatore cron 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) 27
Sommario 2 Bash Rete - tcpdump Archivi Distribuzione software Log e troubleshooting 28
Bash History (CTRL-R, frecce su/giù) TAB completion Wildcard (*) ls /var/log/*.log 29
Rete Nomi: ethx (es. eth0, eth1) pppx, brx, ethx:y Manipolazione interfacce: File di configurazione ifconfig Rotte: route 30
Rete - Troubleshooting Raggiungibilità ping tracepath / traceroute arp -an Risoluzione nomi host dig 31
Rete - Troubleshooting Pacchetti TCP/IP tcpdump Connessioni e porte aperte netstat nc 32
Archivi di file Formati zip tar tar.gz (tgz), tar.bz2 (tbz2) Comandi tar cvzf file.tgz file1 file2 gzip file 33
Distribuzione software Pacchetti Linux: RPM (Red Hat / CentOS) DEB (Debain / Ubuntu) Firmati digitalmente Risoluzione dipendenze Repository apt (Debian / Ubuntu) yum (Red Hat / CentOS) 34
Log /var/log/messages dmesg Manipolazione file di testo cat grep less tail cut sort wc 35
Riferimenti Google TLDP - http://www.tldp.org/ ILS - http://www.linux.it/ Appunti di informatica libera - http://a2.swlibero.org/ 36
Schedulatore cron 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 37