Giá trị $ PATH mặc định là gì?


Câu trả lời:


17

Trên cài đặt máy tính để bàn Ubuntu mặc định $PATHlà:

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

Nhưng trong một môi trường chroot tối thiểu được tạo bởi debootstrap, $PATHchỉ chứa:

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

3

Có đường dẫn được xây dựng trong vỏ

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

Sau đó, đường dẫn mặc định cho Ubuntu là:

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

3

Các giá trị đường dẫn môi trường được lưu trữ trong tệp .bashrc trong ubfox.

Biến PATH trên toàn hệ thống được xác định trong /etc/environment


3

Có một cách dễ dàng để tìm hiểu:

printenv

Hoặc, trực tiếp hơn:

echo $PATH

Nhưng, nếu bạn chỉ tìm kiếm một số thông tin nhanh, Ubuntu thường đặt đường dẫn đến:

/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / bin / X11: / usr / games:

Đối với những câu hỏi như thế này, bạn thường có thể tìm ra câu trả lời bằng cách đọc Kinh thánh .


2

Tùy thuộc vào Linux mà bạn sử dụng, nó có thể khác nhau. Nếu bạn đã đăng nhập vào linux, chỉ cần gõ 'env' để xem các biến môi trường của bạn.

Nếu bạn muốn biết biến Pv env đang được xây dựng như thế nào, hãy xem .bashrc và .bash_profile trong thư mục chính của bạn. Nếu tò mò hơn, bạn cũng có thể xem / etc / profile, /etc/profile.d/* (nếu tồn tại) và hướng dẫn sử dụng bash (man bash).


2

bashsẽ được đặt thành PATHgiá trị mặc định được mã hóa cứng nếu nó không được đặt trong môi trường:

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

Chúng tôi có thể kiểm tra xem giá trị này có thực sự được mã hóa cứng và không được đọc từ môi trường hoặc một số tệp bằng cách sử dụng stringstiện ích:

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

Tuy nhiên, tôi nhận được một kết quả khác trên máy Arch Linux của mình:

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

Vì vậy, có vẻ như mặc định này được chọn tại thời điểm bashnhị phân được xây dựng, điều này phụ thuộc vào phân phối Linux được sử dụng.


Đây là câu trả lời duy nhất đề cập đến vỏ và phân phối. Tôi vấp phải câu hỏi vì tôi đang phân loại các vấn đề PATH trong các thùng chứa Ubuntu. Và "đường dẫn mặc định" sẽ phụ thuộc vào shell (bash, sh, v.v.) và liệu nó có được tải tương tác hay không, và đó có phải là shell đăng nhập hay không. Đó không phải là một câu trả lời đơn giản. Kudos đã đề cập đến các chuỗi mã hóa cứng trong nhị phân.
init_js

1

Để xem đường dẫn mặc định, hãy sử dụng những gì được đề cập trong câu trả lời:

echo $PATH

Để chỉnh sửa sử dụng:

gedit ~/.bashrc

PATHBiến mặc định này được định nghĩa dưới /etc/enviroment.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.