Guida al utilizzo del terminale
Introduzione
Vi scrivo qui questa guida riguardante ai terminali dei PC. Principalemnte dei sistemi UNIX e UNIX like, ma mi soffermerò anche un po' sul terminale (conosciuto come CMD o Prompt di comandi) di Windows.
Inizio spiegando cos'è un terminale. Un terminale è un modo per interagire con il computer senza interfaccia grafica. Questo modo di utilizzo è ancora moderno e viene utilizzato nella configurazione di server / host di siti web con accesso ssh (Secure Shell). Oppure da programmatori per eseguire i compilatori (per esempio il GCC (GNU C Compiler) che è il compilatore GNU per il linguaggio "C".
Lo scopo di questo topic è quello di rispondere alle seguenti domande.
- Cos'è il terminale?
- Come lo apro?
- Come lo uso?
- Quali sono i comandi?
- Per cosa viene usato?
- Dove posso ottenere ulteriori info?
Indice
1) Cos'è il terminale?
2) Aprire il terminale.
3) Utilizzo!
4) Comandi utili e più usati.
5) Dove posso informarmi?
6) Saluto e fonte
1) Cos'è il terminale?
Il Terminale è un programma che permette di utilizare il computer, prima di neXt e Windows 3.1 era l'unico modo per utilizare un computer. Ancora oggi viene utilizzato per utilizzare più funzioni del pc o anche funzionalità nascoste o anche per comandare computer a distanza.
Linux e Mac Os X usano lo stesso linguaggio nel terminale, ovvero "bash"
2) Aprire il terminale
Mac Os X
Metodo 1: Spotlight
Questo è sicuramente il metodo più veloce, premendo sulla lente di ingrandimento (oppure prementi ctrl + spazio sulla tastiera) vi si aprirà un campo di testo. Digitate "terminale" e subito sotto dovrebbe apparire l'applicazione.
Metodo 2: Launchpad
Aprendo launchpad (unendo 4 dita sul trackpad, oppure premendo il tasto "F4" senza il tasto "fn") si può vedere una cartella "utility" (In Mavericks rinominata "Altro") e in quella cartella troviamo il terminale.
Linux
Metodo 1: Esegui
Premere Alt+F2 su tastiera e digitare console e premere poi invio.
Metodo 2: Apps
Andare nella schermata applicazioni (di solito in alto a sinistra) e digitare terminale
Windows
Metodo 1: Esegui
Premere tasto Win+R, nella finestra che si apre digitare "cmd".
Metodo 2: Start
Andare su start > cliccare "tutti i programmi" > accessori > prompt dei comandi.
3) Utilizzo!
Ora che tutti avrete sicuramente aperto un terminale, vi insegno come navigare tra le cartelle, vedere il loro contenuto ecc...
Ci sono due comandi chiave per la navigazione. Il primo è cd e il secondo è ls. Una volta che si digita il commando basta premere "invio" per eseguirlo. Ma prima vi dico qualche segreto per essere più veloci.
Come si utilizza il tabulatore e a cosa servono le frecce sulla tastiera.
Iniziamo con le frecce sulla tastiera.
Premendo la freccia in su, si "reinseriscono" i vecchi comandi digitati. I vecchi comandi digitati sono visibili inserendo il commando "history".
Il "magico" tabulatore.
Il miracolo della tecnologia è il tabulatore. Se si digita una parte di un commando o di un percorso, con il tasto "tabulatore" (quello sopra il caps lock) il terminale cercherà di riempire il commando. Se invece non vi riempie nulla, premetelo due volte, così verranno visualizzate tutte le possibilità.
Passando ai comandi, iniziamo con quello più semplice.
LS: LS=List. Non fa altro che crearvi una lista dei file e delle cartelle della cartella nella quale siete. Su linux vi colorerà in modo differente i "link"(shortcut), directory e file. Con grande possibilità si coloreranno anche differentemente ogni file/cartella in base ai permessi.
Per vedere anche i file nascosti possiamo aggiungere il parametro -a (ls -a), per vedere più informazioni sui file (come i permessi) possiamo aggiungere il parametro -l (ls -l), se vogliamo aggiungere entrambi i parametri possiamo fare: ls -al (a:all)(l:long)
Ci sono alcune differenze con Windows, che invece del commando "ls" ha il commando "dir" (directory).
Continuiamo con il commando CD e i PATH(percorsi)
Digitando "cd" e premendo invio, si viene indirizzati alla cartella "HOME" (di solito la cartella con il vostro nome utente). Ma cd (Change Directory) serve appunto per cambiare cartella. Quindi se digitiamo "cd (percorso)" indicheremo il percorso nel quale vogliamo andare.
Per definire il percorso vi devo spiegare il significato di .. , . , ~ , /
.. : I due punti ( .. ) significano parent che sarebbe la cartella "superiore" se siamo nella cartella "/users/flexlex" con "cd .." ci ritroveremo in "/users/" (Per vedere la cartelle nella quale si è attualmente, digitate: pwd ( = Print Working Directory)).
. :Un solo punto ( . ) significa "this", quindi è il percorso alla cartella nella quale ci si trova. Definire un percorso che prende come "punto di partenza" la cartella nella quale ci si trova, viene chiamato "relative path".
~ : La tilde significa "home", quindi per tornare alla cartella home possiamo digitare anche "cd ~".
/ : Lo slash viene usato per indicare la cartella di ROOT (ovvero la radice, la cartella senza "sopra cartella", su Windows si chiama: C:\). Lo Slash viene usato anche per continuare il percorso. Per esempio se dalla cartella "/" vogliamo arrivare alla cartella "flexlex" posso fare: cd "/users/flexlex".
Ci sono però delle differenze con Windows. Lo slash (/) viene sostituito da uno backslash (\) e non esiste il root (/) ma i dischi locali come "C:\" quindi per arrivare in /users/flexlex in Windows dovremmo digitare: cd C:\Users\flexlex
4) Comandi utili e più usati
sudo
Significa "SuperUser Do", il super user può fare quello che vuole (spesso il super user viene chiamato anche "root") e può infrangere i permessi (spiegherò meglio cosa sono i permessi sul commando "chmod"). Resta il fatto che questo "prefisso" può dare al utente il massimo potere ad un commando. Per esempio per modificare un file protetto (come per esempio: passwd di linux) potremmo tranquillamente fare "sudo nano /etc/passwd" (Per chi non lo sappia nel file passwd una volta c'erano password criptate, oggi vi si trovano i permessi degli utenti) (spiegherò dopo cosa è "nano").
È possibile dare a se stessi il massimo dei poteri, con il commando "sudo -i" (password del amministratore richiesta) ovvero SuperUser Do -i (I << inglese = io). Poi ogni commando eseguito non sarà limitato da permessi. Inutile dire che con sudo si possono arrecare gravissimi danni al PC. Sia a livello software che hardware. Siate MOOOOLTO cauti.
rm / mv / cp
cp, rm e mv (copy, remove e move) sono tre comandi molto simili. Corrispondo alle funzioni: copia / elimina e taglia. CP e MV richiedono due parametri.
Parametro 1) File che si vuole spostare/copiare
Parametro 2) Nuovo percorso e nome file.
Per esempio: cp ~/Documenti/SkinSuperSegretaDelMaw.css ~/PornoDisgustosi/ViHoFregati_ElaSkinDelMaw.css
Credo che non devo specificare la differenza tra "copia" e "taglia".
Invece rm ha solo il parametro del file da cancellare. tipo: "rm ~/CompitiDiTedesco.doc"
touch
touch (tocca), crea un file oppure se già esistente cambia la data dell' "ultima modifica" a quella attuale (quindi NON soprascrive file già esistenti). Per esempio: "touch guidamawterminale.txt"
nano/pico
nano e pico sono due comandi uguali, entrambi richiamano un text editor (su windows (fino a 7) il commando era "edit", rimosso poi in Windows 8). Richiede un parametro, ovvero il nome del file. Per esempio: "nano filedamodificare.txt". Creerà automaticamente il file se non esiste, se esiste invece vi farà modificare i file già esistente. I comandi disponibili sono elencati sotto tipo: ^X (chiudi), ^O(salva), ecc... Non dovete digitare "^", ma quel simbolo significa tasto "ctrl" (oppure "strg" su tastiere tedesche), per esempio per chiudere dovremmo premere "ctrl + x" su tastiera.
vim
vim è un altro text editor, ma questo è molto più evoluto di nano, ma purtroppo anche molto più difficile da usare, visto che integra una console dei comandi propria. Per esempio il commando ":x" (in vim) significa per: chiudi e salva. ":X" (sempre in vim) significa "proteggi file da password". Per modificare il testo di un file bisogna premere "i" sulla tastiera. In fondo allo schermo vedremo una riga nera che recita: "INSERT". Ciò ci dice che possiamo scrivere. Per tornare ai comandi di VIM, basta premere il tasto "esc". Se siete in crisi, premete su tastiera ctrl+c (funziona sempre, control+c = cancel) che interrompe qualsiasi commando in esecuzione.
echo
Un commando base, restituisce quello che scrivete xD Esempio: echo "Ciao, sono bello". Scriverà nel terminale "ciao sono bello".
read
Vi permette di salvare variabili, per esempio "read r" farà inserire all'utente un valore che verrà salvato in "r". Per accedere a questa variabile si usa il dollaro. Provate a inserire questo nella console.
Cosa significa \" ? Nulla, evita che bash riconosca l'apice come fine del testo
Questo commando in Windows viene sostituito da "set VARIABILE".
arp
Adress resolution protocoll. È un protocollo, ma spesso molto utile per vedere quali dispositivi sono connessi alla rete di casa. Questo protocollo è capace di convertire indirizzi ip (di dispositivi locali) nei loro indirizzi MAC (Media Access Control) delle schede di rete. Vedete un esempio nella prima screenshot di questo articolo.
ping
Ping (facile da ricordarsi anche grazie a "ping pong") invia una richiesta ad un server con il protocollo icmp(Internet Control Message Protocol) al quale ogni server DEVE rispondere. Per esempio possiamo digitare "ping google.com" e sotto usciranno delle righe simile a questa.
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.070 ms
"64 bytes" indica quanti bytes son stati inviati
"127.0.0.1" è l' indirizzo-ip (internet protocol) del server che ho "pingato" (127.0.0.1 è un indirizzo turn back, quindi ho pingano il mio stesso PC).
"icmp_seq" conta il numero della richiesta.
"ttl" (time to live) indica quante stazioni può passare la nostra richiesta prima di "morire" (dopo con traceroute vedremo cosa sono le stazioni).
"time" è il tempo impiegato per inviare la risposta. (Questo comando è comodo per verificare la connessione internet e vedere la velocità)
traceroute
"traccia il percorso"... Quando navighiamo inviamo un sacco di dati. Per esempio se i server di Facebook sono in Francia, possiamo vedere che giro fanno i nostri dati per arrivare ai server di Facebook. Ogni passo è numerato e se non è composto da "* * *" significa che i nostri dati son passati attraverso una stazione (i vari snodi di internet). I numeri sulla sinistra indicano quanti punti vitali del ttl sono andati persi.
Sotto spoiler il percorso per facebook.com:
traceroute to facebook.com (173.252.110.27), 64 hops max, 52 byte packets
1 vodafone (192.168.1.1) 1.434 ms 2.352 ms 1.228 ms
2 * * *
3 * * *
4 83.224.40.221 (83.224.40.221) 56.835 ms 55.823 ms 56.513 ms
5 83.224.40.197 (83.224.40.197) 52.881 ms 54.314 ms 52.890 ms
6 85.205.14.101 (85.205.14.101) 55.692 ms 61.583 ms 60.078 ms
7 facebook.mix-it.net (217.29.66.131) 74.470 ms 66.788 ms 52.794 ms
8 ae8.bb02.ams2.tfbnw.net (31.13.29.130) 81.995 ms 76.063 ms 77.143 ms
9 xe-1-0-0.dr01.snc4.tfbnw.net (74.119.76.11) 77.914 ms
ae7.bb02.lhr2.tfbnw.net (173.252.64.1) 116.395 ms
xe-1-0-0.dr01.snc4.tfbnw.net (74.119.76.11) 80.690 ms
10 be5.bb01.dca1.tfbnw.net (31.13.31.2) 188.997 ms
be5.bb02.dca1.tfbnw.net (31.13.30.236) 171.220 ms
ae6.bb01.lga1.tfbnw.net (204.15.23.17) 155.024 ms
11 ae13.bb04.frc1.tfbnw.net (204.15.20.75) 175.028 ms
ae9.bb02.frc1.tfbnw.net (31.13.31.235) 177.920 ms 175.599 ms
12 ae40.dr01.frc1.tfbnw.net (31.13.27.67) 173.485 ms
ae8.bb03.frc1.tfbnw.net (31.13.24.88) 178.157 ms
ae1.dr03.frc1.tfbnw.net (31.13.27.76) 179.276 ms
13 * * *
14 * * *
15 * * *
16 * edge-star-shv-13-frc1.facebook.com (173.252.110.27) 1264.955 ms 176.015 ms
Ben presto vedrete che arriviamo all'indirizzo frc1.tfbnw che penso stia per (france)(server 1).(TheFaceBookNetWork).
say(mac)
Questo commando fa letteralmente parlare il computer (solo su mac). Serve per creare bashscripts per non udenti, oltre che spaventare a morte Milla (ma sopratutto questo xD). È molto facile usarlo: say "ciao Milla, non spaventerti".
halt
Questo commando di emergenza, serve se per puro caso perdete il controllo del vostro PC. (ma serve anche per fare gli scherzi ai compagni di banco a scuola). Questo commando arresta, ferma e distrugge ogni processo più velocemente possibile. È un modo molto brusco per fermare il PC. Molto bastardo. Basta digitare "halt".
chmod
change mode, serve per cambiare i permessi di un file. È un numero a 3 cifre. Ogni cifra è una maschera dei permessi.
Il massimo dei permessi in unix sono 777, il minimo dei permessi è 000.
Per creare una maschera basta sommare i permessi.
1 = permesso di eseguire
2 = permesso di scrivere
4 = permesso di leggere
4+2+1 = 7 (massimo dei permessi).
Però questi permessi vengono suddivisi in 3 "ambienti".
1) proprietario
2) gruppo
3) utente
Per esempio i permessi: 710 significano: 7(proprietario), quello che ha creato il file, può farci tutto. 1(Gruppo) Quelli che sono nello stesso gruppo del proprietario, possono eseguire il file (per esempio se è un file exe). 0 (Tutti gli altri) non possono farci niente.
La sintassi è la seguente: chmod 710 nomefile.estensionefile.
5) Dove posso informarmi?
Il terminal Bash (o anche sh = shell) include un commando utilissimo. Si chiama "man" che sta per "manuale", che richiama le "manualpages". Se volete sapere di più sul funzionamento di un commando, come "nano" o "echo" (funziona con tutti i commandi) potete digitare: man (commando). Vi aprirà una schermata con le istruzioni del commando. Per chiudere la finestra con le istruzioni, potete premere "q". Durante i miei test mi hanno salvato il culo di brutto.
6) Saluto e fonte
Un saluto a tutti gli utenti del MangaAnimeWorld da parte mia, flexlex.
Un saluto particolare a Rory che mi ucciderà se troverà eventuali errori xD
Un saluto a Milla, alla quale ho fatto sudare i nani, lanciando cd. (Dovevamo modificare le impostazioni del server apache pre-installato su Mac. Quindi i commandi erano:sudo -i; cd /etc/apache2/; nano httpd.conf).
Le fonti per questo articolo sono gli appunti della terza superiore, dove abbiamo imparato ad usare il terminale e i suoi vari commando.