bạn có ý nghĩa gì bởi vỏ tương tác?


25

UNIX: Tài liệu tham khảo đầy đủ, Ấn bản thứ hai của Kenneth H. Rosen et al.

Bạn có thể bắt đầu một shell khác sau khi bạn đăng nhập bằng cách sử dụng tên của shell như một lệnh; ví dụ, để khởi động trình bao Korn, bạn có thể gõ ksh tại dấu nhắc lệnh. Loại shell này không phải là shell đăng nhập và bạn không phải đăng nhập lại để sử dụng nó, nhưng nó vẫn là shell tương tác, nghĩa là bạn tương tác với shell bằng cách nhập lệnh (trái ngược với sử dụng shell chạy một kịch bản, như đã thảo luận trong Chương 20). Các phiên bản của shell chạy trong cửa sổ terminal khi bạn đang sử dụng giao diện đồ họa cũng là các shell không đăng nhập tương tác. Khi bạn khởi động shell không đăng nhập, nó không đọc tệp .profile, .bash_profile hoặc .login của bạn (hoặc tệp .logout của bạn), nhưng nó vẫn sẽ đọc tệp cấu hình shell thứ hai (chẳng hạn như .bashrc). Điều này có nghĩa là bạn có thể kiểm tra các thay đổi đối với của bạn.

Tôi đã trải qua các dòng trên và tôi không hiểu ý nghĩa của vỏ tương tác. Có đúng là .profile không được đọc nếu tôi đang sử dụng terminal không?

Hơn nữa, điều đó có nghĩa là gì khi bạn nói rằng bourne không phải là một vỏ tương tác trong khi bash / csh là một vỏ tương tác?

Câu trả lời:


27

Một shell tương tác đơn giản là bất kỳ quá trình shell nào mà bạn sử dụng để gõ các lệnh và lấy lại đầu ra từ các lệnh đó. Đó là, một vỏ mà bạn tương tác.

Vì vậy, shell đăng nhập của bạn là tương tác, cũng như bất kỳ shell nào khác bạn bắt đầu bằng tay, như được mô tả trong đoạn trích bạn trích dẫn trong câu hỏi của bạn. Ngược lại, khi bạn chạy tập lệnh shell, trình bao không tương tác được khởi động để chạy các lệnh trong tập lệnh và sau đó thoát khi tập lệnh kết thúc.

Vỏ Bourne có thể được sử dụng làm vỏ tương tác, giống như bashhoặc tcsh. Trong thực tế, nhiều hệ thống, như FreeBSD, sử dụng shlàm vỏ người dùng mặc định. Vỏ hiện đại thích bash, zsh, tcsh, vv có nhiều tính năng mà Bourne shell không có, mà làm cho họ cảm thấy thoải mái hơn và thuận tiện cho việc sử dụng tương tác (lịch sử lệnh, hoàn thành, vv).

Các shell không đăng nhập tương tác (nghĩa là các shell bạn bắt đầu thủ công từ một shell khác hoặc bằng cách mở một cửa sổ terminal) không đọc .loginhoặc .profilecác tệp của bạn . Chúng chỉ được đọc và thực thi bởi các shell đăng nhập (các shell được bắt đầu bởi loginquá trình hệ thống hoặc bởi trình quản lý hiển thị X của bạn), vì vậy các lệnh và cài đặt chúng chứa chỉ được áp dụng một lần, vào đầu phiên đăng nhập của bạn. Vì vậy, khi bạn khởi động một thiết bị đầu cuối, shell mà nó sinh ra sẽ không đọc các tệp đăng nhập của bạn ( .loginđối với shell kiểu c, .profileđối với shell kiểu bourne), nhưng nó đọc các tệp .cshrc, .bashrcv.v.


Có thể chạy shell như một vỏ đăng nhập không tương tác.
jw013

Đúng, nhưng có khả năng gây nhầm lẫn!
D_Bye

ksh cũng là một trình bao hiện đại :-) Xem www2.research.att.com/sw/doad và sử dụng menu ở lề bên trái để điều hướng đến tổng quan AST-> ksh->. Một bản phát hành mới được phát hành nhiều lần trong năm từ David Korn và Glen Fowler. Chúc mọi người may mắn.
shellter

1
@shellter - vâng, thực sự. Nhưng nó không phải là thứ tôi từng sử dụng, và tôi phải dừng việc liệt kê đạn pháo ở đâu đó! ;-)
D_Bye

Bạn đã nói The Bourne shell can be used as an interactive shell, just like bash or tcsh. không phải vỏ Bourne giống như bash?
Mr.Web
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.