Pendahuluan
Linux hadir dengan beberapa shell yang berbeda. Meskipun distribusi memiliki shell default, pengguna dapat mengubah ke tipe lain atau menginstal yang baru.
Jika Anda ingin mengubah shell default, mengetahui berbagai jenis yang tersedia membantu memberikan gambaran umum yang jelas tentang opsi yang memungkinkan.
Artikel ini menunjukkan pentingnya dan fitur dari delapan shell Linux yang berbeda.
Apa itu Shell Linux dan Mengapa Penting?
Sebuah kulit adalah program interpreter baris perintah yang mem-parsing dan mengirimkan perintah ke sistem operasi. Program ini mewakili antarmuka interaktif sistem operasi dan lapisan terluar kernel (atau shell). Ini memungkinkan pengguna dan program untuk mengirim sinyal dan mengekspos utilitas tingkat rendah sistem operasi.
Program terminal (atau emulator terminal) memungkinkan interaksi dengan utilitas sistem. Ketika kita menjalankan perintah apapun di terminal, seperti ls atau cat, shell mem-parsing, mengevaluasi, mencari, dan mengeksekusi program yang sesuai, jika ditemukan.
Jenis Shell Linux
Linux menawarkan jenis shell yang berbeda untuk mengatasi berbagai masalah melalui fitur unik. Shell yang dikembangkan bersama Unix sering kali meminjam fitur satu sama lain seiring perkembangannya.
Di bawah ini adalah ikhtisar singkat tentang berbagai jenis cangkang dan fiturnya .
1. Bourne Shell (sh)
Cangkang Bourne adalah shell default pertama pada sistem Unix, dirilis pada tahun 1979. Nama program shell adalah sh , dan lokasi tradisionalnya adalah /bin/sh . Perintah beralih ke $ , sedangkan prompt root adalah # .
Cangkang Bourne dengan cepat menjadi populer karena kompak dan cepat . Namun, sh tidak memiliki beberapa fitur standar, seperti:
- Perluasan logika dan aritmatika.
- Riwayat perintah.
- Fitur lengkap lainnya, seperti pelengkapan otomatis.
Sistem mirip Unix modern memiliki /bin/sh file yang dapat dieksekusi. Program tidak memulai shell Bourne tetapi bertindak sebagai file yang dapat dieksekusi yang menunjuk ke shell sistem default .
Untuk sebagian besar sistem, tautan keras atau simbolis menunjuk ke bash , sementara di Ubuntu dan Debian, tautannya adalah ke dasbor . Dalam kedua kasus tersebut, tautan tersebut sedapat mungkin meniru shell Bourne.
2. C Shell (csh)
Cangkang C (csh ) adalah shell Linux dari akhir 1970-an yang tujuan utamanya adalah untuk meningkatkan penggunaan interaktif dan meniru bahasa C. Karena kernel Linux sebagian besar ditulis dalam C, shell bertujuan untuk memberikan konsistensi gaya di seluruh sistem.
Jalur ke shell C yang dapat dieksekusi adalah /bin/csh . Prompt menggunakan %
untuk pengguna biasa dan #
untuk pengguna root.
Fitur interaktif baru termasuk:
- Riwayat perintah sebelumnya.
- Alias yang ditentukan pengguna untuk program.
- Direktori beranda relatif (~ ).
- Tata bahasa ekspresi bawaan.
Kelemahan utama dari shell C adalah:
- Inkonsistensi sintaksis.
- Tidak ada dukungan untuk pegangan atau fungsi file input/output (stdio) standar.
- Tidak sepenuhnya rekursif, yang membatasi penanganan perintah yang rumit.
Shell C meningkatkan keterbacaan dan kinerja dibandingkan dengan shell Bourne. Fitur interaktif dan inovasi dalam csh mempengaruhi semua shell Unix berikutnya.
3. TENEX C Shell (tcsh)
Cangkang TENEX C (tcsh ) adalah ekstensi dari shell C (csh ) bergabung pada awal 1980-an. Shell kompatibel dengan csh, dengan fitur dan konsep tambahan yang dipinjam dari TENEX OS.
Jalur eksekusi shell TENEX C ada di /bin/tcsh . Perintah pengguna adalah hostname:directory>
sedangkan prompt root adalah hostname:directory#
. Versi awal Mac OS dan shell root default FreeBSD menggunakan tcsh.
Fitur tambahan dari shell meliputi:
- Riwayat perintah lanjutan.
- Pelengkapan otomatis yang dapat diprogram.
- Pencocokan karakter pengganti.
- Kontrol pekerjaan.
- Perintah di mana bawaan.
Karena tcsh adalah perpanjangan dari shell C, banyak kelemahan tetap ada dalam versi diperpanjang.
4. KornShell (ksh)
KornShell (ksh ) adalah shell dan bahasa Unix berdasarkan shell Bourne (sh) yang dikembangkan pada awal 1980-an. Lokasinya di /bin/ksh atau /bin/ksh93 , sedangkan promptnya sama dengan shell Bourne ($
untuk pengguna dan #
untuk root).
Shell mengimplementasikan fitur dari shell C dan shell Bourne, yang bertujuan untuk fokus pada perintah interaktif dan fitur pemrograman. KornShell menambahkan fitur barunya sendiri, seperti:
- Fungsi matematika bawaan dan aritmatika titik-mengambang.
- Pemrograman berorientasi objek.
- Ekstensibilitas perintah bawaan.
- Kompatibel dengan shell Bourne.
Shell lebih cepat daripada shell C dan shell Bourne.
5. Debian Almquist Shell (tanda hubung)
Cangkang Almquist Debian (tanda hubung ) adalah shell Unix yang dikembangkan pada akhir 1990-an dari shell Almquist (ash), yang di-porting ke Debian dan diganti namanya.
Dash terkenal sebagai shell default untuk Ubuntu dan Debian. Shell minimal dan sesuai dengan POSIX, membuatnya nyaman untuk skrip startup OS.
Jalur yang dapat dieksekusi adalah /bin/dash , selain /bin/sh menunjuk ke /bin/dash di Ubuntu dan Debian. Prompt pengguna default dan root sama seperti di shell Bourne.
Fitur tanda hubung meliputi:
- Kecepatan eksekusi hingga 4x lebih cepat dari bash dan shell lainnya.
- Memerlukan ruang disk, CPU, dan RAM minimal dibandingkan dengan alternatif lainnya.
Kelemahan utama adalah bahwa dasbor tidak kompatibel dengan bash. Fitur yang tidak termasuk dalam tanda hubung dikenal sebagai "bashisme." Oleh karena itu, skrip bash memerlukan pengerjaan ulang bashisme tambahan agar berhasil berjalan.
6. Bourne Again Shell (bash)
Cangkang Bourne Again adalah shell Unix dan bahasa perintah yang dibuat sebagai ekstensi dari shell Bourne (sh ) pada tahun 1989. Program shell adalah shell login default untuk banyak distribusi Linux dan versi macOS sebelumnya.
Nama shell disingkat menjadi bash , dan lokasinya adalah /bin/bash . Seperti shell Bourne, bash prompt adalah $
untuk pengguna biasa dan #
untuk root.
Bash memperkenalkan fitur yang tidak ditemukan di shell Bourne, beberapa di antaranya meliputi:
- Perluasan penjepit.
- Perintah selesai.
- Debugging dasar dan penanganan sinyal.
- Riwayat perintah.
- Perintah bersyarat, seperti pernyataan bash if dan bash case.
- Dukungan Heredoc.
Catatan: Beberapa fitur tidak unik untuk Bash, melainkan dipinjam dari shell lain.
Karena bash adalah superset dari Bourne shell, sebagian besar skrip sh dijalankan di bash tanpa perubahan tambahan.
7. Kulit Z (zsh)
Cangkang Z (zsh ) adalah shell Unix yang dibuat sebagai ekstensi untuk shell Bourne pada awal 1990-an. Shell yang kaya fitur meminjam ide dari ksh dan tcsh untuk membuat alternatif yang dibuat dengan baik dan dapat digunakan.
Lokasi eksekusi ada di /bin/zsh . Perintahnya adalah [email protected] location %
untuk pengguna biasa dan hostname#
untuk pengguna root. Shell Z adalah shell default Kali Linux dan Mac OS.
Beberapa fitur baru yang ditambahkan ke zsh meliputi:
- Riwayat bersama di antara semua sesi shell yang berjalan.
- Peningkatan penanganan array dan variabel.
- Koreksi ejaan dan isi otomatis nama perintah.
- Berbagai mode kompatibilitas.
- Ekstensibilitas melalui plugin.
Shell sangat dapat dikonfigurasi dan disesuaikan karena dukungan berbasis komunitas melalui kerangka kerja Oh My Zsh.
8. Cangkang Interaktif Ramah (ikan)
Shell Interaktif Ramah (ikan ) adalah shell Unix yang dirilis pada pertengahan 2000-an dengan fokus pada kegunaan. Shell yang kaya fitur tidak memerlukan konfigurasi tambahan, yang membuatnya ramah pengguna sejak awal.
Jalur eksekusi default adalah /usr/bin/fish . Perintah pengguna adalah [email protected] location>
, sedangkan prompt root adalah [email protected] location#
.
Fitur-fitur dalam shell meliputi:
- Saran lanjutan/penyelesaian tab berdasarkan riwayat direktori saat ini.
- Penyorotan sintaks yang membantu dan pesan kesalahan deskriptif.
- Konfigurasi berbasis web.
- Riwayat perintah dengan opsi penelusuran.
Kelemahan utama ikan adalah kepatuhan non-POSIX. Namun, para pengembang bertujuan untuk meningkatkan desain cacat dari POSIX.
Kesimpulan
Setelah membaca tentang beberapa jenis shell yang berbeda dalam artikel ini, Anda memiliki gambaran yang lebih baik tentang shell Linux yang tersedia. Shell lain ada untuk kasus penggunaan tertentu, dan setiap jenis shell mengatasi masalah yang berbeda.