Dengan pembebasan Kemas Kini Ulang Tahun untuk Windows 10, Microsoft mengumumkan Subsistem Windows untuk Linux (WSL) - cara untuk menjalankan Bash asli asli pada Windows 10, yang menyokong pelaksanaan binari Linux asli. Ia melakukan ini dengan menjalankan imej pengguna Ubuntu Linux di atas Windows.
Ini bermakna anda boleh menjalankan alat baris arahan Linux seperti ls
, grep
, top
dan chmod
. Oleh kerana anda menjalankan Ubuntu tulen di bawah, lsb-release -a
akan memberikan output berikut:
Anda boleh menggunakan apt-get
dan rakan-rakan untuk memasang utiliti seperti vim
, git
, screen
, tmux
, atau bahkan bermain permainan nethack:
Walau bagaimanapun, perlu diingat bahawa sistem ini dalam beta dan tidak dimaksudkan untuk beban kerja pelayan. Ia hanya merupakan alat untuk pemaju (dan peminat) untuk menguji aplikasi Linux mereka yang sentral pada Windows tanpa pengubahsuaian. Ini juga bukan merupakan alat yang bertujuan untuk menjalankan aplikasi atau persekitaran GUI Linux seperti Gnome atau KDE, walaupun itu juga mungkin dengan hacks tertentu. Setelah membersihkannya, mari kita lihat bagaimana shell Linux berfungsi dalam Windows 10.
Subsistem Windows untuk Linux (WSL)
Menurut dokumentasi rasmi, "WSL adalah kumpulan komponen yang membolehkan binary Linux ELF64 asli dijalankan pada Windows". Ia melakukannya dengan melaksanakan antara muka kernel Linux maya di atas kernel Windows NT. Iaitu, ia tidak menggunakan sebarang kod dari kernel Linux sebenar - setiap kali aplikasi membuat panggilan sistem khusus Linux (syscall), WSL diterjemahkan ke syscall Windows bersamaan, yang kemudiannya mengangkat semua berat.
Perbezaan dari Mesin Maya dan Cygwin
Sekarang mari kita lihat bagaimana Linux Bash Shell pada Windows 10 berbeza berbanding dengan mesin maya dan Cygwin.
Mesin Maya
Anda mungkin berfikir, "Nah, mengapa menggunakannya? Mengapa tidak menggunakan Linux VM di Windows? "
Berbanding dengan mesin maya, WSL menggunakan sumber yang lebih sedikit . Ia juga membolehkan anda bekerja dengan fail anda seperti yang anda lakukan di Linux, sambil memberi anda akses lengkap ke sistem fail Windows yang mendasar tanpa harus bergantung pada folder kongsi atau rangkaian rangkaian.
Cygwin
Kaedah lain untuk menjalankan alat-alat seperti Linux / Unix yang popular di Windows ialah Cygwin. Perbezaan terbesar antara kedua-dua pendekatan adalah bahawa Cygwin bukan satu cara untuk menjalankan binari Linux asli pada Windows. Ia hanya menyediakan satu set alat GNU dan Open Source yang menyediakan fungsi serupa dengan pengedaran Linux pada Windows.
Sebaliknya, alat WSL adalah Linux binatang Linux ELF-64 yang disusun berjalan pada Windows. Contohnya, menjalankan perintah apt-get install emacs
di WSL akan memuat turun dan memasang fail yang sama seperti pada pemasangan Ubuntu 14.04, dari repositori Ubuntu rasmi.
Pengguna, Kebenaran dan Sistem Fail dalam WSL
Hierarki Sistem Fail
WSL dipasang di bawah direktori %LocalAppData%\lxss\rootfs
pengguna semasa. Ini dikenali sebagai Persekitaran WSL dan bertindak sebagai direktori " /
" (root) Linux. Sebagai contoh, jika nama pengguna anda di Windows adalah beebom
, direktori root Linux akan terletak di C:\Users\beebom\AppData\Local\lxss\rootfs.
Ini bermakna setiap pengguna Windows boleh mempunyai persekitaran WSL mereka sendiri, dan boleh membuat perubahan seperti pakej perisian apt-get install
, tanpa menjejaskan pengguna Windows lain.
Ia mungkin untuk mengakses sistem fail Windows yang mendasar dalam WSL. Semua pemacu dipasang di bawah /mnt.
Sebagai contoh, C:\
dipasang di bawah /mnt/c
, D:\
dipasang di bawah /mnt/d
, dsb.
Pengguna dan Kebenaran
Apabila anda mula-mula memasang WSL, ia akan meminta anda untuk membuat pengguna Linux lalai yang baru. Pengguna ini tidak perlu mempunyai nama yang sama dengan pengguna Windows semasa, dan dianggap sebagai entiti berasingan secara umum. Anda juga boleh membuat pelbagai pengguna Linux, yang dikawal oleh pengguna Windows tunggal.
Adalah mungkin untuk mendapatkan keistimewaan root
menggunakan perintah sudo
. Perlu diingat bahawa menjadi root
dalam WSL hanya memberi kesan kepada hak pengguna dalam persekitaran Linux dan sistem fail - mereka tidak memberi kesan ke atas keistimewaan Windows yang diberikan. Sebagai contoh, sesi WSL dengan hak istimewa pentadbir Windows mungkin cd /mnt/c/Users/Administrator
manakala sesi Bash tanpa keistimewaan admin akan melihat Kebenaran Dihentikan. Menaip sudo cd /mnt/c/Users/Administrator
tidak akan memberikan akses kepada direktori Pentadbir sejak kebenaran dibatasi oleh Windows.
Ciri-ciri Sistem Fail Linux-Spesifik
Linux adalah sistem sensitif kes . Itu bermakna photo.png
dan Photo.png
diperlakukan sebagai dua fail berbeza. Walaupun Windows tidak kes sensitif secara lalai, ia masih kes sedar . Ini bermakna bahawa sementara photo.png
dan Photo.png
tidak diperlakukan sebagai dua fail yang berbeza, ia pasti menyedari perbezaan dalam kes.
WSL mengendalikan sensitiviti kes seperti di Linux. Ia juga mungkin untuk membuat dua fail yang namanya hanya berbeza dengan kes di luar persekitaran WSL. Walau bagaimanapun, perlu diingat bahawa banyak aplikasi Windows tidak dapat menangani situasi sedemikian dan mungkin tidak dapat membuka satu atau kedua-dua fail.
Begitu juga, pautan simbol disokong, dengan syarat anda menjalankan sistem fail NTFS. Walau bagaimanapun, pautan simbolik akan berfungsi hanya di dalam WSL dan tidak boleh diselesaikan oleh aplikasi Windows lain.
Linux juga menyokong hampir semua aksara khas di dalam nama fail, sementara Windows lebih ketat. Walau bagaimanapun, WSL membenarkan menggunakan aksara khas itu, dengan syarat ia terhad kepada persekitaran sistem Linux.
Bersedia Menjalankan Barisan Perintah Linux pada Windows?
Jadi, itulah bagaimana Ubuntu Bash atau Linux Bash Shell, yang juga dikenali sebagai Windows Subsystem untuk Linux berfungsi pada Windows 10 (dengan kemas kini ulang tahun). Bersama dengan kerjanya, kami juga belajar bagaimana ia berbeza dan lebih baik daripada kaedah tradisional menjalankan perintah khusus Linux pada Windows. Oleh itu, jika anda sentiasa mahu menggunakan arahan Linux, mulakan dan jika ada pertanyaan, komen atau petua, pastikan untuk memberitahu kami di bahagian komen.