Comment rendre un fichier (par exemple un script .sh) exécutable, afin qu'il puisse être lancé depuis un terminal ?

J'ai un fichier script.sh et le type de ce fichier est un fichier shellscript. Je veux faire de ce fichier un fichier exécutable par application/x. Comment puis-je le faire ?

Solution

Vous pouvez marquer le fichier comme exécutable :

chmod +x filename.sh

Vous pouvez ensuite l'exécuter comme ceci :

./filename.sh

Si vous voulez utiliser une commande différente pour le lancer, vous pouvez ajouter un alias :

gedit ~/.bashrc

Ajoutez ceci à la fin du fichier :

alias ='/home//filename.sh'

Ouvrez une nouvelle session de terminal ou tapez source ~/.bashrc dans votre terminal pour appliquer. Ensuite, utilisez simplement le nouveau nom pour lancer le script.

Commentaires (5)

Il existe deux façons de rendre un fichier exécutable :

Méthode GUI:

Allez dans l'onglet des permissions, puis cochez la case "Exécuter : [ ] Autoriser l'exécution du fichier en tant que programme.

! [entrez la description de l'image ici] [1]

Terminal / Méthode de commande:

Vous pouvez soit utiliser :

cd /to/my/required/directory

Puis exécuter

chmod +x nomfichier.extension

Ou exécutez simplement :

chmod +x /path/to/your/filename.extension

chmod a aussi quelques options plus avancées :

Les espaces sont pour montrer qu'il est divisé : - rwx --- ---

Le premier ensemble de --- est Utilisateur. Le deuxième est Groupe et le dernier est Autre (quelqu'un d'autre).

r signifie Read (lecture), w signifie Write (écriture) et x signifie eXecute (exécution).

Ainsi, pour permettre à tout le monde de le lire, mais seulement au groupe de l'exécuter et à l'utilisateur de le lire et de l'écrire (mais, pour une raison quelconque, de ne pas l'exécuter), ce serait :

-rw- rx- r-- Mais ceci serait ajouté à la commande comme :

chmod +rw-rx-r-- /path/to/file.extension

chmod peut aussi faire cela en chiffres. Il est basé sur le binaire (je pense, comme c'est 1,2 et 4).

Donc il y a ces nombres :

L'exécution par utilisateur est 100. Exécution par le groupe est 010. Exécution par d'autres est 001

L'écriture par l'utilisateur est 200. L'écriture par le groupe est 020. L'écriture par d'autres est 002.

La lecture par l'utilisateur est 400. La lecture par le groupe est 040. La lecture par les autres est 004.

Ensuite, vous les additionnez pour obtenir la combinaison souhaitée.

Ainsi, pour permettre à tout le monde de le lire, mais seulement au groupe de l'exécuter et à l'utilisateur de l'écrire (mais pour une raison ou une autre, de ne pas l'exécuter), ce serait :

400 + 040 + 004 et 010 et 200.

Le total est de 600 + 050 + 004 = 654.

Vous pouvez alors exécuter la commande.

chmod +654 /path/to/file.extension pour le définir.

Et pour définir toutes les permissions, vous pouvez taper :

chmod +rwxrwxrwx /path/to/file.extension.

Ou (c'est un peu plus facile à écrire, mais plus difficile à se souvenir de chacun) :

chmod +777 /path/to/file.extension

Enfin, vous pouvez faire :

chmod -777 /path/to/file.extension

Pour enlever toutes les permissions à tout le monde.

Et :

chmod +300 /path/to/file.extension

Pour ajouter la lecture et l'écriture pour l'utilisateur, sans affecter les autres permissions (par exemple, les permissions d'exécution).

[Ce site web][2] a une petite grille très utile avec des cases à cocher, où vous pouvez cocher les options que vous voulez et cela vous donne la commande :

![entrez la description de l'image ici][3]

Cependant, toutes les combinaisons possibles ne sont pas judicieuses à utiliser ; les principales qui sont utilisées sont les suivantes :

755 - Owner a tout, et Group et Other peuvent lire et exécuter.

700 - Propriétaire a tout.

644 - Le "Propriétaire" peut lire et écrire, le "Groupe" et les "Autres" peuvent lire.

600 - Le "Propriétaire" sait lire et écrire.

Et, si vous utilisez des groupes d'utilisateurs non triviaux :

775 - Owner peut lire et écrire, et Group et Other peuvent lire.

770 - Owner et Group ont tout, et Other peut lire et exécuter

750 - "Propriétaire" a tout, et "Groupe" peut lire et exécuter.

664 - " Propriétaire " et " Groupe " peuvent lire et écrire, et " Autre " peut juste lire.

660 - Propriétaire et Groupe peuvent lire et écrire.

640 - Le " Propriétaire " peut lire et écrire, et le " Groupe " peut lire.

777 et 666 sont rarement utilisés, sauf dans /tmp.

Merci à [Ilmari Karonen][4] d'avoir indiqué ceux qui sont d'usage courant !

Mes pronoms sont He / Him

[1] : http://i.stack.imgur.com/cEzAb.png [2] : http://ss64.com/bash/chmod.html [3] : http://i.stack.imgur.com/2Vgwt.png [4] : https://askubuntu.com/users/35897/ilmari-karonen

Commentaires (2)

Cours :

chmod +x /path/to/file.sh

Pour le rendre non exécutable, exécutez :

chmod -x /path/to/file.sh

Par exemple, j'ai créé un fichier .sh :

vi tester12.sh

Après avoir écrit du code dans l'éditeur vi, je quitte l'éditeur vi :

:wq!
chmod +x tester12.sh
./tester12.sh
Commentaires (0)