ย้อนกลับไปในสมัยก่อนเมื่อ AT&T คิดค้น UNIX มี Bourne Shell เขียนโดย Steve Bourne มันค่อนข้างเรียบง่ายและขาดเครื่องมือมากมายที่เราได้รับในปัจจุบัน
AT&T ไม่ได้อยู่ในธุรกิจ UNIX ดังนั้นในเวลานี้ระบบปฏิบัติการพื้นฐานที่ Berkelely นำมาใช้ค่อนข้างมากและพวกเขาทำการเปลี่ยนแปลงบางอย่างใน BSD UNIX ท่ามกลางการเปลี่ยนแปลงหลายอย่างเชลล์ใหม่ที่เรียกว่า csh ซึ่งมีการปรับปรุงมากมายเกี่ยวกับ sh รวมถึงการควบคุมการใช้งานแบบอินเตอร์แอคทีฟที่ดีขึ้นเป็นต้น น่าเสียดายที่พวกเขาตัดสินใจว่าไวยากรณ์การเขียนโปรแกรม sh ถูกดูดและสร้างขึ้นเอง (ค่อนข้างแย่) คัดลอกมาจากรูปแบบการเข้ารหัส C (คำโหยหวนคลาสสิกคือhttp://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ ) ดังนั้นตอนนี้ก็มีสองไวยากรณ์
ต่อมาพวกเขาปรับปรุง CSH เพื่อเพิ่มความสมบูรณ์ของแท็บและสิ่งอื่น ๆ นี่กลายเป็น tcsh และถ้าคุณใช้ CSH นี่น่าจะเป็นสิ่งที่คุณใช้
AT&T ตัดสินใจว่ามันไม่ได้ออกมาจากธุรกิจยูนิกซ์ทั้งหมดและพวกเขาก็ขัดเกลามันเช่นกัน David Korn (คนดี) สร้าง Korn Shell ตามแนวคิดของการขยาย Bourne shell syntax มันได้เพิ่มสิ่งต่าง ๆ มากมายสำหรับทั้งโปรแกรมเมอร์และการใช้แบบโต้ตอบ จริงๆแล้วมีสองสามเวอร์ชันและคุณอาจไม่ค่อยเห็นสิ่งต่าง ๆ เช่น ksh88 และ ksh93 แสดงถึงความหลากหลาย
จากนั้น FSF และ GNU OS ก็มาถึง พวกเขาต้องการสร้างระบบปฏิบัติการที่รองรับ UNIX ที่ชื่อ Hurd และต้องการเชลล์ที่ดีกว่าสำหรับมัน พวกเขาเรียกว่า bash สำหรับ Bourne Again SHell กฎ POSIX มาในเวลาเพียงช่วงเวลานี้และพวกเขาต้องการที่จะทำให้เปลือก POSIX พวกเขามองไปรอบ ๆ การใช้ไวยากรณ์จากบอร์นเชลล์และการปรับปรุงจาก Korn เชลล์รวมถึงการขโมยและขยายคุณสมบัติการโต้ตอบจาก tcsh มันกลายเป็นเปลือกพฤตินัยบน Linux ดังนั้นจึงเป็นเรื่องธรรมดามาก
นอกจากนี้ยังมี zsh เขียนเป็นเชลล์ 'ultimate' นอกจากนี้ยังพบได้ทั่วไปในโลก Linux มันขยาย bash (และผสมเรณูเล็กน้อยสิ่งใหม่บางอย่างก็กลับไปทุบตี)
ถ้าฉันจะเลือกเปลือกฉันจะเลือกทุบตีหรือ zsh ทุบตีอาจอยู่ในสถานที่ไม่กี่ zsh กว่า zsh มีพลังมากกว่า แต่ทุบตีก็ดีสำหรับฉัน เชลล์บอร์น / bin / sh ของแท้นั้นอยู่รอบตัวด้วยเหตุผลทางประวัติศาสตร์ ทุบตีมีทุกอย่างที่ ksh มีให้และอื่น ๆ อีกมาก ไวยากรณ์นั้นสะอาดกว่า csh หรือ tcsh และมีคุณสมบัติที่ดีกว่าหนึ่งในนั้น
ในการแปลงสคริปต์จะขึ้นอยู่กับว่าจะเป็นอะไร สไตล์เชลล์เป้าหมาย (sh, ksh, bash, zsh) ถึงหรือจากสไตล์ csh (csh, tcsh) จะยาก การเปลี่ยนจากเก่าไปเป็นใหม่ (/ bin / sh => bash, / bin / ksh => zsh) จะง่ายกว่าวิธีอื่น