Création de ses propres commandes partir d'un script

Résolu
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)

#!/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

  1. 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
    1. c'est vrai que sans l'extension .sh ça marche et c'est tout con ;)
  2. salut,

    man hier
    hier comme hierarchy, pas comme la veille.
    ;)
    1. Salut, il manque des doubles quote dans
      echo -n export PATH=$PATH:/usr/share/matrix_network/ >> /etc/bash.bashrc
      1. 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
        1. le bashrc modifiable par les users est ~/.bashrc
      2. 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
        1. 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-