Chaque fois que j'ouvre un fichier .sh, il l’ouvre dans gedit au lieu du terminal. Je ne trouve aucune option semblable à clic droit → Ouvrir avec → Autre application ... → Terminal .
Comment puis-je ouvrir ce fichier dans le terminal?
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
Vous devez marquer les scripts Shell comme exécutables pour les exécuter à partir du gestionnaire de fichiers:
Faites un clic droit sur votre fichier .sh
et sélectionnez Propriétés:
Dans l'onglet Autorisations, cochez la case Autoriser l'exécution du fichier en tant que programme:
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:
Ouvrez un terminal et naviguez jusqu'au dossier où se trouve le fichier .sh
. Puis tapez:
sh <name of file>.sh
Avant de pouvoir exécuter le fichier .sh, vous devez le rendre exécutable:
Assurez-vous de faire confiance à la source d'où vous avez obtenu le fichier. Ce pourrait être un virus.
Cela a un problème. Le terminal se fermera immédiatement et vous ne pourrez pas voir la sortie.
Trouver où se trouve le fichier .sh
ls
et cd
name__ls
listera les fichiers et les dossiers dans le dossier actuel. Faites un essai: tapez "ls" et appuyez sur Entrée.cd
name__, suivi d'un espace, suivi d'un nom de dossier.cd ..
pour passer au niveau suivant pExécuter le fichier .sh
Une fois que vous pouvez voir par exemple script1.sh
avec ls
name__, lancez ceci:
./script.sh
Le terminal dispose d'un riche ensemble d'outils puissants accessibles en tapant les commandes. Les professionnels localisent le fichier .sh en saisissant ls
et cd
name__. 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
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.
Accédez au répertoire où se trouve le fichier .sh
à l'aide de cd
name__. Dans cet exemple, j'ai stocké mon fichier sh
sous le nom ~/Desktop/Shell_practice/test.sh
faites d'abord 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, 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 ...
2 étapes principales.
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é)
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 ./
Il y a quelques façons de le faire.
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
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.
Dans le terminal, accédez au répertoire dans lequel se trouve le fichier bash.
Exécutez chmod +x <filename>.sh
Dans Nautilus, ouvrez le fichier.
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.
Cliquez avec le bouton droit sur le fichier .sh
et rendez-le exécutable.
Ouvrez un terminal (Ctrl+Alt+T).
Faites glisser le fichier .sh
dans la fenêtre du terminal et observez-le avec émerveillement.
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
.
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
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:
.sh
que je voulais exécuter.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).
Installez dconf-editor
Sudo apt-get install dconf-editor
Exécutez dconf-editor
en utilisant le compte utilisateur sur lequel vous voulez afficher ceci, c.-à-d. PAS root
dconf-editor
Accédez au schéma suivant:
org.gnome.nautilus.preferences
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
Je suis un noob sous Linux et je viens d'avoir le même problème. Si tout échoue: