Jika sudah familiar dengan emulator terminal di komputer, kalian mungkin pernah mendengar tentang Linux Bash dan Microsoft PowerShell. Kedua hal ini ada di mana-mana dalam kehidupan para profesional yang berspesialisasi dalam salah satu sistem operasi.
Namun jika kalian tidak menjalani kehidupan sehari-hari di depan shell prompt, mungkin belum terlalu memikirkan perbedaan dari keduanya. Dalam hal ini, sekaranglah waktu yang baik untuk belajar dari perbedaan PowerShell vs Bash.
Apa itu PowerShell
Microsoft memperkenalkan Powershell pada tahun 2006 yang bertindak sebagai antarmuka baris perintah yang berjalan di atas kerangka skrip yang serbaguna dan kuat. Ini dirancang untuk membantu administrator Windows membangun aplikasi kecil dengan menggunakan perintah yang secara resmi dikenal sebagai cmdlet untuk mengotomatiskan sebagian besar pekerjaan mereka.
Lebih penting lagi, struktur perintah dan kemampuan skrip mewakili pengerjaan ulang lengkap dari MS-DOS lama yang awalnya digunakan untuk membangun Windows. Ini memiliki sintaksis yang lebih seragam dan cara menyajikan informasi yang mudah untuk dibiasakan dan dikodekan.
Ini tidak dimaksudkan untuk menggantikan baris perintah Windows yang biasa dijalankan kebanyakan orang, melainkan melengkapinya dengan fungsi otomatisasi dan konfigurasinya sendiri. Misalnya jika mencoba mengelola layanan Microsoft Azure di cloud, kini dapat melakukannya dengan perintah Connect-AzAccount
tanpa menggunakan desktop jarak jauh.
Seperti Bash, PowerShell sepenuhnya dapat diaudit dan memungkinkan untuk digunakan di lingkungan yang sangat sensitif di mana sangat penting untuk mengetahui segala sesuatu yang terjadi di dalam sistem.
Apa itu Bash
Bash adalah nenek moyang dari tahun 1989 yang tetap relevan dalam lingkungan Linux terlepas dari semua shell yang lebih bagus yang mencoba untuk melampauinya. Sama seperti PowerShell, Bash menyediakan kerangka kerja untuk menulis skrip guna mengotomatisasi administrasi dengan lebih mudah. Karena struktur perintah dan sintaksisnya ada di mana-mana di antara berbagai distribusi Linux, BSD, dan bahkan macOS, banyak pengembang sudah terbiasa menggunakan Bash sebagai pilihan mereka untuk mengatur proyek mereka.
Meskipun Bash berisi rangkaian operasi dasar yang memungkinkan kita menulis skrip dan menyampaikan informasi melalui terminal, hampir setiap perintah yang diketik ke terminal dengan shell ini adalah program terpisah. Misalnya Bash tidak menyertakan perintah ls
(daftar file) atau cat
(menggabungkan atau menampilkan keluaran file), melainkan mencari file yang dapat dieksekusi dengan nama yang sama dalam jalur yang ditentukan.
Perbedaan Powershell vs Bash
PowerShell dan Bash mungkin terlihat serupa saat pertama kali mempelajari cara menggunakannya, tetapi pada dasarnya keduanya sangat berbeda dengan filosofi desain yang terkadang berbenturan. Berikut adalah beberapa hal yang sangat penting yang membedakannya:
1. Kontrol Akses Pengguna
Jika ingin melakukan sesuatu yang administratif dengan Bash, yang harus dilakukan adalah mengawali perintah dengan sudo
. Setelah perintah selesai, akan segera dibawa kembali ke shell pengguna. Mengeksekusi perintah root menyisakan lebih sedikit ruang untuk kesalahan dan memaksa meninjau kembali apa yang telah dilakukan.
PowerShell di sisi lain hanya dapat berjalan dalam mode administratif atau pengguna. Jika ingin beralih di antara keduanya, harus membuka sesi baru. Untuk membuka PowerShell dalam mode administratif, harus mengklik kanan ikon program dan mengklik Run as administrator. Alternatifnya dalam satu sesi terminal, cukup mengetik Start-Process powershell -verb runAs
dan sesi kedua akan dibuka dengan hak administratif.
2. Keluaran
Saat mengetikkan perintah di Bash, pada dasarnya menjalankan program terpisah dan program yang dapat dieksekusi tersebut akan memberikan hasil yang diinginkan. Bagaimana output diformat tergantung pada bagaimana pengembang program tersebut menginginkannya diformat.
Ada banyak fleksibilitas di sini, namun kelemahannya adalah kurangnya keseragaman. Output perintah di PowerShell biasanya diformat berdasarkan satu standar terpadu. Teks yang dilihat di layar adalah versi data yang dapat dibaca manusia dan dapat diinterpretasikan oleh program lain.
Hal ini memungkinkan orang yang menulis skrip dan aplikasi cukup menggunakan fitur dan perintah PowerShell sendiri untuk mengambil semua informasi yang mereka perlukan.
3. Sintaks
Bash menggunakan sintaks yang sangat unik, misalnya if [condition]; then code here; fi
yang biasanya tidak terlihat dalam bahasa skrip lain. Ini tidak terlalu sulit untuk digunakan, tetapi mungkin agak tidak biasa bagi seseorang yang baru mulai belajar menulis skrip.
Sedangkan untuk perintah pengguna, tidak ada keseragaman yang jelas. Setiap program dilengkapi dengan sintaks perintahnya sendiri. Kalian harus tahu cara menggunakannya sebelum dapat mengintegrasikannya ke dalam skrip bash.
Sintaks skrip PowerShell mirip dengan aplikasi .NET lainnya, misalnya if (condition) { …code here… })
. Bagi orang-orang yang terbiasa mengembangkan ekosistem Microsoft sendiri, hampir tidak ada kurva pembelajaran yang terlibat.
Perintah pengguna mengikuti struktur yang kaku yaitu kata kerja, diikuti tanda hubung, diikuti kata benda. Misalnya Get-ChildItem
akan mencantumkan semua file di direktori saat ini. Perintah yang tidak spesifik untuk PowerShell masih bisa mengikuti struktur yang mirip dengan Bash. Jika menggunakannya di Linux, masih dapat menjalankan setiap perintah Linux.
4. Fleksibilitas
Jika menguasai Bash, maka akan tahu cara mengoperasikan lingkungan terminal distro Linux yang tak terhitung jumlahnya dari ekosistem BSD dan bahkan macOS. Sejauh ini, ini adalah raja universalitas. Meskipun macOS beralih ke zsh pada tahun 2019, macOS masih memiliki semangat Bash sebagai intinya.
PowerShell mampu berjalan di hampir semua sistem operasi, namun terutama dimaksudkan untuk berjalan bersama produk Microsoft sendiri. Jika menggunakannya, kemungkinan besar bisa melakukannya di Windows.
Jika yang dipelajari hanyalah konvensi khusus PowerShell, pada dasarnya akan terjebak dengan produk Microsoft. Namun jika dilihat dari sisi negatifnya, ini adalah salah satu hal yang memiliki pangsa pasar desktop global yang sangat besar.
Pertanyaan yang Sering Diajukan
Bisakah menjalankan bash di dalam Windows dan PowerShell di dalam Linux?
Untuk menjalankan bash di Windows, cukup instal Subsistem Windows untuk Linux dengan menjalankan command prompt sebagai administrator dan mengetik wsl --install
. Kalian akan memiliki akses instan ke perintah bash setelah instalasi selesai.
PowerShell di dalam Linux sedikit lebih rumit dan bergantung pada distro. Microsoft menyertakan instruksi di situs webnya untuk menginstal PowerShell di distro paling populer. Kalian mungkin memperhatikan bahwa Arch Linux tidak ada dalam daftar itu, tetapi ia ada sebagai powershell
paket di AUR.
Apakah memerlukan Bash di Windows?
Belum tentu, tapi ini akan banyak membantu jika berencana menggunakan beberapa hal yang dirancang lebih untuk Linux (Python, Git, dll.). Memilikinya tidak ada salahnya. Menggunakan Subsistem Windows untuk Linux untuk menginstal Bash juga memungkinkan kita memiliki shell Linux lengkap untuk bereksperimen, yang merupakan cara terbaik untuk memperkenalkan diri ke lingkungan operasi jika belum terbiasa.
Apakah perintah Windows DOS berfungsi di PowerShell?
PowerShell bukan pengganti command prompt Windows asli. Sebaliknya, ini adalah lapisan yang bekerja di atasnya untuk menyediakan fungsionalitas baru.