J'ai un fichier script.sh et le type de ce fichier est un fichier shellscript. Je veux faire ce fichier en tant que fichier application/x-executable. Comment puis-je le faire?
Vous pouvez marquer le fichier comme exécutable:
chmod +x filename.sh
Vous pouvez ensuite l'exécuter comme ceci:
./filename.sh
Si vous souhaitez utiliser une commande différente pour la démarrer, vous pouvez ajouter un alias:
gedit ~/.bashrc
Ajoutez ceci à la fin du fichier:
alias <new name>='/home/<full path to script>/filename.sh'
Ouvrez une nouvelle session de terminal ou tapez source ~/.bashrc
dans votre terminal pour l'appliquer. Ensuite, utilisez simplement le nouveau nom pour lancer le script.
Il existe deux manières de rendre un fichier exécutable:
Méthode graphique:
Allez sur l'onglet autorisations, puis cochez la case `Exécuter: [] Autoriser l'exécution du fichier en tant que programme.
Méthode Terminal/Command:
Vous pouvez soit utiliser:
cd /to/my/required/directory
Puis courir
chmod +x filename.extension
Ou tout simplement courir:
chmod +x /path/to/your/filename.extension
chmod
possède également des options plus avancées:
Les espaces doivent montrer qu'il est divisé: - rwx --- ---
Le premier ensemble de ---
est User. Le second est groupe et le dernier est autre (quelqu'un d'autre)
r signifie Read, w pour Write et x pour eXecute.
Donc, permettre à tout le monde de le lire, mais seul le groupe à exécuter et l'utilisateur à le lire et l'écrire (mais pour une raison quelconque ne pas exécuter) serait:
-rw- rx- r--
Mais ceci serait ajouté à la commande en tant que:
chmod +rw-rx-r-- /path/to/file.extension
chmod
peut également le faire en chiffres. Il est basé sur le binaire (je pense, comme il est 1,2 et 4)
Donc, il y a ces chiffres:
Exécuter par l'utilisateur est 100
. Exécuter par groupe est 010
. Exécuter par d'autres est 001
Ecrivez par l'utilisateur est 200
. Écrire par groupe est 020
. Ecrivez par un autre est 002
.
Lu par l'utilisateur est 400
. Lire par groupe est 040
. Lu par les autres est 004
.
Ensuite, vous ajoutez ces éléments pour obtenir la combinaison souhaitée.
Donc, permettre à tout le monde de le lire, mais seul le groupe à exécuter et l'utilisateur à l'écrire (mais pour une raison quelconque ne pas s'exécuter) serait:
400 + 040 + 004
and 010
and 200
Cela ajoute 600 + 050 + 004 = 654.
Vous pouvez ensuite exécuter la commande.
chmod +654 /path/to/file.extension
pour le définir.
Et pour définir toutes les autorisations, vous pouvez taper:
chmod +rwxrwxrwx /path/to/file.extension
Ou (c'est un peu plus facile à écrire, mais plus difficile à mémoriser):
chmod +777 /path/to/file.extension
Enfin, vous pouvez faire:
chmod -777 /path/to/file.extension
Supprimer toutes les autorisations de tout le monde.
Et:
chmod +300 /path/to/file.extension
Pour ajouter en lecture et en écriture pour l'utilisateur, sans affecter les autres autorisations (par exemple, les autorisations d'exécution).
Ce site Web a une fonction très utile de case à cocher dans la grille: vous pouvez cocher les options de votre choix et vous donner la commande suivante:
Cependant, toutes les combinaisons possibles ne sont pas judicieuses; les principaux utilisés sont les suivants:
755 - Owner
a tout, et Group
et Other
peuvent lire et exécuter
700 - Owner
a tout
644 - Owner
peut lire et écrire, et Group
et Other
peut lire
600 - Owner
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 tous, et Other
peut lire et exécuter
750 - Owner
a tout, et Group
peut lire et exécuter
664 - Owner
et Group
peuvent lire et écrire, et Other
peut simplement lire
660 - Owner
et Group
peuvent lire et écrire
640 - Owner
peut lire et écrire, et Group
peut lire
777 et 666 sont rarement utilisés, sauf dans/tmp.
Merci Ilmari Karonen pour soulignant ceux d'usage courant!
Courir:
chmod +x /path/to/file.sh
Pour le rendre non exécutable, lancez:
chmod -x /path/to/file.sh
Par exemple, j'ai créé le fichier .sh
:
vi tester12.sh
Après avoir écrit du code sur l'éditeur vi, je quitterai l'éditeur vi:
:wq!
chmod +x tester12.sh
./tester12.sh