Guida comandi

Da RELug :: Reggio Emilia Linux User Group.
Versione del 10 apr 2011 alle 09:37 di 194.160.126.166 (discussione) (Implementazione)

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??

LyQuIm Wow! Great idea! JJWY

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.