ทุบตีเปลือกกว่า 30 ปีและยังคงแข็งแกร่ง มันจะมีอะไรทำที่มันมาจากและทำไมมันยังคงเป็นเปลือกที่พบมากที่สุดในระบบลินุกซ์?
เชลล์คืออะไร?
เมื่อคุณเปิดหน้าต่าง terminal และพิมพ์คำสั่งบางสิ่งบางอย่างที่มีการใช้สิ่งที่คุณได้พิมพ์รูปสิ่งที่คุณตั้งใจและเรียกใช้งานที่คุณถามหา ซอฟแวร์ที่ไม่นี้เป็นเปลือก เปลือกเป็นล่ามคำสั่ง มันจะสแกนสิ่งที่คุณพิมพ์และหยิบออกคำสั่งที่ชื่อไดเรกทอรีชื่อไฟล์และชื่อโปรแกรมเพื่อที่จะสามารถคิดออกสิ่งที่คุณกำลังพยายามที่จะบรรลุ
คนมักจะใช้วลี“Windows Terminal”,“บรรทัดคำสั่ง” และ“หอย” สลับกัน แต่พวกเขากำลังสามสิ่งที่แตกต่างกัน หน้าต่าง terminal เป็นตัวแทนของซอฟแวร์ทางกายภาพ สถานีโทรพิมพ์ . มันจะช่วยให้คุณเชื่อมต่อกับคอมพิวเตอร์ เพื่อที่จะทำอะไรที่เป็นประโยชน์, คุณจะต้องสามารถที่จะพิมพ์คำแนะนำได้ที่บรรทัดคำสั่ง บรรทัดคำสั่งที่ให้บริการโดยเปลือกและหน้าต่าง terminal ช่วยให้คุณเข้าถึงเปลือก
หอยยังช่วยให้คุณสามารถพัสดุขึ้นคอลเลกชันของคำสั่งลงในไฟล์ข้อความที่เรียกว่าสคริปต์ ทุกคำสั่งในสคริปต์ที่มีการดำเนินการสำหรับคุณทุกครั้งที่คุณเรียกใช้สคริปต์ สคริปส่งมอบประสิทธิภาพการทำซ้ำและความสะดวกสบาย
ครั้งแรก
ยูนิกซ์
เปลือกเป็น
ธ อมป์สันเปลือก
, เรียกว่า
NS
. มันถูกเขียนโดย
เคน ธ อมป์สัน
ซึ่งอาจจะเป็นสมาชิกคนสำคัญที่สุดของระบบปฏิบัติการยูนิกซ์เดิมบรรพบุรุษผู้ก่อตั้งที่
เบลล์แล็บ
. ธ อมป์สันเปลือกถูกนำมาใช้เป็นค่าเริ่มต้น Unix เปลือกและรวมถึงระบบปฏิบัติการยูนิกซ์เวอร์ชัน 6 มันถูกแทนที่ด้วย
บอร์นเปลือก
ในรุ่นที่ 7 ของ Unix ในปี 1979
ที่เกี่ยวข้อง: คืออะไร Unix และทำไมมันไม่สำคัญ?
The Bourne เชลล์
The Bourne เปลือกเขียนโดย
สตีเฟ่นบอร์น
เป็นทดแทนการอัพเกรดสำหรับเปลือก ธ อมป์สัน มันเริ่มต้นแม้จะใช้คำสั่งเช่นเดียวกับ ธ อมป์สันเปลือก
NS
เพื่อรักษาความเข้ากันได้ย้อนหลังกับสคริปต์ที่มีอยู่ ความเข้ากันได้เป็นสิ่งสำคัญ แต่คุณสมบัติใหม่ที่ถูกรวมที่ให้ฟังก์ชันการทำงานมากว่าเรายังคงใช้วันนี้
The Bourne เปลือกเป็นเปลือกโต้ตอบและภาษาสคริปต์ มันได้รับการสนับสนุนเบื้องหน้าและงานพื้นหลังการดำเนินการและการควบคุมงานระดับประถมศึกษา ท่อและเปลี่ยนเส้นทางถูกเพิ่มพร้อมกับการปรับปรุงในการจัดการลูป
เปลือกในขณะนี้มีบางอย่างในตัวคำสั่งซึ่งหมายความว่ามันไม่จำเป็นที่จะผ่านทุกอย่างออกไปสาธารณูปโภคภายนอกทำให้มันมีประสิทธิภาพมากขึ้น The Bourne เปลือกสนับสนุนแม้กระทั่ง “นี่คือเอกสาร” วิธีที่สง่างามได้โดยอัตโนมัติส่งข้อมูลลงในคำสั่ง
The Bourne เปลือกยกบาร์และกลายเป็นมาตรฐานใหม่
ที่เกี่ยวข้อง: วิธีการใช้ "นี่คือเอกสาร" ในการทุบตีบน Linux
เกิดจากทุบตี
ในปี 1984 เมื่อ โครงการ GNU ประกาศความตั้งใจที่จะทำให้ฟรียูนิกซ์โคลนเป็นลายลักษณ์อักษรจากพื้นดินขึ้นและมี ใหม่ใบอนุญาตอนุญาต ทีม -The จำเป็นเปลือก เมื่ออาสาสมัครที่ได้รับการทำงานในเปลือกสำหรับโครงการ GNU ล้มเหลวซ้ำแล้วซ้ำอีกในการส่งมอบสิ่งที่ทุกที่ ไบรอันฟ็อกซ์ ได้รับมอบหมายให้เขียนโคลนของบอร์นเชลล์
มันได้รับการขนานนามว่า Bourne Again Shell หรือทุบตี นี่คือส่วนหนึ่งในการแสดงความเคารพกับสตีเฟ่นบอร์นและอีกส่วนหนึ่งเล่นลิ้นเพื่อประโยชน์ของมัน หลังจากที่ปล่อยในปี 1989 เชษฐ์เมย์ มีส่วนร่วมแก้ไขข้อผิดพลาดบางอย่างที่จะทุบตี ในที่สุดเขาก็กลายเป็นผู้ร่วมดูแลของเปลือกทุบตี ปัจจุบันเขายังคงเป็นผู้ดูแลโครงการทุบตี
linus torvalds
ผู้สร้างของลินุกซ์เคอร์เนลได้กล่าวว่าสองโปรแกรมแรกที่เขาวิ่งบนเคอร์เนลใหม่ของเขาในปี 1991 ถูกทุบตีและ
gcc
,
คอมไพเลอร์ของ GNU
. การจับคู่ของยูทิลิตี้ GNU ที่มีเคอร์เนล Linux เป็นประโยชน์ร่วมกัน ระบบปฏิบัติการ GNU ต้องการเคอร์เนลและเคอร์เนล Linux ต้องการทุกอย่างที่ทำให้ UNIX Clone
เนื่องจาก Bash เป็นเปลือก GNU มาตรฐานจึงกลายเป็นเปลือกมาตรฐานในการแจกแจง GNU / Linux ทั้งหมด ลินุกซ์เจริญรุ่งเรืองจนถึงจุดที่ตอนนี้ได้รับผลกระทบ จำนวนที่น่าอัศจรรย์ของโลกสมัยใหม่ . เปลือกทุบตีท่องคลื่นของความสำเร็จเช่นกัน
ทุบตีผสมผสานและปรับปรุงชุดคุณสมบัติของเชลล์บอร์น แต่ก็ใช้แรงบันดาลใจจากเปลือกหอยอื่นเช่น
C เปลือกหอย
(
csh
) และ
Kornshell
(
ksh
). ตัวอย่างเช่นการขยายตัวของ Tilde "
~
"ถึงค่าที่จัดขึ้นใน
บ้าน
ตัวแปรสภาพแวดล้อมมาจากเปลือก C และ
เอฟซี
คำสั่งที่เรียกใช้ตัวแก้ไขเริ่มต้นในคำสั่ง
ประวัติคำสั่ง
มาจาก Kornshell
Bash แนะนำไฟล์ Config เช่น ไฟล์ ". bashrc" และ ". bash_profile" . การแก้ไขบรรทัดคำสั่งบน Bash ไกลเกินขีดความสามารถของเปลือกเคลล์ก่อนหน้านี้ การจัดการคำสั่งที่ดำเนินการก่อนหน้านี้ในประวัติคำสั่งเป็นคุณสมบัติที่ได้รับการปรับปรุงของคุณสมบัติ "History" C Shells " การขยายตัวของ Brace เป็นคุณสมบัติที่ขาดหายไปจากเชลล์ Bourne ที่ถูกนำไปใช้ในทุบตีเป็น Superset ของฟังก์ชั่นที่พบใน C Shell ปรับปรุงอาร์เรย์โดยการลบขีด จำกัด ขนาดของพวกเขา การขยายพารามิเตอร์ในพรอมต์คำสั่งช่วยให้ผู้ใช้สามารถปรับแต่งพรอมต์ Bash ได้
Bash Shell มีวัตถุประสงค์เพื่อให้สอดคล้องกับ POSIX P1003.2 / ISO 9945.2 เชลล์และยูทิลิตี้ มาตรฐาน.
ที่เกี่ยวข้อง: Linux ฆ่า UNIX เชิงพาณิชย์หรือไม่?
ทำไมทุบตียังคงมีความสำคัญ
ทุบตีไม่สามารถทนนานนี้ได้นานกว่า 30 ปี - เป็นเปลือก Linux เริ่มต้นหากไม่ได้ทำงาน เนื่องจากอายุการใช้งานที่ยาวนานและฐานผู้ใช้ขนาดใหญ่ทุบตีจึงเป็นผู้ใหญ่และมีเสถียรภาพมาก มีเปลือกทางเลือกมากมายจากทหารผ่านศึกเช่นเชลล์ C และ Kornshell ไปยังเปลือกใหม่เช่น
z shell (
zsh
)
และ
เปลือกแบบโต้ตอบเป็นมิตร
(
ปลา
). ทั้งเชลล์ Z และเปลือกปลามีคุณสมบัติบางอย่างที่ทุบตีนั้นไม่ได้เป็นวิธีที่ดีกว่าเนื้อหาที่ดีกว่าในการบรรลุสิ่งเดียวกันที่ Bash ทำ เหตุใด Bash จึงยังคงเป็นเชลล์ที่โดดเด่น
จากเครื่อง Linux ทั้งหมดที่ฉันเคยได้รับการเรียกให้จัดการฉันไม่ได้จำคนเดียวที่ไม่ได้ทุบตีเหมือนเปลือกหอย เครื่อง UNIX ใช่ แต่กล่อง Linux ไม่มี มันทุบตีทุกครั้ง ความคุ้นเคยนั้นช่วยให้คุณทำงานได้อย่างรวดเร็วและมีประสิทธิภาพทันที คุณรู้อยู่แล้วว่าทุบตีดังนั้นจึงไม่มีการเรียนรู้โค้ง คุณไม่ได้รับ Hamstrung ด้วยความแตกต่างเล็ก ๆ ในไวยากรณ์ที่คุณทำในวงกลมที่พยายามคิดออกว่าทำไมบางสิ่งไม่ทำงาน เวลาที่ใช้ในการหาสิ่งที่คาถาควรจะเปิดอยู่ นี้ เชลล์เป็นเวลาตายดังนั้นมันจึงเป็นความสนใจของธุรกิจลูกค้าเพื่อใช้เชลล์ที่มีชื่อเสียงและใช้กันอย่างแพร่หลาย
การใช้เชลล์ที่เป็น - หรือพยายามอย่างหนักที่จะเป็นไปตามที่สอดคล้องกับการกระจายลินุกซ์จำนวนมาก แต่สิ่งที่สำคัญยิ่งขึ้นคือความเข้ากันได้กับรุ่นก่อนหน้า การเปลี่ยนแปลงที่สามารถทำลายสคริปต์ที่มีอยู่นั้นไม่น่าสนใจอย่างเห็นได้ชัด บางครั้งคุณก็ต้องกัดกระสุน ในวันที่ 3 ก.ย. 1967 สวีเดนเปลี่ยนจากการขับรถทางซ้ายเพื่อขับรถทางด้านขวา เวลา 4:50 น. การจราจรทั้งหมดต้องหยุดทำงานช้าไปอีกด้านหนึ่งของถนนและหยุดอีกครั้ง เวลา 5:00 น. การจราจรสามารถดำเนินการต่อได้ทุกคนขับรถทางด้านขวา
ทุบตีจะถูกแทนที่หรือไม่
สิ่งที่อาจทำให้นึกไม่ถึงตอนนี้สามารถเกิดขึ้นได้ในภายหลัง เว้นแต่ว่าเราต้องการยึดมั่นในความเชื่อที่เราทุกคนใช้ทุบตีจนกระทั่งวันโลกาวินาศความจริงน่าจะเป็นวันหนึ่งทุบตีจะถูกแทนที่เนื่องจากเป็นเปลือก Linux เริ่มต้นไม่ว่าจะเป็นเปลือกมาตรฐาน GNU หรือไม่ หรือบางทีมันอาจจะทุบตี แต่ปรับปรุงไกลเกินกว่าที่เราใช้ในวันนี้ แต่สิ่งที่เกิดขึ้นในสถานที่ของการทุบตีในวันนี้จะต้องมีความเข้ากันได้อย่างสมบูรณ์ (หรือเกือบ) ย้อนหลังหรือคุ้มค่ากับความวุ่นวายไม่ว่าจะเป็นประโยชน์อะไรก็ตาม
นี่ไม่ใช่แบบอย่าง ตั้งแต่ รุ่น 10.15 ของ macos แอปเปิ้ลลดลงทุบตีและนำเปลือก z มาใช้เป็นเชลล์เริ่มต้น Apple มีปัญหาเกี่ยวกับใบอนุญาตสาธารณะ GNU (GPL) V.3 น่าเสียดายที่นั่นคือใบอนุญาตที่ Bash ใช้ Bash รุ่นสุดท้ายที่วางจำหน่ายภายใต้ GPL V.2 คือเวอร์ชัน 3.2 ของ 2007 รุ่นปัจจุบันคือ 5.1 แอปเปิ้ลเกือบหนึ่งทศวรรษและครึ่งหลัง วิธีเดียวที่ Apple สามารถรวมเชลล์ที่ทันสมัยโดยไม่ต้องย้ายไปที่ GPL V.3 คือการย้ายไปยังเชลล์ที่แตกต่างกันโดยสิ้นเชิง เพื่อแอปเปิ้ลที่คุ้มค่ากับการเปลี่ยนแปลง (อย่างไรก็ตามคุณยังสามารถ สลับกลับไปที่ Bash บน MacOS ถ้าคุณชอบมัน!)
มีโลกแห่งความแตกต่างระหว่างเวิร์กสเตชันของผู้ใช้พลังงานและเซิร์ฟเวอร์ Linux แบบ Linux ที่คุณต้องจัดการจากระยะไกล มากกว่าการเชื่อมต่อ SSH . เซิร์ฟเวอร์โฮสต์โฮสต์ของ Amazon EC2 เกือบ 1.5 ล้าน มากกว่า 93% กำลังใช้งาน Linux . เกือบ 75% ของเว็บเซิร์ฟเวอร์ กำลังใช้งาน Linux . องค์กรเช่น Red Hat, Amazon และ Google ใช้ Linux ในบ้าน
มันยากที่จะจินตนาการว่าสิ่งที่เป็นประโยชน์ที่เป็นเชลล์ใหม่สามารถนำเสนอที่จะพิสูจน์ว่ามีความวุ่นวายทั่วโลก นั่นเป็นเหตุผลที่ทุบตีอยู่ในสถานที่
แม้แต่ Microsoft ก็เสนอวิธีการ เรียกใช้เปลือกหอยทุบตี Linux บน Windows 10 !