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 -
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. trauqnej Messages postés 162 Statut Membre 23
     
    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
    3
    1. Swiss Knight Messages postés 2257 Statut Membre 110
       
      c'est vrai que sans l'extension .sh ça marche et c'est tout con ;)
      0
  2. Utilisateur anonyme
     
    salut,

    man hier
    hier comme hierarchy, pas comme la veille.
    ;)
    1
  3. JwTdd
     
    Salut, il manque des doubles quote dans
    echo -n export PATH=$PATH:/usr/share/matrix_network/ >> /etc/bash.bashrc
    0
  4. Zebuuu Messages postés 20 Statut Membre
     
    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
    0
    1. JwTdd
       
      le bashrc modifiable par les users est ~/.bashrc
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Zebuuu Messages postés 20 Statut Membre
     
    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
    0
  7. Swiss Knight Messages postés 2257 Statut Membre 110
     
    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-
    0