Laman » bagaimana untuk » Apakah Perbezaan Antara Bash, Zsh, dan Lain-lain Shell Linux?

    Apakah Perbezaan Antara Bash, Zsh, dan Lain-lain Shell Linux?

    Kebanyakan pengedaran Linux termasuk shell bash secara lalai, tetapi anda juga boleh bertukar kepada persekitaran shell lain. Zsh adalah alternatif yang sangat popular, dan terdapat cengkerang lain, seperti abu, dash, ikan, dan tcsh. Tetapi apa perbezaannya, dan mengapa terdapat begitu banyak?

    Apa yang Kerosakan?

    Apabila anda melog masuk pada baris arahan atau melancarkan tetingkap terminal pada Linux, sistem melancarkan program shell. Kerang menawarkan cara standard memperluaskan persekitaran baris perintah. Anda boleh menukar shell lalai untuk yang lain, jika anda suka.

    Persekitaran shell pertama ialah Thompson Shell, yang dibangunkan di Bell Labs dan dibebaskan pada tahun 1971. Persekitaran Shell telah membina konsep sejak itu, sambil menambah pelbagai ciri baru, fungsionalitas, dan penambahbaikan kelajuan.

    Sebagai contoh, Bash menawarkan komitmen dan nama fail penyelesaian, ciri skrip lanjutan, sejarah arahan, warna yang boleh dikonfigurasikan, alias perintah, dan pelbagai ciri lain yang tidak tersedia pada tahun 1971 apabila shell pertama dilepaskan.

    Cangkang juga digunakan di latar belakang oleh pelbagai perkhidmatan sistem. Pengagihan Linux termasuk banyak fungsi yang ditulis sebagai skrip shell. Skrip ini adalah arahan dan fungsi skrip shell canggih lain dijalankan melalui persekitaran shell.

    Shell mengetuai hingga Bash: sh, csh, tsh, dan ksh

    Para pelopor moden yang paling menonjol adalah shell Bourne-juga dikenali sebagai "sh" - yang dinamai pencipta Stephen Bourne yang bekerja di AT & T's Bell Labs. Dikeluarkan pada tahun 1979, ia menjadi penterjemah perintah lalai di Unix kerana sokongan untuk penggantian perintah, perpipaan, pembolehubah, pengujian keadaan, dan perulangan, bersama dengan ciri-ciri lain. Ia tidak menawarkan banyak penyesuaian untuk pengguna, dan tidak menyokong niceties moden seperti alias, penyelesaian komando, dan fungsi shell (walaupun yang terakhir ini akhirnya ditambah).

    C shell, atau "csh", telah dibangunkan pada akhir 1970-an oleh Bill Joy di University of California, Berkley. Ia menambahkan banyak unsur interaktif yang membolehkan pengguna mengawal sistem mereka, seperti alias (pintasan untuk arahan panjang), kebolehan pengurusan kerja, sejarah arahan, dan banyak lagi. Ia dimodelkan dari bahasa pengaturcaraan C, yang sistem operasi Unix sendiri ditulis. Ini juga bermaksud pengguna shell Bourne terpaksa belajar C supaya mereka dapat memasukkan perintah di dalamnya. Di samping itu, csh mempunyai beberapa bug yang harus dibuang oleh pengguna dan pencipta dalam tempoh masa yang besar. Orang akhirnya menggunakan shell Bourne untuk skrip kerana ia mengendalikan arahan bukan interaktif dengan lebih baik, tetapi terperangkap dengan c shell untuk kegunaan biasa.

    Dari masa ke masa, ramai orang mengetatkan pepijat dan ciri tambahan pada cangkerang C, yang memuncak dalam versi csh yang lebih baik yang dikenali sebagai "tcsh". Tetapi csh masih merupakan lalai dalam komputer berasaskan Unix, dan telah menambahkan beberapa ciri tidak standard. David Korn dari Bell Labs bekerja pada KornShell, atau "ksh", yang cuba memperbaiki keadaan dengan menjadi serasi dengan bahasa shell Bourne tetapi menambah banyak ciri dari csh shell. Ia dikeluarkan pada tahun 1983, tetapi di bawah lesen proprietari. Ia bukan perisian percuma sehingga tahun 2000-an, apabila ia dikeluarkan di bawah pelbagai lesen sumber terbuka.

    Kelahiran bash

    Antara Muka Sistem Pengendali Mudah Alih untuk Unix, atau POSIX, adalah satu lagi tindak balas terhadap pelaksanaan csh propiti yang sibuk. Ia berjaya mewujudkan standard untuk tafsiran arahan (antara lain) dan akhirnya mencerminkan banyak ciri-ciri dalam KornShell. Pada masa yang sama, Projek GNU cuba mencipta sistem operasi Unix yang serasi. Projek GNU mengembangkan shell perisian percuma untuk menjadi sebahagian daripada sistem operasi percuma dan menamakannya "Bourne Again Shell", atau "bash".

    Bash telah bertambah baik sejak beberapa dekad sejak dilancarkan pertama kali pada tahun 1989, tetapi masih merupakan shell lalai pada kebanyakan pengagihan Linux hari ini. Ia juga merupakan shell lalai pada macOS Apple, dan tersedia untuk dipasang pada Windows 10 Microsoft.

    Shell lebih baru: abu, sengkang, zsh, dan ikan

    Walaupun komuniti Linux telah menetap di Bash sejak bertahun-tahun, pemaju tidak berhenti membuat cangkang baru ketika Bash pertama kali dibebaskan 28 tahun yang lalu.

    Kenneth Almquist mencipta klon kulit Bourne yang dikenali sebagai shell Almquish, A Shell, "abu", atau kadang-kadang hanya "sh". ia juga serasi POSIX dan menjadi shell lalai di BSD, cabang Unix berbeza. Cangkang abu lebih ringan daripada bash, yang menjadikannya popular di sistem Linux tertanam. Jika anda mempunyai telefon Android yang berakar dengan BusyBox dipasang-atau mana-mana peranti lain dengan suite BusyBox perisian-ia menggunakan kod dari abu.

    Debian membangunkan persekitaran shell berdasarkan abu dan memanggilnya "dash". Ia direka bentuk untuk mematuhi POSIX dan ringan, jadi ia lebih cepat daripada Bash, tetapi tidak akan mempunyai semua ciri-cirinya. Ubuntu menggunakan shell dash sebagai shell lalai untuk tugas bukan interaktif, mempercepat skrip shell dan tugas lain yang berjalan di latar belakang. Ubuntu masih menggunakan bash untuk cangkang interaktif, namun, pengguna masih mempunyai persekitaran interaktif yang penuh ciri.

    Salah satu cengkerang yang paling popular adalah shell Z, atau "zsh". Dicipta oleh Paul Falstad pada tahun 1990, zsh adalah shell bergaya Bourne yang mengandungi ciri-ciri yang anda akan dapati dalam bash, ditambah lagi. Sebagai contoh, zsh mempunyai semakan ejaan, keupayaan untuk melihat log masuk / logout, beberapa ciri pengaturcaraan terbina dalam seperti bytecode, sokongan untuk nota saintifik dalam sintaks, membolehkan aritmetik terapung terapung, dan lebih banyak ciri.

    Satu lagi shell baru ialah Shell Friendly Interactive, atau "fish", dikeluarkan pada tahun 2005. Ia mempunyai sintaks arahan baris yang unik yang direka untuk menjadi sedikit lebih mudah untuk dipelajari, tetapi tidak berasal dari shell Bourne atau C shell. Ini idea yang menarik, tetapi apa yang anda pelajari melalui penggunaan ikan tidak semestinya membantu anda menggunakan bash dan cengkerang yang berasal dari Bourne.

    Yang Harus Anda Pilih? (dan Kenapa Zsh Popular)

    Anda tidak perlu memilih cangkang. Sistem pengendalian anda memilih shell lalai untuk anda, dan pilihan itu hampir selalu bash. Duduk di hadapan pengedaran Linux-atau bahkan Mac-dan anda akan sentiasa mempunyai persekitaran shell bash. Bash mempunyai beberapa ciri lanjutan, tetapi anda mungkin tidak akan menggunakannya melainkan anda skrip shell program.

    Pada sistem Linux tertanam atau sistem BSD, anda akan berakhir dengan kulit abu. Tetapi abu adalah shell berasaskan Bourne dan sebahagian besarnya serasi dengan bash. Apa-apa pengetahuan yang anda miliki dari menggunakan bash akan dipindahkan ke menggunakan abu atau dash shell, walaupun beberapa ciri skrip lanjutan tidak tersedia dalam shell ringan ini.

    Hampir setiap shell yang akan anda hadapi adalah berasaskan Bourne dan berfungsi sama seperti zsh.

    Itu sebabnya zsh sangat popular. Shell baru ini serasi dengan bash, tetapi termasuk lebih banyak ciri. Kotak zsh menawarkan pembetulan ejaan terbina dalam, penyempurnaan baris perintah yang lebih baik, modul yang boleh dimuatkan yang berfungsi sebagai pemalam bagi shell anda, alias global yang membolehkan anda memanggil nama fail atau apa-apa lagi di baris arahan dan bukan hanya arahan, dan lebih banyak sokongan menyerlahkan. Ia seperti bash, tetapi dengan banyak tambahan, ciri tambahan, dan pilihan boleh dikonfigurasi yang anda mungkin menghargai jika anda menghabiskan banyak masa di baris arahan.

    Jika anda biasa dengan bash, anda boleh beralih ke zsh tanpa mempelajari sintaks yang berbeza-anda akan mendapat ciri tambahan sahaja. jika anda biasa dengan zsh, anda boleh beralih ke bash tanpa mempelajari sintaks yang berbeza-anda tidak akan mempunyai akses kepada ciri-ciri tersebut.

    "Oh My ZSH" adalah alat yang membantu anda dengan mudah mengaktifkan pemalam zsh dan bertukar antara tema utama, dengan cepat menyesuaikan shell zsh anda tanpa menghabiskan masa tweaking perkara.

    Ada cengkerang lain juga. Sebagai contoh, shell tcsh masih ada dan masih merupakan pilihan. FreeBSD menggunakan tsch sebagai shell root lalai dan abu sebagai shell interaktif lalai. Jika anda menggunakan pengaturcaraan C kerap, tsch mungkin menjadi lebih baik untuk anda. Walau bagaimanapun, ia tidak dapat dikesan seperti biasa seperti bash atau zsh.

    Bagaimana Beralih Antara Kerang

    Sangat mudah untuk bertukar ke shell baru untuk mencubanya. Cuma pasang shell dari pengurus paket pengedaran Linux anda dan ketik perintah untuk melancarkan shell.

    Sebagai contoh, katakan anda ingin mencuba zsh di Ubuntu. Anda akan menjalankan arahan berikut untuk memasang dan kemudian melancarkannya:

    sudo apt install zsh zsh

    Anda kemudian akan duduk di atas zsh shell. Taipkan " keluar "Pada shell untuk meninggalkannya dan kembali ke shell semasa anda.

    Ini hanya sementara. Setiap kali anda membuka tetingkap terminal baru atau log masuk ke sistem anda di baris arahan, anda akan melihat shell lalai anda. Untuk menukar shell yang anda lihat semasa anda masuk-dikenali sebagai shell login anda-anda boleh menggunakannya secara umum chsh , atau "Tukar Shell", arahan.

    Untuk menggunakan arahan ini, anda perlu mencari laluan penuh ke shell anda dengan arahan yang mana. Sebagai contoh, katakan kami mahu menukar kepada shell zsh. Kami akan menjalankan arahan berikut:

    yang zsh

    Di Ubuntu, ini memberitahu kita binari zsh disimpan di / usr / bin / zsh.

    Jalankan arahan berikut, masukkan kata laluan anda, dan anda akan diminta untuk memilih shell masuk baru:

    chsh

    Mengikut arahan di atas, kami akan masuk / usr / bin / zsh . Shell zsh kemudian menjadi lalai kita sehingga kita berlari chsh perintah dan mengubahnya kembali.