Création de ses propres commandes partir d'un script
Résolu
Zebuuu
Messages postés
20
Statut
Membre
-
Swiss Knight Messages postés 2257 Statut Membre -
Swiss Knight Messages postés 2257 Statut Membre -
Bonjour,
Voilà je voudrais créer mes propres commandes à partir d'un script bash.
Par exemple au lieu de faire ./nomDuScript.sh je n'aurai plus qu'à faire nomDuScript.
Je débute en shell et j'ai pas mal regardé sur le net mais je n'y arrive pas.
Par exemple j'ai lu
https://www.commentcamarche.net/faq/15252-creation-d-une-commande-sous-linux
http://feldboris.alwaysdata.net/blog/creer-des-commandes-bash.html
A chaque fois ca ne trouve pas la commande :
Par exemple en utilisant la méthode du deuxième lien : (en modifiant $PATH et /etc/bash.bashrc)
Sinon j'ai réussi à créer une commande à partir un .c compilé.
En alternative est-il possible de lancer un script .sh en c?
Si quelqu'un peut m'aider svp
Merci d'avance.
Voilà je voudrais créer mes propres commandes à partir d'un script bash.
Par exemple au lieu de faire ./nomDuScript.sh je n'aurai plus qu'à faire nomDuScript.
Je débute en shell et j'ai pas mal regardé sur le net mais je n'y arrive pas.
Par exemple j'ai lu
https://www.commentcamarche.net/faq/15252-creation-d-une-commande-sous-linux
http://feldboris.alwaysdata.net/blog/creer-des-commandes-bash.html
A chaque fois ca ne trouve pas la commande :
Par exemple en utilisant la méthode du deuxième lien : (en modifiant $PATH et /etc/bash.bashrc)
#!/bin/sh #fichier installation.sh mkdir /usr/share/matrix_network echo "\nCréation du dossier matrix_network... Done" echo -n "./usr/share/matrix_network/creeProfil.sh" > /usr/share/matrix_network/matrix_network.bash_aliases echo "Création du fichier matrix_network.bash_aliases dans /matrix_network... Done" cp creeProfil.sh /usr/share/matrix_network/ echo "Création de la commande bash creeProfil... Done" echo -n export PATH=$PATH:/usr/share/matrix_network/ >> /etc/bash.bashrc echo "Ajout de /usr/share/matrix_network à la variable PATH... Done" echo -n "\nif [ -f /usr/share/matrix_network/matrix_network.bash_aliases ]; then . /usr/share/matrix_network/matrix_network.bash_aliases ; fi" >> /etc/bash.bashrc echo "Ajout d'une référence à matrix_network.bash_aliase dans /etc/bash.bashrc... Done" et quand je tape dans la console installation j'ai le droit à "commande introuvable" echo "\nInstallation Terminée... Bonne utilisation\n" #. /etc/bash.bashrc
Sinon j'ai réussi à créer une commande à partir un .c compilé.
En alternative est-il possible de lancer un script .sh en c?
Si quelqu'un peut m'aider svp
Merci d'avance.
A voir également:
- Création de ses propres commandes partir d'un script
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Invite de commandes - Guide
- Script vidéo youtube - Guide
- Creation de site web - Guide
- Creation de compte google - Guide
6 réponses
en fait c'est simple:
en ligne de commande tape :
echo "cette ligne s'affiche lorsque j'exécute mon dudulle (même sans extension) " > dudulle
# deuxieme commande
chmod u+x dudulle
# troisieme commande
PATH="$PATH:."
# le point indique l'endroit ou tu te trouves
# maintenant tu peux taper
dudulle
#cedla va afficher la ligne
pour éviter de taper toujours la commande du PATH, mets la dans ton fichier .profile ou .bashrc
Voilà, c'est, aussi, pour cela que j'aime linux
en ligne de commande tape :
echo "cette ligne s'affiche lorsque j'exécute mon dudulle (même sans extension) " > dudulle
# deuxieme commande
chmod u+x dudulle
# troisieme commande
PATH="$PATH:."
# le point indique l'endroit ou tu te trouves
# maintenant tu peux taper
dudulle
#cedla va afficher la ligne
pour éviter de taper toujours la commande du PATH, mets la dans ton fichier .profile ou .bashrc
Voilà, c'est, aussi, pour cela que j'aime linux
Swiss Knight
Messages postés
2257
Statut
Membre
110
c'est vrai que sans l'extension .sh ça marche et c'est tout con ;)
Salut, il manque des doubles quote dans
echo -n export PATH=$PATH:/usr/share/matrix_network/ >> /etc/bash.bashrc
echo -n export PATH=$PATH:/usr/share/matrix_network/ >> /etc/bash.bashrc
Merci.
J'ai fait deux/trois modif et maintenant ca marche enfin presque.
Finalement mon script est envoyé dans /usr/bin/ comme ça plus de probleme avec $PATH
Je peux faire creeProfil que en étant loogé en root (sudo su)
J'ai donc fait un chgrp et chown pour mettre mon utilisateur et son groupe sur le fichier /usr/bin/creeProfil.sh
Si je reste en root ca marche toujours. Mais en dehors c'est commande introuvable.
De quoi cela peut-il bien venir?
Faut -il que je fasse un chown et chgrp pour le fichier aliases également?
Merci d'avance
EDIT : chown et chgrp pour le fichier aliases ca ne change rien, je suis perdu
J'ai fait deux/trois modif et maintenant ca marche enfin presque.
Finalement mon script est envoyé dans /usr/bin/ comme ça plus de probleme avec $PATH
Je peux faire creeProfil que en étant loogé en root (sudo su)
J'ai donc fait un chgrp et chown pour mettre mon utilisateur et son groupe sur le fichier /usr/bin/creeProfil.sh
Si je reste en root ca marche toujours. Mais en dehors c'est commande introuvable.
De quoi cela peut-il bien venir?
Faut -il que je fasse un chown et chgrp pour le fichier aliases également?
Merci d'avance
EDIT : chown et chgrp pour le fichier aliases ca ne change rien, je suis perdu
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut, Merci de l'info.
Finalement j'ai choisi de mettre ça dans /etc/bash.bashrc, si je ne me trompe pas c'est bien ici pour tous les utilisateurs et ~/.bashrc seulement pour l'user qui est co?
Dernière question.
Si je veux stocker des données en commun à tous les users c est bien dans /usr/share non?
Je ne saisie pas bien la différence entre /usr/share et /usr/local/share .
Merci d'avance
Finalement j'ai choisi de mettre ça dans /etc/bash.bashrc, si je ne me trompe pas c'est bien ici pour tous les utilisateurs et ~/.bashrc seulement pour l'user qui est co?
Dernière question.
Si je veux stocker des données en commun à tous les users c est bien dans /usr/share non?
Je ne saisie pas bien la différence entre /usr/share et /usr/local/share .
Merci d'avance
Salut,
moi j'ai un bash.bashrc dans /etc , c'est juste.
et sinon il y a ce fichier aussi je crois, à vérifier : /etc/profile
je suis aussi curieux de connaître la différence entre /usr/share et /usr/local/share
je me perds dans tous ces dossiers :(
"Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement." -A. Einsten-
moi j'ai un bash.bashrc dans /etc , c'est juste.
et sinon il y a ce fichier aussi je crois, à vérifier : /etc/profile
je suis aussi curieux de connaître la différence entre /usr/share et /usr/local/share
je me perds dans tous ces dossiers :(
"Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement." -A. Einsten-