Tôi không thể tìm thấy .bash_profile
trong Ubuntu 14.04 trong /home/user
thư mục của mình . Tôi đã sử dụng ls -a
lệnh để xem .bash_profile
, nhưng không có tệp nào như vậy.
Tôi không thể tìm thấy .bash_profile
trong Ubuntu 14.04 trong /home/user
thư mục của mình . Tôi đã sử dụng ls -a
lệnh để xem .bash_profile
, nhưng không có tệp nào như vậy.
Câu trả lời:
Ubuntu sử dụng ~/.profile
.
bạn có thể tạo .bash_profile
Ubuntu của mình nhưng sau đó .profile
sẽ không được đọc.
Nếu chúng ta đọc nội dung .profile:
cat ~/.profile
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
Vì vậy, sử dụng ~/.profile
thay vì~/.bash_profile
vim ~/.bashrc
sau đó. ~/.bashrc
Khi gọi bash shell đăng nhập sẽ tìm các tệp cấu hình của nó theo thứ tự sau:
[0] ~/.bash_profile
[1] ~/.bash_login
[2] ~/.profile
Sau khi tìm thấy đầu tiên, nó ngừng tìm kiếm những người khác vì vậy nếu có một .bash_profile
trong tôi $HOME
bash sẽ không tìm kiếm .bash_login
và .profile
nữa.
Từ ba tên tệp này, Ubuntu theo mặc định sử dụng, .profile
bạn có thể đổi tên thành .bash_profile
nếu bạn muốn:
mv ~/.profile ~/.bash_profile
Bây giờ nếu chúng ta mở một shell bash mới sử dụng bash -l
, su - $USER
, sudo -u $USER -i
hoặc bất kỳ lệnh khác chạy bash như một vỏ đăng nhập, ~/.bash_profile
sẽ nhận được nguồn gốc.
Những gì tôi đã nói đến bây giờ chỉ áp dụng cho chính Bash, khi bạn đăng nhập vào hệ thống từ GUI, trình quản lý hiển thị có trách nhiệm tìm nguồn cung cấp các tệp chính xác.
Ubuntu sử dụng gdm3
làm trình quản lý hiển thị của nó, nếu chúng ta xem qua: /etc/gdm3/Xsession
chúng ta có thể thấy rằng không có tệp nào sẽ có nguồn gốc ngoại trừ .profile
::
# First read /etc/profile and .profile
for file in /etc/profile "$HOME/.profile"; do
if [ -f "$file" ]; then
source_with_error_check "$file"
fi
done
Vì vậy, nếu bạn đang sử dụng GUI để đăng nhập, hãy giữ tệp dưới .profile
tên nếu không bạn có thể bỏ lỡ một số biến và cài đặt trong môi trường của mình.
Tôi đoán tùy chọn tốt hơn là tạo một liên kết tượng trưng đến .profile
:
ln -s ~/.profile ~/.bash_profile
Bây giờ dữ liệu của bạn tồn tại .profile
, gdm
không bỏ lỡ bất cứ điều gì, tải bash .bash_profile
thực sự .profile
và bằng cách chỉnh sửa từng dữ liệu , bạn sẽ nhận được kết quả tương tự.
Nếu bạn không có .profile
thì lấy một bản sao của nó từ đây:
cp /etc/skel/.profile ~/.profile
hoặc là
# Remember the note above
cp /etc/skel/.profile ~/.bash_profile
man bash
trên Ubuntu vẫn mô tả cách nó sẽ tìm kiếm .bash_profile trước tiên.
.bash_profile
đầu nó không thể tìm thấy nó (vì nó không tồn tại) sau đó tìm kiếm .bash_login
không thể tìm thấy nó một lần nữa (vì Ubuntu không sử dụng hai tên này) finaly nó trông cho .profile
và có có nó được. Vì vậy, nếu bạn tạo một .bash_profile
trong ~
sau đó bạn đang ghi đè của ubuntu ~/.profile
, đó là hành vi mặc định của bash gì đã được sửa đổi tại đây.
.bash_profile
, nó không được đọc. Tôi mới nhận ra rằng điều này là do Ubuntu không còn sử dụng 'Bash' làm vỏ đăng nhập GUI. Nó sử dụng 'Dash' thay thế. Tôi nghĩ rằng điều này đã đúng từ khoảng 18.04.
Điều đó có nghĩa là tập tin không tồn tại. Nhưng, bạn có thể tạo tệp và bash
thực thi / nguồn tệp nếu bash
được gọi dưới dạng vỏ đăng nhập. Vì vậy, giờ bạn đăng nhập thông qua một vỏ (ví dụ thông qua ssh
).
Nếu bạn muốn nội dung thực thi mỗi khi bạn mở một thiết bị đầu cuối, thì bạn nên sửa đổi .bashrc
tệp thay thế.
/etc/skel/
thư mục.
.bash_profile
bị thiếu (và không hoạt động) trên Ubuntu trong các nhận xét về các câu trả lời khác.
Câu trả lời hàng đầu để sử dụng ~/.profile
thay vì ~/.bash_profile
không làm việc cho tôi.
Sửa đổi .bashrc
làm việc
Chỉ:
vim ~/.bashrc
Lưu ý: Tôi đang sử dụng Ubuntu WSL.
~/.profile
chỉ không được tải theo mặc định trong Ubuntu 18.04
Nếu bạn có nghĩa là .bashrc, bạn sẽ tìm thấy nó trong thư mục nhà của bạn. Nếu nó không ở đó, bạn có thể sao chép nó từ thư mục / etc / skel vào thư mục nhà của bạn.
Nếu bạn cần thêm một số thông tin về chủ đề này, vui lòng truy cập trang stefaan lippens.
~/.profile
thay thế.