Stała zmienna PATH

38

Jak mogę /media/De Soft/mongodb/binustawić tę zmienną PATH na stałe?

Wszyscy mówią „ export PATH=$PATH:media/De\ Soft/mongodb/bindo ciebie ~/.profile, lub .bashrc, w .zshenvzależności od twojej powłoki”.

Nie wiem co to jest ~/.profile, albo .bashrc, albo .zshenv. Co oni właściwie robią?

Jak dodać export PATH=$PATH:my/pathdo mojego .profile / .bashrc / .zshenv?

Używam 64-bitowego Ubuntu 14.04 LTS z domyślnym terminalem.

Towhid
źródło

Odpowiedzi:

70

Są to pliki konfiguracyjne. Jednokierunkowa:

  • Otwórz okno terminala za pomocą Ctrl + Alt + T
  • Uruchom polecenie gedit ~/.profile
  • Dodaj linię

    export PATH=$PATH:/media/De\ Soft/mongodb/bin

    na dół i zapisz

  • Wyloguj się i zaloguj ponownie

Edytować:

Bezpieczniejszym sposobem jest użycie cudzysłowów. Jest to konieczne, jeśli jeden lub więcej katalogów w oryginale PATHzawiera spacje. Więc:

export PATH="$PATH:/media/De Soft/mongodb/bin"
Gunnar Hjalmarsson
źródło
@GunnarHjalmarsson, czy naprawdę muszę eksportować zmienną PATH var? Może jest to domyślnie wykonywane w innym skrypcie? Po sprawdzeniu przez ~ / .profile jest tam zmienna PATH, ale nie jest ona wyraźnie wyeksportowana: PATH = ~ / .local / bin: $ JAVA_HOME / bin: $ PATH
yuranos87
4
@ yuranos87: ​​Nie, masz rację; podczas modyfikowania PATHw ~/.profile, eksport jest zbędny, ponieważ PATHjuż jest zmienna.
Gunnar Hjalmarsson
1
Nie musisz się wylogowywać i logować ponownie. Zastosowanie source ~/.profile.
timbo
1
@timbo: To nie udostępnia zmiennej dla już uruchomionych procesów w sesji (z wyjątkiem bieżącego terminala).
Gunnar Hjalmarsson,
1
Nie potrzebujesz znaku cudzysłowu w ciągu jak w export PATH="$PATH:/media/De\ Soft/mongodb/bin"? Czy to jest opcjonalne?
Bruno Bentzen
4

Wpisz następujące polecenie w oknie terminala

export PATH=/media/De\ Soft/mongodb/bin:$PATH 

Zamknij terminal i uruchom ponownie komputer. Ścieżka powinna zawierać / media / De \ Soft / mongodb / bin, gdy wpiszesz to w terminalu:

echo $PATH
Nivedita Velagaleti
źródło
13
Działa to tylko dla bieżącej sesji terminala. Musi być w ~/.profile(lub ~/.bashrcna wspólnych dystrybucjach GNU / Linux ... nawet ~/.bash_profile), aby działał przy każdym obciążeniu konsoli.
Alejandro Iván
Zgoda. ale po ponownym uruchomieniu systemu jest ładowany do zmiennej ścieżki.
Nivedita Velagaleti
10
@NiveditaVelagaleti: Nie, chyba że sprawisz, że będzie trwały za pomocą pliku konfiguracyjnego. Polecenie terminalu nie zmienia się PATHtrwale.
Gunnar Hjalmarsson
2

Aby trwale zmienić PATH, musisz wprowadzić zmiany w /etc/environmentpliku. Przed edycją wykonaj kopię zapasową:

sudo cp /etc/environment /etc/environment.bak
sudo nano /etc/environment

próbka wyjściowa:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Ścieżki są ograniczone przez, :więc aby dodać nową ścieżkę, powiedz, że x/y/ztak będzie /etc/environmentwyglądać nasz :

PATH="x/y/z:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Xaqron
źródło