Apakah Nilai $ PATH Default itu?


Jawaban:


18

Pada instalasi desktop Ubuntu default $PATHadalah:

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Namun dalam lingkungan chroot minimal yang dibuat oleh debootstrap, $PATHhanya berisi:

# echo $PATH
/usr/sbin:/usr/bin:/sbin:/bin

4

Nilai lintasan lingkungan disimpan dalam file .bashrc di ubuntu.

Variabel PATH seluruh sistem didefinisikan dalam /etc/environment


3

Ada jalur yang dibangun di shell

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Maka jalur default untuk Ubuntu adalah:

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

3

Ada cara mudah untuk mengetahuinya:

printenv

Atau, lebih langsung:

echo $PATH

Tetapi, jika Anda hanya mencari beberapa info cepat, Ubuntu biasanya menetapkan jalur ke:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / bin / X11: / usr / game:

Untuk pertanyaan seperti ini, Anda biasanya dapat menggali jawabannya dengan membaca Alkitab .


2

Tergantung pada Linux yang Anda gunakan, mungkin berbeda. Jika Anda sudah memiliki login ke linux, cukup ketik 'env' untuk melihat variabel lingkungan Anda.

Jika Anda ingin tahu bagaimana variabel env PATH sedang dibangun, lihat .bashrc dan .bash_profile di direktori home Anda. Jika lebih penasaran, Anda juga dapat melihat / etc / profile, /etc/profile.d/* (jika ada) dan manual untuk bash (man bash).


2

bashakan ditetapkan PATHke nilai default hard-coded jika tidak disetel di lingkungan:

$ env -i bash -c 'echo $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Kita dapat memeriksa bahwa nilai ini memang hard-coded, dan tidak membaca dari lingkungan atau beberapa file, menggunakan stringsutilitas:

$ strings /bin/bash | grep /usr/sbin
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.

Namun, saya mendapatkan hasil berbeda pada mesin Arch Linux saya:

$ env -i bash -c 'echo $PATH'
/usr/local/sbin:/usr/local/bin:/usr/bin

Jadi, sepertinya default ini dipilih pada saat bashbiner dibangun, yang tergantung pada distribusi Linux yang digunakan.


Ini adalah satu-satunya jawaban yang menyebutkan shell, dan distribusi. Saya menemukan pertanyaan karena saya memilah masalah PATH di wadah ubuntu. Dan "jalur default" akan bergantung pada shell (bash, sh, dll.) Dan apakah itu dimuat secara interaktif atau tidak, dan apakah itu shell login. Itu bukan jawaban yang sederhana. Kudos untuk menyebutkan string hardcode dalam biner.
init_js

1

Untuk melihat jalur default gunakan apa yang disebutkan dalam jawaban:

echo $PATH

Untuk mengedit gunakan:

gedit ~/.bashrc

PATHVariabel default ini didefinisikan di bawah /etc/enviroment.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.