Guida comandi

Da RELug :: Reggio Emilia Linux User Group.

La seguente guida è stata realizzata per capire l'importanza di avere una cartella bin differenziata per ogni singolo utente. Il sistema su cui è stata implementata è Ubuntu 10.04 LTS x86_64.

Introduzione

Vi siete mai chiesti dove siano situati i comandi che lanciate da shell all'interno del vostro sistema? Ecco alcune interessanti directory (usando la gerarchia standard dei filesystem Unix-like):

  • /bin/ : comandi essenziali che devono essere lanciati in single user mode. Esempi di comandi sono ls e cat.
  • /sbin/ : comandi essenziali di sistema. Molti di essi devono essere lanciati in modalità kernel (kernel-mode). Esempi di comandi sono init e mount.
  • /usr/bin/ : comandi non essenziali che non necessitano di essere lanciati in single user mode.
  • /usr/sbin/ : comandi di sistema non essenziali.

Bene, ora sappiamo dove sono situati i vari programmi: e se ne creassimo uno tutto nostro? Ad esempio uno script reso eseguibile.
In questo caso, per lanciare lo script, dovremmo ogni volta digitare il nome dello script preceduto dal suo percorso.
Facciamo un esempio.
Poniamo di avere uno script che ci aggiorna il sistema chiamato update, il cui contenuto è il seguente:

 #!/usr/bin/env bash
 
 sudo apt-get update
 sudo apt-get upgrade
 sudo apt-get dist-upgrade

Lo script sopracitato è stato reso eseguibile da un semplice : chmod +x update.
Ora, se volessimo lanciare lo script, dovremmo digitare quanto segue:

 $ ./update

Il che è vero soltanto quando siamo nella stessa cartella in cui risiede lo script. E se questo risiedesse in un'altra cartella? Se fosse in ~/Documenti/Script/, come dovremmo fare?
Così:

 $ ~/Documenti/Script/update

E allora come possiamo fare per digitare da terminale solamente update??

Implementazione

Cominciamo creando una cartella chiamata bin nella propria home directory.
Il carattere ~ (tilde) specifica la home directory dell'utente con cui ci si è collegati, perciò apriamo un terminale e digitiamo:

 $ mkdir ~/bin

Ora entriamoci:

 $ cd ~/bin

e spostiamoci lo script sopracitato (poniamo fosse situato nella cartella ~/Documenti/Script/):

 $ mv ~/Documenti/Script/update .

Il punto indica la cartella corrente.
Il più è fatto! Il passo successivo da fare è dire al sistema di includere la cartella bin appena creata nella categoria delle cartelle contenenti programmi e script eseguibili (come /usr/bin/ ad esempio):

 $ PATH=$PATH:/home/nomeUtente/bin

$PATH è una variabile d'ambiente contenente la lista delle cartelle contenenti programmi eseguibili: il comando appena dato ci permette di aggiungere a tale variabile anche la cartella bin dell'utente desiderato (ricordatevi di sostituire "nomeUtente" col vostro nome utente).

Consiglio

All'avvio la variabile d'ambiente $PATH viene reimpostata. Per evitare la perdita della cartella ~/bin sarà necessario modificare il file .bashrc, presente nella propria home directory, aggiungendo la riga sopracitata.

Test

Per verificare se ciò che abbiamo fatto è corretto, digitate da terminale:

 $ update

Yeah! It's run!

Consiglio

Controllate sempre che non esistano già dei comandi col nome dello script che intendente eseguire da ~/bin altrimenti verrà eseguito il vostro piuttosto che quelli presenti in altre directory come /bin o /usr/bin.