Skrip Zsh vs. Bash. Apa bedanya?

Skrip Zsh vs. Bash. Apa bedanya?
Pembaca seperti Anda membantu mendukung MUO. Saat Anda melakukan pembelian menggunakan tautan di situs kami, kami dapat memperoleh komisi afiliasi. Baca selengkapnya.

Ketika berbicara tentang skrip shell pada sistem operasi mirip Unix, dua shell mendominasi: Bash (Bourne Again Shell) dan Zsh (Z Shell). Jika Anda seorang pemrogram atau administrator sistem, pilihan di antara keduanya akan berdampak signifikan terhadap efisiensi dan produktivitas Anda.





Video MUO hari ini GULIR UNTUK MELANJUTKAN ISI

Memahami perbedaan dan persamaan antara kedua shell ini akan membantu Anda mengoptimalkan alur kerja baris perintah Anda. Mengetahui nuansa setiap cangkang akan membantu Anda membuat keputusan yang tepat.





Apa itu Bash dan Zsh?

Bash populer di sistem Linux dan macOS. Ini adalah alat canggih yang dapat Anda gunakan untuk berinteraksi dengan sistem operasi dan menjalankan perintah. Anda juga bisa gunakan Bash untuk skrip shell , yang mengotomatiskan tugas dengan menulis skrip yang berisi lebih dari satu perintah.





Zsh (Z shell) adalah versi lanjutan dari Bash yang memiliki lebih banyak fitur. Ini adalah shell default di macOS. Ini juga menjadi semakin populer di sistem Linux.

Cara Beralih Dari Bash ke Zsh

Jika Anda menggunakan sistem Linux dan ingin beralih ke Zsh, mulailah dengan menggunakan manajer paket Anda untuk menginstalnya . Misalnya di Debian atau Ubuntu, gunakan perintah berikut:



dapatkah Anda menghubungkan headphone nirkabel ke xbox one?
 sudo apt install zsh

Setelah menginstalnya di sistem Anda, beralihlah ke sana dengan menjalankan perintah berikut:

 chsh -s $(which zsh)

Jika Anda menggunakan macOS, Zsh sudah terinstal. Untuk beralih ke sana, jalankan perintah berikut:





 chsh -s /bin/zsh

Untuk beralih kembali ke Bash, ganti Zsh dengan Bash pada perintah di atas.

Untuk memeriksa shell mana yang Anda gunakan, jalankan perintah berikut:





 echo $SHELL

Ini akan membantu Anda mengonfirmasi bahwa Anda menggunakan shell yang Anda inginkan.

Perbedaan Antara Zsh dan Bash

Ada beberapa perbedaan antara Zsh dan Bash. Mempertimbangkan perbedaan-perbedaan ini akan membantu Anda memutuskan shell mana yang paling cocok untuk Anda.

1. Kustomisasi Cepat

Zsh menawarkan cara yang lebih mudah untuk menyesuaikan perintah Anda menggunakan % urutan pelarian berbasis. Hal ini memungkinkan petunjuk dinamis dengan warna dan informasi. Untuk menyesuaikan prompt shell Anda, tentukan PS1 (Perintah Utama).

 PS1="%F{green}%n@%m %F{blue}%~ %f$ " 

Prompt khusus di atas menampilkan nama pengguna, nama host, dan direktori saat ini dalam berbagai warna:

  Zsh kustomisasi cepat di terminal

ada banyak cara lain untuk menyesuaikan prompt Zsh , memungkinkan Anda menyetel indikator admin, menyertakan tanggal dan waktu, dan menyimpan perintah baru.

Bash menggunakan pendekatan yang sedikit berbeda dalam hal penyesuaian cepat. Ia menggunakan kode escape untuk menentukan perubahan warna dan format pada prompt. Untuk mencapai penyesuaian yang sama seperti Zsh di atas, Anda dapat menggunakan perintah khusus berikut.

 PS1="\[3[32m\]\u@\h \[3[34m\]\w \[3[0m\]$ " 

Menggunakan \[3[0m\] sangat penting karena memastikan bahwa perubahan warna tidak mempengaruhi teks setelah perintah.

2. Dukungan untuk Array Asosiatif

Zsh secara asli mendukung array asosiatif. Array ini menyediakan cara mudah untuk mengaitkan data yang membuatnya mudah untuk mengatur dan mengambil informasi. Menggunakan menyatakan -A perintah untuk mendeklarasikan array asosiatif secara eksplisit:

 # Declare an associative array in Zsh  
declare -A my_assoc_array

Anda kemudian dapat menetapkan nilai ke array asosiatif:

 my_assoc_array=(key1 value1 key2 value2) 

Dan, terakhir, akses nilai menggunakan kuncinya:

 echo $my_assoc_array[key1] # Outputs: value1

Bash telah menyertakan dukungan asli untuk array asosiatif sejak versi 4.0. Anda mendeklarasikan dan menetapkan nilai dengan cara yang sama seperti yang Anda lakukan di Zsh. Namun saat mengakses nilai array, Anda perlu memasukkan kunci ke dalam tanda kurung kurawal:

 echo "${my_assoc_array[key1]}" 

Perbedaan utamanya adalah dukungan Zsh untuk array asosiatif lebih kaya fitur dan canggih daripada Bash. Zsh memungkinkan array asosiatif memiliki kunci dari berbagai tipe data, bukan hanya string. Bash hanya mendukung kunci string.

Di versi Bash sebelumnya, Anda perlu mencari cara untuk mengatasinya atau memiliki alat eksternal untuk menggunakan array asosiatif.

3. Pola Globbing yang Diperluas

Pola globbing yang diperluas memberikan cara yang ampuh dan fleksibel untuk memilih dan memanipulasi file dan direktori berdasarkan berbagai kriteria. Mereka berguna ketika Anda bekerja dengan struktur file yang kompleks atau ketika Anda memerlukan kontrol yang tepat atas pilihan file.

Dalam skrip Zsh, Anda dapat mengaktifkan pola ini menggunakan setop memerintah. Misalnya untuk mencocokkan semua .txt file di direktori saat ini:

menggabungkan beberapa lembar excel menjadi satu lembar
 setopt extended_glob 
txt_files=(*.txt)

Untuk mencocokkan semua file kecuali yang berekstensi .log:

 setopt extended_glob 
non_log_files=^(*.log)

Di Bash, Anda harus mengaktifkannya menggunakan toko perintah dengan extglob pilihan. Misalnya untuk mencocokkan semua .txt file di direktori saat ini:

 shopt -s extglob 
txt_files=(*.txt)

Untuk mencocokkan semua file kecuali yang memiliki .catatan perpanjangan:

 shopt -s extglob 
non_log_files=!(*.log)

Perbedaan utama antara Zsh dan Bash dalam hal pola globbing adalah perintah yang digunakan untuk mengaktifkannya. Namun, perhatikan bahwa beberapa operator berbeda antara kedua shell.

4. Ekspansi Parameter Tingkat Lanjut

Zsh mendukung perluasan parameter secara tidak langsung. Hal ini memungkinkan Anda untuk memperluas nilai variabel yang namanya disimpan di variabel lain. Untuk mencapai hal ini, Anda perlu mengawali nama variabel dengan tanda seru ! .

 name="foo" 
result="${!name}"
echo "$result"

Bash di sisi lain tidak mengizinkan ekspansi tidak langsung secara asli. Solusi untuk ini adalah dengan menggunakan evaluasi perintah bawaan atau ${!adalah} sintaks untuk referensi variabel tidak langsung.

 name="world" 
var="name"
echo ${!var} # This will output: world

Persamaan Antara Bash dan Zsh

Meskipun ada perbedaan antara Bash dan Zsh, keduanya juga memiliki beberapa kesamaan.

1. Sintaks Baris Perintah

Bash dan Zsh berbagi sintaks baris perintah yang serupa. Ini bagus karena ini berarti sebagian besar perintah dan skrip yang Anda tulis akan berfungsi di salah satu shell, tanpa modifikasi. Zsh dibangun di atas Bash, sehingga mencakup semua perintah dan fitur dasar yang sama.

Namun, ada sedikit perbedaan dalam sintaksis yang perlu Anda identifikasi dan sesuaikan.

2. Konsistensi Pergantian Perintah

Substitusi perintah adalah proses menyematkan output dari satu perintah ke perintah lainnya. Itu konsisten antara kedua cangkang.

 result=$(ls) 

Di Bash dan Zsh, Anda dapat menggunakan $(perintah) sintaks untuk mengganti output dari suatu perintah ke dalam variabel. Hal ini memungkinkan portabilitas skrip yang mudah antara kedua shell.

3. Opsi Debugging Skrip

Baik Bash dan Zsh menggunakan -X tandai untuk debugging skrip. Saat Anda menjalankan skrip dengan tanda ini, skrip tersebut akan menampilkan setiap perintah sebelum dijalankan. Ini membantu Anda mengidentifikasi masalah dalam skrip Anda.

 # Debugging a script in both Bash and Zsh 
#!/bin/bash -x

echo "Debugging Bash script"

Dalam skrip Bash ini, file -X bendera memungkinkan debugging. Anda dapat menggunakan pendekatan serupa di Zsh; ganti saja pesta dengan zsh .

Pertimbangan Memilih Antara Zsh dan Bash

  • Kompatibilitas dan Portabilitas : Bash adalah shell default pada banyak sistem berbasis Unix. Ini menjadikannya pilihan yang lebih aman untuk pembuatan skrip lintas platform. Jika Anda ingin skrip Anda dijalankan di berbagai sistem tanpa modifikasi, Bash adalah pilihan yang lebih baik.
  • Kompleksitas Skrip dan Fitur Lanjutan : Zsh menyediakan fitur-fitur canggih seperti array asosiatif, pola globbing yang diperluas, dan perluasan parameter tingkat lanjut. Ini menyederhanakan tugas pembuatan skrip yang rumit. Jika skrip Anda memerlukan manipulasi string atau struktur data tingkat lanjut, Zsh adalah pilihan yang lebih baik.
  • Ekosistem Komunitas dan Plugin : Bash dan Zsh memiliki komunitas aktif, namun Zsh memiliki komunitas yang lebih kuat dan ekosistem plugin dan tema yang luas. Jika Anda menghargai penyesuaian, komunitas Zsh yang dinamis dan dukungan plugin dapat menjadi keuntungan yang signifikan.
  • Kemudahan Belajar : Jika Anda baru mengenal skrip shell, Bash adalah titik awal yang lebih mudah diakses. Ini memiliki dokumentasi dan sumber daya ekstensif yang tersedia untuk pemula. Hal ini mempermudah mempelajari dasar-dasar skrip shell.

Mengotomatiskan Tugas Menggunakan Skrip Shell

Mengetahui cara mengotomatiskan tugas menggunakan skrip shell sangatlah penting. Anda dapat mengotomatiskan tugas yang berulang dan menghemat banyak waktu.

Anda juga dapat menggunakan skrip ini untuk mengelola akun pengguna, memantau sumber daya sistem, membuat cadangan data, dan melakukan pemeliharaan rutin. Jika ditulis dengan hati-hati, hal ini juga dapat mengurangi potensi kesalahan manusia.

cara menghapus skype untuk bisnis