PATH'imi nasıl değiştiririm ki değişikliklerin her Terminal oturumunda mevcut olması için


53

Arama yolumu aramak için bir dizin eklemek istiyorum. PATHOrtam değişkenini değiştirmem gerektiğini biliyorum . Ancak, değişimin kalıcı olmasını istiyorum, böylece açtığım her Terminal (bash) penceresi için her zaman geçerli olur.

Https://help.ubuntu.com/community/EnvironmentVariables adresinde kafa karıştırıcı ve muhtemelen birbiriyle çelişen bilgilerin aşırı yüklenmesi var

Ubuntu 10.04 kullanıyorum. Diyelim ki /usr/local/foobenim eklemek istiyorum PATH. Hangi dosya ( .bashrc, .profile, .bash_login, vs ...) Ben değiştirmesi gerektiğini ve hangi yeni hat (lar) gibi görünmelidir?

Yanıtlar:


70

Aşağıdaki komut, geçerli yolunuza bir yol ekler:

export PATH=$PATH:/my/custom/path

Kurulumunuzun her seferinde bu komutu yerine getirmesini istiyorsanız, koyabileceğiniz birçok yer vardır. Giriş yaptığınızda, aşağıdaki komut dosyaları bu sıraya göre yürütülecektir:

/etc/profile      (which starts by loading everything in /etc/profile.d)
~/.profile        (which starts by loading ~/.bashrc if you are running bash)

notlar

  • ~/.profile sadece varsa ~/.bash_profileve ~/.bash_loginVAR OLMAYIN. Aksi takdirde, en azından bash, yerine onları yükleyecektir. .profileKeskin spesifik komut dosyalarının kullanılması önerilir . Yani, bu denemelerde yaptıysanız .bash_login, lütfen şimdi silin.

  • ~/.bashrcyalnızca etkileşimli bir oturum çalıştırıyorsanız yüklenir. (aslında bir şey yazabileceğiniz bir istemde bir şey).

  • ~/.bashrcHer yeni bir terminal açtığınızda tekrar tekrar yüklenir . Böylece gnome-terminalinde yeni bir sekme, yeni bir sanal terminal, vs.. Tekrar giriş yapmasanız bile, .bashrcher yeni bir kabuk açtığınızda yüklenir (ve böylece ortamını sıfırlar).

  • Byobu gibi şeyler gerçekten içine girmeli .profile, (yoksa işe yaramaz ;-)

  • .profileİnteraktif oturumların dışında çalışmalarını istiyorsanız, yollar gibi şeylerin girmesi gerekir . ( GNOME’da Alt+ tuşuna bastığınızdaF2


Bunu .profile'a eklenmesi gereken dışa aktarma satırını içerecek şekilde güncellerseniz bunu cevap olarak işaretlerim.
Joshua Flanagan

Bu sadece konsol girişleri için geçerliydi (örn. Ssh veya Ctrl + Alt + Fx için erişilebilir sanal terminaller). Bu günlerde / etc / gdm / Xsession kaynakları ~ / .profile olduğunu bilmiyordum. Temiz!
Marius Gedminas

Evet, özellikle / etc / gdm / Xsession'dan ya da ~ / .Xprofile'den bahsetmedim çünkü başlangıçta grafiksel programları başlatmanın daha iyi yolları var, bu da ortamın geri kalanının zaten yüklü olduğunu garanti ediyor.
Ralf

1
bu cevabı daha kapsamlı hale getirmek için lütfen MattH'nin ~ / .profile ile ilgili yaptığı açıklamada, oturumu kapatmadan / kapatmadan değişiklikleri etkinleştirmek için yorum ekleyin.
matt wilkie 17:10

1
@schwiz: ~/.profileher terminalde yürütülmez, masaüstü oturumunuz başladığında önce yürütülür. Her terminalde ~/.bashrc
yapılanlar

13

Değiştirerek çalışmasını sağladım ~/.profile

Benim dizinime ~ / bin eklemek kötü bir örnekti, çünkü dizin varsa, bunu otomatik olarak yapmak için ~ / .profile dosyasında zaten bir kod var.

Usr / local / foo dizinini ilerleyen her oturum için yoluma eklemek için, .profile sayfasının sonuna şu satırı ekler / düzenlerim:

export PATH=$PATH:/usr/local/foo

Ancak, bunun yürürlüğe girmesi için, oturumu kapatıp tekrar oturum açmam gerekiyordu (yalnızca Terminal penceresini kapatıp yeni bir tane açmak işe yaramadı).


4
İçinde export PATH="$PATH:/usr/foo"boşluk veya başka özel karakterler olması durumunda bunu yapın $PATH.
Gilles 'SO- kötülük olmayı'

3
Geçerli ortamı, ". ~ / .Profile" yazarak çıkış yapmadan yeniden yükleyebilirsiniz
Matt H

1
@ MattH: hayır yapamazsınız. Eğer ~/.profilebelirli bir terminalde kaynak yaparsanız , sadece
MestreLion

@MestreLion - haklısın. Mevcut terminal için kolaylık sağlamaktan bahsediyordum. Bunu eklemek için unuttum.
Matt H

Ya PATH'te zaten bir şeyim varsa? PATHS'in Windows'ta çalışması gibi ekleyebilir miyim? Mesela ben PATH="$HOME/bin:$HOME/.local/bin:$PATH"zaten var.
Gabriel Fair

4

.Profile dosyasını yeniden yüklemek ve çıkış / giriş yapmadan değişiklik efektlerini almak için şunu çalıştırın:

source ~/.profile

Bu bir önceki cevaba bir yorum olmalıdır
Pavlo Zhukov

3

Yolu ekleyebilir /etc/environment, ancak kabuk genişlemelerinin işe yaramayacağını unutmayın; Değişken kelimenin tam anlamıyla girdiğiniz karakterlere ayarlanacaktır.


İki yöntemden (.profile dışa aktarma komutu ekleyerek ve / / ortamındaki PATH'ye tam yol adını ekleyerek) hangisi tercih edilmelidir?
Rohan Bhatia,

2

Dizininizdeki .bashrcdosyayı değiştirebilirsiniz $HOME.

Bu dosyanın sonuna satırı ekleyin:

export PATH="$HOME/directory_to_include_in_path/:$PATH"

Ayrıca , aşağıdaki satır da dahil olmak üzere dizinde .profilede dosyayı değiştirebilirsiniz $HOME:

PATH="$HOME/directory_to_include_in_path/:$PATH"

Bu benim için çalıştı.


2
Bunun daha ayrıntılı bir şekilde açıklayan diğer cevaplara ne eklediğini anlamıyorum.
Zanna

Terminal pencerelerini değiştirmek için değişiklik yapmak istiyorsanız bu doğru cevaptır. .profileTerminal pencerelerinde değişimin etkisi yoktur.
Markus Laire

0

Ohmyzsh varsa ev dizininize terminal üzerinden geçin ve yazın

nano .zshrc

Dosyanın sonuna girin

dışa aktarma PATH = "$ HOME / directory_to_include_in_path /: $ PATH"

Sonunda terminalinizi yeniden başlatın. Benim için çalıştı. Umarım bu yardımcı oldu.


-3
Going through the basics, I will suggest the following steps:
1. It's recommended to set environment variables in /etc/environment
2. Open the file as superuser in an editor as it's a read only file e.g.     gedit:
gksu gedit /etc/environment
3. System will need password to open it in editable mode. Enter your superuser password and get file opened in a new gedit window. 
4. Add new line at the end of file with 
export PATH=$PATH:/usr/local/foo
5. Save and close the window. It will get command back to terminal.
6. Refresh the environment by running the following command: 
. /etc/environment
7. You may check by executing the following command:
 echo $PATH

Bu yanlış ve işe yaramayacak. Parametre genişletme gerçekleştirilmez/etc/environment
Zanna
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.