Где я установил мой путь PATH?

9

Я хочу удалить ~/binиз моего PATH. Я установил его несколько месяцев назад, когда Linux (Ubuntu) был для меня совсем новым, но я не знаю, как я его добавил ...

Ничего не появляется, когда я ищу все файлы, перечисленные ниже.
Где еще это может быть установлено? Он префиксируется после $HOME/.profileпрефиксов PATH с$HOME/bin

Если это имеет какое-то значение, я получаю один и тот же PATH как из командной строки, так и из запущенного сценария.

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

Выход:

first dir of PATH is: '~/bin'
Peter.O
источник
Попробуйте PATHвместо этого поискать . Если вам все еще не повезло, проверьте все файлы на предмет наличия источников.
jw013
Вы проверили ~ / .bashrc и ~ / .profile для этого? Если нет, взгляните на / etc / profile. Я думаю, вы найдете это в одном из этих мест.
Нихил
Спасибо всем ... все предложения были полезны ... это было в ~/.gnomerc...
Peter.O

Ответы:

10

Вы можете отслеживать полную загрузку среды при входе в систему. Просто идея.

Так как / etc / profile является первым источником файла, вы можете добавить к нему в самом верху:

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

Затем откройте новый терминал и сделайте bash -l; после этого перейдите к исходному терминалу и удалите добавленные строки (вы хотите иметь рабочую среду, не так ли?).

Вы должны закончить с полным следом всех шагов загрузки_the_bash_environment в /tmp/debug.log. Это будет долгожданный файл.

При этом вы должны быть в состоянии определить, где «~ / bin» попадает в ваш PATH

Я бы сначала посмотрел grep всех файлов, полученных. Из вашего поста, я уверен, что ~ / bin в пути указан в другом файле из тех, что вы перечислили.

hmontoliu
источник
@hmontoliu .. У меня была пара проблем с этим .. Во-первых, ничего не идет в журнал, но я получаю много информации в терминале ( konsole) ... Первая ссылка на ~/binэто показывает, что уже в путь, но я не вижу никаких намеков на то, откуда он взялся .. На этом этапе уже следовал знак $HOME/binfrom $HOME/.profile(я уверен, что он оттуда, поскольку я использовал специальный дополнительный каталог для этого теста). ... Но мне удалось найти его эмпирически, выполнив поиск по всем моим текстовым файлам ... Он получен ~/.gnomerc... и мне нужно повторно войти в систему, чтобы изменить его. ?? !! ..
Peter.O
Вы уверены, что вставили строки поверх / etc / profile и выполняете их с помощью простого bash -l? Он должен отправить отладку (-x), которая идет в stderr, в /tmp/debug.log; действительно, я только что проверил это и работает, как я ожидал
hmontoliu
Я попробую это снова (снова) ... Этот анализ журнала определенно является подходящим способом (когда все остальное терпит неудачу :), и это хорошая возможность для меня, чтобы лучше понять это ...
Peter.O
... мне придется поместить этот вопрос журнала в слишком жесткую корзину на данный момент .. Он все еще не выводится в файл журнала, но я получил сотни строк в терминале ... но это нормально .. Это было хорошее введение в журнал отладки ... и я, конечно, гораздо лучше чувствую файлы конфигурации ... спасибо ...
Peter.O
3
Я должен был заменить setс execна второй линии, то она работала отлично для меня :)
thomasa88