GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengatur $PATH secara permanen di Linux/Unix?

Anda perlu menambahkannya ke ~/.profile Anda atau ~/.bashrc berkas.

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

Bergantung pada apa yang Anda lakukan, Anda mungkin juga ingin menyinkronkan ke binari:

cd /usr/bin
sudo ln -s /path/to/binary binary-name

Perhatikan bahwa ini tidak akan secara otomatis memperbarui jalur Anda untuk sisa sesi. Untuk melakukannya, Anda harus menjalankan:

source ~/.profile 
or
source ~/.bashrc

Di Ubuntu, edit /etc/environment . Tujuan utamanya adalah untuk menyimpan variabel lingkungan . Awalnya variabel $PATH didefinisikan di sini.

Ini adalah tempel dari /etc/environment saya berkas:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

Jadi Anda bisa membuka file ini sebagai root dan menambahkan apa pun yang Anda inginkan.

Untuk segera hasil,

Jalankan (coba sebagai pengguna biasa dan akar):

source /etc/environment && export PATH

Jika Anda menggunakan shell Z (zsh ), tambahkan baris ini tepat setelah komentar di /etc/zsh/zshenv berkas:

source /etc/environment

Saya menemukan kekhasan kecil ini di Ubuntu 15.10 (Wily Werewolf), tetapi jika zsh Anda tidak mendapatkan PATH yang benar , ini mungkin alasannya.


Ada banyak cara untuk melakukannya. Solusi sebenarnya bergantung pada tujuannya.

Nilai variabel biasanya disimpan dalam daftar tugas atau skrip shell yang dijalankan pada awal sistem atau sesi pengguna. Dalam hal skrip shell, Anda harus menggunakan sintaks shell tertentu dan export atau set perintah.

Lebar sistem

  1. /etc/environment Daftar tugas unik. Memungkinkan referensi. Sempurna untuk menambahkan direktori seluruh sistem seperti /usr/local/something/bin ke PATH variabel atau mendefinisikan JAVA_HOME . Digunakan oleh PAM dan systemd.

  2. /etc/environment.d/*.conf Daftar tugas unik. Memungkinkan referensi. Sempurna untuk menambahkan direktori seluruh sistem seperti /usr/local/something/bin ke PATH variabel atau mendefinisikan JAVA_HOME . Konfigurasi dapat dibagi menjadi beberapa file, biasanya satu untuk setiap alat (Java, Go, dan Node.js). Digunakan oleh systemd yang menurut desainnya tidak meneruskan nilai tersebut ke shell login pengguna.

  3. /etc/xprofile Skrip Shell dijalankan saat memulai sesi Sistem X Window. Ini dijalankan untuk setiap pengguna yang masuk ke Sistem X Window. Ini adalah pilihan yang bagus untuk PATH entri yang valid untuk setiap pengguna seperti /usr/local/something/bin . File disertakan oleh skrip lain jadi gunakan sintaks shell POSIX, bukan sintaks shell pengguna Anda.

  4. /etc/profile dan /etc/profile.d/* Skrip cangkang. Ini adalah pilihan yang baik untuk sistem khusus shell. File-file itu hanya bisa dibaca oleh shell dalam mode login.

  5. /etc/<shell>.<shell>rc . Skrip cangkang. Ini adalah pilihan yang buruk karena ini spesifik untuk satu shell. Digunakan dalam mode non-login.

Sesi pengguna

  1. ~/.pam_environment . Daftar tugas unik, referensi tidak diperbolehkan. Dimuat oleh PAM di awal setiap sesi pengguna tidak relevan jika itu adalah sesi atau shell Sistem X Window. Anda tidak dapat mereferensikan variabel lain termasuk HOME atau PATH sehingga penggunaannya terbatas. Digunakan oleh PAM.

  2. ~/.xprofile Skrip cangkang. Ini dijalankan ketika pengguna masuk ke sistem X Window System. Variabel yang didefinisikan di sini dapat dilihat oleh setiap aplikasi X. Pilihan sempurna untuk memperluas PATH dengan nilai seperti ~/bin atau ~/go/bin atau mendefinisikan GOPATH khusus pengguna atau NPM_HOME . File tersebut disertakan oleh skrip lain jadi gunakan sintaks shell POSIX, bukan sintaks shell pengguna Anda. Editor teks grafis atau IDE Anda yang dimulai dengan pintasan akan melihat nilai tersebut.

  3. ~/.profile , ~/.<shell>_profile , ~/.<shell>_login Skrip cangkang. Ini hanya akan terlihat untuk program yang dimulai dari terminal atau emulator terminal. Ini adalah pilihan yang baik untuk sistem khusus shell. Digunakan oleh shell dalam mode login.

  4. ~/.<shell>rc . Skrip cangkang. Ini adalah pilihan yang buruk karena ini spesifik untuk satu shell. Digunakan oleh shell dalam mode non-login.

Catatan

GNOME di Wayland memulai shell login pengguna untuk mendapatkan lingkungan. Ini secara efektif menggunakan konfigurasi shell login ~/.profile , ~/.<shell>_profile , ~/.<shell>_login file.

Halaman manual

  • lingkungan
  • environment.d https://linux.die.net/man/1/environment.d
  • pesta
  • tanda hubung

Dokumentasi khusus distribusi

  • Ubuntu
  • Linux Lengkung

Perbedaan antara Login Shell dan Non-Login Shell?


Linux
  1. Bagaimana Cara Mengatur Variabel Lingkungan Pengguna? (secara permanen, Bukan Sesi)?

  2. Bagaimana Cara Mengubah (Permanen) Default Shell Setelah Login Pada Ttyn Tertentu Di Linux?

  3. Cara Mengganti Shell di Linux

  1. Cara Mengatur Variabel $Path di Linux

  2. Linux / UNIX :Cara menemukan file yang memiliki set SUID/SGID

  3. UNIX / Linux :Cara menginstal dan mengkonfigurasi mutt

  1. Cara mengatur variabel $PATH Anda di Linux

  2. Cara Mengatur $PATH Secara Permanen di Linux

  3. rbash – Setel Shell terbatas di Linux