Làm cách nào tôi có thể đặt lại $ PATH về giá trị mặc định của nó trong Ubuntu?


31

Tôi vô tình bỏ đặt tất cả các thư mục $PATHtrong khi cố gắng thêm một thư mục mới ~/.bashrc. Tôi đã mở một cửa sổ terminal mới khi tôi đang chỉnh sửa và bây giờ $PATHtrống rỗng. Tôi lo lắng nếu tôi khởi động từ một ổ đĩa khác để tìm thấy $PATHtôi sẽ không thể khởi động lại vào ổ đĩa này.

Về cơ bản, kết quả mặc định là echo $PATHgì?


1
Nhận xét hoặc sửa chữa dòng xuất khẩu đó và bạn nên đi.
Panther

~/.bashrclà nơi sai để đặt các biến môi trường mặc dù. Bạn nên làm điều đó ~/.profilethay vào đó.
geirha

Vâng, tôi đã tìm ra nó. PATH vẫn ổn trong cửa sổ terminal khác đã được mở trước cửa sổ mới, vì vậy chỉ cần sửa lỗi xuất khẩu bằng cách thêm :$PATHvào cuối đã khôi phục PATH. Và vâng, ~/.profilecó mã là "đặt PATH để nó bao gồm cả thùng riêng của người dùng nếu nó tồn tại" tức là$HOME/bin
Cee

Câu trả lời:


35

Câu trả lời cho câu hỏi của bạn là:

PATH=$(getconf PATH)

và hoạt động trên mọi hệ thống tuân thủ POSIX. Câu trả lời được chọn là cách chính xác để tăng đường dẫn mà không xóa sạch nội dung hiện có trước đó. Nếu bạn sử dụng bash, bạn có thể cân nhắc:

PATH+=:$mynewdir

Tôi gặp sự cố khi sử dụng rất nhiều lệnh ( sed: No such file or directoryloại sự cố) sau khi vô tình đặt PATH của mình thành không có gì trong quá trình chạy rất dài (nghĩa là tôi không thể khởi động lại). Tôi không thể sử dụng getconf. Để thiết lập lại đường dẫn của tôi, tôi đã sử dụng $(export $(cat /etc/environment)":/usr/bin/additional:/usr/bin/paths"). Đối với người tò mò: /etc/environmentlà nơi biến PATH ban đầu được đặt trong nhiều hương vị Linux.
Nick Bull

2
Công việc đó sẽ làm tôi ngạc nhiên. Có lẽ "xuất khẩu" mà không có công cụ "$ (...)" xung quanh có thể, nhưng nó sẽ là bất cứ điều gì xảy ra ở đó. Sử dụng "nguồn / etc / ..". Dù sao, hãy thử "/ usr / bin / getconf" nếu bạn thậm chí không thể tìm thấy "getconf".
Bruce

Thích ý tưởng cuối cùng của bạn bằng cách sử dụng đường dẫn đầy đủ hơn nhiều so với của tôi trong nhận thức muộn màng! Cảm ơn bạn đã trả lời
Nick Bull

1
Nếu biến PATH trống, thì PATH=$(getconf PATH)sẽ không hữu ích mà chỉ có kết quả trongbash: getconf: No such file or directory
Max N

1
Nếu PATH trống, thì hãy lưu ý nhận xét ở trên: thử "/ usr / bin / getconf". Nếu điều đó không hiệu quả, thì bạn cần tìm hiểu nơi hệ thống của bạn đặt các lệnh POSIX của nó và sử dụng thư mục đó.
Bruce

17

Bạn có thể tìm thấy nó trên / etc / môi trường:

$ /usr/bin/cat /etc/environment

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

Vì vậy, chỉ cần nguồn nó:

$ source /etc/environment 
$ echo $PATH

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

1
con mèo sẽ không hoạt động theo cách như trong câu trả lời của bạn, vì không có $ PATH
Josef Klimuk

Bạn đúng. Tôi chỉ sửa đổi câu trả lời. Cảm ơn bạn!
Manuel Jesus Rodriguez

8

Việc thêm: $ PATH vào cuối dòng xuất đã khắc phục sự cố, ví dụ: export PATH=<directory to be added>:$PATH

Tôi thêm dòng này vào ~/.bash_rctệp thay vì ~/.profiletệp để tôi có thể thấy hiệu ứng ngay lập tức trong một thiết bị đầu cuối mới và vì những lý do khác dựa trên thông tin ở đây: https://superuser.com/questions/176404/linux-bash-not- tải hồ sơ trong phiên mới

Đối với tôi, đầu ra mặc định echo $PATHtrước khi thêm thư mục mới là:

/ usr / lib / lightdm / lightdm: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games


3

Đường dẫn mặc định là

/home/_username_/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games 

Hy vọng điều này sẽ giúp bạn


Điều đó khác với PATH mặc định của tôi. Xem bên dưới.
Cee
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.