GNU/Linux >> Linux Esercitazione >  >> Linux

Dov'è un buon posto permanente per installare script bash personalizzati?

Soluzione 1:

(Nota:~ si traduce come /home/user in questo post)

Personalmente, ho inserito tutti i miei script di sistema personalizzati in /usr/local/bin e tutti i miei script bash personali in ~/bin . Pochissimi programmi che installo si collocano in /usr/local/bin directory quindi non è molto disordinata ed era già nel $PATH variabile sulla maggior parte delle mie macchine.

Per aggiungere /usr/local/bin al percorso di sistema (se non è già presente) aggiungilo a /etc/profile :

PATH=$PATH:/usr/local/bin
export PATH

Per aggiungere ~/bin al percorso dell'utente aggiungi questo a ~/.bash_profile :

PATH=$PATH:$HOME/bin
export PATH

A volte il .bash_profile predefinito avrà un'istruzione if che aggiunge automaticamente ~/bin a $PATH se esiste, quindi crea il ~/bin e apri un nuovo terminale per vedere se il tuo lo fa già.

Soluzione 2:

/usr/local/ è davvero il posto giusto, mentre /opt è proprio per le applicazioni di terze parti; "/opt è riservato all'installazione di pacchetti software applicativi aggiuntivi." Questo fa parte del Filesystem Hierarchy Standard.

Vedi http://www.pathname.com/fhs/pub/fhs-2.3.html per una discussione su /opt.

Per /usr/local/, è per "uso da parte dell'amministratore di sistema". Basta non dimenticare le cose lì dentro -- documentalo.

Soluzione 3:

Storicamente useresti qualcosa come /opt. Qualsiasi cosa va bene fintanto che viene aggiornata in $PATH per gli utenti che dovrebbero averlo (quindi qualsiasi cosa in /home è una cattiva idea).

Soluzione 4:

/usr/share/clojure sembra un posto comune dove mettere i binari e le librerie di clojure — perché non lo so, sembra naturale per /usr/local/share/clojure — quindi creando un site la sottodirectory sotto this per questi script bash sembra a posto.

Il punto generale è che ha più senso organizzare gli script per funzione, non avere tutti gli script bash nello stesso posto.

Soluzione 5:

/usr/local , credo ci sia una certa confusione sul significato di "locale".

A quanto ho capito, "locale" non significa "originato su/dalla macchina locale" ma, più semplicemente, "specifico della macchina locale", che può o meno avere origine su/dalla macchina locale.


Linux
  1. Utilizzo di Bash per l'automazione

  2. Gestione degli errori negli script Bash

  3. Utilizzare l'estensione .sh o .bash per gli script Bash?

  4. Utilizzo del comando Linux Basename negli script Bash

  5. Come fare eco a una nuova riga negli script di Bash Shell

Come creare documenti con gli script Bash

Come utilizzare il comando echo negli script Bash in Linux

Come installare Linux Bash Shell su Windows 10

Utilizzo del comando Linux Dirname negli script Bash

Bash Beginner Series #3:Passare argomenti agli script Bash

Impara gli script Bash multi-threading con GNU Parallel