Ciao raga come va tutto bene?
Avete mai sentito parlare di Shell? Si ja dovreste...
Comunque per chi non lo sapesse, la Shell è l'interfaccia testuale di un sistema operativo, in questo caso parliamo di Linux...
Con questo post vi guido brevemente e semplicemente tra i comandi che vengono usati spesso per velocizzare alcune operazioni, si avete capito bene, anche se l'interfaccia grafica è comoda, mai nulla batterà l'interfaccia testuale.

Allora per avviare una schell in una delle distribuzioni linux basta avviare il terminale, per ubuntu:
  • Applicazioni-->Accessori-->Terminale
oppure se per voi è troppo scocciante fare tutto questo, potete velocizzare l'operazione con
  • Alt+F2 compare una piccola finestra esegui applicazione, scrivete gnome-terminal e premete invio
Aperto il terminale vi trovate una schermata con un cursore lampeggiante, prima del cursore c'è una scritta del tipo:
  • nomeutente@nomeutente-desktop:~$
analizziamo in dettaglio:
  • nomeutente è il nome dell' utente che avete inserito al momento dell'installazione
  • nomeutente-desktop: indica che vi trovate nella cartella home del vostro sistema
  • il simbolo ~$ indica che siete un utente normale senza diritti di amministrazione (invece il simbolo # indica che siete amministratore e troverete root al posto del vostro nome utente).
Allora il comando più facile che possiate imparare e ricordare è exit se lo digitate e premete invio il terminale si chiuderà, quindi sembra logico il suo scopo.
Linux si dice case sensitive (no che vi prevede il futuro) ovvero che fa distinzione tra lettere maiuscole e minuscole, questo vuol dire che la cartella prova è diversa da Prova e ancora da PrOvA, ricordatevi di questa cosa se non volete incappare nel solito errore: Nessun file o directory. Il carattere $ che di solito trovate nei blog prima di un comando, indica che quell'operazione va fatta da semplice utente, non da amministratore, quindi non dovete copiarlo, penso per voi non sia un problema se uso directory al posto di cartella.

Vediamo ora i comandi , ne esistono centinaia, ma questi sono quelli usati più spesso:

  • touch nome-file (comando per creare file di testo nella directory corrente)
  • mkdir nome-directory (comando per creare una directory)
  • mkdir -p nome-directory/nome sottodirectory (crea un directory con all'interno una sottodirectory)
  • cp (copia un file o directory es. cp $HOME/prova $HOME/Desktop in questo esempio si copia il file prova dalla propria cartella personale nel desktop)
  • cp -fr (copia cartelle e file in modo ricorsivo)mv (sposta file e directory, mv $HOME/prova $HOME/Desktop sposta il file prova dalla propria cartella personale nella scrivania)
  • mv (il comando mv può pure essere utilizzato per rinominare file o cartelle es. mv prova prova1 rinomina il file prova in prova1)
  • rm file (comando da utilizzare per cancellare file o cartelle)
  • rm -fr nome-directory (cancella le cartelle ed i rispettivi file in modo ricorsivo)
  • pwd (mostra la posizione in cui ci troviamo in questo momento)
  • cat file (visualizza il contenuto di un file di testo)
  • cat file | more (visualizza il contenuto di un file e lo rindirizza tramite pipe al comando more, utile nel caso ci troviamo di fronte file di grosse dimensioni)
  • cat origine > destinazione (copia il contenuto del file origine all'interno del file destinazione se il file non esiste ne crea uno nuovo)
  • tail file (mostra le ultime 10 righe del file di testo)
  • head file (mostra le prime 10 righe del file di testo)
  • ln -fs file file1 (permette di creare un link simbolico di un file es. sudo ln -fs /home/utente/prova /usr/bin in questo esempio si crea un link del file prova dentro la cartella /usr/bin in questo modo basterà digitare da terminale prova per lanciare il file)
  • sudo chmod a+rwx file (permette di dare ha tutti gli utenti i permessi di lettura,scrittura,esecuzione utile questo comando quando si deve rendere esecutivo uno script, i vari utenti sono raffigurati così augo (a=all, u=utente, g=gruppo, o=altri) le opzioni dei permessi invece così rwx (r=lettura, w=scrittura, x=esecuzione))
  • sudo chmod -R a+rwx directory (con questa sintassi, indichiamo che vogliamo dare i permessi di lettura, scrittura ed esecuzione ad una cartella per tutti gli utenti)
  • sudo chown utente:gruppo file (permette di cambiare proprietario e gruppo ad un file)
  • sudo chown -R utente:gruppo directory (permette di cambiare proprietario e gruppo ad una directory)
  • zip -r nome-da-dare.zip archivio-da-comprimere (permette di archiviare file nel formato compresso zip es. zip prova.zip $HOME/archivio in questo esempio si comprime una cartella di nome archivio, dando come nome prova.zip, per ulteriori opzione del comando dare da terminale man zip)
  • unzip file.zip (permette di estrarre un archivio zip)
  • tar czvf nome-assegnato-archivio.tar.gz archivio-da-comprimere (permette di comprimere un archivo nel formato tar.gz. Per es. tar czvf prova.tar.gz $HOME/cartella , con questo esempio comprimiamo un cartella nel formato tar.gz dandogli come nome prova.tar.gz)
  • tar zxvf archivio.tar.gz (permette di estrarre un archivio di nome tar.gz)
  • tar cjvf nome-assegnato.tar.bz2 archivo (questo comando ci permette di comprimere dei file e cartelle nel formato tar.bz2)
  • tar jxvf archivio.tar.bz2 (comando per estrarre, un archivio tar.bz2)
Adesso non vi resta che sperimentare e smanettare cn questi comandi, ovviamente non combinate pasticci...