Де я встановив свій баш PATH?


9

Я хочу видалити ~/binзі свого ПАТУ. Я створив це місяцями тому, коли 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'

Спробуйте привітатись PATHзамість цього. Якщо вам все-таки не пощастило, перевірте всі файли, чи немає у них ресурсів.
jw013

Чи перевіряли ви ~ / .bashrc та ~ / .profile на це? Якщо ви не подивіться на профіль / etc / profile. Я думаю, ви знайдете його в одному з цих місць.
nikhil

Дякую всім ... всі пропозиції були корисними ... було в ~/.gnomerc...
Peter.O

Відповіді:


10

Ви можете відстежити повне навантаження на середовище під час входу. Просто ідея.

Оскільки / etc / profile є першим отриманим файлом, ви можете додати до нього в самому верху a:

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

Потім відкрийте новий термінал і зробіть bash -l; після цього перейдіть до початкового терміналу і видаліть додані лінії (ви хочете мати робоче середовище, чи не так?).

Ви повинні закінчити повне простеження всіх етапів завантаження_the_bash_environment за адресою /tmp/debug.log. Це буде файл loooong.

З цим ви повинні бути в змозі знайти, де "~ / bin" потрапляє у вашу ПАТУ

Спершу я б поглянув на отримання всіх файлів, які були створені. З вашого допису я роблю ставку на те, що ~ / bin в шляху встановлений в іншому файлі з тих, які ви перерахували.


@hmontoliu .. У мене виникло кілька проблем з цим .. По-перше, нічого не йде в журнал, але я отримую багато виводу в терміналі ( konsole) ... Перше посилання на ~/binце показує вже в шлях, але я не бачу натяку на те, звідки він узявся .. На цьому етапі вже слідує перехід $HOME/binвід $HOME/.profile(я впевнений, що звідти, оскільки я використовував спеціальний додатковий каталог для цього тесту). ... Хоувервер, мені вдалося знайти це емпіричним шляхом, переглянувши всі мої текстові файли .. Він походить від ~/.gnomerc.. і мені потрібно повторно увійти в систему, щоб викликати його зміни. ?? !! ..
Пітер.О

Ви впевнені, що ви вставили рядки вгору / etc / profile і виконали їх звичайною bash -l? Він повинен надіслати налагодження (-x), яке переходить до stderr, до /tmp/debug.log; Дійсно, я щойно це перевірив і працює так, як я очікував
hmontoliu

Я спробую ще раз (знову) ... Цей аналіз журналу - це, безумовно, шлях (коли все інше не вдасться :), і це хороша можливість мені краще зрозуміти це ...
Peter.O

... Мені доведеться зараз поставити цю проблему з журналом у занадто жорсткий кошик. Він все ще не виводив файл лог-файлу, але в терміналі я отримав сотні рядків .. але це нормально. Це було хороший вступ до журналу налагодження .. і я, звичайно, набагато краще відчуваю конфігураційні файли ... дякую ...
Peter.O

3
Я повинен був замінити setз execна другий лінії, то вона працювала відмінно для мене :)
thomasa88
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.