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?
command-line
executable
Ziyaddin Sadigov
la source
la source
Réponses:
Vous pouvez marquer le fichier comme exécutable:
Vous pouvez ensuite l'exécuter comme ceci:
Si vous souhaitez utiliser une commande différente pour la démarrer, vous pouvez ajouter un alias:
Ajoutez ceci à la fin du fichier:
Ouvrez une nouvelle session de terminal ou tapez
source ~/.bashrc
votre terminal à appliquer. Ensuite, utilisez simplement le nouveau nom pour lancer le script.la source
./filename.sh
et pas seulementfilename.sh
?filename
et pas./filename
./filename.sh
spécifie un fichier dans le répertoire actuel etfilename.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 essayerbash 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 est010
. Exécuter par d'autres est 001Ecrire par utilisateur est
200
. Ecrire par groupe est020
. Ecrire par d'autres est002
.Lu par l'utilisateur est
400
. Lire par groupe est040
. Lu par d'autres est004
.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
et010
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, etGroup
etOther
peut lire et exécuter700 -
Owner
a tout644 -
Owner
sait lire et écrire,Group
etOther
peut lire600 -
Owner
sait lire et écrireEt si vous utilisez des groupes d'utilisateurs non triviaux:
775 -
Owner
sait lire et écrire,Group
etOther
peut lire770 -
Owner
etGroup
ont tous, etOther
peuvent lire et exécuter750 -
Owner
a tout, etGroup
peut lire et exécuter664 -
Owner
etGroup
sait lire et écrire, etOther
peut simplement lire660 -
Owner
etGroup
sait lire et écrire640 -
Owner
sait lire et écrire etGroup
peut lire777 et 666 sont rarement utilisés, sauf dans / tmp.
Merci à Ilmari Karonen d' avoir signalé ceux qui sont couramment utilisés!
la source
Courir:
Pour le rendre non exécutable, lancez:
Par exemple j'ai créé le
.sh
fichier:Après avoir écrit du code sur l'éditeur vi, je quitterai l'éditeur vi:
la source