Où ai-je défini mon CHEMIN bash?

9

Je souhaite supprimer ~/binde mon CHEMIN. Je l'ai installé il y a des mois quand Linux (Ubuntu) était très nouveau pour moi, mais je ne sais pas comment je l'ai ajouté ...

Rien ne s'affiche lorsque je recherche tous les fichiers répertoriés ci-dessous.
Où pourrait-il être réglé? Il est pré-suspendu après les $HOME/.profilepréfixes PATH avec$HOME/bin

Si cela fait une différence, j'obtiens le même CHEMIN à la fois à l'invite de commande et dans un script en cours d'exécution.

#!/bin/bash
{
  echo "first dir of PATH is: '${PATH%%:*}'"
  shopt -s nullglob
  cat \
    /etc/profile \
    /etc/bash.bashrc \
    /etc/profile.d/*.sh \
    $HOME/.bashrc \
    $HOME/.bash_aliases \
    /etc/bash_completion \
    $HOME/.bash_completion* \
    $HOME/.profile \
    $HOME/.profile_zap \
    $HOME/.bash_profile* \
    $HOME/.bash_login* \
  | sed -rne '/~\/bin/p'
}

La sortie est:

first dir of PATH is: '~/bin'
Peter.O
la source
Essayez plutôt de chercher PATH. Si vous n'avez toujours pas de chance, vérifiez tous les fichiers pour tout ce qui provient.
jw013
Avez-vous vérifié votre ~ / .bashrc et ~ / .profile pour cela? Sinon, jetez un œil au profil / etc /. Je pense que vous le trouverez dans l'un de ces endroits.
nikhil
Merci à tous ... toutes les suggestions ont été utiles ... c'était dans ~/.gnomerc...
Peter.O

Réponses:

10

Vous souhaiterez peut-être suivre la charge complète de l'environnement lors de la connexion. Juste une idée.

Puisque / etc / profile est le premier fichier source, vous pouvez y ajouter tout en haut a:

set -x
exec 2> /tmp/debug.log

Ouvrez ensuite un nouveau terminal et faites un bash -l; après cela, allez sur le terminal d'origine et supprimez les lignes ajoutées (vous voulez avoir un environnement de travail, n'est-ce pas?).

Vous devriez terminer avec une trace complète de toutes les étapes de loading_the_bash_environment sur /tmp/debug.log. Ce sera un fichier loooong.

Avec cela, vous devez être en mesure de localiser où le "~ / bin" pénètre dans votre PATH

Je chercherais d'abord un grep de tous les fichiers provenant. De votre message, je parie que le ~ / bin dans le chemin d'accès est défini dans un fichier différent de ceux que vous avez répertoriés.

hmontoliu
la source
@hmontoliu .. J'ai eu quelques problèmes avec cela .. Tout d'abord, rien ne va dans le journal, mais je reçois beaucoup de sortie dans le terminal ( konsole) ... La première référence à le ~/binmontre déjà dans le chemin, mais je ne vois pas d'où il vient. Il est, à ce stade, déjà suivi par le $HOME/binde $HOME/.profile(je suis sûr qu'il vient de là, car j'ai utilisé un répertoire supplémentaire spécial pour ce test). ... Howerver, j'ai réussi à le trouver empiriquement, en cherchant tous mes fichiers texte .. Il vient de ~/.gnomerc.. et je dois me reconnecter pour le faire changer. ?? !! ..
Peter.O
Êtes-vous sûr que vous avez collé les lignes au-dessus de / etc / profile et que vous l'exécutez en clair bash -l? Il doit envoyer le débogage (-x) qui va à stderr vers /tmp/debug.log; en effet, je viens de tester cela et fonctionne comme je m'y attendais
hmontoliu
Je vais réessayer (encore) ... Cette analyse du journal est certainement la voie à suivre (quand tout le reste échoue :) et c'est une bonne occasion pour moi de mieux la comprendre ...
Peter.O
... Je vais devoir mettre ce problème de journal dans le panier trop dur pour l'instant .. Il n'a toujours pas été publié dans le fichier journal, mais j'ai reçu des centaines de lignes dans le terminal .. mais ça va ... Il a été une bonne introduction au journal de débogage .. et j'ai certainement une bien meilleure idée des fichiers de configuration ... merci ...
Peter.O
3
Je devais remplacer setavec execdans la deuxième ligne, alors cela a parfaitement fonctionné pour moi :)
thomasa88