Saya menggunakan Ubuntu Desktop 14.04, dan karena itu, saya menggunakan shell non-login. Ketika saya membuka terminal GUI, pertama sesi shell non-login membaca file startup berikut:
/etc/bash.bashrc
~/.bashrc
Shell non-login mewarisi lingkungan dari proses induk, yang merupakan shell login, sehingga sesi ini juga membaca file startup berikut:
/etc/profile
~/.bash_profile
Namun, saya tidak dapat menemukan $PATH
untuk seluruh sistem jalan seperti /bin
, /sbin
, /usr/bin
, /usr/sbin
, diatur dalam file-file ini. Di mana $PATH
set untuk direktori ini?
command-line
bash
Donato
sumber
sumber
$PATH
itu diwarisi oleh shell login orang tua atau jika itu dimuat ulang oleh setiapbash
instance?$HOME
variabel. Misalnya, menambahkan$HOME/.composer/vendor/bin
kePATH
dalam/etc/environment
tidak memungkinkan binari dalam direktori ini dieksekusi tanpa awalan jalur. Menggunakan~/.composer/vendor/bin
juga tidak berhasil. Saya menemukan perlu untuk menambahkan path absolut, misalnya:/home/vagrant/.composer/vendor/bin
. Ini tampaknya terkait (meskipun tidak menjelaskan perilaku ini): askubuntu.com/questions/402353/…/etc/environment
(dan~/.pam/environment
) dibaca olehpam_env
modul PAM, bukan shell atau apa pun yang memahami variabel shell / lingkungan; hal yang sama berlaku untuk~
ekspansi. Jadi, Anda perlu menggunakan jalur absolut di sana.