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?
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?
Réponses:
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
votre terminal à appliquer. Ensuite, utilisez simplement le nouveau nom pour lancer le script.
./filename.sh
et pas seulement filename.sh
?
filename
et pas./filename
./filename.sh
spécifie un fichier dans le répertoire actuel et filename.sh
spécifie un fichier dans le répertoire actuel ou l'un des répertoires de PATH. La première utilisation supprime toute incertitude quant au fichier utilisé. Dans ce cas, vous essayez d'exécuter le script avec bash ou un autre interpréteur (en vertu de la #!/bin/bash
première ligne de votre script), en entrant simplement le nom du fichier. Cette utilisation nécessite que le répertoire soit spécifié. Alternativement, vous pouvez essayer bash filename.sh
ce qui semble fonctionner avec un répertoire non spécifié.
Il existe deux manières de rendre un fichier exécutable:
Méthode GUI:
Allez sur l'onglet autorisations, puis cochez la case `Exécuter: [] Autoriser l'exécution du fichier en tant que programme.
Méthode terminal / commande:
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
a aussi quelques options plus avancées:
Les espaces doivent montrer qu'il est divisé: - rwx --- ---
Le premier ensemble ---
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 aussi 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
Ecrire par utilisateur est 200
. Ecrire par groupe est 020
. Ecrire par d'autres est 002
.
Lu par l'utilisateur est 400
. Lire par groupe est 040
. Lu par d'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
et 010
et200
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 à retenir pour chacun):
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, grâce à laquelle vous pouvez cocher les options souhaitées et vous donner la commande:
Cependant, toutes les combinaisons possibles ne sont pas judicieuses; les principaux utilisés sont les suivants:
755 - Owner
a tout, et Group
et Other
peut lire et exécuter
700 - Owner
a tout
644 - Owner
sait lire et écrire, Group
et Other
peut lire
600 - Owner
sait lire et écrire
Et si vous utilisez des groupes d'utilisateurs non triviaux:
775 - Owner
sait lire et écrire, Group
et Other
peut lire
770 - Owner
et Group
ont tous, et Other
peuvent lire et exécuter
750 - Owner
a tout, et Group
peut lire et exécuter
664 - Owner
et Group
sait lire et écrire, et Other
peut simplement lire
660 - Owner
et Group
sait lire et écrire
640 - Owner
sait lire et écrire et Group
peut lire
777 et 666 sont rarement utilisés, sauf dans / tmp.
Merci à Ilmari Karonen d' avoir signalé ceux qui sont couramment utilisés!