PATH & SHELL

Résolu
Bonjour, et bonne année à tous

j'ai deux questions :

1) J'ai une erreur dans ma variable PATH. Deux slashs se suivent, du genre "/usr/local/etq3//bin". $PATH m'affiche la valeur suivi du message d'erreur.
- J'ai regardé dans /etc/profile et dans /$HOME/.bash_profile et je n'ai rien vu qui la modifie comme ça.
- Elle est pratiquement d'origine, je l'ai juste modifiée ainsi : PATH=$PATH:/$HOME/bin

=> Si vous avez une idée pour modifier cette erreur?

2) A propos de la création de fichiers exécutables:
- Avec vi je crée mon script et je le rend exécutable : chmod +x monfichier.
- Quand je liste mes fichiers, je me retrouve avec deux fichiers éxécutables: monfichier* et monfichier~*

=> Pouvez vous m'expliquer pourquoi? Ca fait mal docteur?

Cdlt

Melwin
Configuration: Mandriva 2007

9 réponses

  1. Bjr,
    Non ça ne fait pas mal !

    1)
    Les doubles // n'ont aucune conséquence, moi aussi ça ne me plaisait pas...
    n'ayant pas trouvé... j'ai fini par forcer le PATH dans le .bashrc :
    PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin

    2) C'est une option de vi positionnée probablement dans le fichier .vimrc à la racine du compte
    je ne me souviens pas son nom, elle à pour but de faire une sauvegarde du fichier dès qu'on fait un vi dessus, et qu'on est donc susceptible de le modifier.

    voici mon .vimrc
    set nu
    set ts=4

    nu c'est pour la numérotation des lignes
    ts le nombre de caractères pour la tabulation

    Slt
    1. Contributeur
      hello
      il y a déja un / dans $HOME, c'est lui qui est en trop /$HOME

      dans vim:
      :set nobk
      1. Modérateur
        Salut,

        $HOME c'est une variable d'environnement qui contient le chemin complet de l'utilisateur /home/utilisateur
        donc tu dois faire
         export PATH=$PATH:$HOME/bin


        regarde ici, pour plus de détails La variable d'environnement PATH
        1. En fait, je n'ai pas de problème avec la variable $Home, c'est une erreur dans mon poste de départ. Je n'ai pas eu de problème pour ajouter $HOME/bin.

          C'est par défaut, dans ma variable, j'ai une partie qui se charge automatiquement :=> "/usr/local/etq3//bin".

          Et je ne trouve pas dans les fichiers /etc/profile ; /home/utilisateur/.bash_profile ; /home/user/.bashrc de ligne de commande ajoutant ces valeurs dans la variable PATH...
          1. Modérateur
            Déjà tu peux commencer lire l'article que je t'ai donné ;-)
            Ensuite tu peux afficher ici ton fichier /etc/profile (mais attention, la modification de /etc/profile est globale pour tous les utilisateurs)
            1. J'ai lu l'article, j'avais déjà lu des trucs similaires, mais merci beaucoup quand même:
              - Linux Ed CampusPress; Linux Initialisation et utilisation Ed DUNOD.

              Alors voilà, bonne lecture
              $PATH donne : -bash: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/lib/qt3//bin:/home/user/bin: Aucun fichier ou répertoire de ce type

              :=> On remarque le double // entre qt3 et bin

              Et voilà mon fichier /etc/profile (j'ai même mis les commentaires)

              # /etc/profile -*- mode shell-script -*-
              # (c) MandrakeSoft , machin <machin@mandrake.com>
              loginsh=1
              # Users generally won't see annoyng core files
              [ "$UID "= "0" ] && ulimit -S -c 1000000 > /dev/null 2> &1
              if ! echo ${PATH} | grep -q /usr/X11R6/bin; then
              PATH="$PATH:/usr/X11R6/bin"
              fi

              if [ "$UID" -ge 500] && ! echo ${PATH} | grep -q /usr/games ; then
              PATH="$PATH:/usr/games"
              fi

              umask 022
              USER=`id -un`
              LOGNAME=$USER
              MAIL="/var/spool/mail/$USER"
              HISTCONTROL=ignoredups
              HOSTNAME=`bin/hostname`
              HISTSIZE=1000

              if [ -Z "$INPUTRC" -a ! -f "$HOME/.inputrc"] ; then
              INPUTRC=/etc/inputrc
              fi

              # Some hold programs still use it (eg: "man") and is also
              # required for level1 compliance for LI18NUX2000

              export PATH PS1 USER LOGNAME MAIL HOSTNAME
              export HISTCONTROL HISTSIZE

              for i in /etc/profile.d/*.sh ; do
              if [ -x $i ] ; then
              $i
              fi
              done

              unset ;
              1. Modérateur
                Salut,

                J'ai lu l'article, j'avais déjà lu des trucs similaires
                c'est bien ;-)
                en revanche j'ai l'impression que tu n'as pas compris

                Alors voilà, bonne lecture
                $PATH donne : -bash: /usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/usr/games:/usr/lib/qt3//bin:/home/user/bin: Aucun fichier ou répertoire de ce type


                on ne tape pas $PATH dans une console (même si de cette façon tu vois le PATH)
                sous shell pour lire le contenu d'une VARIABLE on tape echo $VARIABLE

                Pour la variable PATH la commande d'affichage du contenu sera echo $PATH

                Affiche
                grep PATH .bashrc
                1. Pan sur les doigts! Oui cette fois j'ai compris, je le savais pourtant, mais la facilité... J'apprends, merci de ton aide.

                  Pour le grep PATH .bashrc, cela ne donne rien.