Differenze tra le versioni di "Guida comandi"

Da RELug :: Reggio Emilia Linux User Group.
(lBJEqRQZwYpVOAGCPF)
(Annullata la modifica 564 di 75.102.44.169 (discussione))
Riga 1: Riga 1:
onffPI I'm impressed! You've managed the almost impossible.
+
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.<br>
 +
In questo caso, per lanciare lo script, dovremmo ogni volta digitare il nome dello script preceduto dal suo percorso.<br>
 +
Facciamo un esempio.<br>
 +
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''.<br>
 +
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?<br>
 +
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''.}}
 +
 
 +
[[category:Guide]]

Versione delle 09:29, 15 apr 2011

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.