web-dev-qa-db-fra.com

Comment puis-je exécuter des fichiers .sh?

Chaque fois que j'ouvre un fichier .sh, il l’ouvre dans gedit au lieu du terminal. Je ne trouve aucune option semblable à clic droitOuvrir avecAutre application ...Terminal .

Comment puis-je ouvrir ce fichier dans le terminal?

321
Alex

Donnez la permission d'exécution à votre script:

chmod +x /path/to/yourscript.sh

Et pour lancer votre script:

/path/to/yourscript.sh

Puisque . fait référence au répertoire en cours: si yourscript.sh est dans le répertoire en cours, vous pouvez le simplifier pour:

./yourscript.sh
496
karthick87

Vous devez marquer les scripts Shell comme exécutables pour les exécuter à partir du gestionnaire de fichiers:

  1. Faites un clic droit sur votre fichier .sh et sélectionnez Propriétés:

    enter image description here

  2. Dans l'onglet Autorisations, cochez la case Autoriser l'exécution du fichier en tant que programme:

    enter image description here

  3. Fermez la fenêtre Propriétés et double-cliquez sur le fichier. Une boîte de dialogue apparaîtra vous donnant la possibilité d'exécuter le script dans un terminal:

    enter image description here

86
Isaiah

Ouvrez un terminal et naviguez jusqu'au dossier où se trouve le fichier .sh. Puis tapez:

sh <name of file>.sh
32
italianfoot

Prérequis

Avant de pouvoir exécuter le fichier .sh, vous devez le rendre exécutable:

  1. Faites un clic droit sur le fichier
  2. Sélectionnez Propriétés
  3. Sélectionnez Autorisations
  4. Sélectionnez Autoriser l'exécution du fichier en tant que programme

Attention

Assurez-vous de faire confiance à la source d'où vous avez obtenu le fichier. Ce pourrait être un virus.

Le moyen très simple

  1. Double-cliquez sur le fichier
  2. Cliquez sur run in terminal

Cela a un problème. Le terminal se fermera immédiatement et vous ne pourrez pas voir la sortie.

La manière simple

  1. Applications ouvertes -> Accessoires -> Terminal
  2. Faites glisser le fichier .sh dans le terminal et appuyez sur Entrée.

La façon dont les professionnels le font

  1. Applications ouvertes -> Accessoires -> Terminal
  2. Trouver où se trouve le fichier .sh

    • Utilisez les commandes lset cdname__
    • lslistera les fichiers et les dossiers dans le dossier actuel. Faites un essai: tapez "ls" et appuyez sur Entrée.
    • Une fois que vous voyez le dossier dans lequel vous souhaitez accéder, exécutez cdname__, suivi d'un espace, suivi d'un nom de dossier.
    • Si vous entrez dans un dossier que vous ne vouliez pas, lancez cd .. pour passer au niveau suivant p
  3. Exécuter le fichier .sh

    • Une fois que vous pouvez voir par exemple script1.sh avec lsname__, lancez ceci:

      ./script.sh

Pourquoi le faire de manière compliquée?

Le terminal dispose d'un riche ensemble d'outils puissants accessibles en tapant les commandes. Les professionnels localisent le fichier .sh en saisissant lset cdname__. Une fois que vous êtes dans le bon dossier dossier actuel, vous pouvez exécuter le script de la manière suivante:

./script1.sh

ou vous pouvez exécuter et rediriger la sortie vers un fichier:

./script1.sh > out.txt

ou vous pouvez filtrer la sortie pour les mots-clés (par exemple "pommes") puis rediriger vers un fichier:

./script1.sh | grep apples > ./only-apples

Il y a des milliers de choses que vous pouvez faire dans ce fichier en tapant quelques commandes.

Un autre, vous pouvez télécharger un fichier depuis Internet avec une simple commande:

wget www.google.com/images/logos/ps_logo2.png

Et ouvrez ensuite le fichier comme ceci:

shotwell ps_logo2.png
23
Aleksandr Levchuk

Sous Ubuntu 13.04, les fichiers exécutables ouverts dans Nautilus sont désormais ouverts dans gedit par défaut plutôt que de demander à l'utilisateur de les exécuter. Pour activer le comportement classique, vous devez ajuster les préférences:

Nautilus → Menu Édition → Préférences → onglet Comportement → Cliquez sur le bouton radio à côté de Demander à chaque fois.

18
imjustmatthew

Accédez au répertoire où se trouve le fichier .sh à l'aide de cdname__. Dans cet exemple, j'ai stocké mon fichier shsous le nom ~/Desktop/Shell_practice/test.sh

faites d'abord pwdpour savoir où vous vous trouvez, et s'il renvoie /home/username (où usernameest votre vrai nom d'utilisateur), vous pouvez exécuter

cd Desktop/Shell/practice

Si vous semblez être ailleurs, vous pouvez utiliser le chemin absolu

cd ~/Desktop/Shell/practice

ou

cd $HOME/Desktop/Shell/practice

ou même

cd /home/$USER/Desktop/Shell/practice

ce sont toutes des façons de décrire le même endroit. Une fois que vous avez atteint l'emplacement de votre script, tapez

ls

Si vous pouvez voir le fichier shdans la sortie, vous pouvez utiliser chmodpour le rendre exécutable. Dans mon cas, rappelez-vous, le nom du fichier est test.sh, donc je lancerais

chmod u+x test.sh

Maintenant que nous sommes dans le même répertoire que le script, nous devons spécifier au shell que nous voulons exécuter le fichier en indiquant son emplacement ./ (le répertoire en cours suivi d'un séparateur de chemin, afin de le distinguer du nom du fichier). Pour exécuter mon fichier, je taperais:

./test.sh

Si votre script a été écrit correctement, il fonctionnera sans erreur ...

Voici un exemple en direct: Here is live example

6
TheExorcist

2 étapes principales.

  1. dans terminal, utilisez gedit pour écrire et sauvegarder un script avec l’extension ".sh" sur le bureau. (mais n'importe quel éditeur de texte peut être utilisé)

  2. ouvrez Nautilus et cliquez avec le bouton droit sur le fichier script.sh.

    • sous Propriétés, cochez la case "Autoriser l'exécution du fichier".

    • dans le menu Nautilus, cliquez sur fichier, puis sur préférences, puis sur comportement

    • cochez la case "Exécuter les fichiers texte exécutables à l'ouverture".

Maintenant, lorsque vous double-cliquez sur le fichier sur le bureau, il devrait s’exécuter. pas besoin de . ou ./

3
rob

Il y a quelques façons de le faire.

Option 1

  1. Dans le terminal, accédez au répertoire dans lequel se trouve le fichier Bash à l'aide de cd (changement de répertoire).

    Ex. cd Downloads

  2. Exécutez bash <filename>.sh

    Cela fonctionne aussi avec les fichiers .run. Il existe un exemple de cette utilisation sur cette page Web consacrée à la mise à jour de Rhythmbox.

Option 2

  1. Dans le terminal, accédez au répertoire dans lequel se trouve le fichier bash.

  2. Exécutez chmod +x <filename>.sh

  3. Dans Nautilus, ouvrez le fichier.

2
Kenny Stier

Pour Ubuntu 18.04 , il y a une petite modification, car vous n'obtenez pas de boîte de dialogue contextuelle.

Donc, ce que vous devez faire est:

Cliquez avec le bouton droit de la souris sur Fichiers, sélectionnez Préférences> Sélectionnez l'onglet Comportement> Cochez l'option "Demander quoi faire" sous Fichier texte exécutable.

Maintenant, lorsque vous double-cliquez sur n’importe quel fichier .sh, vous obtenez une popup, vous pouvez y sélectionner l’option "run in terminal" pour exécuter votre fichier .sh.

enter image description here

2
Akhilesh Dhar Dubey
  1. Cliquez avec le bouton droit sur le fichier .sh et rendez-le exécutable.

  2. Ouvrez un terminal (Ctrl+Alt+T).

  3. Faites glisser le fichier .sh dans la fenêtre du terminal et observez-le avec émerveillement.

2
1p_bunny

Dans Ubuntu 16.04, voici comment l’ouvrir dans Terminal:

Accédez au File Manager > Edit > Preferences > Behavior pour Executable Text Files et sélectionnez Ask each time.

Le problème est qu'il est défini par défaut sur View Executable Files when they are opened.

2
Leniel Maccaferri

Si vous placez votre script Shell ou un autre exécutable que vous créez dans/usr/local/bin, il sera trouvé et exécuté sans qu'il soit nécessaire de fournir un chemin de dossier dans la ligne de commande ou d'ajouter ./ au nom. Par exemple, j'ai créé le script bash simple en 3 lignes suivant pour afficher les UUID de disque:

#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
Sudo blkid

J'ai appelé le fichier uuid et l'ai placé dans/usr/local/bin. Tout ce dont j'ai besoin d'entrer sur la ligne de commande est:

uuid
1
fragos

Eh bien, moi aussi j'ai rencontré le même problème. Je voulais exécuter le fichier .sh qui s’est ouvert avec Gedit sous CentOS 7. Voici ce que j’ai fait:

  1. J'ai navigué jusqu'au chemin du fichier .sh que je voulais exécuter.
  2. J'ai ouvert le terminal.
  3. Et j'ai simplement fait glisser la fenêtre de la fenêtre du terminal et elle a automatiquement pris ce fichier avec le chemin d'accès en entrée.
  4. Appuyez sur Entrée et vous êtes prêt à partir!
0
Jen Bates

Le problème que j'ai trouvé sur quelques distributions est qu'elles ont masqué l'option de préférences dans Nautilus, mais la corriger dans Ubuntu et les autres distributions utilisant Gnome3 est identique (littéralement, vous venez de faire la version Fedora de cette version et d'afficher la correction réelle comment à l'avenir).

  1. Installez dconf-editor

    Sudo apt-get install dconf-editor
    
  2. Exécutez dconf-editor en utilisant le compte utilisateur sur lequel vous voulez afficher ceci, c.-à-d. PAS root

    dconf-editor
    
  3. Accédez au schéma suivant:

    org.gnome.nautilus.preferences

  4. Changez l'option par défaut pour ne pas ouvrir par défaut:

    Trouvez executable-text-activation cliquez sur Word display et remplacez par ask

cela vous donnera la possibilité d'éditer, d'afficher ou d'exécuter le fichier à l'avenir

0
Snider

Je suis un noob sous Linux et je viens d'avoir le même problème. Si tout échoue:

  1. Terminal ouvert
  2. Ouvrez le dossier contenant le fichier .sh
  3. Glissez et déposez le fichier dans la fenêtre du terminal
  4. Le chemin du fichier apparaît dans le terminal. presse Enter.
  5. Voilà, votre fichier .sh est lancé.
0
Linux_noob