GNU/Linux >> Belajar Linux >  >> Linux

Apa Perbedaan Mendasar Antara Kerang *nix Mainstream??

Tutup . Pertanyaan ini perlu lebih fokus. Saat ini tidak menerima jawaban.

Ingin memperbaiki pertanyaan ini? Perbarui pertanyaan agar fokus pada satu masalah saja dengan mengedit postingan ini.

Ditutup 6 tahun yang lalu.


Perbaiki pertanyaan ini

Apa perbedaan mendasar antara shell *NIX mainstream dan skenario apa yang mungkin mendorong Anda untuk menggunakan satu di atas yang lain? Saya mengerti bahwa beberapa di antaranya mungkin tergantung pada preferensi pengguna, tetapi saya hanya pernah menggunakan Bash dan saya tertarik untuk mendengar di mana shell lain mungkin berguna.

Juga, apakah ada dampak pada skrip shell yang ditulis pengguna saat berjalan di bawah satu shell atau lainnya atau hanya masalah mengubah shell di bagian atas file? Naluriku mengatakan itu tidak mudah.

Jawaban yang Diterima:

Untuk penggunaan interaktif, ada dua pesaing utama, Bash dan zsh, ditambah tcsh yang tersesat dan ikan pendatang baru.

  • Bash adalah shell resmi dari proyek GNU dan shell default pada sebagian besar distribusi Linux. Pada unice lain yang tidak dikirimkan dengan shell interaktif yang layak sebagai bagian dari instalasi dasar, saya pikir Bash adalah yang cenderung dipilih orang, dalam pengulangan "Bash ada di mana-mana jadi saya akan menggunakannya juga". Lihat juga Mengapa Bash ada di mana-mana? (dengan banyak informasi sejarah).

  • Zsh memiliki hampir semua fitur Bash dan banyak lagi fitur (berguna!). Kelemahan utamanya adalah kurang terkenal, yang secara praktis berarti Anda cenderung tidak menemukannya sudah diinstal pada sistem yang disiapkan orang lain dan ada lebih sedikit dokumentasi pihak ketiga tentangnya. Lihat juga Fitur zsh apa yang Anda gunakan?, Fitur apa yang ada di zsh dan hilang dari Bash, atau sebaliknya?, Apa perbedaan praktis antara Bash dan Zsh?.

  • Tcsh pernah (hingga awal 1990-an) shell dengan fitur interaktif terbaik, seperti csh pendahulunya. Itu membuatnya populer untuk penggunaan interaktif (tetapi tidak untuk skrip). Zsh menyusul tcsh dan cukup cepat meningkat lebih jauh, dan Bash menyusul (dengan penyelesaian yang dapat diprogram) di awal 2000-an, sementara tcsh hampir tidak membuat kemajuan apa pun dalam 15 tahun terakhir. Oleh karena itu, hanya ada sedikit alasan untuk mempelajari tcsh sekarang.

  • Ikan mencoba menjadi lebih bersih dari pendahulunya. Ini memiliki beberapa fitur yang rapi (sintaks lebih sederhana, pewarnaan sintaks pada baris perintah) tetapi tidak memiliki yang lain (apa pun yang tidak disukai penulis). Komunitas ikan jauh lebih kecil daripada komunitas zsh, membuat efeknya lebih akut.

Untuk skrip, ada beberapa bahasa yang mungkin ingin Anda targetkan, bergantung pada seberapa portabel skrip yang Anda inginkan.

  • Apa pun yang berpura-pura seperti Unix memiliki shell yang diturunkan dari Bourne sebagai /bin/sh . Masih ada beberapa unit komersial di sekitar /bin/sh tidak sesuai dengan POSIX.

  • Hampir setiap unix yang sekarang berjalan memiliki sh dapat dieksekusi yang setidaknya sesuai dengan setidaknya POSIX.2-1992 dan biasanya setidaknya POSIX:2001 alias Single Unix v3. Shell ini mungkin berada di direktori yang berbeda seperti /usr/bin/posix atau /usr/xpg6/bin . Lapisan emulasi POSIX juga ada untuk hampir setiap sistem yang cukup kuat untuk mendukungnya, menjadikannya target yang menarik.

  • Banyak sistem unix memiliki ksh93, yang menghadirkan beberapa fitur yang sangat berguna yang tidak dimiliki POSIX sh (array, array asosiatif, gumpalan yang diperluas (*(foo) , @(foo|bar) , …), gumpalan nol (~(N)foo* ), …). Ksh pada awalnya adalah perangkat lunak komersial (menjadi gratis pada tahun 2000, setelah beberapa kebiasaan telah ditetapkan), dan banyak unix gratis (Linux, *BSD) menjadi terbiasa hanya menyediakan klon gratis yang jauh lebih tua (pdksh) yang tidak memiliki banyak fitur berguna ini . Pdksh sekarang digantikan oleh mksh di luar OpenBSD, tetapi bahkan mksh gagal mengimplementasikan semua fitur ksh93. Hari ini, Anda tidak dapat mengandalkan ksh93 yang tersedia di mana-mana, terutama di Linux di mana Bash adalah normanya.

  • Bash selalu tersedia di Linux (kecuali beberapa varian yang disematkan) dan sering kali di unix lain. Ini memiliki sebagian besar fitur berguna ksh93, meskipun terkadang dengan sintaks yang berbeda.

  • Zsh memiliki sebagian besar fitur berguna ksh93 dan Bash. Sintaks intinya lebih bersih tetapi tidak kompatibel dengan Bourne. Kecuali untuk macOS, jangan berharap zsh tersedia di sistem yang tidak Anda instal.

  • Untuk skrip yang lebih canggih, Anda dapat beralih ke Perl atau Python. Bahasa-bahasa ini memiliki struktur data yang tepat, fitur manipulasi teks yang layak, kombinasi proses dan mekanisme komunikasi yang layak, dan banyak perpustakaan yang tersedia. Sebagian besar sistem unix memilikinya, baik dibundel dengan OS atau diinstal oleh administrator (karena ada begitu banyak skrip Perl dan Python di luar sana sehingga merupakan sistem langka yang tidak memiliki setidaknya satu skrip).

Terkait:Balikkan hasil untuk "for in * do"-loop?
Linux
  1. Apa itu Pemisah Kata Readline?

  2. Apa Perbedaan Utama Antara Bsd Dan Gnu/linux Userland?

  3. Linux – Apa Perbedaan Utama Antara Sistem Operasi Berbasis Bsd dan Linux?

  1. Apa Perbedaan Antara Kernel Terkirim Ubuntu Dan Kernel Hulu?

  2. Apa saja Jenis Shell yang Berbeda di Linux?

  3. Apa perbedaan antara lsof dan netstat di linux?

  1. MySQL vs. MariaDB:Apa Perbedaan Utama Antara Mereka?

  2. Debian vs Ubuntu:Apa perbedaannya?

  3. Apa perbedaan antara distribusi Linux utama? Akankah saya menyadarinya?