Ảnh chụp một Bash session | |
Thiết kế bởi | Brian Fox |
---|---|
Phát hành lần đầu | 8 tháng 6 năm 1989; 35 năm trước |
Kho mã nguồn | |
Viết bằng | C |
Hệ điều hành |
|
Nền tảng | GNU |
Ngôn ngữ có sẵn | Đa ngôn ngữ (gettext) |
Thể loại | Unix shell, ngôn ngữ dòng lệnh |
Giấy phép | GPLv3+ |
Website | www |
Bash là một Unix shell và ngôn ngữ dòng lệnh được viết bởi Brian Fox cho Dự án GNU như là một phần mềm thay thế miễn phí cho Bourne shell. Được phát hành lần đầu vào năm 1989, nó đã được phân phối rộng rãi như là shell đăng nhập mặc định cho hầu hết các bản phân phối Linux và macOS. Một phiên bản cũng có sẵn cho Windows 10. Nó cũng là shell người dùng mặc định trong Solaris 11.
Bash là một trình xử lý dòng lệnh thường chạy trong cửa sổ văn bản nơi người dùng nhập các lệnh để thực thi. Bash cũng có thể đọc và thực thi các lệnh từ một tập tin, được gọi là shell script. Tương tự như các shell Unix khác, nó hỗ trợ tên file toàn cục (matching wildcard), piping, here documents, command substitution, biến, và cấu trúc điều khiển để kiểm tra điều kiện và vòng lặp. Các từ khóa, cú pháp và các tính năng cơ bản khác của ngôn ngữ được thừa hưởng từ sh. Các tính năng khác, như lịch sử, được thừa hưởng từ csh và ksh. Bash là một shell tương thích với tiêu chuẩn POSIX, nhưng có một số phần mở rộng.
Tên của shell là viết tắt của Bourne-again shell, một sự chơi chữ với tên của Bourne shell mà nó thay thế và thuật ngữ phổ biến 'born again'.
Một lỗ hổng bảo mật trong Bash xuất hiện từ phiên bản 1.03 (tháng 8/1989), được biết đến với tên Shellshock, đã được phát hiện vào đầu tháng 9 năm 2014 và ngay lập tức dẫn đến một loạt các cuộc tấn công trên Internet. Các bản vá sửa lỗi đã được cung cấp ngay sau khi phát hiện lỗ hổng.
Vào tháng 6 năm 2019, Apple đã thông báo rằng macOS Catalina (10.15) sẽ sử dụng Zsh làm shell mặc định, thay thế Bash.
Lịch sử
Brian Fox bắt đầu lập trình Bash vào ngày 10/1/1988 sau khi Richard Stallman không hài lòng với sự tiến bộ của nhà phát triển trước đó. Stallman và Free Software Foundation (FSF) cho rằng việc có một shell miễn phí có thể thực thi các shell script hiện có là chiến lược chiến lược trong việc xây dựng một hệ thống hoàn toàn tự do từ mã nguồn mở BSD và GNU. Đây là một trong số ít dự án mà họ tự tài trợ, với Fox đảm nhận vai trò của một nhân viên tại FSF. Fox phát hành bản beta của Bash, phiên bản .99 vào ngày 8/6/1989 và tiếp tục duy trì chính cho đến khoảng giữa năm 1992 và giữa năm 1994, khi ông bị sa thải từ FSF và trách nhiệm được chuyển giao cho một người đóng góp sớm khác, Chet Ramey.
Kể từ đó, Bash trở thành shell phổ biến nhất trong cộng đồng Linux, trở thành shell tương tác mặc định trên các bản phân phối khác nhau của hệ điều hành này (mặc dù Almquist shell có thể là mặc định của shell kịch bản) và trên macOS của Apple. Bash cũng đã được port sang Microsoft Windows thông qua Cygwin và MinGW, sang DOS qua dự án DJGPP, sang Novell NetWare và sang Android thông qua các ứng dụng mô phỏng thiết bị đầu cuối khác nhau.
Vào tháng 9 năm 2014, Stéphane Chazelas, một chuyên gia về Unix/Linux, phát hiện ra một lỗ hổng bảo mật trong chương trình. Lỗi này, lần đầu tiên được tiết lộ vào ngày 24 tháng 9, được gọi là Shellshock và được gán các số CVE-2014-6271, CVE-2014-6277 và CVE-2014-7169. Lỗi này được xem là nghiêm trọng vì tập lệnh CGI sử dụng Bash có thể bị tấn công dễ dàng, cho phép thực thi mã tùy ý. Lỗi này liên quan đến cách Bash định nghĩa hàm cho các biến môi trường trong các tiến trình con.