La shell e i comandi in Linux · Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele...
Transcript of La shell e i comandi in Linux · Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele...
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 1
La shell e i comandi in Linux
Conoscere e utilizzare i comandi di Linux dal terminale - Introduzione
Daniele Piccoli
LinuxTrent
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 2
Sommario argomenti
● Che cos'è una shell e perchè si usa?
● Quanti tipi di shell esistono e quali sono le più usate?
● Come si apre una shell?
● Caratteristiche della shell?
● Dove/chi siamo nella shell?
● I comandi di base
● I comandi avanzati
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 3
Che cos'è la shell e perchè si usa?
● E' un programma che interpreta ed esegue i comandi
● E' l'interfaccia testuale tramite la quale l'utente può operare sul sistema; viene lanciata dal processo di login dopo che il processo di autenticazione è andato a buon fine.
● Ci consente di impartire comandi e ci restituisce dei risultati
● La shell permette di esplorare e monitorare il sistema, creare, modificare e eliminare file, controllare i processi, ecc.
● La shell è molto potente e molto pericolosa se non prestiamo attenzione a quello che facciamo
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 4
Quante shell esistono e quali sono le più usate?
● Esistono svariate shell che si possono utilizzare
● La più utilizzata è la shell “bash”, che è impostata come predefinita su molte distribuzione linux
● Altri esempi di shell sono : sh, tcsh, ash, ksh, zsh, ecc
● In questa serata parleremo della shell “bash”
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 5
Come si apre una shell?
● Esistono vari modi per accedere a una shell
● Il prompt dei comandi ( se non c'è un interfaccia grafica installata )
● La finestra del terminale (xterm, gnome terminal, konsole,.. )
● Il terminale virtuale (Ctrl+Alt+F1...F6)
● Nel caso in cui non ci sia l'interfaccia grafica o usiate uno dei terminali virtuali a disposizione, per poter entrare è necessario specificare un nome utente e una password validi (e abilitati all' uso)
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 6
Caratteristiche della shell?
● E' case-sensitive (differenza tra maiuscole e minuscole)
● Fornisce autocompletamento dei comandi usando il tasto TAB
● Possibilità di definire alias per i comandi
● History dei comandi usati
● Possibilità di redirigere l'output di un comando sull' input di un altro comando
● Funzionalità di scripting e funzioni condizionali e di ciclo.
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 7
Dove/chi siamo nella shell?
● Quando siamo entrati nella shell ci vengono fornite alcune informazioni: [nomeutente@nomehost cartella] $ o #
– Il nome utente che ha effettuato l'accesso (alla shell)
– Il nome della macchina locale
– La cartella in cui ci troviamo
– Il simbolo $ se siamo normali utenti
– Il simbolo # se siamo l'utente root
● Comando who, whoami e id
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 8
I comandi di base
● Esistono varie tipologie di comandi: vediamone alcune
– BuiltIn : comandi interni alla shell (quindi caratteristici della shell in questione. Es: type, alias, exit, help, history,ecc )
– Programmi (detti anche comandi esterni) : normalmente si trovano nelle cartelle a cui punta la variabile $PATH
– Alias : puntano ad un comando già esistente, magari aggiungendo dei parametri e lo associano ad un altro nome
– Scripting dalla shell
● Ora iniziamo a vederli in azione...
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 9
I comandi di base – Ottenere aiuti
● Comando man : formatta e mostra le pagine della guida in linea.
– man comando (es: man bash)
– tasto di uscita : q
● Opzione --help: mostra il funzionamento e le possibili opzioni del comando specifico
– Comando --help (es: ls --help)
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 10
I comandi di base – Muoversi tra le cartelle
● Comando cd
– Se usato da solo ci porta alla nostra home directory
– Se viene specificato un percorso ci porta al suo interno; i percorsi che si possono specificare sono di 2 tipi :
● Relativi ( ./directory oppure ../directory/ )● Assoluti ( /home/pippo/directory/ )
● Comando pwd : ci restituisce la directory in cui ci troviamo
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 11
I comandi di base – Listare il contenuto di una cartella
● Comando ls : stampa a video la lista dei file e delle cartelle contenute nella cartella corrente
– Accetta opzioni : -l (mostra dettagli), -a (mostra i file nascosti), -h (mostra le dimensioni in modalità HUMANA), -S (ordina i file per dimensione), ecc
– E' un alias a ls --color=auto
● Comando dir : si trova in alcune distribuzioni e sostanzialmente fa le stesse cose di ls
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 12
I comandi di base – Agire su file e cartelle
● Comando mkdir
– E' necessario un argomento ( il nome della carterlla )
– Crea una nuova cartella
● Comando rm : elimina un file o una cartella (-r)
– Opzione (-f) : forza la rimozione dei file
– Opzione (-i) : modalità interattiva : chiede sempre
● Comando rmdir
– E' necessario un argomento ( il nome della carterlla )
– Elimina una cartella vuota
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 13
I comandi di base – Agire su file e cartelle
● Comando cp : copia file e cartelle
– Sono necessari 2 argomenti ( il nome del origine e della destinazione )
– Copia
● Comando mv : sposta file/cartelle – rinomina file/cartelle
– Sono necessari 2 argomenti ( il nome del origine e della destinazione )
– Sposta e rinomina
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 14
I comandi di base – Agire su file e cartelle
● Comando touch : crea un nuovo file o imposta la data di ultima modifica/accesso su un file esistente
– touch nomefile
● Comando ln : usato per creare dei link
– Opzione -s (soft) : creare link simbolico (il classico link)
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 15
I comandi di base – Visualizzare il contenuto di un file
● Comando cat : stampa a video il contenuto di un file (testo)
– Cat nomefile
● Comando more : È un filtro che permette di visualizzare l'output di un comando una schermata alla volta.
– more nonefile
– cat nomefile | more
● Comando less : less visualizza il contenuto di file, permette di spostarsi avanti e indietro nel testo utilizzando i tasti freccia quando i file occupano più di una pagina di schermo.
– less nomefile
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 16
I comandi di base – Ottenere informazioni sul sistema
● Comando du : Il comando du visualizza lo spazio occupato sul disco da file o directory.
– du nomefile
● Comando free : mostra informazioni sulla memoria di sistema
– Opzione -h : mostra la dimensione in formato umano
● Comando df : visualizza lo spazio occupato nelle partizioni e lo spazio rimanenete
– Opzione -h : mostra la dimensione in formato umano
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 17
I comandi di base – I comandi intergrati (builtin) nella shell
● Comando exit : esce dalla schell aperta da quell' utente
● Comando history : mostra la cronologia dei comandi digitati
– Per ripetere un comando già usato si usa !numerocomando
● Comando type : mostra dove si trova l'eseguibile di un comando
● Comando alias : mostra gli alias assegnati
– Alias nome='nome comando –opzioni' → Crea un nuovo alias
– Unalias nome → Elimina un alias
● Comando clear : pulisce la shell corrente mandando l'output sopra
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 18
I comandi di base – Ricerche
● Comando find : ricerca files nelle directory gerarchicamente.
– find percorsodiricerca -name nome.txt
– Supporta i caratteri jolly : *● Comando locate : ricerca i file utilizzando l’indicizzazione dei file
– locate filedacercare.txt● Comando grep : ricerca principalmente nei file
– grep pattern file
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 19
I comandi di base – Altri
● Comando poweroff : spegne la macchina
● Comando reboot : riavvia la macchina
● Comando startx : avvia l'interfaccia grafica (X Windows System)
● Comando alias : mostra gli alias assegnati
● Comando clear : pulisce la shell corrente mandando l'output sopra
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 20
I comandi avanzati – Ottenere informazioni sul sistema
● Comando top : Il comando top visualizza informazioni riguardanti il proprio sistema, processi in esecuzione e risorse di sistema, utilizzo di CPU, RAM e spazio swap utilizzato e il numero di task in esecuzione.
● Comando uname : mostra informazioni sul sistema (nome e versione kernel, ecc)
– Opzione -r : visualizza la versione del kernel
● Comando ps : visualizza un elenco dei processi correnti.
– Opzione -u : visualizza i processi dell' utente
– Opzione -ax : mostra tutti i processi con relativo utente che hanno un PID
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 21
I comandi di avanzati – Gestire i processi
● Comando kill : arresta un determinato processo
– Si deve specificare il PID relativo al processo
– Opzione -9 : forza la chiusara del processo
● Comando xkill : permette di selezionare una finestra nella GUI e fermare il relativo processo
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 22
I comandi di avanzati – Ottenere informazioni sul hardware
● Comando lspci : Visualizza informazioni sui device PCI, AGP, chipset, controller SATA, ecc che sono connessi e rilevati dal sistema
– Opzione -v (verbose): produce un output più prolisso
● Comando lsusb : visualizza informazioni sui device usb connessi e sugli hub
● Comando lshw : mostra molte informazioni sul sistema
● Comando arch : mostra l'architettura del S.O in uso
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 23
I comandi di avanzati – Gestire i dischi e il file system
● Comando fdisk -l: visualizza informazioni sui dischi e le partizioni
– Fdisk /dev/sdX : entra in fdisk e permettere di creare/modificare/eliminare le partizioni
● Comando mount : mostra i dispositivi montati
– mount /dev/sXX /mnt/cartella● Comando umount : smonta un determinato dispositivo
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 24
I comandi di avanzati – Installare e gestire pacchetti/repository
● In distro debian-based
– Apt-get o aptitude
– Apt-get update : aggiorna l'elenco dei pacchetti
– Apt-get install nomeprogramma : installa il programma indicato soddisfando le dipendenze (se possibile)
● In distro rhel-based
– Yum check-update : aggiorna l'elenco dei pacchetti
– Yum install nomeprogramma : installa il programma indicato soddisfando le dipendenze (se possibile)
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 25
I comandi di avanzati – Gestire la rete
● Comando ifconfig : visualizza la configurazione di rete per le interfaccie installate nel sistema
● Comando iwconfig : specifico per le reti wireless
● Comando ip addr : andrà a sostituire il comando ifconfig; permette la gestione delle VLAN e altre cose
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 26
I comandi di avanzati – Redirigere l'output di un comando
● | : redirige l'output di un comando sull' input di un altro comando
– cat nomefile | grep stringa
– cat nomefile | less
– find . -type f | wc -l
● > >> : Redirigono l'output su un file di testo
– lspci > devicepci.txt (sovrascrive il contenuto)
– lspci >> devicepci.txt (aggiunge al termine )
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 27
I comandi di avanzati – Esempio di script
● #!/bin/sh
● #
● # Nome utente …
● echo “Immettere nome utente:“
● read USER_NAME
● # Aggiunge l’utente all’albero LDAP e imposta la password di primo accesso
● /bin/netuseradd -a -m -G 5004,5009 -d /home/cartella_gruppo/$USER_NAME -P -B 1 $USER_NAME
●
● # Aggiunge l'utente alla lista di dansguardian (srv-squid:/etc/dansguardian/lists/filtergroupslist)
● echo $USER_NAME=filter5 | ssh root@srv-squid 'cat >> /etc/dansguardian/lists/filtergroupslist'
●
● # Aggiunge l'utente alla lista di kattive (srv-squid:/etc/dansguardian/list/kattivefiltergroupslist)
● echo $USER_NAME=k_docenti | ssh root@srv-squid 'cat >> /etc/dansguardian/lists/kattivefiltergroupslist'
●
● #Ricarica la configurazione di dansguardian sul server Squid
● ssh root@srv-squid dansguardian -r
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 28
Link utili
● http://www.mimante.net/doc/comandi.txt
● http://wiki.ubuntu-it.org/AmministrazioneSistema/ComandiBase?action=show&redirect=ComandiBase
● http://linux.collectiontricks.it/wiki/Guida_ai_comandi_base_della_shell_in_GNU/Linux#Muoversi_fra_le_directory
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent) 29
Seguitici su Linuxtrent
http://www.linuxtrent.it
Contatto email relatore : [email protected]