Gdzie mam ustawić ścieżkę Bash?

9

Chcę usunąć ~/binz mojej ŚCIEŻKI. Skonfigurowałem to kilka miesięcy temu, kiedy Linux (Ubuntu) był dla mnie bardzo nowy, ale nie wiem, jak go dodałem ...

Nic nie pojawia się podczas wyszukiwania wszystkich plików wymienionych poniżej.
Gdzie jeszcze można to ustawić? Jest wstępnie zawieszony po $HOME/.profileprefiksach ŚCIEŻKA z$HOME/bin

Jeśli robi to jakąkolwiek różnicę, otrzymuję tę samą ŚCIEŻKĘ z wiersza polecenia i działającego skryptu.

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

Dane wyjściowe to:

first dir of PATH is: '~/bin'
Peter.O
źródło
PATHZamiast tego spróbuj greppinga . Jeśli nadal nie ma szczęścia, sprawdź wszystkie pliki pod kątem pozyskiwanego źródła.
jw013,
Czy sprawdziłeś w tym celu swój ~ / .bashrc i ~ / .profile? Jeśli nie, spójrz na profil / etc /. Myślę, że znajdziesz to w jednym z tych miejsc.
nikhil
Dzięki wszystkim ... wszystkie sugestie były pomocne ... to było w ~/.gnomerc...
Peter.O

Odpowiedzi:

10

Możesz śledzić pełne obciążenie środowiska podczas logowania. Po prostu pomysł.

Ponieważ / etc / profile to pierwszy plik źródłowy, możesz dodać do niego na samym szczycie:

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

Następnie otwórz nowy terminal i zrób bash -l; potem przejdź do oryginalnego terminalu i usuń dodane linie (chcesz mieć środowisko pracy, prawda?).

Powinieneś zakończyć pełną ścieżką wszystkich kroków środowiska ładowania_bash w /tmp/debug.log. To będzie długi plik.

Dzięki temu musisz być w stanie zlokalizować, gdzie „~ / bin” dostaje się do twojej ŚCIEŻKI

Najpierw szukałem grep wszystkich pobranych plików. Z twojego postu założę się, że ~ / bin na ścieżce jest ustawiony w innym pliku z tych, które wymieniłeś.

hmontoliu
źródło
@hmontoliu .. Miałem z tym kilka problemów .. Po pierwsze, nic nie idzie do dziennika, ale otrzymuję dużo danych wyjściowych w terminalu ( konsole) ... Pierwsze odniesienie do ~/binpokazuje to już w ścieżka, ale nie widzę śladu skąd pochodzi .. jest w tym momencie, już po przez $HOME/binz $HOME/.profile(jestem pewien, że to stamtąd, jak użyłem specjalną dodatkową katalogu dla tego testu). ... Jednak udało mi się go znaleźć empirycznie, przeszukując wszystkie moje pliki tekstowe .. Pochodzi z ~/.gnomerc... i muszę się ponownie zalogować, aby to zmienić. ?? !! ..
Peter.O,
Czy jesteś pewien, że wkleiłeś linie na / etc / profile i że wykonujesz to zwykłym tekstem bash -l? Musi wysłać debugowanie (-x), które przechodzi do stderr do /tmp/debug.log; rzeczywiście właśnie to przetestowałem i działa tak, jak się spodziewałem
hmontoliu
Spróbuję jeszcze raz (ponownie) ... Ta analiza dziennika jest zdecydowanie najlepszym rozwiązaniem (gdy wszystko inne zawiedzie :) i jest to dla mnie dobra okazja, aby lepiej ją zrozumieć ...
Peter.O
... Na razie będę musiał umieścić ten problem z dziennikiem w zbyt trudnym koszyku .. Nadal nie wyświetlał się w pliku dziennika, ale mam setki linii w terminalu ... ale to jest w porządku .. Zostało dobre wprowadzenie do dziennika debugowania ... i na pewno mam dużo lepsze wyczucie plików konfiguracyjnych ... dzięki ...
Peter.O
3
Musiałem wymienić setze execw drugiej linii, a następnie pracował idealnie dla mnie :)
thomasa88