web-dev-qa-db-fra.com

Comment exécuter les fichiers .sh ou .bat depuis Terminal?

J'ai un problème assez fondamental ici, c'est ce qui m'est arrivé si au hasard que jusqu'à présent, je l'ai simplement ignoré. J'ai téléchargé le serveur Web Tomcat et le livre "Murach's Java Servlets and JSP") me disent de naviguer dans le répertoire Tomcat/bin et de démarrer le serveur en tapant dans Terminal.

$ démarrage

Cependant, j'ai l'erreur

-bash: startup: command not found

Les fichiers pertinents de ce répertoire sont startup.sh et startup.bat. En tapant ces deux, le même message d'erreur est renvoyé

Mes questions sont donc les suivantes: que sont les fichiers .bat et sh et comment puis-je les exécuter? J'ai lu plusieurs tutoriels pour différentes langues et logiciels, et parfois, lorsque le tutoriel dit d'exécuter un groupe de fichiers dans la ligne de commande, j'obtiens une erreur "commande introuvable". Parfois cela fonctionne, parfois non. Cela me laisse perplexe. Quelles sont donc les solutions courantes pour résoudre ce type de "commande introuvable"? Problèmes de terminal?

30
almel

Le .sh est destiné aux systèmes * nix et .bat devrait être pour Windows. Puisque votre exemple montre une erreur bash et que vous mentionnez Terminal, je suppose que vous utilisez OS X.

Dans ce cas, vous devriez aller dans le dossier et taper:

./startup.sh

./ signifie simplement que vous devez appeler le script situé dans le répertoire actuel. (Vous pouvez également taper le chemin complet du startup.sh). Si cela ne fonctionne pas, vérifiez si startup.sh a des autorisations d'exécution.

51
pilsetnieks

C'est parce que le script n'est pas dans votre $ PATH. Utilisation

./scriptname

Vous pouvez également copier ceci dans l'un des dossiers de votre $ PATH ou modifier la variable $ PATH afin de pouvoir toujours utiliser uniquement le nom du script. Attention, cependant, il y a une raison pour laquelle votre dossier actuel n'est pas dans $ PATH. Cela pourrait être un risque de sécurité.

Si vous rencontrez toujours des problèmes lors de l'exécution du script, vous pouvez vérifier ses autorisations. Vous devez évidemment disposer des autorisations d'exécution pour l'exécuter. Utilisation

chmod u+x scriptname

UNE .sh fichier est un script Unix Shell. UNE .bat fichier est un fichier de commandes Windows.

9
KamikazeCZ

Tapez bash script_name.sh ou ./script_name dans le terminal linux. Avant d'utiliser ./script_name vous rendre le script exécutable par Sudo chmod 700 script_name et tapez script_name.bat dans les fenêtres.

6
user3752086

Drag-And-Drop

Le moyen le plus simple pour un utilisateur de Mac paresseux comme moi: faites glisser le startup.sh fichier du Finder vers la fenêtre Terminal et appuyez sur Retour.

Pour arrêter Tomcat, faites de même avec shutdown.sh.

Vous pouvez supprimer tous les .bat fichiers car ils ne sont destinés qu’à un PC Windows, ils ne peuvent donc pas être utilisés sur un Mac sous Unix. Je les supprime car cela facilite la lecture de la liste de ce dossier.

Autorisations de fichier

Je constate qu’un nouveau téléchargement de Tomcat ne s’exécutera pas sur mon Mac en raison des restrictions d’autorisations de fichiers qui entraînent des erreurs lors du démarrage. J'utilise l'application BatChmod qui enveloppe une interface utilisateur graphique autour des commandes Unix équivalentes pour réinitialiser les droits d'accès aux fichiers.

Port Forwarding

Les systèmes Unix protègent l'accès aux ports numérotés sous 1024. Donc, si vous souhaitez utiliser le port 80 avec Tomcat, vous devrez apprendre à procéder au "transfert de port" pour transférer les demandes entrantes au port 8080 où Tomcat écoute par défaut. Pour effectuer un transfert de port, vous devez exécuter des commandes sur l'application de filtrage de paquets (pare-feu) intégrée à Mac OS X (et BSD ). Dans les temps anciens, nous utilisions ipfw . Dans Mac OS X 10.7 (Lion) et versions ultérieures Apple passe à un outil plus récent, pf .

4
Basil Bourque

Sous Windows, tapez startup ou startup.bat

Sur le type unix ./startup.sh

(en supposant que vous vous trouvez dans le répertoire Tomcat/bin)

2
Majid Laissi

Tapez

chmod 755 scriptname.sh

En d'autres termes, donnez-vous la permission d'exécuter le fichier. J'imagine que vous n'avez qu'une permission r/w dessus.

1
Frozztie

Basé sur commentaire d'IsmailS , la commande qui a fonctionné pour moi sous OSX était:

Sudo sh ./startup.sh
0
gazdagergo

Les fichiers batch peuvent être exécutés sous Linux. Cet article explique comment ( http://www.linux.org/threads/running-windows-batch-files-on-linux.7610/ ).

0