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
    0
    1. Contributeur
      hello
      il y a déja un / dans $HOME, c'est lui qui est en trop /$HOME

      dans vim:
      :set nobk
      0
      1. c'est une erreur dans mon post je n'ai pas mis /$home
        0
        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
          0
          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...
            0
            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)
              0
              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 ;
                0
                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
                  0
                  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.
                    0