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.
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 -
-
Salut, il manque des doubles quote dans
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 -
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 -
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-