Cách tạo ~ / .bash_profile và ~ / .profile


25

Vì vậy, tôi không có .bash_profilekhông phải .profiletrong thư mục nhà của tôi. Làm thế nào để tôi tạo ra chúng? Sau đó, tôi nên làm gì mỗi lần tôi mở thiết bị đầu cuối những tập tin này được đọc?

Câu trả lời:


28

Bạn có thể sử dụng touchlệnh.

Ví dụ,

cd ~

để đi đến thư mục nhà.

Bây giờ chúng ta sẽ tạo một tệp có tên .bash_profile(dấu chấm có nghĩa là nó sẽ bị ẩn).

Sau đó sử dụng nanohoặc vitrong Terminal. Trừ khi bạn biết những gì vilà, chỉ cần sử dụng nano. Để mở các tệp này, bạn sẽ sử dụng:

sudo nano .bash_profile

sudođảm bảo rằng bạn sẽ có thể lưu các tệp này. Tại đây, bạn có thể thêm aliases. nanohoặc visẽ tự động tạo một tệp mới nếu nó không tồn tại trong thư mục hiện tại của bạn trong Terminal.

Sau khi bạn đã kết thúc, nhấn Ctrl+ O, EnterCtrl+ Xđể lưu và bỏ thuốc lá. Cuối cùng, sử dụng

source ~/.bash_profile

để tải lại Terminal và nó sẽ đọc những gì bạn đặt trong các tệp đó.

Tất nhiên, bạn cũng có thể bí danh nếu bạn muốn. :)

Để trả lời câu hỏi cuối cùng của bạn, các tệp này sẽ tự động được đọc mỗi khi bạn mở Terminal. Tuy nhiên, nếu có lỗi (Ví dụ: không đặt khoảng trắng giữa các bí danh), nó sẽ cho bạn biết.

Thêm thông tin

Như George chỉ ra, .bash_profilesẽ chỉ chạy trên shell đăng nhập. Đối với hệ vỏ không đăng nhập, bạn sẽ cần tạo một .bashrctệp có:

    sudo nano .bashrc

Liên kết

.bash_profile so với .bashrc

Tầm quan trọng của .bashrc


5
Tại sao bạn sử dụng touchđể tạo tập tin trống trước? nanolàm điều này tự động nào.
nohillside

5
Ngoài ra, bạn có thể không muốn cả ~ / .profile và ~ / .bash_profile - nếu bash thấy .bash_profile, nó không bận tâm với .profile. Cuối cùng, nó sẽ chỉ được chạy cho shell "đăng nhập"; thay vào đó, shell nonlogin chạy ~ / .bashrc. Xem các câu hỏi SO trước đâyđây .
Gordon Davisson

@GordonDavisson có tốt không ~/.profilekhi có bản sao ~/.bash_profile? Và nếu bạn có cả hai, bạn có những gì bên trong ~/.profilekhông thể được thực hiện ~/.bash_profile?
Thi G.

2
@ThiG: Tôi sẽ không có cái này là bản sao của cái kia; bạn có khả năng thêm một cái gì đó vào một cái, quên thêm nó vào cái khác và bị lẫn lộn. Xem các đề xuất của tôi về câu hỏi SO này để biết những gì tôi cho là thực hành tốt nhất.
Gordon Davisson

sudođảm bảo bạn làm xáo trộn quyền người dùng. Đừng làm vậy.
Tối đa

2

Bạn có thể sao chép các tệp đó từ / etc / skel / là các tệp khung cho người dùng mới được tạo bằng lệnh như useradd trên các bản phân phối dựa trên Debian:

cp -nr /etc/skel/. ~/

Các tệp này sẽ được tự động tải bằng shell mỗi khi bạn đăng nhập. Cách tải các tệp hồ sơ đó được mô tả trang hướng dẫn sử dụng shell của bạn. Trong trường hợp bạn sử dụng bash shell theo cách đặc biệt (ví dụ: qua ssh, ansible, v.v ...), bạn nên sử dụng lệnh 'bash -ilc "mà bạn muốn thực thi trong ENV được chuẩn bị bởi các tệp hồ sơ đó"'. -i có nghĩa là shell tương tác thường được yêu cầu bởi .bashrc -l shell đăng nhập khiến cho .profile được tải (hoặc .bash_profile tồn tại - xem trang bash thủ công) sau đó tải .bashrc


0

Tôi thích sử dụng các trình soạn thảo văn bản GUI như BBEdit hoặc TextWrangler. Các trình soạn thảo văn bản này có thể xử lý các tệp vô hình như .profile và .bash_profile và chúng có lợi thế là có giao diện GUI, không giống như nano là giao diện điều khiển.

TextWrangler

BBEdit


0

Bạn cũng có thể sử dụng trình soạn thảo văn bản GUI như TextEdit:

touch ~/.bash_profile
open -e ~/.bash_profile

open -elà một phím tắt cho open -a TextEdit.

Bạn không nhất thiết phải tạo .profile hoặc .bashrc. Terminal và iTerm 2 mở shell mới dưới dạng shell đăng nhập, vì vậy bash không đọc .bashrc. Nếu cả .bash_profile và .profile tồn tại, bash chỉ đọc .bash_profile khi nó được gọi dưới dạng vỏ đăng nhập tương tác. .profile được đọc bởi ksh khi nó được gọi dưới dạng shell đăng nhập tương tác và bash khi nó được gọi là sh như một vỏ đăng nhập tương tác.

Tôi thực sự đã nói với iTerm 2 để mở shell mới dưới dạng shell không đăng nhập và .bash_profile của tôi chỉ chứa một dòng như thế . ~/.bashrc. tmux và chế độ shell trong emacs mở shell mới dưới dạng shell không đăng nhập theo mặc định. .bash_profile vẫn được đọc khi tôi ssh vào máy tính của mình.


Hãy để tôi xem nếu tôi có ... Bạn có cả hai ~/.bash_profile~/.profile? Và bạn cũng có ~/.bashrc?
Thi G.

Tôi không có .profile và .bash_profile của tôi chỉ chứa . ~/.bashrc.
Lri
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.