Một vỏ được bắt đầu khi bạn đăng nhập, nhưng nó cũng bắt đầu bởi các chương trình như make
, hoặc khi bạn chạy một kịch bản shell, hoặc khi bạn gõ :sh
vào vi
, hoặc khi bạn tạo ra một cửa sổ terminal mới.
Ban đầu, shell đọc ~/.profile
khi bạn đăng nhập hoặc chạy su
. Kịch bản lệnh này sẽ thực hiện những việc như thông báo xem bạn có email mới hay không, tùy chỉnh xóa và xóa các ký tự, đồng thời thiết lập và xuất các biến TATE và PATH. Khi bắt đầu trong hầu hết các bối cảnh khác, shell không đọc ~/.profile
, bởi vì hầu hết những thứ đó sẽ là dư thừa. Bạn đã dự kiến xuất bất kỳ biến shell quan trọng nào sang shell mới.
Cách cái vỏ biết có nên đọc hay không ~/.profile
là để kiểm tra xem ký tự đầu tiên của argv[0]
, hay còn gọi $0
là '-'
.
Bắt đầu với csh
, bí danh đã được giới thiệu. Bí danh không được xuất trong môi trường. csh
được thiết kế để đọc trong hai tập lệnh khởi tạo khác nhau. ~/.login
chỉ được đọc khi người dùng đăng nhập và gợi ý để làm điều này là nếu argv[0]
bắt đầu bằng '-'
. ~/.cshrc
được đọc mỗi khi vỏ được bắt đầu. Nói chung, một người đặt bí danh ~/.cshrc
và mọi thứ khác trong ~/.login
. csh
cũng được hỗ trợ ~/.logout
, trong hầu hết các trường hợp chỉ cần xóa màn hình và chạy fortune
.
Vỏ khác thông qua các tính năng tương tự. ksh
sẽ đọc ~/.kshrc
, bash
sẽ đọc ~/.bashrc
và đó là nơi bạn đặt định nghĩa bí danh của mình.
Vì vậy, để làm cho một câu chuyện dài trở nên ngắn gọn, ứng dụng sinh ra một vỏ sẽ quyết định xem nó có phải là "vỏ đăng nhập" hay không, trong trường hợp đó là '-'
lúc đầu, hoặc vỏ thông thường. Trong hầu hết các trường hợp, một vỏ sẽ tương tác được bắt đầu như một vỏ đăng nhập và một vỏ có nghĩa là chỉ để chạy một số lệnh, như là đối số hoặc từ một tập lệnh, và sau đó thoát là một vỏ thông thường.
Nhưng tất cả tùy thuộc vào ý thích của ứng dụng khởi động trình bao.