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 :
- elencare i file di una directory
- gestire i files
- manuale comandi
- i permessi UNIX
- programmare lo spegnimento della macchina
- installare i programmi
- i file compressi
Sintassi generica di un comando
comando -flag argomento
Directories (cartelle)
ls
ls elenca il contenuto della directory dove viene invocato
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
cd
cd (change directory) permette di spostarsi da una directory all’altra
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
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
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)
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
touch permette di creare un file specificando nome ed estensione e permette anche di cambiare la data di modifica di un file
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:
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 :
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
e per estrarre i dati da un archivio .tar usiamo il seguente comando:
tar -xf images_backup.tar
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.