Cari kekuatan Bash pada Windows

Microsoft Windows mungkin menjadi pemain dominan di desktop, tetapi pasaran perisian sumber terbuka yang meningkat pesat - terutama untuk alat pentadbir dan dev - jelas menyukai Linux. Belum lagi pasaran mudah alih, di mana Android menggunakan varian Linux. Sekiranya anda seorang pembangun pada Windows, kemampuan untuk memanfaatkan kemampuan Linux terus bertambah kuat.

Selama bertahun-tahun, Microsoft telah memperkenalkan pelbagai penyelesaian untuk menggunakan keupayaan Linux pada Windows, seperti PowerShell dengan SSH dan Cygwin dan MSYS. Menjalankan Linux di dalam mesin maya adalah pilihan lain. Tetapi VM menggunakan sejumlah besar sumber dan tidak memberikan pengalaman Linux kelas pertama, kerana anda tidak dapat mengedit fail tempatan atau mendapatkan akses penuh ke pemacu tempatan, misalnya.

Ketika dunia IT beralih ke Linux untuk banyak proyek, Microsoft telah menawarkan penawaran baru untuk memanfaatkan pasar yang sedang berkembang ini. Bash di Windows adalah jawapannya. Di sini kami membimbing anda untuk memasang Bash di Windows dan memberi anda rasa apa yang boleh anda lakukan — dan mengapa anda melakukannya — di baris arahan Linux.

Gambaran keseluruhan Bash pada Windows

Bash on Windows adalah ciri baru yang ditambahkan pada Windows 10. Microsoft telah bekerjasama dengan Canonical, alias pencipta Ubuntu Linux, untuk membangun infrastruktur baru ini dalam Windows yang disebut Windows Subsystem for Linux (WSL). Ini membolehkan pemaju mengakses set lengkap Ubuntu CLI dan utiliti. Dengan pengalaman Linux asli, pembangun dapat menjalankan perintah Linux pada Windows, termasuk akses ke fail dan pemacu tempatan. Oleh kerana Linux disatukan secara asli ke dalam Windows, pembangun mendapat fleksibiliti untuk mengerjakan fail yang sama di Linux dan Windows. Ringkasnya, Bash pada Windows membawa kawasan pengguna Ubuntu ke Windows dikurangi kernel Linux.

Bash vs PowerShell

Microsoft sudah mempunyai shell perintah di PowerShell. Jadi bagaimana Bash pada Windows berbeza? PowerShell adalah kerangka pengurusan konfigurasi Microsoft untuk mengotomatisasi tugas. Ini digunakan untuk mengurus Windows dengan seni bina berorientasikan API. Bash, sebaliknya, kebanyakan bergantung pada fail teks untuk automasi dan pembangunan. Kedua-duanya berbeza dari segi fokus dan reka bentuk. Sebagai contoh, ketika anda menyenaraikan fail dalam direktori menggunakan lsperintah, PowerShell menampilkan output sebagai objek fail, sedangkan Bash pada Windows menampilkan output sebagai satu set rentetan. Syukurlah, untuk pentadbir Windows, anda boleh bekerjasama dengan kedua-dua penyelesaian ini dan dapatkan yang terbaik dari kedua-dua dunia ini.

Satu kata berhati-hati: PowerShell mempunyai alias yang membolehkan anda berfikir bahawa anda menjalankan perintah Bash tradisional sedangkan, sebenarnya, anda menjalankan cmdlet PowerShell. Ini mungkin menyebabkan beberapa orang bertambah. Contohnya, lsadalah alias untuk Get-ChildItemperintah. Begitu juga, pwdadalah alias untuk Get-Locationdan cdalias untuk Set-Location. Untuk senarai semua alias di PowerShell, gunakan Get-Aliascmdlet.

Bash pada Windows memberikan pelbagai faedah untuk pembangun sumber terbuka. Dengan membawa kemampuan Linux asli ke Windows, Bash pada Windows menghilangkan keperluan untuk menjalankan dual boot dengan Ubuntu untuk mengakses kemampuan Linux. Anda tidak perlu mencari Mac OS X, jalankan mesin maya, atau buat penyelesaian menggunakan Cygwin. Ia memberikan set alat yang diperlukan untuk menulis dan membina kod untuk senario dan platform anda. Dengan mengakses sistem fail Windows dari Bash, anda dapat mengerjakan fail yang sama menggunakan Windows atau Linux CLI.

Bagaimana Microsoft port Bash ke Windows?

Pada Persidangan Binaan April 2016, Microsoft mengumumkan Subsystem Windows untuk Linux (WSL) yang mengejutkan banyak pihak. Lahir dari perkongsian dengan Canonical, Bash pada Windows pertama kali dihantar dengan Kemas kini Ulang Tahun Windows 10. Ia terdapat dalam dua bahagian: subsistem teras dan pakej. Subsistem teras sudah menjadi sebahagian daripada Windows 10 Insider Builds dan menawarkan Linux API pada Windows, yang bermaksud anda boleh memuatkan perpustakaan Linux dan boleh dilaksanakan secara asli. Canonical menyediakan pakej perisian sebagai pilihan. Pakej perisian ini menawarkan alat Bash dan CLI yang diperlukan untuk persekitaran Linux.

Memasang Bash

Untuk menjalankan Bash pada Windows, sistem anda mesti menjalankan x64 Windows 10 Anniversary Update Build 14393 atau lebih baru. Anda menemui binaan dengan menaip winverdi kotak arahan.

Sekiranya versi binaan kurang dari 14393, anda tidak dapat memasang Bash.

Untuk mengaktifkan Bash pada binaan yang disokong, anda harus menghidupkan Mod Pembangun terlebih dahulu. Untuk melakukannya, pergi ke Tetapan, klik Untuk Pembangun dan pilih butang radio Mod Pembangun. Setelah ini selesai, anda akan diminta untuk mengesahkan.

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

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

Untuk membuka Bash di Windows, buka command prompt, ketik bash, dan terima perjanjian lesen. Semasa Bash memasang, ia melakukan beberapa perubahan pada sistem anda:

  • Imej mod pengguna Ubuntu dimuat turun.
  • Folder tersembunyi yang terletak di %localappdata%\lxss\ dibuat.
  • Jalan pintas diletakkan di desktop.

Untuk menjalankan Bash, anda sekarang boleh pergi ke command prompt atau menggunakan ikon pintasan desktop.

Selepas pemasangan Bash berjaya, sistem akan meminta anda membuat nama pengguna dan kata laluan Unix. Nama pengguna dan kata laluan ini untuk Bash dan tidak berkaitan dengan persekitaran Windows anda.

Bermula dengan arahan

Setelah berada di Bash, anda mempunyai beberapa arahan yang tersedia untuk menguruskan WSL dan gambar Ubuntu.

  • lxrun: Untuk mengurus contoh WSL
  • lxrun/install: Untuk memulakan prosedur muat turun dan pasang
  • lxrun/uninstall: Untuk menyahpasang gambar Ubuntu
  • lxrun/update: Untuk mengemas kini indeks pakej WSL
  • lxrun/setdefaultuser: Untuk menetapkan Bash lalai pada pengguna Ubuntu

Bash di Windows juga, tentu saja, membolehkan anda menjalankan banyak perintah Bash yang "tradisional". Sebagai contoh:

  • grep: Untuk mencari garis yang sesuai dengan corak
  • sed: Untuk menggantikan rentetan
  • echo: Untuk mengeluarkan nilai ke skrin
  • var=2: Untuk membuat pemboleh ubah untuk $var
  • =!=: Untuk membandingkan coretan kecil teks

Arahan navigasi

Untuk navigasi, anda juga boleh menggunakan perintah Windows DOS cduntuk menavigasi struktur folder.

  • cd temp: Mengubah direktori kerja ke folder bernama temp
  • cd\: Membawa anda ke direktori root. Oleh kerana Ubuntu tidak mempunyai huruf pemacu seperti Windows, direktori root akan menjadi direktori tingkat atas.
  • cd..: Membawa prompt satu tingkat ke atas (iaitu, ke direktori induk)
  • cd~: Membawa anda ke direktori utama

Namun, cddalam PowerShell sedikit berbeza di Bash di Ubuntu. Dalam persekitaran WSL, pemacu Windows anda disimpan dalam /mntfolder, dan nama pemacu digunakan sebagai subfolder. Apabila anda menggunakan cdarahan, anda harus mengubah jalan dengan sewajarnya.

Memaparkan arahan

Untuk memeriksa jalan dan kandungan direktori, berikut adalah beberapa contoh:

  • pwd: Mencetak jalan atau direktori yang anda masuki ke layar
  • ls: Memaparkan fail dalam direktori

Perintah bantu

Sekiranya anda ingin memahami fungsi dan parameter yang berkaitan dengan setiap arahan, manperintah itu dapat digunakan.

Taipkan man dan ia akan memaparkan sinopsis perintah itu dan parameter yang berkaitan. Ini serupa dengan helparahan PowerShell .

Menyunting arahan

Salah satu kelebihan Bash ialah anda menggunakan teks biasa. Ini bermakna anda tidak perlu main-main dengan tetapan pendaftaran atau program. Sama ada anda ingin mengubah urutan boot atau konfigurasi pelayan web, cukup edit fail teks yang sesuai. Untuk melaksanakan tugas penyuntingan dengan cekap, anda memerlukan penyunting teks yang baik. Bash menawarkan penyunting yang hebat untuk memudahkan pekerjaan anda. Beberapa contoh penyunting teks yang terdapat di Bash adalah nanodan vi.

Pengurusan pakej di Bash

Oleh kerana pada dasarnya anda menjalankan Linux, kini anda juga mempunyai arahan pengurusan pakej yang tersedia dalam bentuk apt-get. Beberapa contoh:

  • sudo apt-get update: Menyegarkan senarai repositori untuk diambil
  • sudo apt-get upgrade: Meningkatkan semua perisian ke versi terkini
  • apt-cache search app_name: Mencari repositori untuk aplikasi tertentu
  • sudo apt-get install apt-name: Muat turun dan pasang aplikasi tertentu

sudodisiapkan untuk semua perintah untuk membolehkan anda menjalankan perintah di bawah pengguna yang berbeza, superuser (atau admin) sebagai lalai. Ini serupa dengan teknik "run as administrator" di Windows.

Perintah rangkaian

Untuk memuat turun fail melalui HTTP dari pelayan atau URL, kini anda boleh menggunakan curlperintah. Perintah ini serupa dengan Invoke-WebRequestcmdlet PowerShell .

Begitu juga, anda boleh menyambung ke komputer Linux jauh lain dan menjalankan perintah padanya. Oleh kerana sekarang kita berada di Linux, akhirnya kita mempunyai klien SSH yang sebenar untuk bekerjasama. Daripada menggunakan Cygwin atau beta implementasi OpenSSH terkini untuk Windows, sekarang kita dapat menjalankan SSH secara asli melalui sshperintah:

ssh nama pengguna @ abc.com

Semasa kita berada di topik OpenSSH, kita 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 kini mempunyai banyak ciri lain di hujung jari anda:

  • Alat seperti Git, Python, dan Ruby secara langsung di Windows
  • Penyunting baris arahan seperti emacs dan vi
  • Mengakses sistem fail Windows dari persekitaran Bash
  • Sokongan pengguna Linux
  • Sokongan pautan
  • Pemasangan storan melalui /mnt

Apakah kes penggunaan umum untuk Bash pada Windows?

Pada masa ini, banyak pembangun menggunakan alat Windows dan Linux, yang bermaksud mereka harus melakukan dual-boot atau menjalankan Linux di dalam mesin maya untuk mendapatkan kemampuan CLI. Apabila mereka dapat menjalankan alat ini dalam Windows, maka Windows menjadi desktop utama mereka. Dalam hal ini, mereka tidak perlu memindahkan aplikasi dan perkhidmatan Linux ke sistem Windows. Walaupun beberapa orang dapat menjalankan aplikasi GUI Linux di dalam Windows, banyak orang mendapat CLI Linux yang berguna untuk melakukan tugas-tugas mudah tanpa membeli mesin Linux khusus dari Azure atau berpindah ke perangkat Mac untuk tujuan sederhana. Oleh kerana skrip mudah di Bash, anda dapat mengotomatisasi tugas pengembangan seperti membuat sandaran laman web di Apache.

Sebagai contoh, banyak pembangun menggunakan GitHub untuk tugas kawalan versi. Untuk mengakses GitHub di Windows, anda harus memasang GitHub untuk Windows, kemudian gunakan perintah komit dan tekan untuk melakukan perubahan. Sebagai alternatif, anda harus memuat turun utiliti Git, yang merupakan proses yang membosankan. Dengan Bash di Windows, tugas anda menjadi mudah:

apt-get install git

git komit

tolak git

Di bawah Bash, anda tidak memerlukan alat pihak ketiga untuk bekerja dengan jenis fail Linux tradisional seperti tarball GZIPed (fail tar.gz).

Apakah kelemahan menggunakan Bash pada Windows?

Bash pada Windows masih dalam versi beta dan mengandungi beberapa kelebihan kasar. Microsoft mengatakan Bash pada Windows mungkin tidak dapat melaksanakan semua skrip anda dengan sempurna pada masa ini. Namun, Microsoft sangat memantau prestasi dan maklum balas, dan secara proaktif membuat perubahan pada penyelesaian ini.

Kedua, Bash pada Windows dibuat untuk komuniti pembangunan. Ia tidak dirancang untuk mengurus persekitaran Windows. Walaupun anda boleh melakukan perkara seperti menjalankan daemon pelayan di WSL, ia tidak menawarkan kemampuan penuh mesin maya Linux penuh. Sekiranya anda berhasrat untuk menjalankan proses pelayan di bawah beban kerja pengeluaran di Ubuntu, anda harus mencari alternatif lain untuk menjalankan sistem operasi Linux sepenuhnya.

Akhirnya, Bash pada Windows membawa keupayaan Linux ke Windows. Walau bagaimanapun, alat Linux tidak akan dapat berinteraksi dengan alat dan aplikasi Windows. Ini bermaksud tidak ada keupayaan merentas platform kerana perbezaan seni bina yang wujud.

Bash di Windows masih dalam peringkat baru. Walaupun ada beberapa batasan untuk penyelesaian ini, Microsoft terus berusaha menambahkan lebih banyak kemampuan untuk menghapus perbezaan ini dan menjadikan Windows sebagai platform No. 1 untuk setiap jenis proyek pembangunan. Awasi projek ini dari Microsoft. Dengan pendirian Microsoft yang baru dalam dunia sumber terbuka, sudah pasti menjadikan Bash sebagai warganegara kelas pertama di Windows seiring dengan berjalannya waktu.

Artikel berkaitan

  • Panduan penting untuk PowerShell untuk Windows, Windows Server, dan Exchange
  • 10 skrip keselamatan PowerShell penting untuk pentadbir Windows
  • Semua mengenai penyedia dan modul PowerShell
  • Go pro: Panduan pengguna kuasa untuk PowerShell