$PATHUbuntu'da bir dizini nasıl eklerim ve değişiklikleri kalıcı hale getiririm?
$PATHUbuntu'da bir dizini nasıl eklerim ve değişiklikleri kalıcı hale getiririm?
Yanıtlar:
Ayarlanan bir yol .bash_profilesadece bir bash giriş kabuğuna ( bash -l) ayarlanır . Yolunuza koyarsanız, .profilemasaüstü oturumunuzun tamamı için geçerli olacaktır. Bu, metasitenin bile kullanacağı anlamına gelir.
Örneğin ~/.profile:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
BTT, bir sürecin PATH değişkenini ortamına bakarak kontrol edebilirsiniz /proc/[pid]/environ([pid] ile sayıyı değiştirin ps axf). Örneğin kullanımgrep -z "^PATH" /proc/[pid]/environ
bashGiriş kabuğu ayrıştırmak olmadığı için .profileya eğer .bash_profileya .bash_loginyoktur. Kimden man bash:
~ / .bash_profile, ~ / .bash_login ve ~ / .profile öğelerini bu sırada arar ve var olan ve okunabilen ilk komutları okur ve yürütür.
Bkz aşağıda cevapları hakkında bilgi almak için .pam_environment, ya da .bashrcinteraktif olmayan giriş kabukları için veya içine bir script koyarak tüm kullanıcılar için küresel değeri /etc/profile.d/veya kullanım /etc/X11/Xsession.d/ekran yöneticileri oturumu etkileyecek.
PATH="$HOME/bin:$PATH"eklemeliyim ... Yani ekledim mi?
Edit .bashrcev dizininde ve aşağıdaki satırı ekleyin:
export PATH="/path/to/dir:$PATH"
.bashrcDeğişikliklerin geçerli olması için oturum açmanız / oturumu kapatmanız / oturum açmanız (veya terminali yeniden başlatmanız) gerekir. Kaynak bulmak için .bashrc, sadece yazın
$ source ~/.bashrc
.bashrc? "Terminali yeniden başlat" nasıl?
.bashrcortam değişkenlerini ayarlamak için doğru yer değil. İçeri girmeli .profileya da gitmeli .pam_environment. Bkz mywiki.wooledge.org/DotFiles
. .bashrcdeğil .bashrc:) veya source .bashrcbu konuda
Tüm kullanıcılara uygulanan kalıcı, sistem genelinde ortam değişkenlerini tanımlamak için önerilen yer şuradadır :
/etc/environment
(varsayılanın PATHtanımlandığı yerdir )
Bu masaüstü veya konsolda, GNOME terminalinde veya TTY'de çalışacak, yağmur veya parlayacak;)
Düzenlemek için Alt+ tuşlarına basın F2ve şunu yazın:
gksudo gedit /etc/environment
(veya sudoen sevdiğiniz metin düzenleyicide kullanarak dosyayı açın )
Değişiklikleri yapmak için, koş . /etc/environment. Bu dosya sadece basit bir betik olduğundan, çalışacak ve yeni yolu PATHçevre değişkenine atayacaktır . Run env dosyasını kontrol etmek ve PATHlistedeki değeri görmek için .
İlgili:
source /etc/environmentdeğişiklikleri yeniden
Bence Ubuntu'daki kanonik yol şudur:
altında yeni bir dosya oluştur /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
orada ekle:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
ve yürütmesine izin ver
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
GUI ile daha konforlu olan yeni başlayanlar için (benim gibi):
$HOMEKlasörünü aç ..profileve Metin Düzenleyiciyle Aç seçeneğine tıklayın .PATH="$PATH:/my/path/foo"..profile).$PATH:mevcut YOLU tanımını içeren bit
Yalnızca belirli kullanıcılar tarafından kullanılabilen kalıcı ortam değişkenleri için. Ubuntu resmi belgelerini tavsiye ederim.
https://help.ubuntu.com/community/EnvironmentVariables
Yukarıdaki belgelere bakıldığında, Android SDK yol araçlarımı şu şekilde ayarlarım :
~/.pam_environmentAna dizinde dosya oluşturma .PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.~/.bashrcDosyanın içine bu satırı koyun .
Bir terminal açtığınızda kaynaklı olur
DÜZENLEME : (Eğer vurduğunda dahil tüm kabuklar için geçerli olacak daha genel bir ayar için aşağıdaki yorum dayanarak Alt- F2Unity), senin için satırı ekleyin ~/.profiledosyası. Muhtemelen her ikisini de yapmamalısınız, çünkü PATHbir terminal açarsanız ortamınız için yol iki kez eklenecektir .
$HOME/.profilekişisel ayarlar /etc/profileiçin veya tüm kullanıcılar için ayarladığınızı sanıyordum . Ama sadece bash için gerekliyse, her ikisinin de işe yarayacağını düşünüyorum.
~/.bashrc, yalnızca açtığınız terminallerde kullanılabilir. Örneğin, Alt + F2'ye basıp o dizinden bir komut çalıştırmayı denerseniz, onu bulamaz. Eğer bunu ayarlarsanız ~/.profileveya ~/.pam_environmentgnome oturumu (veya hangisi DE kullandığınız) bunu devralır. PATH eklenmesi ~/.bashrcde, bash'ı etkileşimli bir etkileşimli bash kabuğundan etkileşimli olarak açarsanız / çalıştırırsanız, birkaç kez ekleneceği dezavantajı vardır.
~/.profilekişisel yollar için doğru; Ubuntu'nun ~/bindizini eklediği yer burasıdır . Ve itiraf ediyorum, birkaç şekilde abarttığımı itiraf ediyorum - sadece biraz.
~/.profilede bu davayla giderdim .
Geniş bunu sistemini ayarlamak için satır eklemek export PATH=/path/you're/adding:$PATHsonuna /etc/profile.
Yalnızca oturum açan kullanıcının dizinini eklemek için aynı satırı da ekleyin ~/.bash_profile.
.Bashrc 'ye eklemek işe yarayacaktır, ancak yol değişkenlerinizi ayarlamanın daha geleneksel yolunun aşağıdaki satırları ekleyerek .bash_profile olduğunu düşünüyorum.
PATH=$PATH:/my/path/foo
export PATH
Bu konuya göre Ubuntu'nun davranışı RedHat ve klonlardan biraz farklı görünüyor.
.bashrc, onun .bashrcyerine yapıştırın . Ubuntu'daki GUI terminalleri giriş kabukları değildir, bu nedenle .bash_profileçalıştırılmayacaktır.
.bash_profile. Bash bir tane bulamazsa .bash_profile(etkileşimli olarak oturum açtığınızda), bunun .profileyerine onu arar ve kullanır. Varsayılan olarak, a .profileve .bashrcUbuntu'da olacaksınız . Ve .profilebiz pam_env dikkat edilmediğinde ortam değişkenleri ayarlamak için doğru yerdir.
sudo vi /etc/profile.d/SCRIPT_NAME.sh
oraya ekle
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
sudo nano /etc/profile.d/SCRIPT_NAME.shyeni başlayanlar için daha kolaydır.
gksu gedit /etc/profile.d/SCRIPT_NAME.shiçin daha kolaydır.
BASH komut dosyalarımın klasörünü "kurduğumda" $HOME/bin, Ubuntu'nun son sürümlerinde çoğu .profile dosyasındaki bir klasör için yapılan testin modelini izlerim. Benzeyen bir test ayarladım
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Zamanın sadece% 100'ünü kullanıyor ve bir GUI metin editöründe hızlı bir "Tümünü Değiştir" ile değiştirmeme izin vermiyor, klasörüme /scriptsyakın bir yere gitmeye karar vermeliyim $HOME. Bunu 6 Ubuntu kurulumunda yapmadım, fakat “her zaman yarın” var. S
BZT
Senin düzenlemek için önerilen yol PATHdan /etc/environmentdosyası
Örnek çıktı /etc/environment:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Örneğin, yeni yolunu eklemek için /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
Ardından, bilgisayarınızı yeniden başlatın.
Sistem genelinde çevre değişkenleri
Sistemi bir bütün olarak etkileyen ortam değişken ayarları için uygun bir dosya (sadece belirli bir kullanıcı yerine) / etc / ortam. Bir alternatif, /etc/profile.d dizinindeki amaç için bir dosya oluşturmaktır.
/ Etc / çevre
Bu dosya özellikle sistem çapında ortam değişken ayarları içindir. Bir komut dosyası değil, her satırda bir tane olmak üzere atama ifadelerinden oluşur.
Not: Değişken genişleme / etc / ortamda çalışmaz.
Daha fazla bilgi burada bulunabilir: EnvironmentVariables
Terminalinizi açın gedit .profile, aşağıdakini yazın ve yerleştirin:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
#the following line add Bin where you dont have a Bin folder on your $HOME
PATH="$PATH:/home/mongo/Documents/mongodb-linux-i686-2.2.2/bin"
Kapatın ve terminali açın, çalışıyor olmalı.
Sistem komut dosyaları bunu kullanmasa bile $HOME/bin, birinin PATH ortam değişkenine yol (örn. ) Eklemek istediği durumlarda kullanması gerekir.
PATH="${PATH:+${PATH}:}$HOME/bin"
eklemek için (yerine PATH="$PATH:$HOME/bin") ve
PATH="$HOME/bin${PATH:+:${PATH}}"
hazırlamak için (yerine PATH="$HOME/bin:$PATH").
Bu $PATH, başlangıçta boşken istenmeyen etkilere yol açabilen sahte ön / arka kolondan kaçınır .
Bakınız örneğin https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating- leading- colon- if- unset
Ubuntu ~/.bashrciçin aşağıdaki satırı düzenleyin ve ekleyin.
. ~/.bash_profile
Sonra .bash_profile dosyanızı istediğiniz gibi düzenleyin .....
.bash_profileihtiyaç duyduğunuz şekilde düzenlemenizi" açıklamıyordunuz . Tam olarak ne yapmam gerekiyor .bash_profile?
.profileveya .bash_profilekaynak olmalıdır .bashrc. Diğer yoldan değil.