Bagaimana cara menambahkan direktori ke $PATH
dalam Ubuntu dan membuat perubahan itu permanen?
Bagaimana cara menambahkan direktori ke $PATH
dalam Ubuntu dan membuat perubahan itu permanen?
Jawaban:
Jalur yang disetel .bash_profile
hanya akan ditetapkan dalam shell login bash ( bash -l
). Jika Anda meletakkan path Anda di .profile
dalamnya, akan tersedia untuk sesi desktop lengkap Anda. Itu berarti bahkan keberanian akan menggunakannya.
Sebagai contoh ~/.profile
:
if [ -d "$HOME/bin" ] ; then
PATH="$PATH:$HOME/bin"
fi
Btw, Anda dapat memeriksa variabel PATH dari suatu proses dengan melihat lingkungannya di /proc/[pid]/environ
(ganti [pid] dengan nomor dari ps axf
). Misal pakaigrep -z "^PATH" /proc/[pid]/environ
bash
sebagai shell login tidak diuraikan .profile
jika ada .bash_profile
atau .bash_login
ada. Dari man bash
:
ia mencari ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dalam urutan itu, dan membaca serta mengeksekusi perintah dari yang pertama yang ada dan dapat dibaca.
Lihat jawaban di bawah ini untuk informasi tentang .pam_environment
, atau .bashrc
untuk shell non-login interaktif, atau tetapkan nilai secara global untuk semua pengguna dengan memasukkan skrip ke dalam /etc/profile.d/
atau gunakan /etc/X11/Xsession.d/
untuk memengaruhi sesi manajer tampilan.
PATH="$HOME/bin:$PATH"
Jadi saya menambahkannya?
Edit .bashrc
di direktori home Anda dan tambahkan baris berikut:
export PATH="/path/to/dir:$PATH"
Anda harus mengambil .bashrc
atau logout / login (atau me-restart terminal) Anda agar perubahan diterapkan. Untuk sumber Anda .bashrc
, cukup ketik
$ source ~/.bashrc
.bashrc
"? Bagaimana Anda "me-restart terminal"?
.bashrc
bukan tempat yang tepat untuk mengatur variabel lingkungan. Mereka harus masuk .profile
atau .pam_environment
. Lihat mywiki.wooledge.org/DotFiles
. .bashrc
tidak .bashrc
:) atau source .bashrc
dalam hal ini
Tempat yang disarankan untuk mendefinisikan variabel lingkungan permanen, sistem-lebar yang berlaku untuk semua pengguna adalah di:
/etc/environment
(Di situlah default PATH
didefinisikan)
Ini akan bekerja di desktop atau konsol, gnome-terminal atau TTY, hujan atau cerah;)
Untuk mengedit, tekan Alt+ F2dan ketik:
gksudo gedit /etc/environment
(atau buka file menggunakan sudo
editor teks favorit Anda)
Untuk melakukan perubahan, jalankan . /etc/environment
. Karena file ini hanya sebuah skrip sederhana, ia akan berjalan dan menetapkan path baru ke PATH
variabel lingkungan. Untuk memeriksa jalankan env dan lihat PATH
nilai dalam daftar.
Terkait:
source /etc/environment
untuk memuat ulang perubahan
Saya pikir cara kanonik di Ubuntu adalah:
buat file baru di bawah /etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
tambahkan di sana:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
dan berikan izin eksekusi
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
Untuk pemula baru (seperti saya) yang lebih nyaman dengan GUI:
$HOME
folder Anda ..profile
dan klik Open With Text Editor .PATH="$PATH:/my/path/foo"
..profile
).$PATH:
bit yang termasuk definisi PATH yang ada
Untuk variabel lingkungan persisten hanya tersedia untuk pengguna tertentu. Saya sangat merekomendasikan dokumentasi resmi Ubuntu.
https://help.ubuntu.com/community/EnvironmentVariables
Mengacu pada dokumentasi di atas, saya telah menyiapkan perangkat jalur SDK Android saya dengan:
~/.pam_environment
file di direktori home.PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
.Masukkan baris itu di ~/.bashrc
file Anda .
Itu bersumber setiap kali Anda membuka terminal
EDIT : Berdasarkan komentar di bawah ini, untuk pengaturan yang lebih umum yang akan berlaku untuk semua shell (termasuk ketika Anda menekan Alt- F2di Unity), tambahkan baris ke ~/.profile
file Anda . Mungkin sebaiknya tidak melakukan keduanya, karena jalur akan ditambahkan dua kali ke PATH
lingkungan Anda jika Anda membuka terminal.
$HOME/.profile
untuk pengaturan pribadi, atau /etc/profile
untuk semua pengguna. Tetapi jika itu hanya diperlukan untuk bash, saya kira keduanya akan bekerja.
~/.bashrc
, itu hanya akan tersedia di terminal yang Anda buka. Misalnya jika Anda menekan Alt + F2 dan mencoba menjalankan perintah dari dir itu, ia tidak akan menemukannya. Jika Anda mengaturnya di ~/.profile
atau ~/.pam_environment
, sesi gnome (atau DE mana pun yang Anda gunakan) akan mewarisinya. Menambahkan PATH di ~/.bashrc
juga memiliki kelemahan bahwa jika Anda membuka / exec bash secara interaktif dari shell bash interaktif lain, itu akan ditambahkan beberapa kali.
~/.profile
itu benar untuk jalur pribadi; di situlah Ubuntu menambahkan ~/bin
direktori. Dan saya akui saya sedikit melebih-lebihkan dalam beberapa hal - hanya sedikit.
~/.profile
dalam kasus ini juga.
Untuk mengaturnya menjadi sistem lebar, tambahkan baris export PATH=/path/you're/adding:$PATH
ke akhir /etc/profile
.
Untuk menambahkan direktori hanya untuk pengguna yang masuk, tambahkan baris yang sama ke ~/.bash_profile
.
Menambahkannya ke .bashrc akan berfungsi tetapi saya pikir cara yang lebih tradisional untuk mengatur variabel path Anda ada di .bash_profile dengan menambahkan baris berikut.
PATH=$PATH:/my/path/foo
export PATH
Menurut utas ini, tampaknya perilaku Ubuntu sedikit berbeda dari RedHat dan klon.
.bashrc
, tempelkan .bashrc
saja. Terminal GUI di Ubuntu bukan shell login, jadi .bash_profile
tidak akan dijalankan.
.bash_profile
. Jika bash tidak menemukan .bash_profile
(ketika Anda masuk secara interaktif), itu akan mencari .profile
dan menggunakannya. Secara default, Anda akan memiliki .profile
dan .bashrc
di Ubuntu. Dan .profile
adalah tempat yang tepat untuk mengatur variabel lingkungan jika kita mengabaikan pam_env.
sudo vi /etc/profile.d/SCRIPT_NAME.sh
tambahkan di sana
export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH
sudo nano /etc/profile.d/SCRIPT_NAME.sh
lebih mudah untuk pemula.
gksu gedit /etc/profile.d/SCRIPT_NAME.sh
bahkan lebih mudah.
Setiap kali saya "menginstal" folder skrip BASH saya, saya mengikuti pola tes untuk $HOME/bin
folder yang ada di sebagian besar file profil. Dalam versi terbaru dari Ubuntu. Saya menetapkan tes yang terlihat seperti
if [ -d "/usr/scripts" ]; then
PATH="/usr/scripts:$PATH"
fi
Ini berfungsi hampir 100% dari waktu, dan membuat saya bebas untuk mengubahnya dalam editor teks GUI dengan "Ganti semua" cepat jika saya pernah memutuskan untuk pindah ke /scripts
suatu tempat lebih dekat ke $HOME
folder saya . Saya belum melakukannya di 6 instalasi Ubuntu, tetapi "selalu ada besok." S
BZT
Cara yang disarankan untuk mengedit Anda PATH
adalah dari /etc/environment
file
Contoh output dari /etc/environment
:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
Misalnya, untuk menambahkan jalur baru /home/username/mydir
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/username/mydir"
Kemudian, reboot PC Anda.
Variabel lingkungan sistem-lebar
File yang sesuai untuk pengaturan variabel lingkungan yang memengaruhi sistem secara keseluruhan (bukan hanya pengguna tertentu) adalah / etc / environment. Alternatifnya adalah membuat file untuk tujuan di direktori /etc/profile.d.
/ etc / environment
File ini secara khusus dimaksudkan untuk pengaturan variabel lingkungan sistem-lebar. Ini bukan file skrip, melainkan terdiri dari ekspresi penugasan, satu per baris.
Catatan: Perluasan variabel tidak berfungsi di / etc / environment.
Info lebih lanjut dapat ditemukan di sini: EnvironmentVariables
Buka terminal Anda, ketik gedit .profile
dan masukkan yang berikut ini:
# 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"
Tutup dan buka terminal, itu seharusnya berfungsi.
Bahkan jika skrip sistem tidak menggunakan ini, dalam setiap kasus yang orang ingin menambahkan path (misalnya, $HOME/bin
) ke variabel lingkungan PATH, kita harus menggunakan
PATH="${PATH:+${PATH}:}$HOME/bin"
untuk menambahkan (bukan PATH="$PATH:$HOME/bin"
), dan
PATH="$HOME/bin${PATH:+:${PATH}}"
untuk prepending (bukan PATH="$HOME/bin:$PATH"
).
Ini untuk menghindari kolon leading / trailing palsu ketika $PATH
awalnya kosong, yang dapat memiliki efek yang tidak diinginkan.
Lihat misalnya https://unix.stackexchange.com/questions/162891/append-to-path-like-variable-without-creating-leading-colon-if-unset
Untuk Ubuntu, edit ~/.bashrc
dan tambahkan baris berikut.
. ~/.bash_profile
Kemudian edit .bash_profile Anda sesuai kebutuhan .....
.bash_profile
seperlunya". Apa sebenarnya yang harus saya lakukan untuk .bash_profile
?
.profile
atau .bash_profile
harus sumber .bashrc
. Bukan sebaliknya.