Temukan kehebatan Bash di Windows

Microsoft Windows mungkin merupakan pemain dominan di desktop, tetapi pasar perangkat lunak sumber terbuka yang meningkat pesat — terutama untuk alat admin dan pengembang — jelas mendukung Linux. Belum lagi pasar ponsel, di mana Android menggunakan varian Linux. Jika Anda seorang pengembang di Windows, pukulan drum untuk memahami kemampuan Linux terus semakin keras.

Selama bertahun-tahun, Microsoft telah memperkenalkan berbagai solusi untuk menggunakan kapabilitas Linux di Windows, seperti PowerShell dengan SSH dan Cygwin dan MSYS. Menjalankan Linux di dalam mesin virtual adalah opsi lain. Tetapi VM menggunakan sumber daya dalam jumlah besar dan tidak memberikan pengalaman Linux kelas satu, karena Anda tidak dapat mengedit file lokal atau mendapatkan akses penuh ke drive lokal, misalnya.

Saat dunia IT beralih ke Linux untuk banyak proyek, Microsoft telah datang dengan penawaran baru untuk memasuki pasar yang berkembang ini. Bash di Windows adalah jawabannya. Di sini kami memandu Anda dalam menginstal Bash di Windows dan memberi Anda gambaran tentang apa yang dapat Anda lakukan — dan mengapa Anda melakukannya — di baris perintah Linux.

Gambaran umum tentang Bash di Windows

Bash on Windows adalah fitur baru yang ditambahkan ke Windows 10. Microsoft telah bekerja sama dengan Canonical, alias pembuat Ubuntu Linux, untuk membangun infrastruktur baru ini di dalam Windows yang disebut Windows Subsystem for Linux (WSL). Ini memungkinkan pengembang untuk mengakses satu set lengkap Ubuntu CLI dan utilitas. Dengan pengalaman Linux asli, pengembang dapat menjalankan perintah Linux di Windows, termasuk akses ke file dan drive lokal. Karena Linux secara native terintegrasi ke dalam Windows, pengembang mendapatkan fleksibilitas untuk mengerjakan file yang sama di Linux dan Windows. Sederhananya, Bash di Windows menghadirkan userland Ubuntu ke Windows tanpa kernel Linux.

Bash vs. PowerShell

Microsoft sudah memiliki shell perintah di PowerShell. Jadi, apa perbedaan Bash di Windows? PowerShell adalah kerangka kerja manajemen konfigurasi Microsoft untuk mengotomatiskan tugas. Ini digunakan untuk mengelola Windows dengan arsitektur berorientasi API. Bash, di sisi lain, sebagian besar bergantung pada file teks untuk otomatisasi dan pengembangan. Keduanya berbeda dalam fokus dan desain. Misalnya, saat Anda membuat daftar file dalam direktori menggunakan lsperintah, PowerShell menampilkan output sebagai objek file, sedangkan Bash di Windows menampilkan output sebagai sekumpulan string. Untungnya, untuk admin Windows, Anda dapat bekerja dengan kedua solusi secara berdampingan dan mendapatkan yang terbaik dari kedua dunia.

Satu kata peringatan: PowerShell memiliki alias yang memungkinkan Anda mengira sedang menjalankan perintah Bash tradisional, padahal sebenarnya Anda menjalankan cmdlet PowerShell. Ini mungkin membuat beberapa orang tersandung. Misalnya, lsadalah alias untuk Get-ChildItemperintah tersebut. Demikian pula, pwdadalah alias untuk Get-Locationdan cdmerupakan alias untuk Set-Location. Untuk daftar semua alias di PowerShell, gunakan Get-Aliascmdlet.

Bash di Windows memberikan banyak manfaat bagi pengembang open source. Dengan menghadirkan kemampuan Linux asli ke Windows, Bash di Windows menghilangkan kebutuhan menjalankan dual boot dengan Ubuntu untuk mengakses kemampuan Linux. Anda tidak perlu menggunakan Mac OS X, menjalankan mesin virtual, atau membuat solusi menggunakan Cygwin. Ini memberikan perangkat yang diperlukan untuk menulis dan membangun kode untuk skenario dan platform Anda. Dengan mengakses sistem file Windows dari Bash, Anda dapat mengerjakan file yang sama menggunakan Windows atau Linux CLI.

Bagaimana cara Microsoft mem-port Bash ke Windows?

Pada Build Conference April 2016, Microsoft mengumumkan Subsistem Windows untuk Linux (WSL) yang mengejutkan banyak orang. Lahir dari kemitraan dengan Canonical, Bash di Windows pertama kali dikirimkan dengan Pembaruan Ulang Tahun Windows 10. Itu datang dalam dua bagian: subsistem inti dan paket. Subsistem inti sudah menjadi bagian dari Windows 10 Insider Builds dan menawarkan API Linux di Windows, yang berarti Anda dapat memuat pustaka dan file executable Linux secara native. Canonical menyediakan paket perangkat lunak sebagai opsi. Paket perangkat lunak ini menawarkan alat Bash dan CLI yang diperlukan untuk lingkungan Linux.

Menginstal Bash

Untuk menjalankan Bash di Windows, sistem Anda harus menjalankan x64 Pembaruan Ulang Tahun Windows 10 Build 14393 atau yang lebih baru. Anda menemukan build dengan mengetik winverdi kotak perintah.

Jika versi build kurang dari 14393, Anda tidak akan dapat menginstal Bash.

Untuk mengaktifkan Bash pada build yang didukung, Anda harus mengaktifkan Mode Pengembang terlebih dahulu. Untuk melakukannya, buka Pengaturan, klik Untuk Pengembang dan pilih tombol radio Mode Pengembang. Setelah ini selesai, Anda akan diminta untuk mengonfirmasi.

Setelah ini selesai, fitur Subsistem Windows untuk Linux harus diaktifkan. Cara termudah untuk melakukannya adalah melalui cmdlet PowerShell:

Aktifkan-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Untuk membuka Bash di Windows, buka prompt perintah, ketik bash, dan terima perjanjian lisensi. Saat Bash menginstal, ia melakukan beberapa perubahan pada sistem Anda:

  • Gambar mode pengguna Ubuntu diunduh.
  • Folder tersembunyi yang terletak di %localappdata%\lxss\ dibuat.
  • Pintasan ditempatkan di desktop.

Untuk menjalankan Bash, Anda sekarang dapat membuka command prompt atau menggunakan ikon pintasan desktop.

Setelah instalasi Bash berhasil, sistem akan meminta Anda untuk membuat nama pengguna dan kata sandi Unix. Nama pengguna dan kata sandi ini untuk Bash dan tidak berhubungan dengan lingkungan Windows Anda.

Memulai dengan perintah

Setelah berada di Bash, Anda memiliki beberapa perintah yang tersedia untuk mengelola WSL dan image Ubuntu.

  • lxrun: Untuk mengelola instance WSL
  • lxrun/install: Untuk memulai prosedur unduh dan instal
  • lxrun/uninstall: Untuk menghapus penginstalan image Ubuntu
  • lxrun/update: Untuk memperbarui indeks paket WSL
  • lxrun/setdefaultuser: Untuk mengatur Bash default pada pengguna Ubuntu

Bash di Windows juga, tentu saja, memungkinkan Anda menjalankan banyak perintah Bash "tradisional". Sebagai contoh:

  • grep: Untuk menemukan garis yang cocok dengan pola
  • sed: Untuk mengganti string
  • echo: Untuk menampilkan nilai ke layar
  • var=2: Untuk membuat variabel untuk $var
  • =!=: Untuk membandingkan potongan kecil teks

Perintah navigasi

Untuk navigasi, Anda juga dapat menggunakan perintah Windows DOS cduntuk menavigasi struktur folder.

  • cd temp: Mengubah direktori kerja ke folder bernama temp
  • cd\: Membawa Anda ke direktori root. Karena Ubuntu tidak memiliki huruf drive seperti Windows, direktori root adalah direktori level teratas.
  • cd..: Membawa prompt satu tingkat ke atas (yaitu, ke direktori induk)
  • cd~: Membawa Anda ke direktori home

Namun, cddi PowerShell sedikit berbeda di Bash di Ubuntu. Di lingkungan WSL, drive Windows Anda disimpan di /mntfolder, dan nama drive digunakan sebagai subfolder. Saat Anda menggunakan cdperintah, Anda harus mengubah jalur yang sesuai.

Perintah tampilan

Untuk memeriksa jalur dan konten direktori, berikut adalah beberapa contohnya:

  • pwd: Mencetak jalur atau direktori Anda ke layar
  • ls: Menampilkan file dalam direktori

Perintah bantuan

Jika Anda ingin memahami fungsionalitas dan parameter yang terkait dengan setiap perintah, manperintah tersebut dapat digunakan.

Ketik man dan itu akan menampilkan sinopsis dari apa perintah itu dan parameter terkait. Ini mirip dengan helpperintah PowerShell .

Mengedit perintah

Salah satu keuntungan Bash adalah Anda bekerja dengan teks biasa. Ini berarti Anda tidak perlu repot dengan registri atau pengaturan program. Apakah Anda ingin mengubah urutan boot atau konfigurasi server web, cukup edit file teks yang sesuai. Untuk melakukan tugas pengeditan secara efisien, Anda memerlukan editor teks yang baik. Bash menawarkan editor yang handal untuk memudahkan pekerjaan Anda. Beberapa contoh bagus dari editor teks yang tersedia dalam Bash adalah nanodan vi.

Manajemen paket di Bash

Karena Anda pada dasarnya menjalankan Linux, Anda sekarang juga memiliki perintah manajemen paket yang tersedia dalam bentuk apt-get. Beberapa contoh:

  • sudo apt-get update: Menyegarkan daftar repositori yang akan ditarik
  • sudo apt-get upgrade: Meningkatkan semua perangkat lunak ke versi terbaru
  • apt-cache search app_name: Mencari repositori untuk aplikasi tertentu
  • sudo apt-get install apt-name: Mengunduh dan memasang aplikasi tertentu

sudoditambahkan ke semua perintah untuk memungkinkan Anda menjalankan perintah di bawah pengguna yang berbeda, superuser (atau admin) sebagai default. Ini mirip dengan teknik "run as administrator" di Windows.

Perintah jaringan

Untuk mengunduh file melalui HTTP dari server atau URL, Anda sekarang dapat menggunakan curlperintah. Perintah ini mirip dengan Invoke-WebRequestcmdlet PowerShell .

Demikian pula, Anda dapat menyambung ke komputer Linux jarak jauh lainnya dan menjalankan perintah di atasnya. Karena kita sekarang di Linux, akhirnya kita memiliki klien SSH yang sebenarnya untuk digunakan. Daripada menggunakan Cygwin atau versi beta saat ini dari implementasi OpenSSH untuk Windows, sekarang kita dapat menjalankan SSH secara native melalui sshperintah:

ssh namapengguna @ abc.com

Sementara kami berada di topik OpenSSH, kami juga sekarang memiliki kemampuan asli untuk menyalin file dengan aman melalui SCP menggunakan scpperintah bawaan juga:

scp localfile [email protected]: remotedirectory / remotefile

Dengan Bash di Windows, Anda sekarang memiliki banyak fitur lain di ujung jari Anda:

  • Alat seperti Git, Python, dan Ruby langsung di Windows
  • Editor baris perintah seperti emacs dan vi
  • Mengakses sistem file Windows dari lingkungan Bash
  • Dukungan pengguna Linux
  • Dukungan Symlink
  • Pemasangan penyimpanan melalui /mnt

Apa kasus penggunaan umum untuk Bash di Windows?

Saat ini, banyak pengembang menggunakan alat Windows dan Linux, yang berarti mereka harus melakukan dual-boot atau menjalankan Linux di dalam mesin virtual untuk mendapatkan kemampuan CLI. Ketika mereka dapat menjalankan alat-alat ini di dalam Windows, maka Windows menjadi desktop utama mereka. Dalam hal ini, mereka tidak perlu mem-porting aplikasi dan layanan Linux ke sistem Windows. Sementara beberapa orang telah dapat menjalankan aplikasi GUI Linux di dalam Windows, banyak orang mendapatkan CLI Linux yang berguna untuk melakukan tugas-tugas sederhana tanpa membeli mesin Linux khusus dari Azure atau pindah ke perangkat Mac untuk tujuan sederhana. Karena pembuatan skrip mudah dilakukan di Bash, Anda dapat mengotomatiskan tugas pengembangan seperti mencadangkan situs web di Apache.

Misalnya, banyak developer menggunakan GitHub untuk tugas kontrol versi. Untuk mengakses GitHub di Windows, Anda harus menginstal GitHub untuk Windows, kemudian menggunakan perintah commit dan push untuk melakukan perubahan. Sebagai alternatif, Anda harus mengunduh utilitas Git, yang merupakan proses yang membosankan. Dengan Bash di Windows, pekerjaan Anda menjadi sederhana:

apt-get install git

git commit

git push

Selain itu, di bawah Bash, Anda tidak memerlukan alat pihak ketiga untuk bekerja dengan jenis file Linux tradisional seperti GZIPed tarballs (file tar.gz).

Apa kekurangan menggunakan Bash di Windows?

Bash di Windows masih dalam versi beta dan mengandung beberapa sisi kasar. Microsoft mengatakan Bash di Windows mungkin tidak menjalankan semua skrip Anda dengan sempurna saat ini. Namun, Microsoft dengan cermat memantau kinerja dan umpan balik, dan secara proaktif membuat perubahan pada solusi ini.

Kedua, Bash on Windows diciptakan untuk komunitas pengembangan. Itu tidak dirancang untuk mengelola lingkungan Windows. Meskipun Anda dapat melakukan hal-hal seperti menjalankan daemon server di WSL, ini tidak menawarkan kemampuan penuh dari mesin virtual Linux lengkap. Jika Anda ingin menjalankan proses server di bawah beban kerja produksi di Ubuntu, Anda harus melihat alternatif lain untuk menjalankan sistem operasi Linux lengkap.

Terakhir, Bash di Windows menghadirkan kemampuan Linux ke Windows. Namun, alat Linux tidak akan dapat berinteraksi dengan alat dan aplikasi Windows. Ini berarti tidak ada kemampuan lintas platform karena perbedaan arsitektur yang melekat.

Bash di Windows masih dalam tahap awal. Meskipun ada beberapa batasan untuk solusi ini, Microsoft bekerja keras untuk menambahkan lebih banyak kemampuan untuk menghapus perbedaan ini dan menjadikan Windows platform No. 1 untuk setiap jenis proyek pengembangan. Pantau proyek ini dari Microsoft. Dengan sikap baru Microsoft di dunia open source, ini pasti akan menjadikan Bash warga kelas satu di Windows seiring berjalannya waktu.

Artikel terkait

  • Panduan penting untuk PowerShell untuk Windows, Windows Server, dan Exchange
  • 10 skrip keamanan PowerShell penting untuk administrator Windows
  • Semua tentang penyedia dan modul PowerShell
  • Go pro: Panduan pengguna daya untuk PowerShell