Vỏ bash là hơn 30 tuổi và vẫn sẽ mạnh mẽ. Nó làm gì, nó đến từ đâu, và tại sao nó vẫn là vỏ phổ biến nhất trên các hệ thống Linux?
Một cái vỏ là gì?
Khi bạn mở một cửa sổ đầu cuối và nhập các lệnh, một cái gì đó phải lấy những gì bạn đã gõ, tìm hiểu những gì bạn dự định và chạy các nhiệm vụ bạn yêu cầu. Phần mềm này làm việc này là vỏ. Một shell là một trình thông dịch lệnh. Nó quét những gì bạn đã gõ và chọn ra các lệnh, tên thư mục, tên tệp và tên chương trình để nó có thể tìm ra những gì bạn đang cố gắng đạt được.
Mọi người thường sử dụng các cụm từ "Windows Terminal Windows," "dòng lệnh," và "shell" thay thế cho nhau, nhưng chúng là ba điều khác biệt. Một cửa sổ đầu cuối là một đại diện phần mềm của một vật lý Teletype Terminal. . Nó cung cấp cho bạn một kết nối với máy tính. Để làm bất cứ điều gì hữu ích, bạn phải có khả năng gõ hướng dẫn tại một dòng lệnh. Dòng lệnh được cung cấp bởi shell và cửa sổ đầu cuối cho phép bạn truy cập shell.
Shells cũng cho phép bạn gửi một bộ sưu tập các lệnh vào tệp văn bản có tên là tập lệnh. Tất cả các lệnh trong tập lệnh được thực thi cho bạn mỗi lần bạn chạy tập lệnh. Các kịch bản cung cấp hiệu quả, lặp lại và thuận tiện.
Đầu tiên
Unix.
Shell là The.
Shell Thompson.
, gọi là
NS
. Nó đã được viết bởi
Ken Thompson.
, đó có thể là thành viên quan trọng nhất của những người cha ban đầu của Unix sáng lập tại
Bell Labs.
. Vỏ Thompson đã được sử dụng làm vỏ UNIX mặc định lên đến và bao gồm cả phiên bản UNIX 6. Nó đã được thay thế bằng
Bourne Shell.
Trong phiên bản 7 của Unix vào năm 1979.
CÓ LIÊN QUAN: Unix là gì, và tại sao nó quan trọng?
Vỏ Bourne.
Vỏ bourne, được viết bởi
Stephen Bourne.
, là một sự thay thế nâng cấp cho vỏ Thompson. Nó thậm chí còn bắt đầu sử dụng cùng một lệnh với vỏ Thompson,
NS
, Để duy trì khả năng tương thích ngược với các tập lệnh hiện có. Tương thích ngược rất quan trọng, nhưng các tính năng mới được bao gồm cung cấp nhiều chức năng mà chúng ta vẫn sử dụng ngày nay.
Vỏ Bourne là một vỏ tương tác và một ngôn ngữ kịch bản. Nó hỗ trợ thực thi nhiệm vụ nền tảng và nền tảng và kiểm soát công việc cơ bản. Ống và chuyển hướng đã được thêm vào, cùng với những cải tiến trong việc xử lý các vòng lặp.
Vỏ hiện có chứa một số lệnh tích hợp, có nghĩa là nó không cần phải vượt qua mọi thứ với các tiện ích bên ngoài, làm cho nó hiệu quả hơn. Vỏ Bourne thậm chí hỗ trợ "Đây là tài liệu," một cách thanh lịch để tự động gửi dữ liệu vào các lệnh.
The Bourne Shell nâng thanh và trở thành tiêu chuẩn mới.
CÓ LIÊN QUAN: Cách sử dụng "tại đây Tài liệu" trong Bash trên Linux
Sự ra đời của bash
Vào năm 1984, khi Dự án GNU. tuyên bố ý định của mình để tạo ra một bản sao Unix miễn phí được viết từ nền tảng và với một mới, cấp phép cho phép - Đội cần một vỏ. Khi một tình nguyện viên đã làm việc trên một shell cho dự án GNU liên tục không thể cung cấp bất cứ điều gì cả, Brian cáo. được giao nhiệm vụ viết một bản sao của vỏ Bourne.
Nó được mệnh danh là Bourne một lần nữa vỏ hoặc bash. Điều này là một phần trong sự tôn kính đối với Stephen Bourne và một phần không thể phát lại vì lợi ích của nó. Sau khi phát hành vào năm 1989, Chet Ramey. đóng góp một số sửa lỗi để bash. Cuối cùng anh ta đã trở thành một người đồng duy trì vỏ của Bash. Ngày nay, anh vẫn là người duy trì dự án Bash.
Linus Torvalds
, người tạo ra hạt nhân Linux, đã nói rằng hai chương trình đầu tiên mà anh ta chạy vào hạt nhân mới vào năm 1991 là Bash và
GCC.
Cái gì
Trình biên dịch của GNU.
. Việc ghép các tiện ích GNU với nhân Linux đã cùng có lợi. Hệ điều hành GNU cần một kernel và nhân linux cần mọi thứ khác tạo nên một bản sao unix.
Bởi vì Bash là vỏ GNU tiêu chuẩn, nó đã trở thành shell tiêu chuẩn trên tất cả các bản phân phối GNU / Linux. Linux phát triển mạnh đến mức nó hiện đang ở dưới một số lượng đáng kinh ngạc của thế giới hiện đại . Vỏ bash lướt làn sóng thành công đó.
Bash kết hợp và cải thiện trên bộ tính năng của vỏ Bourne, nhưng nó cũng lấy cảm hứng từ các loại vỏ khác, chẳng hạn như
C Vỏ.
(
csh.
) và
Kornshell.
(
KSH.
). Ví dụ, sự mở rộng của dấu ngã
~.
"Đến giá trị được tổ chức trong
$ HOME.
Biến môi trường đến từ vỏ C, và
fc.
lệnh gọi trình soạn thảo mặc định trên các lệnh trong
Lịch sử lệnh
đến từ kornshell.
Bash giới thiệu các tệp cấu hình như Các tập tin ".bashrc" và ".bash_profile" . Chỉnh sửa dòng lệnh trên Bash vượt xa khả năng của các vỏ trước đó. Việc thao tác của các lệnh được thực hiện trước đó trong lịch sử lệnh là một phiên bản cải tiến của tính năng "Bang Lịch sử" của Shells. Mở rộng nẹp là một đặc điểm bị thiếu trong vỏ Bourne được thực hiện trong Bash như một siêu chức năng được tìm thấy trong vỏ C. Mảng đã được cải thiện bằng cách loại bỏ giới hạn kích thước của chúng. Mở rộng tham số trong dấu nhắc lệnh cho phép người dùng tùy chỉnh dấu nhắc bash của họ.
Vỏ bash nhằm mục đích tuân thủ POSIX P1003.2 / ISO 9945.2 Vỏ và tiện ích Tiêu chuẩn.
CÓ LIÊN QUAN: Linux đã giết Unix thương mại?
Tại sao Bash vẫn quan trọng
Bash không thể kéo dài hơn 30 năm dài này - vì vỏ Linux mặc định nếu nó không hoạt động. Do tuổi thọ dài và cơ sở người dùng lớn, Bash trưởng thành và rất ổn định. Có rất nhiều vỏ thay thế có sẵn, từ các cựu chiến binh như vỏ C và Kornshell đến các vỏ mới hơn như
Vỏ z (
zh.
)
và
Vỏ tương tác thân thiện
(
cá
). Cả Shell Z và vỏ cá đều có một số tính năng mà Bash không giống như những cách tốt hơn để đạt được một số điều tương tự mà Bash làm. Vậy tại sao Bash vẫn là vỏ chiếm ưu thế?
Trong số tất cả các máy Linux tôi đã từng được gọi để quản lý, tôi không nhớ một cái duy nhất không có Bash làm vỏ. Máy UNIX, có, nhưng hộp Linux, không. Đó là bash mỗi lần. Sự quen thuộc đó cho phép bạn làm việc nhanh chóng và có hiệu lực ngay lập tức. Bạn đã biết Bash, vì vậy không có đường cong học tập. Bạn không bị Hamstrung bởi những khác biệt nhỏ trong cú pháp mà bạn sẽ đi xung quanh trong các vòng tròn cố gắng tìm ra lý do tại sao một cái gì đó không hoạt động. Thời gian dành cho việc tìm hiểu những gì bùa chú nên được trên cái này Shell là thời gian chết, vì vậy đó là lợi ích của doanh nghiệp khách hàng để sử dụng vỏ được biết nổi tiếng và được sử dụng rộng rãi.
Sử dụng một shell là - hoặc đang cố gắng rất khó để be-posix các vấn đề tuân thủ nhiều phân phối Linux, nhưng điều quan trọng hơn là khả năng tương thích với các bản phát hành trước đó. Thực hiện các thay đổi có thể phá vỡ các kịch bản hiện tại rõ ràng là không hấp dẫn. Hấp dẫn hay không, đôi khi, bạn chỉ cần cắn viên đạn. Vào ngày 3 tháng 9 năm 1967, Thụy Điển hoán đổi từ việc lái xe bên trái để lái xe bên phải. Lúc 4:50 sáng, tất cả giao thông phải dừng lại, từ từ đi đến bên kia đường, và dừng lại một lần nữa. Vào lúc 5:00 sáng, giao thông có thể tiến hành, với mọi người bây giờ lái xe bên phải.
Bash sẽ bao giờ được thay thế?
Những gì có vẻ có thể không thể tưởng tượng bây giờ thực sự có thể xảy ra sau này. Trừ khi chúng ta muốn bám vào niềm tin rằng tất cả chúng ta sẽ sử dụng Bash cho đến nay, sự thật có khả năng là một ngày, Bash sẽ được thay thế dưới dạng vỏ Linux mặc định - liệu đó có phải là vỏ tiêu chuẩn GNU hay không. Hoặc có thể nó sẽ bị bash, nhưng nâng cao vượt xa vỏ mà chúng ta sử dụng ngày nay. Nhưng bất cứ điều gì thay thế bash ngày nay sẽ phải hoàn toàn (hoặc gần như) tương thích ngược hoặc có giá trị biến động, bất kể lợi ích nào cũng có thể xảy ra.
Đây không phải là không có tiền lệ. Từ Phiên bản 10.15. của hệ điều hành Mac , Apple đã thả bash và áp dụng shell z làm trình bao mặc định. Apple có các vấn đề với Giấy phép Công cộng GNU (GPL) V.3. Thật không may, đó là giấy phép mà Bash sử dụng. Phiên bản cuối cùng của Bash được phát hành theo GPL V.2 là phiên bản 3.2 của năm 2007. Phiên bản hiện tại là 5.1. Apple đã gần một thập kỷ và một nửa phía sau. Cách duy nhất mà Apple có thể bao gồm một vỏ cập nhật mà không chuyển sang GPL V.3 là chuyển sang một vỏ khác hoàn toàn. Để Apple, đó là giá trị biến động. (Tuy nhiên, bạn vẫn có thể Chuyển về Bash trên MacOS Nếu bạn thích nó!)
Có một thế giới khác biệt giữa máy trạm của người dùng điện và một máy chủ Linux kinh doanh mà bạn phải quản lý từ xa Trên một kết nối SSH . Trong số gần 1,5 triệu máy chủ lưu trữ Amazon EC2, Hơn 93% đang chạy Linux . Gần 75% máy chủ web đang chạy linux. . Các tổ chức như Red Hat, Amazon và Google sử dụng Linux trong nhà.
Thật khó để tưởng tượng những gì có lợi cho một shell mới có thể cung cấp điều đó sẽ biện minh cho loại biến động toàn cầu đó. Đó là lý do tại sao Bash được xi măng tại chỗ.
Ngay cả Microsoft cũng cung cấp một cách để Chạy vỏ bash dựa trên Linux trên Windows 10 Những