web-dev-qa-db-fra.com

Où devrais-je mettre mes scripts bash

J'ai quelques scripts bash très simples que j'ai bricolés pour des choses que je fais régulièrement. L'un d'eux consiste à exécuter la duplicité pour effectuer mes tâches de sauvegarde. Rien d'intelligent, juste un tas de déclarations si… alors vraiment. Comme cela doit être exécuté en tant que Sudo, serait-il préférable de placer mon script dans/usr/bin (ou à un autre emplacement dans PATH), de le placer sur root.root et de chmod sur 700?

15
hatterman

Je sauvegarde mes propres scripts dans /opt/scripts.

Si votre script doit pouvoir être exécuté par tous les utilisateurs du système, vous pouvez créer un lien symbolique vers /usr/bin.

Si seule la racine doit exécuter le script, vous pouvez créer un lien symbolique vers /usr/sbin.

Commande pour ajouter un lien symbolique dans /usr/bin/:

ln -s /opt/scripts/<script> /usr/bin/

Vous pouvez exécuter le script, car /usr/bin/ est dans votre CHEMIN par défaut.

3
SynPrime

Si aucun autre utilisateur que vous n'utilise ces scripts:

Ensuite, vous pouvez les conserver dans /home/$USER/bin. Créez le dossier bin s'il ne s'y trouve pas et déplacez-y les fichiers. Le dossier bin de votre maison sera automatiquement ajouté à la variable d’environnement PATH. Le code est dans le .profile:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

Voir Comment ajouter/home/nom d'utilisateur/bin à $ PATH?

Ou, dans certains systèmes, il peut s'agir de .bashrc:

export PATH=${HOME}/bin/:${HOME}/.local/bin:${PATH}

Merci Elder Geek

Si ces scripts doivent être utilisés par d'autres utilisateurs:

Alors, /usr/local/bin ou /opt/bin sont de bonnes options. Voir Existe-t-il un emplacement standard pour placer des scripts Linux personnalisés?

J'espère que cela t'aides

17
user68186

J'ai un répertoire que j'utilise pour la collecte rapide de mes outils locaux ou d'éléments que je déploie sur différents ordinateurs dans /usr/local/apollo. Il existe des branches hors de ce répertoire pour flags, bin et logs.

Pour les applications que je télécharge et installe en dehors des référentiels par défaut apt-get, sont placées dans /opt/ et dans un répertoire du nom de l'application, avec un sous-répertoire supplémentaire pour la version spécifique de l'application. Ainsi, ma version compilée d'une application telle que vlc ou Eclipse ne sera pas en conflit avec la version distribuée.

Mon utilisation de /opt est la façon dont il a été conçu officiellement.

Soit dit en passant, les répertoires /usr/local/bin, /usr/local/apollo et /opt survivent à un nouvel écrasement de l'installation de la version du système d'exploitation.

3
L. D. James