Scripts partagés dans Linux
Vous êtes satisfait car vous avez créé vos premiers script BASH ou script PHP. Pour que tous les utilisateurs de l'ordinateur puissent les utiliser, vous pouvez les placer dans les répertoires les plus courants.
Les répertoires courants
Pour que tous les utilisateurs de l'ordinateur puissent utiliser les scripts, vous pouvez les placer dans les répertoires les plus courants :
/usr/local/bin
: Ce répertoire est utilisé pour stocker les commandes et les scripts utilisateur installés. Il est accessible pour tous les utilisateurs, mais nécessite des privilèges d'administrateur pour y installer des scripts.
/usr/bin
: Ce répertoire est utilisé pour stocker les commandes système. Il est également accessible pour tous les utilisateurs, mais nécessite des privilèges d'administrateur pour y installer des scripts.
/usr/sbin
: Ce répertoire est utilisé pour stocker les commandes système qui nécessitent des privilèges d'administrateur pour être exécutées. Il nécessite des privilèges d'administrateur pour y installer des scripts.
Il n'y a pas de règles spécifiques pour les scripts personnels partagés. Ces répertoires ne sont pas les seuls où vous pouvez placer un script. Ils ont l'avantage d’être accessible à l'ensemble des utilisateurs tant au niveau des droits que des déclaration dans la variable PATH.
La variable PATH
Le répertoire choisi doit être déclaré dans la variable d'environnement PATH. Cela signifie que lorsque l'utilisateur exécute une commande, le système cherchera dans ce répertoire en plus des autres répertoires déjà inclus dans PATH pour trouver l'exécutable correspondant.
Voir la page concernant la variable PATH
Rendre exécutable un script
Il faut rendre le script exécutable en utilisant la commande chmod
: Cette commande permet de changer les permissions d'un fichier. Pour rendre un script exécutable pour tout le monde, vous pouvez utiliser la commande suivante :
sudo chmod +x <nom_du_script>
–
Pour rendre un script exécutable, il doit commencer par un shebang (#!
) qui indique au système quel interpréteur utiliser pour exécuter le script.
/opt
Extrait de la page /opt
Définition du répertoire /opt
Le dossier /opt
sur un système Linux est généralement utilisé pour stocker des logiciels tiers ou des applications qui ne font pas partie des paquets de distribution standard. Il peut contenir des sous-dossiers pour chaque logiciel ou application installée, chacun contenant les fichiers nécessaires pour l'exécution de ce logiciel ou application. Dans la plupart des cas, de tels packages suivent une structure de sous-répertoires prévisible ; la plupart stockent leurs binaires dans /opt/nomdupackage/bin/
et leurs pages de manuel dans /opt/nomdupackage/man/
.
Les paquets installés dans /opt
sont généralement installés par l'utilisateur ou par un administrateur, et non pas par le système de gestion de paquet (comme apt, yum, dnf, etc) qui est utilisé pour installer les paquets de la distribution standard. Certains logiciels peuvent également placer des liens vers leurs exécutables dans /usr/local/bin
pour faciliter l'accès.
Il est courant de voir des sous-répertoires créés dans /opt
pour organiser les différents programmes et applications installés. Par exemple, un développeur pourrait installer un jeu dans /opt/games/mygame
, ou un utilisateur pourrait installer un logiciel de traitement de texte dans /opt/office/wordprocessor
. Il est également courant de voir des sous-répertoires pour les différentes versions d'une application, comme /opt/myapp/1.0
et /opt/myapp/2.0
.
–
Il est possible de créer un lien symbolique (également appelé raccourci ou alias) vers un script qui se trouve dans /usr/local/bin
depuis un emplacement comme /opt
. Cela permet à l'utilisateur d'accéder facilement au script depuis un autre emplacement, sans avoir à se rappeler ou saisir l'emplacement complet du script. Pour créer un lien symbolique, vous pouvez utiliser la commande ln -s
suivie de l'emplacement du script cible et de l'emplacement où vous souhaitez créer le lien. Par exemple:
ln -s /usr/local/bin/myscript /opt/myapp/myscript
Cela crée un lien symbolique nommé myscript
dans le répertoire /opt/myapp
qui pointe vers le script myscript
dans le répertoire /usr/local/bin
.
–
Il est également possible de créer un script dans /usr/local/bin
qui exécute un programme qui se trouve dans /opt
. Cela permet à l'utilisateur d'accéder au programme en utilisant un nom de commande simple, plutôt que de devoir saisir l'emplacement complet du programme dans /opt
.
Pour ce faire, vous pouvez créer un script shell dans /usr/local/bin
qui contient les commandes pour exécuter le programme dans /opt
. Par exemple :
#!/bin/bash /opt/myapp/myprogram
Le script doit avoir les autorisations d'exécution.
Enfin, les programmes dans /opt
peuvent nécessiter des librairies ou des exécutables pour fonctionner, il est donc important de s'assurer que ces dépendances soient présentes et accessibles.
Les répertoires dans /home/username
Les répertoires dans /home/<username>
peuvent également contenir des scripts personnels à partager. La contrainte et de partager le dossier et que chaque utilisateur écrive le chemin complet des scripts.
/home/<username>/bin
: Ce répertoire est généralement utilisé pour stocker les commandes et les scripts utilisateur. Par défaut, il est uniquement accessible pour l'utilisateur <username> qui l'a créé, donc il n'est pas nécessaire d'avoir des privilèges d'administrateur pour y installer des scripts. Les droits peuvent être modifier sur ce dossier afin de rendre accessible les scripts de ce dossier aux autres utilisateurs de la machine.
/home/<username>/.bin
: Ce répertoire est généralement utilisé pour stocker les commandes et les scripts utilisateur personnels. Il est caché (car le point en début de nom) donc il n'est pas visible pour les autres utilisateurs. Il est plus adapté pour stocker des scripts qui ne doivent pas être partagés ou modifiés par d'autres utilisateurs.
Le plus commun est d'utiliser un des trois dossiers cité au début de l'article.
— Cédric ABONNEL dit Cédrix et CPT - Article publié le Dimanche 15 Janvier 2023