J'ai quelques scripts bash très simples que j'ai bricolé 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 si .. alors des déclarations vraiment. Comme cela doit être exécuté comme sudo, serait-il préférable de placer mon script dans / usr / bin (ou tout autre emplacement dans PATH), affiché dans root.root et chmod dans 700?
15
git
pour contrôler la version de vos scripts, placer des copies locales du dépôt git quelque part dans lequel vous aimez~
, puis créer un lien symbolique entre les scripts~/bin
.git
commegithub
dans les nuages?/usr/local/bin
. Sinon, je dirais juste les mettre~/bin
. Vos propres scripts dans les deux répertoires doivent être en sécurité lors de la mise à niveau.~/bin
c'est le meilleur endroit pour la plupart des scripts, car vous n'avez pas besoinsudo
de les modifier comme vous le faites lorsqu'ils sont stockés dans/usr/local/bin
.Réponses:
J'enregistre mes propres scripts dans
/opt/scripts
.Si votre script doit être exécutable par chaque utilisateur du système, vous pouvez créer un lien symbolique vers
/usr/bin
.Si seul root doit exécuter le script, vous pouvez créer un lien symbolique vers
/usr/sbin
.Commande pour ajouter un lien symbolique dans
/usr/bin/
:Vous pouvez exécuter le script, car se
/usr/bin/
trouve par défaut dans votre PATH .la source
/usr/bin
comme cible pour le script shell utilisateur / local - que ce soit/usr/local/bin
(ou/opt/bin
) selon la norme de hiérarchie du système de fichiers - Debian Wiki pour éviter les conflits (la plupart du temps, vous voulez que les scripts fournis par Ubuntu aient priorité)./usr/local/bin
remplacements/usr/bin
, car ils viennent plus tard dans le chemin. C'est exprès, car le système n'y place pas de fichiers, vous pouvez donc y placer des fichiers, qui DEVRAIENT remplacer ceux fournis par le système.Si aucun autre utilisateur que vous n'utilise ces scripts:
Ensuite, vous pouvez les garder
/home/$USER/bin
. Créez lebin
dossier s'il n'y est pas et déplacez-y les fichiers. Le dossier bin de votre domicile sera automatiquement ajouté à la variable d'environnement PATH. Le code est dans.profile
:Voir Comment ajouter / home / nom d'utilisateur / bin à $ PATH?
Ou dans certains systèmes, il peut être dans
.bashrc
:Merci Elder Geek
Si ces scripts doivent être utilisés par d'autres utilisateurs:
Alors soit
/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
la source
J'ai un répertoire que j'utilise pour la collecte rapide de mes outils locaux ou des choses que je déploie sur divers ordinateurs
/usr/local/apollo
. Il existe des branches hors de ce répertoire pourflags
,bin
etlogs
.Pour les applications que je télécharge et installe en dehors des
apt-get
référentiels par défaut sont placés dans/opt/
et un répertoire par le nom de l'application, avec un sous-répertoire de plus pour la version spécifique de l'application. De cette façon, ma version compilée d'une application commevlc
oueclipse
ne sera pas en conflit avec la version distribuée.Mon utilisation
/opt
est la façon dont il est essentiellement officiellement conçu.Au fait, les répertoires
/usr/local/bin
,/usr/local/apollo
et/opt
survivent à une nouvelle installation de la version du système d'exploitation écrasée.la source
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
J'aime que le fait/usr/local/bin
soit déjà sur le chemin une chose de moins à retenir. J'aime votre méthode,/opt/program/version
je peux l'utiliser pour les trucs du noyau que j'obtiens et compiler comme EnhanceIO où ils changent les choses entre les versions du noyau. Un/apollo
atterrissage sur la lune est-il un favori personnel ou a-t-il une signification pour Ubuntu?/usr/local/bin
etusr/local/sbin
telle que celle-ci est supprimée lors des mises à niveau?/usr/local
répertoires, mais ne met rien dans aucun d'entre eux. Ces répertoires sont remplis par l'utilisateur. De nombreux programmes source en dehors des référentiels donnent à l'utilisateur la possibilité de sélectionner où il souhaite que l'installation aille. La valeur par défaut dans les fichiers de configuration est/usr/local/bin
. Par conséquent, en raison de la fréquence d'utilisation de ces répertoires, ils sont inclus par défaut dans le chemin de l'utilisateur. Par défaut, le système recherche~/bin
et l'ajoute au chemin s'il existe.~/bin
pendant l'installation ou chaque démarrage? Quelle est la difference entresbin
etbin
? Ils semblent coexister, il doit y avoir des quasi-règles sur lesquelles vous choisissez en fonction du type de programme, n'est-ce pas?~/bin
chemin ... il n'est pas ajouté lors de l'installation. Le système le vérifie à chaque connexion et l'ajoute au $ PATH s'il existe lors de la connexion. Regardez les deux dernières lignes de vos~/.profile
paramètres.