Comment rendre un fichier (par exemple un script .sh) exécutable pour qu'il puisse être exécuté à partir du terminal

177

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

    
posée Ziyaddin Sadigov 16.12.2012 - 13:27
la source

3 réponses

236

Eh bien, vous pouvez le faire en faisant comme

chmod +x filename.sh

donc il s'exécutera quand vous l'appellerez

./filename.sh

et vous pouvez également accéder à ce script en tant qu’application.

ouvrez votre terminal et tapez comme suit dans votre répertoire personnel.

gedit .bashrc

puis dans le fichier ouvert, tapez cette dernière ligne.

alias <Name_with which you wanna call it >='./filename.sh'

enregistrer et fermer.

Ensuite, tapez ceci dans votre terminal source ~/.bashrc pour appliquer les modifications que vous avez apportées. puis tapez simplement le nom que vous y avez donné après l'alias pour accéder à votre script.

assurez-vous que vous avez placé dans le répertoire personnel.

else

alias <Name_with which you wanna call it >='./<path to your script >.sh'

J'espère que ça aide.

    
réponse donnée Ten-Coin 16.12.2012 - 13:33
la source
30

Il existe deux manières de rendre un fichier exécutable:

Méthode GUI

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

Méthode de terminal / commande:

Vous pouvez soit utiliser:

cd /to/my/required/directory

Puis lancez

chmod +x filename.extension

Ou lancez simplement:

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

chmod propose également des options plus avancées:

Les espaces doivent indiquer qu’il est divisé: - rwx --- ---

Le premier ensemble de --- est User. Le second est Group et le dernier est Autre (n'importe qui)

r signifie Read, w pour Write et x pour eXecute.

Donc, pour 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 inconnue) 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, car il est 1,2 et 4)

Il y a donc ces chiffres:

Exécuter par utilisateur est 100 . Execute by group est 010 . Execute by other est 001

L’écriture par utilisateur est 200 . Écrire par groupe est 020 . Écrire par d'autres est 002 .

Read by user est 400 . Lecture par groupe est 040 . Read by other est 004 .

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

Donc, pour permettre à tout le monde de le lire, mais seul le groupe à exécuter et l'utilisateur à l'écrire (mais pour une raison quelconque ne s'exécutent pas) serait:

400 + 040 + 004 et 010 et 200

Cela s’élève à 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 autorisations que 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

Pour retirer toutes les autorisations à tout le monde.

Et:

chmod +300 /path/to/file.extension

Pour ajouter en lecture et en écriture à l'utilisateur, sans affecter les autres autorisations (par exemple, les autorisations d'exécution).

Ce site Web contient une petite case à cocher très utile, dans laquelle vous pouvez cocher les options souhaitées et vous donner la commande:

Cependant, toutes les combinaisons possibles ne sont pas judicieuses à utiliser; 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 peuvent lire

600 - Owner peut 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 peuvent 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 signaler ceux couramment utilisés     

réponse donnée Tim 18.06.2014 - 14:22
la source
6

Exécuter:

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éé le fichier .sh :

vi tester12.sh

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

:wq!
chmod +x tester12.sh
./tester12.sh
    
réponse donnée Liso 18.06.2014 - 14:39
la source

Lire d'autres questions sur les étiquettes