Di masa lalu, ketika AT&T menemukan UNIX, ada Bourne Shell, yang ditulis oleh Steve Bourne. Itu cukup mendasar, dan tidak memiliki banyak alat yang kami terima begitu saja saat ini.
AT&T tidak benar-benar dalam bisnis UNIX, jadi pada saat ini OS yang sangat mendasar diadopsi agak oleh Berkelely, dan mereka membuat beberapa perubahan menjadi BSD UNIX. Di antara banyak perubahan, adalah shell baru, yang disebut csh, yang memiliki banyak perbaikan dibandingkan sh, termasuk kontrol pekerjaan penggunaan interaktif yang lebih baik dan sebagainya. Sayangnya, mereka memutuskan sintaks pemrograman sh mengisap dan membuat sendiri, (agak buruk) disalin dari gaya pengkodean C. (Kata-kata kasar klasik adalah http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/ ) Jadi sekarang ada dua sintaksis.
Kemudian, mereka melakukan perbaikan pada CSH menambahkan penyelesaian tab dan beberapa hal lainnya. Ini menjadi tcsh, dan jika Anda menggunakan CSH, ini mungkin yang Anda gunakan.
AT&T memutuskan itu tidak sepenuhnya keluar dari bisnis UNIX, dan mereka juga memolesnya. David Korn (pria baik) menciptakan shell Korn. Berdasarkan ide memperluas sintaksis Bourne shell, itu menambahkan banyak hal untuk kedua programmer dan penggunaan interaktif. Sebenarnya ada beberapa versi, dan Anda mungkin jarang melihat hal-hal seperti ksh88 dan ksh93, yang menunjukkan varian.
Kemudian datanglah FSF dan OS GNU. Mereka ingin membuat OS mereka sendiri yang kompatibel dengan UNIX bernama Hurd, dan menginginkan shell yang lebih baik untuk itu. Mereka memanggil bash, untuk Bourne Again SHell. Aturan POSIX datang hanya sekitar waktu ini, dan mereka ingin membuat para POSIX shell. Mereka melihat sekeliling, mengambil sintaks dari shell Bourne dan perbaikan dari shell Korn, ditambah mencuri dan memperluas fitur interaktif dari tcsh. Itu menjadi shell de facto di Linux, jadi itu sangat umum.
Ada juga zsh, ditulis menjadi shell 'ultimate'. Ini juga sangat umum di dunia Linux. Itu memperpanjang bash (dan diserbuki silang sedikit, beberapa hal baru kembali ke bash).
Jika saya memilih shell, saya akan memilih bash atau zsh. bash mungkin ada di beberapa tempat lebih banyak daripada zsh. zsh lebih kuat, tapi bash baik untukku. Shell Bourne nyata / bin / sh ada hanya karena alasan historis. bash memiliki hampir semua yang ditawarkan ksh dan lebih banyak lagi. Sintaksnya lebih bersih daripada csh atau tcsh, dan memiliki fitur yang lebih baik daripada salah satunya.
Untuk mengonversi skrip tergantung dari apa ke apa. Gaya shell Bourne (sh, ksh, bash, zsh) ke atau dari gaya csh (csh, tcsh) akan sulit. Beralih dari yang lama ke yang lebih baru (/ bin / sh => bash, / bin / ksh => zsh) akan lebih mudah daripada cara lainnya.