La shell ei comandi in Linux

Transcript

La shell ei comandi in Linux
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)
1
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)
2
Che cos'è la shell e perchè si usa?
●
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.
●
E' un programma che interpreta ed esegue i comandi
●
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)
3
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)
4
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)
5
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)
6
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)
7
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)
8
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)
9
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)
10
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)
11
I comandi di base – Agire su file e
cartelle
●
●
●
Comando mkdir
–
E' necessario un argomento ( il nome della carterlla )
–
Crea una nuova cartella
Comando rmdir
–
E' necessario un argomento ( il nome della carterlla )
–
Elimina una cartella vuota
Comando rm : elimina un file o una cartella (-r)
–
Opzione (-f) : forza la rimozione dei file
–
Opzione (-i) : modalità interattiva : chiede sempre
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent)
12
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)
13
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)
14
I comandi di base – Visualizzare il
contenuto di un file
●
Comando cat : stampa a video il contenuto di un file (testo)
–
●
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.
–
●
Cat nomefile
less nomefile
Comando more : È un filtro che permette di visualizzare l'output di un comando
una schermata alla volta.
–
more nonefile
–
cat nomefile | more
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent)
15
I comandi di base – Ottenere
informazioni sul sistema
●
Comando du : Il comando du visualizza lo spazio occupato sul
disco da file o directory.
–
●
Comando df : visualizza lo spazio occupato nelle partizioni e
lo spazio rimanenete
–
●
du nomefile
Opzione -h : mostra la dimensione in formato umano
Comando free : mostra informazioni sulla memoria di sistema
–
Opzione -h : mostra la dimensione in formato umano
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent)
16
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)
17
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)
18
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)
19
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 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
Comando uname : mostra informazioni sul sistema (nome e versione kernel,
ecc)
–
Opzione -r : visualizza la versione del kernel
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent)
20
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)
21
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)
22
I comandi di avanzati – Gestire i
dischi e il file system
●
Comando fdisk -l: visualizza informazioni sui dischi e le partizioni
–
●
Comando mount : mostra i dispositivi montati
–
●
Fdisk /dev/sdX : entra in fdisk e permettere di
creare/modificare/eliminare le partizioni
mount /dev/sXX /mnt/cartella
Comando umount : smonta un determinato dispositivo
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent)
23
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)
24
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)
25
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)
26
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)
27
Link utili
●
●
●
http://www.mimante.net/doc/comandi.txt
http://wiki.ubuntu-it.org/AmministrazioneSistema/Comandi
Base?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)
28
Seguitici su Linuxtrent
http://www.linuxtrent.it
Contatto email relatore : [email protected]
Martedi 1° aprile 2014 - La shell e i comandi Linux - Daniele Piccoli (LinuxTrent)
29