Comment créer un fichier (script) universel pour un Mac, basé sur plusieurs commandes Terminal

Jai plusieurs commandes Terminal que jutilise à des fins de dépannage, en les tapant une par une dans la fenêtre du terminal.

Ces commandes nécessitent la saisie du mot de passe de lutilisateur.

Je cherche un moyen de créer un fichier (script) universel avec ces commandes. Je veux pouvoir exécuter le fichier sur un Mac simplement en double-cliquant dessus ou en faisant glisser le fichier sur licône du terminal.

Je nai jamais rien fait de tel auparavant. Existe-t-il un moyen de créer un tel script? Sil vous plaît aviser.

Commentaires

  • Voulez-vous dire que vous voulez exécuter un script sans faire entrer lutilisateur leur mot de passe?
  • @Allan Je veux exécuter un fichier au lieu de plusieurs commandes . Lexécuter sans que lutilisateur nentre son mot de passe au moins une fois serait bien, mais probablement impossible si je ' ne me trompe pas.
  • Cela ' est certainement possible, sauf si vous devez faire quelque chose qui nécessite un administrateur – voir ma réponse ci-dessous
  • Peut-être pas exactement ce que vous ' re après, mais je lai trouvé très efficace. Vous pouvez utiliser alias par exemple alias ns="sudo netstat -tulpn". Vous pouvez même les mettre dans des lignes @reboot sur Crontab si vous les vouliez à chaque démarrage. Maintenant, je peux simplement taper ns. Félicité.

Réponse

Réponse courte

A .command le script devrait faire laffaire


Pas à pas

  1. Ouvrez TextEdit et créez un nouveau fichier
  2. Convertir en texte brut en cliquant sur Format> Créer du texte brut
  3. Ajoutez vos commandes, une par ligne. Par exemple, vous pouvez faire:
    #! /bin/bash cd ~/Desktop mkdir myCoolFolder cd myCoolFolder

  4. Exécutez chmod u+x ~/Desktop/myCommandScript.command dans votre terminal, où ~/Desktop/myCommandScript.command est le chemin de votre script. Cela donnera au terminal lautorisation dexécuter le fichier.

  5. Vous avez terminé! Double-cliquez sur le fichier pour lexécuter. Faire glisser sur licône du terminal fonctionnera également.

Remarques:

  • Si vous devez faire quelque chose qui nécessite un accès root (administrateur), vous pouvez préfixer votre commande avec sudo. Lorsque le script sexécute, vous devrez entrer votre mot de passe (et être un administrateur)
  • Si lutilisateur final nest pas un administrateur, mais que vous devez faire quelque chose qui nécessite un accès root, vous pouvez utiliser su someAdminName, qui exécutera la commande comme someAdminName (vous « aurez besoin de son mot de passe).

Vous pouvez également consulter ici sur Stack Overflow pour plus dinformations.

Commentaires

  • Existe-t-il un moyen de faire en sorte quun fichier de commande ne se déconnecte pas? Je veux avoir un fichier de commande qui ouvre le terminal avec une variable de chemin prédéfinie.

Réponse

Un script est juste une série de commandes, donc vous pouvez la mettre dans un script bash.

#!/bin/bash command 1 command 2 command 3 

Maintenant, tout dépend de leur type de commande et si oui ou non ils nécessitent une intervention de lutilisateur.

Cependant, si vous obtenez des informations de diagnostic, par exemple, vous pouvez avoir un script qui le fait

#!/bin/bash # Get SMART status of main drive diskutil info disk0 | grep -i smart # Get the model of the machine in question system_profiler SPHardwareDataType | grep -i Identifier 

Ce ne sont que des exemples . Gardez à lesprit que toute sortie générée sera envoyée à la console (écran). Cependant, vous pouvez rediriger la sortie vers un fichier en ajoutant >> /path/to/outputfile.txt à la fin de chaque commande afin davoir un fichier que vous pouvez analyser une fois que le fichier a fini de sexécuter.

Vous pouvez nommer le fichier diagnostics.sh et le placer où vous le souhaitez. Assurez-vous simplement de le rendre exécutable en exécutant la commande chmod +x diagnostics.sh et utilisez ./diagnostics.sh pour lexécuter ou double-cliquez dessus pour lexécuter sil « est enregistré sur votre bureau .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *