Détails
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 ?
252
3
Vous pouvez marquer le fichier comme exécutable :
Vous pouvez ensuite l'exécuter comme ceci :
Si vous voulez utiliser une commande différente pour le lancer, vous pouvez ajouter un alias :
Ajoutez ceci à la fin du fichier :
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.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 est010
. Exécution par d'autres est 001L'écriture par l'utilisateur est
200
. L'écriture par le groupe est020
. L'écriture par d'autres est002
.La lecture par l'utilisateur est
400
. La lecture par le groupe est040
. La lecture par les autres est004
.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
et010
et200
.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, etGroup
etOther
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, etGroup
etOther
peuvent lire.770 -
Owner
etGroup
ont tout, etOther
peut lire et exécuter750 - "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
etGroupe
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
Cours :
Pour le rendre non exécutable, exécutez :
Par exemple, j'ai créé un fichier
.sh
:Après avoir écrit du code dans l'éditeur vi, je quitte l'éditeur vi :