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