GNU/Linux >> Tutoriels Linux >  >> Linux

Où est un bon endroit permanent pour installer des scripts bash personnalisés ?

Solution 1 :

(Remarque :~ se traduit par /home/user dans cet article)

Personnellement, je mets tous mes scripts système personnalisés dans /usr/local/bin et tous mes scripts bash personnels en ~/bin . Très peu de programmes que j'installe se placent en /usr/local/bin répertoire donc il n'est pas très encombré et il était déjà dans le $PATH variable sur la plupart de mes machines.

Pour ajouter /usr/local/bin à votre chemin système (s'il n'y est pas déjà) ajoutez ceci à /etc/profile :

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

Pour ajouter ~/bin au chemin de votre utilisateur ajoutez ceci à ~/.bash_profile :

PATH=$PATH:$HOME/bin
export PATH

Parfois, le .bash_profile par défaut le fichier aura une instruction if qui ajoute automatiquement ~/bin à $PATH s'il existe, alors créez le ~/bin et ouvrez un nouveau terminal pour voir si le vôtre le fait déjà.

Solution 2 :

/usr/local/ est vraiment le bon endroit, tandis que /opt est vraiment pour les applications tierces ; "/opt est réservé à l'installation de progiciels d'application complémentaires." Cela fait partie de la norme de hiérarchie du système de fichiers.

Voir http://www.pathname.com/fhs/pub/fhs-2.3.html pour une discussion sur /opt.

Pour /usr/local/, c'est pour "l'utilisation par l'administrateur système". N'oubliez pas tout ce qui s'y trouve - documentez-le.

Solution 3 :

Historiquement, vous utiliseriez quelque chose comme /opt. Tout va bien tant qu'il est mis à jour dans $PATH pour les utilisateurs qui sont censés l'avoir (donc tout ce qui se trouve dans /home est une mauvaise idée).

Solution 4 :

/usr/share/clojure semble être un lieu commun pour mettre les binaires et les bibliothèques de clojure - pourquoi je ne sais pas, cela semble naturel pour /usr/local/share/clojure — créant ainsi un site sous-répertoire sous celui-ci pour ces scripts bash semble correct.

Le point général est qu'il est plus logique d'organiser les scripts par fonction, de ne pas avoir tous les scripts bash au même endroit.

Solution 5 :

/usr/local , je crois qu'il y a une certaine confusion dans le sens de "local".

Si je comprends bien, "local" ne signifie pas "provenant de/de la machine locale" mais, plus simplement, "spécifique à la machine locale", qui peut ou non provenir de/de la machine locale.


Linux
  1. Gestion des erreurs dans les scripts Bash

  2. Utiliser l'extension .sh ou .bash pour les scripts bash ?

  3. Utilisation de la commande Linux Sleep dans les scripts Bash

  4. Comment faire écho à une nouvelle ligne dans les scripts shell bash

  5. Exécutez tous les scripts shell dans le dossier

Comment créer des documents avec des scripts Bash

Comment utiliser la commande echo dans les scripts Bash sous Linux

Comment installer Linux Bash Shell sur Windows 10

Utilisation de la commande Linux Dirname dans les scripts Bash

Bash Beginner Series #3 :Passer des arguments aux scripts Bash

Apprenez les scripts Bash multi-threading avec GNU Parallel