Comment exécuter les fichiers .sh?

270

Chaque fois que j'ouvre un fichier .sh, il l'ouvre dans gedit au lieu du terminal. Je ne trouve aucune option similaire à Clic droit Ouvrir avec Autre application ... Terminal . .

Comment puis-je ouvrir ce fichier dans le terminal?

    
posée Alex 01.05.2011 - 04:39
la source

16 réponses

409

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

chmod +x /path/to/yourscript.sh

Et pour exécuter 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 simplifier ceci en:

./yourscript.sh
    
réponse donnée karthick87 01.05.2011 - 05:18
la source
73

Vous devez marquer les scripts de shell en tant que fichiers exécutables pour les exécuter à partir du gestionnaire de fichiers:

  1. Cliquez avec le bouton droit sur votre fichier .sh et sélectionnez Propriétés :

  2. Dansl'ongletAutorisations,cochezAutoriserl'exécutiondufichierentantqueprogramme:

    .

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

réponse donnée Isaiah 01.05.2011 - 05:02
la source
22

Prérequis

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

  1. Cliquez avec le bouton 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

Avertissement

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

Le moyen très simple

  1. Double-cliquez sur le fichier
  2. Cliquez sur Exécuter dans le terminal

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

Le moyen le plus simple

  1. Applications ouvertes - > Accessoires - > Terminal
  2. Faites glisser le fichier .sh dans le terminal, puis 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 ls et cd
    • ls listera les fichiers et les dossiers du dossier actuel . Essayez-le: tapez "ls" et appuyez sur Entrée.
    • Une fois que vous voyez le dossier dans lequel vous souhaitez accéder, exécutez cd , suivi d'un espace, suivi d'un nom de dossier
    • Si vous entrez dans un dossier que vous ne vouliez pas, exécutez cd .. pour accéder au niveau supérieur précédent .
  3. Exécuter le fichier .sh

    • Une fois que vous pouvez voir par exemple script1.sh avec ls , exécutez ceci:

      ./ script.sh

Pourquoi est-ce compliqué?

Le terminal dispose d'un riche ensemble d'outils puissants accessibles en tapant les commandes. Les professionnels localisent le fichier .sh en tapant ls et cd . Une fois que vous vous trouvez dans le dossier actuel approprié, 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

Vous pouvez créer des milliers de choses dans ce fichier en tapant quelques commandes.

Une 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
    
réponse donnée Aleksandr Levchuk 01.05.2011 - 04:52
la source
19

Ouvrez un terminal et accédez au dossier contenant le fichier .sh . Puis tapez:

sh <name of file>.sh
    
réponse donnée italianfoot 20.12.2012 - 08:43
la source
17

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.

    
réponse donnée imjustmatthew 10.06.2013 - 23:41
la source
6

Accédez au répertoire où se trouve le fichier .sh à l’aide de cd . Dans cet exemple, j'ai stocké mon fichier sh en tant que ~/Desktop/shell_practice/test.sh

Commencez par pwd pour savoir où vous vous trouvez et s'il renvoie /home/username (où username est 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 sh dans la sortie, vous pouvez utiliser chmod pour 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 d'accès, afin de le distinguer le nom de fichier). Pour exécuter mon fichier, je voudrais taper:

./test.sh

Si votre script a été écrit correctement, il s'exécutera sans erreur ...

Voici un exemple en direct:

    
réponse donnée TheExorcist 03.12.2016 - 12:14
la source
3

2 étapes principales.

  1. dans le terminal, utilisez gedit pour écrire et sauvegarder le 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 de la souris 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 le 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 ./

    
réponse donnée rob 24.10.2013 - 16:24
la source
2

Sous 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 .

    
réponse donnée Leniel Maccaferri 11.12.2016 - 20:58
la source
2

Il existe plusieurs façons de procéder.

Option 1

  1. Dans le terminal, accédez au répertoire dans lequel se trouve le fichier Bash en utilisant cd (changement de répertoire).

    Ex. cd Downloads

  2. Exécuter bash <filename>.sh

    Ceci fonctionne également avec les fichiers .run. Il existe un exemple de cet usage sur cette page Web sur 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écuter chmod +x <filename>.sh

  3. Sous Nautilus, ouvrez le fichier.

réponse donnée Kenny Stier 06.01.2014 - 22:33
la source
2
  1. Cliquez avec le bouton droit sur le fichier .sh pour le rendre exécutable.

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

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

réponse donnée 1p_bunny 10.06.2017 - 16:09
la source
1

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 sur 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 je l'ai placé dans / usr / local / bin. Tout ce dont j'ai besoin d'entrer sur la ligne de commande est:

uuid
    
réponse donnée fragos 01.05.2011 - 09:14
la source
1

Pour Ubuntu 18.04 , il y a une petite modification car vous ne recevez pas de dialogue contextuel.

Ce que vous devez faire est donc:

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 fenêtre contextuelle. Vous pouvez y sélectionner l’option "run in terminal" pour exécuter votre fichier .sh.

    
réponse donnée Akhilesh Dhar Dubey 16.08.2018 - 12:18
la source
0

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 glissé et déposé le sur la fenêtre du terminal et il 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!
réponse donnée Jen Bates 16.06.2016 - 17:11
la source
0

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

  1. Installer dconf-editor

    sudo apt-get install dconf-editor
    
  2. Exécutez dconf-editor en utilisant le compte d'utilisateur sur lequel vous souhaitez activer cette fonctionnalité, c.-à-d. PAS root

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

    org.gnome.nautilus.preferences

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

    Recherchez executable-text-activation cliquez sur le mot display et remplacez-le par ask

    .

qui vous donnera la possibilité d’éditer, de visualiser ou d’exécuter le fichier à l’avenir

    
réponse donnée Snider 22.12.2013 - 17:06
la source
0

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

  1. Ouvrir un terminal
  2. Ouvrez le dossier contenant le fichier .sh
  3. Faites glisser le fichier dans la fenêtre du terminal
  4. Le chemin du fichier apparaît dans le terminal. Appuyez sur Entrée .
  5. Voilà, votre fichier .sh est exécuté.
réponse donnée Linux_noob 07.05.2017 - 04:19
la source
-2

Vous pouvez également utiliser . astuces, avec la suggestion d'autres réponses.

Par exemple:

chmod +x filename.sh , en supposant que vous soyez déjà allé dans le chemin du fichier, puis exécutez le fichier avec l'une des commandes suivantes:

sh filename.sh

./filename.sh

. filename.sh
    
réponse donnée Awais 02.01.2015 - 09:29
la source

Lire d'autres questions sur les étiquettes