BASH: Comandi UNIX

BASH è l’acronimo di bourne again shell. Useremo una CLI, ovvero una Command Line Interface (interfaccia a linea di comando). I comandi saranno impartiti scrivendoli nell’applicazione Terminal presente in tutti i sistemi UNIX-LIKE.

Se ti interessa la storia di UNIX e dei sistemi derivati ti lascio il link al il mio articolo: UNIX – Un Viaggio Spaziale

In questo articolo vedremo i comandi UNIX fondamentali per :

Sintassi generica di un comando

comando -flag argomento

Directories (cartelle)

ls

ls elenca il contenuto della directory dove viene invocato

output comando ls
output comando ls
ls -a  # elenca tutti i file inclusi i file nascosti
ls -R # elenca tutti i file ricorsivamente, scendendo lungo l'albero delle directory #dal percorso specificato
ls -l # elenca i file in formato lungo, cioè con un numero di indice, il nome del #proprietario, il nome del gruppo, le dimensioni e le autorizzazioni.
ls -s # elenca i file con la loro dimensione.
pwd
output del comando pwd (print working directory)
output del comando pwd (print working directory)
cd

cd (change directory) permette di spostarsi da una directory all’altra

output del comando cd
output del comando cd
cd music
cd user/Documents/              (il nome dell'utente sostituirà user)
cd ~ torna alla directory home
cd .. torna ad un livello sopra
cd - torna alla directory precedente

Gestione dei files

Passiamo ora alla gestione dei files tramite terminale

cp
cp file_to_copy.txt new_file.txt
cp -r dir_to_copy/ new_copy_dir/
#il flag -r (recursive) serve per copiare tutto il contenuto della directory

cp (copy) copia un file o una directory

output del comando cp
output del comando cp
rm file_to_copy.txt
rm -r dir_to_remove/                       #directory vuota
rm -rf dir_with_content_to_remove/         #directory con del contenuto

rm (remove) permette di cancellare un contenuto

output del comando mv
output del comando mv

e quindi il comando move per spostare file o directory

mv source_file destination_folder/                     #Sintassi
mv command_list.txt commands/
mv old_file.txt new_named_file.txt                     #per rinominare i file mantenendoli nella stessa directory)
output del comando mkdir
output del comando mkdir

con i seguenti comandi creeremo le directory

mkdir images/                               #crea una sottodirectory
mkdir -p movies/2004/              #crea una sottodirectory con al suo interno una directory

Manualistica

man (manual) comando permette di visualizzare il manuale del comando specificato, possiamo anche ricorrere a nome_comando –help

output del comando man mkdir
output del comando man mkdir

touch permette di creare un file specificando nome ed estensione e permette anche di cambiare la data di modifica di un file

output del comando touch math.txt
output del comando touch math.txt
touch -m new_example.txt  #aggiorna il <strong>datetime</strong> di modifica del file con quello in cui viene invocato il comando

I Permessi UNIX

chmod (change mode) permette di cambiare i permessi di un file che sono i seguenti (permessi base)

  • r (lettura)
  • w (scrittura)
  • x (esecuzione)
chmod +x script #rende eseguibile il file

./ è la sintassi che deve precedere uno script o un programma perché vengano mandati in esecuzione.

Scriviamo il classico Hello World su standard output (lo schermo) nel linguaggio C:

compilazione programma C con gcc ed esecuzione con ./
compilazione programma C con gcc ed esecuzione con ./

Programmare lo spegnimento della macchina

shutdown permette di spegnere la macchina che stiamo utilizzando. Di seguito alcune implementazioni

shutdown now
shutdown 07:40
shutdown -c   #per annullare un comando di shutdown


Installare i programmi

sudo (super user do) che è da invocare prima di un comando che richiede i privilegi di admin (amministratore) della macchina.

Se volessi installare un programma per esempio GIMP (alternativa open source e gratuita di Photoshop) dovrei digitare :

output dei comandi sudo apt install
output dei comandi sudo apt install

Ovviamente verrà richiesta la password del super user. Una volta immessa inizierà l’installazione del software.

Notiamo che apt (Advanced Packaging Tool) è il gestore dei pacchetti della distribuzione GNU/Linux Debian e derivate, come Ubuntu ,nel mio caso.

Altri gestori di pacchetti sono:

  • yum per i sistemi basati su Red Hat (Fedora, CentOS)
  • pacman per sistemi basati su Arch (Manjaro, Arco Linux)
sudo yum install gimp
sudo pacman -S gimp

I files compressi

unizip permette di estrarre il contenuto di un file con estensione .zip . Questi file sono file compressi.

unzip rune_pages.zip

tar è stato originariamente progettato per la creazione di archivi di file di archivio su nastro magnetico che è il motivo per cui ha il suo nome “ Tape ARchive”

quindi per creare un archivio:

tar -cf archive.tar file1 file2 file3
tar -cf backup.tar /home/user
output del comando tar per creare un archivio
output del comando tar per creare un archivio

e per estrarre i dati da un archivio .tar usiamo il seguente comando:

tar -xf images_backup.tar
output del comando tar per estrarre i dati da un archivio
output del comando tar per estrarre i dati da un archivio

Il comando tar ha molte opzioni, con queste implementazioni potrai già fare molto.

Tornerò a parlare dei comandi UNIX in altri articoli, nel frattempo ti lascio il link del manuale online dei comandi: Manual Online con il quale per poter approfondire da solo questo mondo.

Pubblicato da Carlo Contardi

Carlo Contardi, docente di informatica e sviluppatore Full Stack, condivide la sua passione per la programmazione e l’informatica attraverso il suo blog Space Coding. Offre preziosi consigli e soluzioni pratiche a chi vuole imparare a programmare o migliorare le proprie abilità. 🚀👨‍💻

Translate »