Wo habe ich meinen Bash-Pfad eingestellt?

9

Ich möchte ~/binaus meinem Pfad entfernen . Ich habe es vor Monaten eingerichtet, als Linux (Ubuntu) für mich sehr neu war, aber ich weiß nicht, wie ich es hinzugefügt habe ...

Wenn ich alle unten aufgeführten Dateien durchsuche, wird nichts angezeigt.
Wo sonst könnte es eingestellt werden? Es wird nach den $HOME/.profilePräfixen PATH mit vorangestellt$HOME/bin

Wenn es einen Unterschied macht, erhalte ich denselben PATH sowohl von der Eingabeaufforderung als auch von einem laufenden Skript.

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

Ausgabe ist:

first dir of PATH is: '~/bin'
Peter.O
quelle
Versuchen Sie PATHstattdessen zu greifen . Wenn Sie immer noch kein Glück haben, überprüfen Sie alle Dateien auf alles, was bezogen wird.
jw013
Hast du dein ~ / .bashrc und ~ / .profile darauf überprüft? Wenn nicht, schauen Sie sich das / etc / profile an. Ich denke, Sie werden es an einem dieser Orte finden.
Nikil
Vielen Dank an alle ... alle Vorschläge waren hilfreich ... es war in ~/.gnomerc...
Peter.O

Antworten:

10

Möglicherweise möchten Sie die vollständige Umgebungslast bei der Anmeldung verfolgen. Nur eine Idee.

Da / etc / profile die erste Datei ist, die bezogen wird, können Sie ganz oben Folgendes hinzufügen:

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

Öffnen Sie dann ein neues Terminal und führen Sie ein bash -l; Gehen Sie danach zum ursprünglichen Terminal und entfernen Sie die hinzugefügten Zeilen (Sie möchten eine Arbeitsumgebung, nicht wahr?).

Sie sollten mit einer vollständigen Ablaufverfolgung aller Schritte der load_the_bash_environment unter /tmp/debug.log enden. Es wird eine lange Datei sein.

Damit müssen Sie in der Lage sein zu lokalisieren, wo das "~ / bin" in Ihren PFAD gelangt

Ich würde zuerst nach einem Grep aller bezogenen Dateien suchen. Aus Ihrem Beitrag wette ich, dass das ~ / bin im Pfad in einer anderen Datei als die von Ihnen aufgelisteten festgelegt ist.

hmontoliu
quelle
@hmontoliu .. Ich hatte ein paar Probleme damit .. Erstens geht nichts in das Protokoll, aber ich bekomme viel Ausgabe im Terminal ( konsole) ... Der erste Verweis darauf ~/binzeigt es bereits in der Pfad, aber ich kann keinen Hinweis darauf sehen, woher er kam. Zu diesem Zeitpunkt folgt bereits der $HOME/binvon $HOME/.profile(Ich bin sicher, dass er von dort stammt, da ich für diesen Test ein spezielles zusätzliches Verzeichnis verwendet habe). Ich habe es jedoch geschafft, es empirisch zu finden, indem ich alle meine Textdateien durchsucht habe. Es stammt von ~/.gnomerc... und ich muss mich erneut anmelden, damit es sich ändert. ?? !! ..
Peter.O
Sind Sie sicher, dass Sie die Zeilen über / etc / profile eingefügt haben und dass Sie sie mit einer Ebene ausführen bash -l? Es muss das Debugging (-x), das an stderr geht, an /tmp/debug.log senden. in der Tat habe ich dies gerade getestet und funktioniert wie erwartet
hmontoliu
Ich werde es noch einmal versuchen ... Diese Protokollanalyse ist definitiv der
richtige
... Ich muss dieses Protokollproblem erst einmal in den zu harten Warenkorb legen. Es wurde immer noch nicht in die Protokolldatei ausgegeben, aber ich habe Hunderte von Zeilen im Terminal. Aber das ist in Ordnung. Es war eine gute Einführung in das Debug-Protokoll .. und ich habe sicherlich ein viel besseres Gefühl für die Konfigurationsdateien ... danke ...
Peter.O
3
Ich hatte zu ersetzen setmit execin der zweiten Zeile, dann ist es perfekt für mich gearbeitet :)
thomasa88