.profile không chạy khi tôi khởi động thiết bị đầu cuối bash


15

Khi tôi khởi động thiết bị đầu cuối bash, .profile của tôi không được thực thi. Tôi không có ~ / .bash_profile hoặc a ~ / .bash_login, vì vậy .profile có nghĩa vụ phải chạy, phải không? Điều gì khác có thể sai?

Câu trả lời:


23

Nó không phải là một vỏ đăng nhập.

Nếu shell là shell đăng nhập, nó sẽ tìm .bash_profile nếu nó tồn tại, sau đó .profile. Các shell khác tìm kiếm .bashrc

Vì vậy, bạn có thể đặt những thứ bạn muốn trong mọi phiên bản shell trong .bashrc và có thể có một tham chiếu có nguồn .bashrc trong .profile.

Vì vậy: .bashrc:

stuff you want

cuối .profile:

[ -n "$BASH" ] && [ -f ~/.bashrc ] && . ~/.bashrc

Vì vậy, khi tôi chạy 'konsole' trong KDE, đó là một vỏ không đăng nhập, phải không? Trên một máy khác, tôi chắc chắn đã đặt mọi thứ vào .profile và để chúng hoạt động khi tôi mở một thiết bị đầu cuối như thế này - tôi đoán tôi không hiểu khi nào bạn muốn một cái gì đó khác xảy ra khi đăng nhập so với khi bạn mở một thiết bị đầu cuối?
David Doria

@DavidDoria tùy thuộc, tôi đã thay đổi cấu hình hoặc tạo bí danh cho những gì konsole chạy, để làm cho nó chạy bash --login. Trong trường hợp của bạn, nó dường như chỉ chạy bash, theo mặc định sẽ không kích hoạt shell đăng nhập
Rich Homolka

Nếu bạn đang sử dụng LightDM có thể là lý do. Các trình quản lý hiển thị khác như GDM và nguồn KDM .profile khi đăng nhập, nhưng LightDM không (theo thiết kế). Xem bug.debian.org/cgi-bin/orpreport.cgi?orms=636108
WakiMiko

Tôi đang sử dụng KDM.
David Doria

2
Nếu bạn đang sử dụng Gnome Terminal, bạn có thể thực hiện Chỉnh sửa-> Tùy chọn hồ sơ, chuyển đến tab Tiêu đề và Lệnh và kiểm tra "Chạy lệnh dưới dạng vỏ đăng nhập". Sau đó, nó sẽ nguồn .bash_profile hoặc .profile của bạn bất cứ khi nào bạn mở một thiết bị đầu cuối, như mong đợi.
Lambart


1

Nếu bạn đang sử dụng máy tính để bàn đồ họa, .profile sẽ có nguồn gốc từ trình quản lý máy tính để bàn của bạn. Lightdm hiện có nguồn .profile, ít nhất là trên Ubuntu. Xem: https://bugs.launchpad.net/ubfox/+source/lightdm/+orms/794315

Với kdm và Kubfox-12.04, tệp / etc / kde4 / kdm / Xsession có nguồn gốc, bao gồm .profile bao gồm. Kubfox-12.10 có thể sẽ sử dụng lightdm. Ubuntu 12.04 sử dụng lightdm sao cho nguồn / usr / sbin / lightdm-session .profile.

Tôi nghĩ rằng cách để đi là (1) thiết lập / xuất cài đặt môi trường trong ~ / .profile và (2) có .profile có nguồn gốc bởi .bash_profile:

[[ -f ~/.profile ]] && . ~/.profile

(và không có .bashrc có nguồn gốc từ .profile hoặc .bash_profile).

Xem thêm:


1
Điều này giải thích làm thế nào để có .profilenguồn gốc của bạn khi đăng nhập, nhưng anh ấy thực sự tự hỏi về cách lấy bashnguồn khi anh ấy khởi chạy một thiết bị đầu cuối (không phải lúc đăng nhập)
cpast

Bạn không muốn có .profile có nguồn gốc khi bạn khởi chạy một thiết bị đầu cuối mới (từ trong KDE). Toàn bộ mục đích của .profile là có nguồn gốc một lần khi đăng nhập, trên thiết bị đầu cuối đồ họa hoặc thiết bị đầu cuối văn bản; .profile đã có nguồn gốc từ thời điểm bạn đăng nhập vào KDE.
Freddy Vulto

.profile nên có nguồn gốc từ trình quản lý máy tính để bàn của bạn. Vâng, điều này phụ thuộc vào sự hiểu biết về mục đích của tập tin. Trong Debian, / etc / profile (và ~ / .profile là phần mở rộng của nó) có nghĩa là dành cho các shell giống như bash .
Alois Mahdal

Bạn không cần phải lấy lại nguồn NẾU nó có nguồn gốc khi đăng nhập. bash của bạn sẽ kế thừa nó trừ khi bạn làm điều gì đó ngớ ngẩn như "xuất PATH = ~ / .bin" hoặc thứ gì đó khiến nó bị ghi đè.
HörmannHH
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.