Comment créer une commande de terminal personnalisée (pour exécuter un script)?

36

Je suis un développeur web. Quand je veux commencer à travailler, j'exécute toujours une commande sur le terminal. Par exemple:

sudo service apache2 start
sudo service mysql start
sublime

Pour accélérer ce processus, je crée un .shfichier contenant ces commandes.

Maintenant, quand je veux commencer à travailler, je viens d’exécuter ce fichier .sh et tous les services (mysql, apache2, etc.) commencent.

Est-il possible de créer une commande personnalisée pour cela? Par exemple si je tape sudo start-workingau terminal, il exécutera ces commandes

Eray
la source

Réponses:

58

Une façon habituelle de gérer cela consiste à créer un binrépertoire dans leur répertoire personnel:mkdir ~/bin

Ensuite, vous pouvez y mettre vos scripts personnalisés: mv start-working ~/bin

Assurez-vous que votre script est exécutable: chmod +x ~/bin/start-working

Ajoutez ceci au bas de votre ~/.bashrcfichier (si vous utilisez bash, ce que vous êtes probablement):export PATH=$PATH:~/bin

Maintenant, reconnectez-vous et déconnectez-vous de votre terminal et vous devriez être capable de taper simplement start-working, et votre script sera exécuté.

Maintenant que votre chemin est configuré, ~/binvous pouvez simplement saisir le nom de chaque nouveau script que vous déposez dans votre .

Joseph Oppegaard
la source
13
+1 et au lieu de vous connecter et de vous déconnecter, vous pouvez simplement exécuter les commandes source ~/.bashrcou . ~/.bashrcpour appliquer les modifications.
Meysam
Joe Oppegaard, je trouve ces informations très utiles car certains de mes scripts sont terminés et je souhaiterais les exécuter en tant que commande plutôt que script. Existe-t-il un moyen d'inclure tous les sous-répertoires que vous avez créés dans ~ / bin afin de ne pas avoir à inclure plusieurs lignes d'exportation dans .bashrc? J'ai essayé export PATH=$PATH:~/bin/*mais cela n'a pas donné les résultats souhaités.
Kevin Wyman
2
La valeur par défaut ~/.profileajoute déjà ~/binà PATH, donc l'ajouter ~/.bashrcen plus l'ajoutera inutilement deux fois ou plus.
geirha
Cela a fonctionné sans que j'ajoute quoi que ce soit à .bashrc, de sorte que vous pourrez peut-être sauter ainsi que le dit geriha
Aaron Flores
D'après mon expérience, lorsque vous ajoutez un nouveau fichier, vous devez refaire une commande chmod, sinon l'autorisation sera refusée
Webwoman
15

Je cherchais comment créer des commandes personnalisées et j'ai trouvé cette question parmi d'autres. Je pense que ce que je cherchais, c'était pour les pseudonymes. Je vais donc vous donner le moyen de le faire avec un pseudonyme.

Sur votre dossier personnel:

nano .bash_aliases

Et là, vous pouvez écrire vos commandes sur une seule ligne:

alias start-working='sudo service apache2 start; sudo service mysql start; sublime'

Après avoir sauvegardé le fichier, reconfigurez votre base

. ~/.bashrc

Et vérifiez que votre nouvel alias est chargé

alias

Ça y est, vous pouvez commencer à travailler maintenant en exécutant

start-working
roho
la source