Apakah Nilai $ PATH Default itu?

13

Pada Mac OS X, nilai default $PATHadalah:

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

Apa nilai default di Linux?

sonnuforevis
sumber
path default didefinisikan dalam config-top.h
bac0n

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
andrewsomething
sumber
4

Nilai lintasan lingkungan disimpan dalam file .bashrc di ubuntu.

Variabel PATH seluruh sistem didefinisikan dalam /etc/environment

Avinash Raj
sumber
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
Braiam
sumber
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 .

Brian Grogan Jr.
sumber
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).

Jason
sumber
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.

Vladimir Panteleev
sumber
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.

Sukupa91
sumber