Comment exécuter le script sh à partir d'un raccourci sur le bureau?


37

J'essaie de créer un raccourci pour connecter mon serveur ssh:

ssh x.x.x.x

J'ai créé le fichier suivant:

ssh_home.sh

Le rend exécutable:

sudo chmod +x ./ssh_home

Vérifié par un clic droit sur les propriétés pour vérifier si c'était exécutable et si c'était ..

Mais quoi que je fasse, si vous double-cliquez dessus, il lancera gedit. J'ai essayé "Ouvrir avec" mais aucune application de terminal n'y est affichée. J'ai cherché sur le net mais je n'ai trouvé qu'un moyen de créer un lien vers le fichier sans l'intégrer dans un "fichier de raccourci"


2
Avez-vous ajouté #! /usr/bin/shau début du fichier (la première ligne)?
Misery

Par intérêt, quelle version d'Ubuntu utilisez-vous? En principe, il ne devrait s'agir que de marquer le fichier comme exécutable dans Propriétés / Autorisations, mais le 13.04, cela ne semble pas fonctionner pour moi (même directement sur le fichier .sh, avec #! /bin/bashau début ...)
Jez W

Vérifiez également le propriétaire et les autorisations. L'utilisateur qui clique dessus a-t-il la permission de l'exécuter?
Misery

1
Vos commandes ne peuvent pas être correctes - vous faites référence à ssh_home.shet /ssh_homequi ne sont pas les mêmes fichiers.
l0b0

2
@ Missery: Ce n'est /bin/shpas /usr/bin/sh. ( /usr/bin/shIl arrivera que cela fonctionne sur des systèmes où /binet /usr/binsont le même répertoire; je ne pense pas que ce soit le cas pour Ubuntu>)
Keith Thompson

Réponses:


50

Je sais que cela fait un moment, mais si quelqu'un d'autre me le demande, j'ai cette réponse.

  1. Nautilus ouvert
  2. Menu Fichiers -> onglet comportement
  3. Exécuter des fichiers texte exécutables quand ils sont ouverts

Dans les versions ultérieures, cette option se trouve dans: Menu Fichiers -> Edition -> Préférences -> onglet de comportement

Dans Ubuntu 14.10, déplacez la souris vers le haut de l'écran et la barre de menus Fichier, Édition etc ... apparaît. Cliquez sur EDITER -> Préférences -> onglet Comportement


2
Cela devrait être la réponse acceptée à mon humble avis. J'étais assez frustré d'essayer de comprendre pourquoi je ne pouvais pas exécuter le script shell de Nautilus.
David Baucum

Qu'est-ce que le menu Fichiers? Je ne l'ai jamais vu.
IgorGanapolsky

Travaillé. Faites un clic droit sur mon script shell dans le navigateur de fichiers. Lien créé. Ensuite, faites glisser et déposez le lien vers le bureau. A également fait l'étape ci-dessus dans la recherche de fichier -> Préférences-> Exécuter au lieu de voir.
maxweber

3
Une complication est que cela affecte tous les fichiers exécutables. (C'est peut-être ce que vous voulez.)
Keith Thompson

Très bonne réponse! Sur Ubuntu 18.04, je l’ai réglée sur «Demander quoi faire», afin que je puisse choisir de l’exécuter ou de l’afficher à chaque fois que je double-clique sur un tel fichier. Merci!
MS Berends le

36

Je pense qu'il serait préférable d'utiliser un fichier de lancement pour votre script en créant un ~/Desktop/ssh_home.desktopfichier avec le contenu suivant:

[Desktop Entry]
Version=1.0
Exec=/home/yourname/bin/ssh_home.sh
Name=SSH Server
GenericName=SSH Server
Comment=Connect to My Server
Encoding=UTF-8
Terminal=true
Type=Application
Categories=Application;Network;

De cette façon, vous aurez une icône cliquable qui lancera votre script.

Vous devrez peut-être également définir l'indicateur d'exécutable avec chmod:

chmod +x ~/Desktop/ssh_home.desktop

1
Cette méthode fonctionne mais je préfère une solution de 1 fichier ...
michel

6
@ Michel Si tout le script est exécuté ssh host, vous n'en avez pas besoin, changez simplement la ligne Exec en Exec=ssh host.
geirha

1
C'est la seule solution qui a fonctionné pour moi.
Aviad P.

Je reçois une Untrusted application launcherboîte de message et ma commande n’exécute pas.
Matt

@ Matt essaie un clic droit sur l'icône, va à Properties > Permissionspuis sélectionne Allow executing file as program. De même, si vous copiez et collez le texte ci-dessus dans votre fichier, assurez-vous qu'il n'y a pas de blancs après les lignes. Cela peut provoquer votre message d'erreur.
Olivia Stork

3

Le "piège" pour moi a été que j'ai recherché par un clic droit sur le fichier un moyen de changer le comportement (faire exécuter un script au lieu de l'ouvrir dans gedit). Ne faites pas un clic droit! Plutôt ouvert à partir du menu "normal":

Edit-Preferences-Behavior et changer en "run" ou "demander à chaque fois".

Commentaire: À mon goût, il devrait y avoir un moyen de lancer un programme avec un clic droit aussi. D'autant plus qu'un clic droit mène au menu "Ouvrir avec", ce qui vous permet de rechercher "Ouvrir avec bash", mais "bash" n'est pas inclus en option ...


A mon goût aussi ...
Marecky

1

imo la réponse la plus simple est -

  1. Vérifiez que le fichier .sh fonctionne si vous cliquez dessus ou s'il est exécuté à partir de son propre répertoire.
  2. Si cela fonctionne là-bas, cliquez dessus avec le bouton droit de la souris dans Fichiers aka Nautilus, sélectionnez "Créer un lien".
  3. Cela produit un fichier nommé 'link to xxxx.sh' dans le même répertoire
  4. Faites glisser ceci sur le bureau
  5. Renommez-le comme vous le souhaitez, par exemple en nettoyant les liens "lien vers" et "sh", laissez simplement le nom, cela fonctionnera toujours.

Aussi, vous pouvez aussi changer l'icône du lien. Cliquez dessus avec le bouton droit de la souris, sélectionnez Propriétés, cliquez sur l'icône par défaut dans la partie supérieure gauche de la fenêtre des propriétés, puis naviguez jusqu'à ce que vous trouviez l'image que vous souhaitez que soit l'icône.
Brian Hellekin

0

Je dirais que le moyen le plus simple d’ajouter un script shell aux raccourcis serait d’ajouter le fichier .sh au répertoire de base. Une fois copié dans le répertoire personnel, accédez aux raccourcis personnalisés et ajoutez la commande sh votrefichier.sh

Ce fut mon travail autour de l'espoir que cela vous aide

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.