Pertanyaan Bagaimana cara menambahkan direktori ke PATH?


Bagaimana cara menambahkan direktori ke $PATH di Ubuntu dan membuat perubahan permanen?


626
2017-07-22 20:42


asal


help.ubuntu.com/community/EnvironmentVariables Ada semua yang perlu Anda ketahui. Saya menemukan bahwa banyak masukan di sini tidak benar atau setidaknya metode itu tidak disarankan. Ini adalah informasi hebat yang akan memungkinkan Anda mencari tahu di mana untuk memodifikasi variabel lingkungan Anda berdasarkan alasan Anda melakukannya dan bagaimana melakukannya tanpa mengacaukan semuanya (seperti saya mengikuti beberapa saran buruk yang disebutkan di atas). Begitu lama, dan terima kasih untuk semua ikan! - Bus42


Jawaban:


Menggunakan ~ / .profile untuk mengatur $ PATH

Sebuah jalur yang diatur .bash_profile hanya akan diatur dalam shell login bash (bash -l). Jika Anda menempatkan jalan Anda .profile ini 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). Misalnya. menggunakan grep -z "^PATH" /proc/[pid]/environ

catatan:

bash sebagai shell login tidak mengurai .profile jika baik .bash_profile atau .bash_login ada. Dari man bash :

ia mencari ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dalam   memesan, dan membaca dan mengeksekusi perintah dari yang pertama yang ada   dan bisa dibaca.

Lihat jawaban di bawah ini untuk informasi tentang .pam_environment, atau .bashrc untuk shell non-login interaktif, atau atur nilainya secara global untuk semua pengguna dengan memasukkan skrip ke dalamnya /etc/profile.d/ atau gunakan /etc/X11/Xsession.d/ untuk mempengaruhi sesi manajer tampilan.


396
2017-07-22 22:04



Keren, itu berhasil. Saya melihat di mana ia akan secara otomatis menambahkan direktori bin jika saya membuatnya sehingga saya hanya menggunakannya daripada skrip. TY. - justingrif
Pada Xbunutu .profile tidak dieksekusi jadi saya masukkan ke dalam .bashrc dan itu berhasil. - tekumara
Dokumentasi ini sangat baik dilakukan: Dokumentasi resmi tentang variabel lingkungan. Pertimbangkan untuk membacanya (bukan untuk mengatakan bahwa diperbarui ke versi terakhir dari aturan untuk menambahkan nilai ke variabel lingkungan). - Michele
Di mana. Profil kita tambahkan jalan ?? - Vineet Kaushik
Saya masih tidak tahu di mana harus menambahkan bagian jalur tambahan saya. Saya perlu menambahkan SDK Android ke jalur saya ... PATH="$HOME/bin:$PATH" Jadi saya menambahkannya? - Jamie Hutber


Edit .bashrc di direktori home Anda dan tambahkan baris berikut:

export PATH="/path/to/dir:$PATH"

Anda perlu sumber Anda .bashrc atau logout / login (atau restart terminal) agar perubahan diterapkan. Untuk sumber Anda .bashrc, cukup ketik

$ source ~/.bashrc

255
2017-07-22 20:45



Bagaimana Anda "sumber Anda .bashrc"? Bagaimana Anda" me-restart terminal "? - isomorphismes
Dalam bash itu hanya '. .bashrc ' - Ophidian
Saya membuat asumsi bahwa Anda berada di direktori home Anda. karena di sanalah .bashrc yang ingin Anda edit. - Ophidian
.bashrc bukan tempat yang tepat untuk pengaturan variabel lingkungan. Mereka harus masuk .profile atau .pam_environment. Lihat mywiki.wooledge.org/DotFiles - geirha
@LaoTzu . .bashrc tidak .bashrc :) atau source .bashrc untuk hal tersebut - Znarkus


Tempat yang disarankan untuk mendefinisikan permanen, seluruh sistem variabel lingkungan yang berlaku untuk semua pengguna adalah:

/etc/environment

(yang merupakan tempat default PATH didefinisikan)

Ini akan berfungsi di desktop atau konsol, gnome-terminal atau TTY, hujan atau cerah;)

  • Untuk mengedit, tekan Alt+F2 dan ketik:

    gksudo gedit /etc/environment
    

    (atau buka file menggunakan sudo di editor teks favorit Anda)

Untuk melakukan perubahan, jalankan . /etc/environment. Karena file ini hanyalah sebuah skrip sederhana, ia akan menjalankan dan menetapkan jalur baru ke PATH variabel lingkungan. Untuk memeriksa jalankan env dan lihat PATH nilai dalam daftar.

Terkait:


101
2017-07-31 03:49



lalu Anda harus menyalakan ulang agar perubahan diterapkan ... - Lee
Inilah yang saya butuhkan. Menyediakan gambar vm buang-buang melalui gelandangan dan perlu menambahkan node dan npm ke jalur. - Austin Pray
Untuk mengambil perubahan berlaku, jalankan. / etc / environement (ya, titik, spasi dan / etc / environment). Karena file ini hanyalah skrip sederhana, ia akan menjalankan dan menetapkan jalur baru ke variabel lingkungan PATH. Untuk memeriksa jalankan env dan lihat nilai PATH dalam daftar. - WindRider
Saya harus berlari source /etc/environment untuk memuat ulang perubahan - JohnnyAW


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
    

54
2018-01-09 01:31



Biasanya lebih aman untuk menambahkan jalur khusus Anda ke akhir PATH sebagai ganti permulaan. Ini untuk menghindari penggantian perintah sistem secara tidak sengaja dengan program Anda (atau program jahat orang lain). Ini juga menghindari banyak kebingungan ketika orang lain bekerja di sistem Anda (atau memberi Anda saran) dan mereka mendapatkan hasil yang tidak diharapkan dari perintah yang Anda "ganti". - Joe


Untuk pemula yang lengkap (seperti saya) yang lebih nyaman dengan GUI:

  1. Bukalah $HOME map.
  2. Pergi ke Melihat → Tampilkan File Tersembunyi atau tekan Ctrl + H.
  3. Klik kanan pada .profile dan klik Buka Dengan Editor Teks.
  4. Gulir ke bawah dan tambahkan PATH="$PATH:/my/path/foo".
  5. Menyimpan.
  6. Logout dan masuk kembali untuk menerapkan perubahan (biarkan Ubuntu benar-benar memuat .profile).

44
2017-10-24 22:05



Mengedit file .profile tidak disarankan lagi. Anda masih dapat menggunakan metode ini untuk mengedit file .pam_environment lihat: help.ubuntu.com/community/EnvironmentVariables - PulsarBlow
Terima kasih @PulsarBlow! Saya tidak begitu yakin apa tepatnya perbedaan dan manfaatnya ... Ini adalah URL langsung ke bagian yang relevan: help.ubuntu.com/community/… - dain
Jawaban ini menyebabkan sistem saya berhenti masuk karena semua jalur ditimpa. Menggunakan Ubuntu 16.04. - Frisbetarian
@Frisbetarian Anda harus memastikan untuk menambahkan $PATH: bit yang mencakup definisi PATH yang ada - dain
@dain: komentar Anda menyelamatkan hidup saya! - Py-ser


Untuk variabel lingkungan yang 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 mengatur saya Alat jalur SDK Android oleh:

  1. menciptakan ~/.pam_environment file di direktori home.
  2. konten yang mana PATH DEFAULT=${PATH}:~/android-sdk-linux/tools.
  3. jalur pengguna kustom tambahan dapat ditambahkan dengan memisahkan jalur dengan usus besar (:).
  4. ini membutuhkan masuk kembali, yang berarti Anda harus logout dan masuk kembali ke lingkungan desktop.

40
2017-12-08 23:07



Ini adalah jawaban terbaik. - Paulo Coghi


Masukkan garis itu ke dalam Anda ~/.bashrc mengajukan.

Itu bersumber setiap kali Anda membuka terminal

EDIT: Berdasarkan komentar di bawah ini, untuk pengaturan yang lebih umum yang akan berlaku untuk semua cangkang (termasuk ketika Anda menekan Alt-F2 dalam Kesatuan), tambahkan baris ke Anda ~/.profile mengajukan. Mungkin sebaiknya tidak melakukan keduanya, karena jalur akan ditambahkan dua kali ke Anda PATH lingkungan jika Anda membuka terminal.


25
2017-07-31 01:08



Sebenarnya, saya pikir Anda mengatur jalan baik $HOME/.profile untuk pengaturan pribadi, atau /etc/profile untuk semua pengguna. Tetapi jika itu hanya diperlukan untuk bash, saya kira baik akan bekerja. - Marty Fried
Jika Anda mengaturnya ~/.bashrc, itu hanya akan tersedia di terminal yang Anda buka. Misalnya. jika Anda menekan Alt + F2 dan mencoba menjalankan perintah dari dir itu, itu tidak akan menemukannya. Jika Anda mengaturnya ~/.profile atau ~/.pam_environment, sesi gnome (atau mana saja yang Anda gunakan) akan mewarisinya. Menambahkan PATH di ~/.bashrc juga memiliki kelemahan bahwa jika Anda membuka / menjalankan bash secara interaktif dari bash shell interaktif lainnya, itu akan ditambahkan beberapa kali. - geirha
Saya belum benar-benar melihat ini untuk sementara waktu, jadi saya melakukan pencarian, dan tampaknya ada setidaknya 95 cara berbeda untuk mengatur jalur, yang sebagian besar dibahas sini. Saya tidak pernah tahu yang mana yang terbaik. kupikir ~/.profile benar untuk jalur pribadi; di situlah Ubuntu menambahkan ~/bin direktori. Dan saya akui bahwa saya melebih-lebihkan sedikit cara - hanya sedikit. - Marty Fried
@MartyFried, ya, untuk mengutip bot di #bash di freenode: «Mayoritas skrip bash, kode, tutorial, dan panduan di Internet adalah omong kosong. Sturgeon adalah seorang yang optimis. ”Menggunakan google untuk masalah bash, Anda akan sering menemukan banyak solusi setengah-kerja sebelum Anda menemukan yang bagus. Oh dan aku pergi bersama ~/.profile dalam hal ini juga. - geirha
@geirha - Saya setuju bahwa sebagian besar panduan di internet pada umumnya mungkin omong kosong, terutama apa pun linux karena distro yang berbeda, atau bahkan versi yang berbeda dari yang sama, melakukan hal-hal secara berbeda. Ini biasanya bermuara pada apa yang berhasil, tetapi kebanyakan orang tidak menyadari bahwa apa yang berhasil adalah apa yang berhasil, tidak selalu apa yang benar atau bahkan apa yang akan selalu berhasil. Saya mencoba mencari tahu mana dari sekian banyak cara yang benar, karena saya benci melakukan hal-hal lebih dari sekali - tetapi itu tidak selalu mudah. :) - Marty Fried


Untuk mengaturnya lebar sistem, tambahkan baris export PATH=/path/you're/adding:$PATH sampai akhir /etc/profile.

Untuk menambahkan direktori hanya untuk pengguna yang masuk, tambahkan baris yang sama ~/.bash_profile.


15
2017-07-22 23:20





Menambahkannya ke .bashrc akan berfungsi tetapi saya pikir cara yang lebih tradisional untuk mengatur variabel path Anda adalah di .bash_profile dengan menambahkan baris berikut.

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

Menurut utas ini tampak seolah-olah perilaku Ubuntu sedikit berbeda dari RedHat dan klon.


14
2017-07-22 20:58



Saya tidak punya .bash_profile, Haruskah saya membuatnya? - justingrif
Jika Anda memiliki .bashrc, tempelkan .bashrc sebagai gantinya. Terminal GUI di Ubuntu bukan shell login, jadi .bash_profile tidak akan dijalankan.
Saya tidak menjalankan shell gui. Tapi dari utas di atas sepertinya .bashrc akan bekerja dengan baik. - justingrif
Keduanya akan berfungsi jika shell Anda adalah shell login. Tapi saya baru saja mencoba pendekatan .bash_profile pada salah satu mesin Ubuntu saya dan bahkan setelah memulai kembali sesi gnome saya, itu tidak menjadi sumber .bash_profile saya. Jadi saya akan mengatakan bahwa meletakkan ini di .bashrc mungkin adalah cara untuk pergi dengan Ubuntu. - 3dinfluence
@justingrif Tidak, Anda tidak perlu .bash_profile. Jika bash tidak menemukan .bash_profile (ketika Anda masuk secara interaktif), itu akan mencari .profile dan gunakan itu sebagai gantinya. 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. - geirha


Di terminal, cd untuk the_directory_you_want_to_add_in_the_path

echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc

Ini bukan ideku. Saya menemukan cara ini untuk mengekspor jalur pada ini blog di sini.


9
2017-09-08 22:44