GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter un script .sh à partir de n'importe quel chemin dans un terminal ?

Vous devez copier ou lier le script dans un répertoire qui se trouve sur le $PATH. Généralement /usr/bin et /usr/local/bin/ sont sur le chemin, ce sont donc de bons emplacements pour lier ou copier le script.

ln -s /path/to/your/script /usr/local/bin

Si vous n'êtes pas root, vous devrez soit sudo cette commande ou exécutez-la en tant qu'utilisateur root.


Une option consiste simplement à saisir le chemin d'accès au script :

~/Desktop/script

Cela fonctionne bien, mais devient un peu lourd.

C'est ce que le PATH la variable d'environnement est pour. Et c'est ce que $HOME/bin est pour.

  1. Créez-vous un répertoire $HOME/bin . Mettez-y tous vos scripts exécutables (rendez-les exécutables avec chmod +x script si besoin est). De cette façon, il n'y a qu'un seul endroit pour rechercher les scripts que vous souhaitez exécuter.
  2. Ajouter $HOME/bin à votre PATH . J'ai mis le mien devant :PATH="$HOME/bin:$PATH , mais vous pouvez le mettre à l'arrière si vous préférez.
  3. Mettez à jour votre .profile ou .bash_profile (ou éventuellement .bashrc ) fichier pour définir PATH . Méfiez-vous cependant d'un PATH qui ne cesse de croître.

Comme tripleee l'a noté, une fois la commande installée dans un répertoire sur PATH , vous ne tapez plus ./script , mais juste script . C'est exactement comme si vous tapiez ls et non /bin/ls , etc. Une fois le programme installé dans un répertoire de votre PATH , il est (à de nombreuses fins) impossible à distinguer d'une commande fournie par le système.

J'ai environ 500 scripts et programmes dans mon $HOME/bin répertoire.

Notez que cela ne nécessite aucun privilège particulier. Si vous avez un accès administrateur à votre machine et que vous pensez que d'autres utilisateurs pourraient trouver vos commandes utiles, vous pouvez installer les scripts/programmes dans l'un des répertoires fournis par le système sur votre PATH . Cependant, il est généralement préférable de ne pas ajouter de programmes à l'un des éléments suivants :

  • /bin
  • /usr/bin
  • /sbin
  • /usr/sbin

Il y a souvent/habituellement /usr/local/bin qui est un endroit approprié pour les commandes largement utilisées non fournies par le système.

Il serait préférable d'utiliser chmod a+x,go-w script; vos scripts ne doivent pas être accessibles en écriture par d'autres personnes. Vous pouvez même simplement utiliser chmod 555 script ou chmod 755 script . J'ai tendance à garder mes scripts non inscriptibles. De cette façon, je dois passer par un processus de changement formel avec le système de contrôle de version. Cela signifie qu'il y a moins de risques de changements incontrôlés.


Linux
  1. Comment exécuter "find -exec {} ; ?

  2. Comment diriger les commandes vers n'importe quel terminal ?

  3. Comment exécuter un script ? ?

  4. Comment exécuter des scripts Python à partir du shell

  5. Comment exécuter un script shell sur une console Unix ou un terminal Mac ?

Comment exécuter un script bash {7 méthodes}

Comment exécuter un script Python en PHP

Comment exécuter un script bash

Comment exécuter un script shell au démarrage

Exécuter un script shell dans un nouveau terminal à partir du terminal actuel

Comment exécuter un script bash via un chemin absolu ?