ย้ายการพัฒนา JavaScript ของคุณไปยัง Bash บน Windows
เผยแพร่แล้ว: 2022-03-10ฉันเป็นหนึ่งในคนเหล่านั้นที่ไม่สามารถอยู่ได้โดยปราศจาก Bash terminal ข้อเท็จจริงเพียงอย่างเดียวนี้ทำให้ฉันทำงานส่วนหน้าบน Windows ได้ยาก ฉันทำงานที่ Microsoft และฉันใช้ Mac จนกระทั่งสายผลิตภัณฑ์ฮาร์ดแวร์ Surface ใหม่ออกมาเมื่อไม่กี่ปีที่ผ่านมา ฉันจึงตระหนักว่า: ฉันต้องมีหนึ่งในนั้น
ดังนั้นฉันจึงได้หนึ่ง Surface Book 2 ที่ใช้ Windows 10 เป็นที่แน่นอน ฉันกำลังร่างบทความนี้อยู่ในขณะนี้ แล้ว Bash แสนหวานของฉันล่ะ? แน่นอนฉันพามันไปด้วยแน่นอน
ในบทความนี้ เราจะมาเจาะลึกกันว่าเทคโนโลยีใหม่ใน Windows 10 ช่วยให้คุณใช้งานเทอร์มินัล Linux แบบเต็มบน Windows ได้อย่างไร ฉันจะแสดงการตั้งค่าเทอร์มินัลที่น่าทึ่งของฉันด้วย (ซึ่ง "ฉันชื่อดีที่สุด" โดย "ฉัน") และวิธีที่คุณสามารถตั้งค่าเครื่องพัฒนา Windows/Linux ของคุณเองได้เช่นกัน
หากคุณอยากได้ฮาร์ดแวร์ Surface บางตัวแต่ขาดเทอร์มินัล Linux ไม่ได้ คุณมาถูกที่แล้ว
หมายเหตุ : ในขณะที่เขียนบทความนี้ หลายรายการในบทความนี้จะทำให้คุณต้องใช้หรือเปลี่ยนไปใช้ "ดูตัวอย่าง" หรือ "คนวงใน" ของรายการต่างๆ รวมทั้ง Windows สิ่งเหล่านี้ส่วนใหญ่จะอยู่ใน Windows build หลักในอนาคต
ระบบย่อย Windows สำหรับ Linux (WSL)
ระบบย่อย Windows สำหรับ Linux หรือ “WSL” คือสิ่งที่ช่วยให้คุณเรียกใช้ Linux บน Windows แต่วิทยาศาสตร์ที่บ้าคลั่งนี้ คือ อะไร?
WSL ซึ่งอยู่ในรูปแบบปัจจุบัน เป็นเลเยอร์การแปลที่แปลงการเรียกระบบ Linux เป็นการเรียกระบบ Windows Linux ทำงานบน WSL นั่นหมายความว่าในการรับ Linux บน Windows คุณต้องทำสามสิ่ง:
- เปิดใช้งาน WSL
- ติดตั้งลินุกซ์
- รวมสามรายการในรายการเสมอ
ปรากฎว่าเลเยอร์การแปลนั้นค่อนข้างช้า — เหมือนกับที่ฉันพยายามจะจำว่าฉันต้องการ splice
หรือ slice
โดยเฉพาะอย่างยิ่งเมื่อ WSL กำลังอ่านและเขียนไปยังระบบไฟล์ นั่นเป็นปัญหาใหญ่สำหรับนักพัฒนาเว็บเนื่องจากการ npm install
ที่เหมาะสมจะคัดลอกไฟล์หลายพันไฟล์ไปยังเครื่องของคุณ ฉันหมายถึง ฉันไม่รู้เกี่ยวกับคุณ แต่ฉันจะไม่เหยียบสายของฉัน เอง
เวอร์ชัน 2 ของ WSL เป็นเรื่องที่แตกต่าง เร็วกว่าเวอร์ชันปัจจุบันมากเพราะใช้ประโยชน์จากคอร์เวอร์ชวลไลเซชันใน Windows แทนที่จะใช้เลเยอร์การแปล เมื่อฉันพูดว่า "เร็วกว่ามาก" ฉันหมายถึงเร็วกว่ามาก เช่นเดียวกับฉัน Google Googling "splice vs slice"
ด้วยเหตุผลดังกล่าว ฉันจะแสดงวิธีการติดตั้ง WSL 2 ในขณะที่เขียน คุณจะต้องใช้ Windows รุ่น "Insider"
สิ่งแรกก่อน: ทำตามคำแนะนำสั้นๆ นี้เพื่อเปิดใช้งาน WSL บน Windows 10 และตรวจสอบหมายเลขเวอร์ชัน Windows ของคุณ
เมื่อคุณติดตั้งแล้ว ให้กดปุ่ม Windows และพิมพ์ “windows insider” จากนั้นเลือก "การตั้งค่าโปรแกรม Windows Insider"
คุณจะมีตัวเลือกต่างๆ สองสามอย่างสำหรับ "แหวน" ที่คุณต้องการเปิด หลายคนที่ฉันรู้จักอยู่ในวงเร็ว ฉันเป็นคนระมัดระวังแม้ว่า เมื่อฉันยังเป็นเด็ก ฉันจะลงสไลเดอร์ที่สนามเด็กเล่นโดยจับท้องไว้ด้านข้าง นั่นคือเหตุผลที่ฉันอยู่บนวงแหวนช้า ฉันใช้งานมันมาหลายเดือนแล้ว และฉันก็พบว่ามันไม่รบกวนการทำงานหรือไม่เสถียรมากไปกว่า Windows ปกติ
เป็นตัวเลือกที่ดีถ้าคุณต้องการ WSL 2 แต่คุณไม่ต้องการที่จะตายบนสไลด์
หมายเหตุ : หลังจากเผยแพร่บทความนี้ ฉันได้เรียนรู้ว่า WSL 2 ไม่ได้อยู่บนวงแหวนที่ช้า คุณจะต้องอยู่บนวงแหวนด่วนจึงจะรับได้ ฉันต้องอยู่ในขั้นตอนที่รวดเร็วในการเขียนบทความนี้ แหวนเร็วมากมันเป็น ขอให้โชคดีบนสไลด์!
ถัดไป คุณต้องเปิดใช้งานคุณลักษณะ “Virtual Machine Platform” ใน Windows ซึ่งจำเป็นสำหรับ WSL เวอร์ชัน 2 เพื่อไปที่หน้าจอนี้ ให้กดปุ่ม Windows และพิมพ์ “คุณสมบัติของ Windows” จากนั้นเลือก "เปิดหรือปิดคุณลักษณะของ Windows" เลือก “แพลตฟอร์มเครื่องเสมือน” ควรเปิดใช้งานตัวเลือก “ระบบย่อย Windows สำหรับ Linux” แล้ว
เมื่อเปิดใช้งาน WSL แล้ว คุณสามารถติดตั้ง Linux ได้ คุณทำเช่นนี้ได้แดกดันเพียงพอโดยตรงจาก Windows Store เฉพาะในปี 2019 ฉันขอแนะนำให้คุณ “ติดตั้ง Linux จาก Windows Store”
มีการแจกจ่ายที่แตกต่างกันหลายแบบให้เลือก แต่อูบุนตูจะได้รับการสนับสนุนมากที่สุดในเครื่องมือทั้งหมดที่เราจะกำหนดค่าในภายหลัง ซึ่งรวมถึง VS Code คำแนะนำทั้งหมดที่มาจากที่นี่โดยถือว่าติดตั้ง Ubuntu หากคุณติดตั้ง distro อื่น การเดิมพันทั้งหมดจะปิด
ค้นหา "Ubuntu" จาก Windows Store จะมีสามตัวเลือก: Ubuntu, Ubuntu 18.04 และ Ubuntu 16.04 Ubuntu ชอบหมายเลขรุ่นย่อย 04 จริงๆ ใช่ไหม
distro ของ "Ubuntu" (อันแรกในภาพหน้าจอนี้) คือ "เวอร์ชันเมตา" หรือเป็นตัวยึดตำแหน่งที่ชี้ไปที่เวอร์ชันล่าสุดเท่านั้น ณ ตอนนี้ นั่นคือ 18.04
ฉันใช้เวอร์ชันเมตาเพราะในภายหลังฉันจะแสดงวิธีเรียกดูระบบไฟล์ Linux ด้วย Windows Explorer และมันค่อนข้างยุ่งที่จะมี "Ubuntu 18.04" เป็นชื่อไดรฟ์เทียบกับ "Ubuntu"
การติดตั้งนี้ค่อนข้างรวดเร็วขึ้นอยู่กับการเชื่อมต่ออินเทอร์เน็ตของคุณ มีขนาดเพียง 215 เมกะไบต์ แต่ฉันใช้การเชื่อมต่อแบบกิกะบิตที่นี่ และคุณจะทราบได้อย่างไรว่ามีใครใช้การเชื่อมต่อแบบกิกะบิต ไม่ต้องกังวลพวกเขาจะบอกคุณ
เมื่อติดตั้งแล้ว คุณจะมีแอป "Ubuntu" ในเมนูเริ่มต้น
หากคุณคลิกที่คุณจะได้รับเทอร์มินัล Bash!
ใช้เวลาสักครู่เพื่อดื่มด่ำกับความอัศจรรย์ของเทคโนโลยี
โดยค่าเริ่มต้น คุณจะใช้งาน WSL เวอร์ชัน 1 ได้ หากต้องการอัปเกรดเป็นเวอร์ชัน 2 คุณจะต้องเปิดเทอร์มินัล PowerShell และเรียกใช้คำสั่ง
กดปุ่ม "Windows" และพิมพ์ "Powershell"
จากเทอร์มินัล PowerShell คุณสามารถดูเวอร์ชันของ WSL ที่คุณมีได้โดยดำเนินการ wsl --list --verbose
หากคุณกำลังแสดงเวอร์ชัน 1 คุณจะต้องรันคำสั่ง --set-version
และระบุชื่อของอินสแตนซ์ (Ubuntu) และเวอร์ชันที่คุณต้องการ (2)
wsl --set-version Ubuntu 2
การดำเนินการนี้จะใช้เวลาเล็กน้อย ขึ้นอยู่กับว่าเครื่องของคุณมีเนื้อมากแค่ไหน ของฉันใช้เวลา "บางนาที" ให้หรือรับ เมื่อเสร็จแล้ว คุณจะใช้ WSL เวอร์ชันล่าสุดและดีที่สุด
คือสมองของคุณบน Linux… บน Windows
ลินุกซ์ไม่ใช่วินโดวส์ WSL ไม่ใช่ bash prompt ที่ด้านบนของระบบปฏิบัติการ Windows เป็นระบบปฏิบัติการเต็มรูปแบบสำหรับตัวเองโดยมีโครงสร้างโฟลเดอร์และแอปพลิเคชันที่ติดตั้งไว้ หากคุณติดตั้ง Node ด้วยตัวติดตั้ง Windows การพิมพ์ node
ใน Linux จะล้มเหลวเนื่องจากไม่ได้ติดตั้ง Node ใน Linux มันถูกติดตั้งบน Windows
ความมหัศจรรย์ที่แท้จริงของ WSL อยู่ที่การเชื่อมต่อ Windows และ Linux อย่างราบรื่น เพื่อให้ปรากฏเป็นระบบไฟล์เดียวในเครื่องของคุณ
การนำทางไฟล์และโฟลเดอร์
ตามค่าเริ่มต้น เทอร์มินัล Ubuntu จะนำคุณไปที่โฮมไดเร็กทอรี Linux ของคุณ (หรือ /home/your-user-name
) คุณสามารถย้ายไปที่ฝั่ง Windows ได้โดยไปที่ /mnt/c
ขอให้สังเกตว่าการอนุญาตบางอย่างถูกปฏิเสธที่นี่ ฉันจะต้องคลิกขวาที่ไอคอน Ubuntu แล้วคลิก "เรียกใช้ในฐานะผู้ดูแลระบบ" เพื่อเข้าถึงไฟล์เหล่านี้ นี่เป็นวิธีที่ Windows ทำการอนุญาตระดับสูง ไม่มี sudo บน Windows
เปิดตัวแอปพลิเคชั่น
คุณสามารถเปิดแอปพลิเคชัน Windows ใดก็ได้จากเทอร์มินัล Ubuntu ตัวอย่างเช่น ฉันสามารถเปิด Windows Explorer จากเทอร์มินัล Unbuntu
สิ่งนี้ยังทำงานในทางกลับกัน คุณสามารถรันแอปพลิเคชันใดๆ ที่ติดตั้งบนฝั่ง Linux ที่นี่ฉันกำลังเรียกใช้ "โชคลาภ" ที่ติดตั้งใน Linux จากบรรทัดคำสั่งของ Windows (เพราะมันไม่ใช่การติดตั้ง Linux ที่เหมาะสมโดยปราศจากโชคสุ่มและไร้ความหมาย)
สองระบบปฏิบัติการที่แตกต่างกัน สองระบบไฟล์ที่แตกต่างกัน แอปพลิเคชั่นที่ติดตั้งไว้สองชุดที่แตกต่างกัน ดูว่าสิ่งนี้จะทำให้สับสนได้อย่างไร
เพื่อให้ทุกอย่างตรงไปตรงมา เราขอแนะนำให้คุณเก็บไฟล์และเครื่องมือการพัฒนา JavaScript ทั้งหมดของคุณที่ติดตั้งไว้ที่ด้าน Linux ที่กล่าวว่าความสามารถในการย้ายระหว่าง Windows และ Linux และการเข้าถึงไฟล์จากทั้งสองระบบคือความมหัศจรรย์หลักของ WSL อย่าลืมเพราะมันเป็นสิ่งที่ทำให้การตั้งค่าทั้งหมดนี้ดีกว่ากล่อง Linux มาตรฐาน
การตั้งค่าสภาพแวดล้อมการพัฒนาของคุณ
จากนี้ไป ฉันจะแสดงรายการของความคิดเห็นสำหรับสิ่งที่ฉันคิดว่าทำให้ Linux นักฆ่าในการติดตั้ง Windows เพียงจำไว้ว่า: ความคิดเห็นของฉันเป็นอย่างนั้น ความคิดเห็น . มันเพิ่งเกิดขึ้นที่เหมือนกับความคิดเห็นทั้งหมดของฉัน พวกเขาถูกต้อง 100%
การรับเทอร์มินัลที่ดีขึ้น
ใช่ คุณมีเทอร์มินัลเมื่อคุณติดตั้ง Ubuntu เป็นคอนโซล Windows ที่เชื่อมต่อกับ distro Linux ของคุณ มันไม่ใช่คอนโซลที่ไม่ดี คุณสามารถปรับขนาดได้ เปิดคัดลอก/วาง (ในการตั้งค่า) แต่คุณไม่สามารถทำสิ่งต่างๆ เช่น แท็บหรือเปิดหน้าต่างใหม่ได้ เช่นเดียวกับที่หลายคนใช้โปรแกรมเทอร์มินัลทดแทนบน Mac (ฉันใช้ Hyper) ก็มีตัวเลือกอื่นๆ สำหรับ Windows เช่นกัน รายการ Awesome WSL บน Github มีรายการที่ละเอียดถี่ถ้วน
สิ่งเหล่านี้ล้วนเป็นอีมูเลเตอร์ที่ดี แต่มีตัวเลือกใหม่ที่สร้างขึ้นโดยผู้ที่รู้จัก Windows เป็นอย่างดี
Microsoft ได้ทำงานกับแอปพลิเคชันใหม่ที่ชื่อว่า “Windows Terminal”
สามารถติดตั้ง Windows Terminal ได้จาก Windows Store และขณะนี้อยู่ในโหมดแสดงตัวอย่าง ฉันใช้มันมาระยะหนึ่งแล้ว และมันมีคุณสมบัติเพียงพอและเสถียรเพียงพอสำหรับฉันที่จะรับรองอย่างเต็มที่
Windows Terminal ใหม่มีอินเทอร์เฟซแท็บเต็มรูปแบบ คัดลอก/วาง หลายโปรไฟล์ พื้นหลังโปร่งใส ภาพพื้นหลัง แม้กระทั่งภาพพื้นหลังแบบโปร่งใส วันนี้เป็นวันลงสนามหากคุณต้องการปรับแต่งเทอร์มินัลของคุณ และฉันมาเพื่อชนะการแข่งขันกระสอบนี้
นี่คือเทอร์มินัลปัจจุบันของฉัน เราจะพูดถึงการปรับแต่งที่สำคัญบางส่วนที่นี่
เทอร์มินัล Windows ค่อนข้างปรับแต่งได้ การคลิกลูกศร “ ⌄ ” ที่ด้านบนซ้าย (ข้างเครื่องหมาย “ + ”) จะทำให้คุณเข้าถึง “การตั้งค่า” นี่จะเป็นการเปิดไฟล์ JSON
เข้าเล่ม/วาง
ที่ด้านบนของไฟล์มีการผูกคีย์ทั้งหมด สิ่งแรกที่ฉันทำคือแมป "คัดลอก" ไปที่ Ctrl + C และวาง Ctrl + V ฉันจะคัดลอกและวางคำสั่งจาก Stack Overflow ที่ฉันไม่เข้าใจได้อย่างไร
{ "command": "copy", "keys": ["ctrl+c"] }, { "command": "paste", "keys": ["ctrl+v"] },
ปัญหาคือ Ctrl + C ถูกแมปกับ SIGINT หรือคำสั่ง Interrupt/kill บน Linux มีเทอร์มินัลจำนวนมากสำหรับ Windows ที่จัดการสิ่งนี้โดยแมป Copy/Paste ไปที่ Ctrl + Shift + C และ Ctrl + Shift + V ตามลำดับ ปัญหาคือการคัดลอก/วางคือ Ctrl + C / Ctrl + V ทุกๆ ที่ใน Windows ฉันแค่กด Ctrl + C ในเทอร์มินัลซ้ำแล้วซ้ำอีกเพื่อพยายามคัดลอกสิ่งต่างๆ ฉันไม่สามารถหยุดทำมันได้
เทอร์มินัล Windows จัดการสิ่งนี้แตกต่างกัน หากคุณไฮไลต์ข้อความไว้และกด Ctrl + C ระบบจะคัดลอกข้อความ หากมีกระบวนการทำงานอยู่ มันยังคงส่งคำสั่ง SIGINT ลงมาและขัดจังหวะกระบวนการนั้น หมายความว่าคุณสามารถแมป Ctrl + C / Ctrl + V เพื่อคัดลอก/วางใน Windows Terminal ได้อย่างปลอดภัย และจะไม่รบกวนความสามารถในการขัดจังหวะกระบวนการของคุณ
ใครบ้างที่คิดว่า Copy/Paste อาจทำให้ใจสลายได้?
เปลี่ยนโปรไฟล์เริ่มต้น
โปรไฟล์เริ่มต้นคือสิ่งที่ปรากฏขึ้นเมื่อเปิดแท็บใหม่ โดยค่าเริ่มต้น นั่นคือ Powershell ให้เลื่อนลงมาเจอโปรไฟล์ Linux นี่คืออันที่เปิดขึ้น wsl.exe -d Ubuntu
คัดลอก GUID และวางลงในการตั้งค่า defaultProfile
ฉันได้ย้ายการตั้งค่าทั้งสองนี้เพื่อให้อยู่ติดกันเพื่อให้มองเห็นได้ง่ายขึ้น:
ตั้งพื้นหลัง
ฉันชอบพื้นหลังที่เป็นสีทึบและมีโลโก้แบนๆ อยู่ที่มุมขวามือ ฉันทำเช่นนี้เพราะฉันต้องการให้โลโก้สว่างและมองเห็นได้ แต่ไม่ใช่ในลักษณะของข้อความ อันนี้ฉันทำเอง แต่มีคอลเล็กชั่นภาพแบนมากมายให้เลือกที่ Simple Desktops
พื้นหลังถูกกำหนดด้วยคุณสมบัติ backgroundImage
:
"backgroundImage": "c:/Users/YourUserName/Pictures/earth.png"
คุณจะสังเกตเห็นการตั้งค่าที่เรียกว่า “อะคริลิก” นี่คือสิ่งที่ช่วยให้คุณปรับความทึบของพื้นหลังได้ หากคุณมีสีพื้นหลังแบบทึบ วิธีนี้ค่อนข้างตรงไปตรงมา
"background": "#336699", "useAcrylic": true, "acrylicOpacity": 0.5
คุณสามารถดึงสิ่งนี้ออกด้วยภาพพื้นหลังได้เช่นกันโดยรวมการตั้งค่า arcylicOpacity
กับ backgroundImageOpacity
:
"backgroundImage": "c:/Users/username/Pictures/earth-and-stars.png", "useAcrylic": true, "acrylicOpacity": 0.5
สำหรับธีมของฉัน ความโปร่งใสทำให้ทุกอย่างดูถูกปิดเสียง ดังนั้นฉันจึงตั้งค่า useAcrylic
false
เปลี่ยนแบบอักษร
ทีมงานที่สร้าง Windows Terminal กำลังทำงานบนฟอนต์ใหม่ที่เรียกว่า “Cascadia Code” ไม่พร้อมใช้งานในขณะที่เขียนบทความนี้ ดังนั้นคุณจะได้รับแบบอักษร Windows เริ่มต้นแทน
แบบอักษรเริ่มต้นใน Windows Terminal คือ “คอนโซล” นี่เป็นแบบอักษรเดียวกับที่บรรทัดคำสั่งของ Windows ใช้ หากคุณต้องการสัมผัส Ubuntu ที่แท้จริง Chris Hoffman ชี้ให้เห็นว่าคุณจะติดตั้งฟอนต์ Ubuntu Mono อย่างเป็นทางการได้อย่างไร
นี่คือก่อนและหลังเพื่อให้คุณเห็นความแตกต่าง:
"fontFace": "Ubuntu Mono"
พวกเขาดูคล้ายกันมาก ความแตกต่างหลักอยู่ที่ระยะห่างของ Ubuntu Mono ซึ่งทำให้เทอร์มินัลแน่นและสะอาดขึ้นเล็กน้อย
แบบแผนสี
ชุดสีทั้งหมดจะอยู่ที่ด้านล่างของไฟล์การตั้งค่า ฉันคัดลอกชุดสี "แคมป์เบลล์" เป็นพื้นฐาน ฉันพยายามจับคู่สีกับชื่อของพวกเขา แต่ฉันไม่กลัวที่จะโกงเช่นกัน ฉันจะจับคู่ “#ffffff” กับ “สีน้ำเงิน” — ฉันไม่สนใจด้วยซ้ำ
หากคุณชอบรูปแบบเฉพาะนี้ซึ่งฉันตั้งชื่อว่า "Earth" ฉันได้รวบรวมส่วนสำคัญนี้ไว้ด้วยกัน เพื่อที่คุณจะได้ไม่ต้องคัดลอกความยุ่งเหยิงทั้งหมดนี้ออกจากภาพหน้าจอด้วยตนเอง
หมายเหตุ : ตัวอย่างสีมาจากส่วนขยาย "Color Highlight" สำหรับ VS Code
เปลี่ยนไดเร็กทอรีเริ่มต้นเริ่มต้น
ตามค่าเริ่มต้น โปรไฟล์ WSL จะนำคุณไปที่โฮมไดเร็กตอรี่ของคุณทางฝั่ง Windows จากการตั้งค่าที่ฉันแนะนำในบทความนี้ ขอแนะนำให้วางลงในโฟลเดอร์ home
ของ Linux แทน ในการทำเช่นนั้น ให้เปลี่ยนการตั้งค่า startingDirectory
ในโปรไฟล์ "Ubuntu" ของคุณ:
"startingDirectory": "\\\\wsl$\\Ubuntu\\home\\burkeholland"
สังเกตเส้นทางที่นั่น คุณสามารถใช้เส้นทางนี้ (ลบเครื่องหมายสแลชพิเศษ) เพื่อเข้าถึง WSL จากบรรทัดคำสั่งของ Windows
ติดตั้ง Zsh/Oh-My-Zsh
หากคุณไม่เคยใช้ Zsh และ Oh-My-Zsh มาก่อน แสดงว่าคุณพร้อมสำหรับการปฏิบัติจริงแล้ว Zsh (หรือ “Z Shell”) เป็นเชลล์ทดแทนสำหรับ Linux มันขยายความสามารถพื้นฐานของ Bash รวมถึงการสลับไดเร็กทอรีโดยนัย (ไม่จำเป็นต้องพิมพ์ cd
) การสนับสนุนธีมที่ดีกว่า พร้อมท์ที่ดีกว่า และอีกมากมาย
ในการติดตั้ง Zsh ให้คว้ามันด้วย apt package manager ซึ่งมาพร้อมกับการติดตั้ง Linux ของคุณ:
sudo apt install zsh
ติดตั้ง oh-my-zsh โดยใช้ curl Oh-my-zsh คือชุดการกำหนดค่าสำหรับ zsh ที่ปรับปรุงประสบการณ์การใช้งานเชลล์ให้ดียิ่งขึ้นด้วยปลั๊กอิน ธีม และแป้นพิมพ์ลัดมากมาย
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
จากนั้นระบบจะถามคุณว่าคุณต้องการเปลี่ยนเชลล์เริ่มต้นเป็น Zsh หรือไม่ คุณตอบตกลงและตอนนี้คุณก็พร้อมใช้ Zsh และ Oh-My-Zsh แล้ว
คุณจะสังเกตเห็นว่าข้อความแจ้งนั้นสะอาดกว่ามากในตอนนี้ คุณสามารถเปลี่ยนลักษณะของพรอมต์นั้นได้โดยเปลี่ยนธีมในไฟล์ ~/.zshrc
เปิดด้วย nano
ซึ่งคล้ายกับ VIM แต่คุณสามารถแก้ไขสิ่งต่าง ๆ และออกเมื่อต้องการ
nano ~/.zshrc
เปลี่ยนบรรทัดที่กำหนดธีม มี URL ด้านบนพร้อมรายการธีมทั้งหมด ฉันคิดว่า "เมฆ" เป็นสิ่งที่ดี และน่ารัก
หากต้องการรับการเปลี่ยนแปลงในไฟล์ .zshrc
คุณจะต้องระบุแหล่งที่มา:
source ~/.zshrc
หมายเหตุ : หากคุณเลือกธีมเช่น “agnoster” ซึ่งต้องใช้ร่ายมนตร์ คุณจะต้องมี Ubuntu Mono เวอร์ชันรวม powerline ที่มี… ร่ายมนตร์ มิฉะนั้น เทอร์มินัลของคุณจะเต็มไปด้วยอักขระแปลก ๆ เช่นคุณบดหน้าบนแป้นพิมพ์ Nerd Fonts เสนอให้ใช้งานได้ค่อนข้างดี
ตอนนี้คุณสามารถทำสิ่งต่างๆ เช่น เปลี่ยนไดเร็กทอรีเพียงแค่ป้อนชื่อไดเร็กทอรี ไม่ต้องใช้ cd
ต้องการสำรองข้อมูลไดเร็กทอรีหรือไม่? แค่ทำ ..
. . คุณไม่จำเป็นต้องพิมพ์ชื่อไดเร็กทอรีทั้งหมดด้วยซ้ำ แค่พิมพ์อักษรสองสามตัวแรกแล้วกด tab Zsh จะให้รายชื่อไฟล์/ไดเร็กทอรีทั้งหมดที่ตรงกับการค้นหาของคุณ และคุณสามารถแท็บผ่านพวกมันได้
การติดตั้งโหนด
ในฐานะนักพัฒนาเว็บ คุณอาจต้องการติดตั้ง Node ฉันคิดว่าคุณไม่ จำเป็นต้อง ติดตั้ง Node เพื่อพัฒนาเว็บ แต่มันให้ความรู้สึกเหมือนในปี 2019 แน่นอน!
สัญชาตญาณแรกของคุณอาจเป็นการติดตั้ง node ด้วย apt
ซึ่งคุณทำได้ แต่คุณจะเสียใจด้วยเหตุผลสองประการ:
- เวอร์ชันของ Node บน apt ล้าสมัยอย่างมาก
- คุณควรติดตั้ง Node ด้วยตัวจัดการเวอร์ชันเพื่อไม่ให้เกิดปัญหาในการอนุญาต
วิธีที่ดีที่สุดในการแก้ปัญหาทั้งสองนี้คือการติดตั้ง nvm (Node Version Manager) เนื่องจากคุณติดตั้ง zsh
แล้ว คุณสามารถเพิ่มปลั๊กอิน nvm ในไฟล์ zshrc ของคุณ แล้ว zsh จะจัดการส่วนที่เหลือเอง
ขั้นแรก ติดตั้งปลั๊กอินโดยการโคลนใน repo zsh-nvm
(อย่ากังวล Git เป็นมาตรฐานในการติดตั้ง Ubuntu ของคุณ)
git clone https://github.com/lukechilds/zsh-nvm ~/.oh-my-zsh/custom/plugins/zsh-nvm
จากนั้นเพิ่มเป็นปลั๊กอินในไฟล์ ~/.zshrc
`nano ~/.zshrc` plugins (zsh-nvm git)
อย่าลืมซอร์สไฟล์ zshrc อีกครั้งด้วย source ~/.zshrc
และคุณจะเห็นว่ามีการติดตั้ง nvm
ตอนนี้คุณสามารถติดตั้งโหนดด้วย nvm ทำให้ง่ายต่อการติดตั้งโหนดหลายเวอร์ชันเคียงข้างกัน และสลับไปมาระหว่างโหนดต่างๆ ได้อย่างง่ายดาย นอกจากนี้ยังไม่มีข้อผิดพลาดในการอนุญาตเมื่อคุณทำการติดตั้ง global npm!
nvm install --lts
ฉันแนะนำสิ่งนี้มากกว่าการติดตั้ง nvm มาตรฐานเพราะปลั๊กอินช่วยให้คุณสามารถอัพเกรด nvm ได้อย่างง่ายดาย นี่เป็นความเจ็บปวดเมื่อติดตั้ง "ขด" มาตรฐาน เป็นคำสั่งเดียวกับปลั๊กอิน
nvm upgrade
ใช้คำแนะนำอัตโนมัติ
หนึ่งในปลั๊กอินที่ฉันชอบมากสำหรับ zsh คือ zsh-autosuggestions โดยจะจดจำสิ่งที่คุณเคยพิมพ์ในเครื่องเทอร์มินัลมาก่อน จากนั้นจะจดจำเมื่อคุณเริ่มพิมพ์อีกครั้ง รวมทั้ง "แนะนำอัตโนมัติ" บรรทัดที่คุณอาจต้องการ ปลั๊กอินนี้มีประโยชน์มากกว่าที่ฉันจำได้ โดยเฉพาะอย่างยิ่งเมื่อพูดถึงคำสั่ง CLI แบบยาวที่ฉันเคยใช้ในอดีต แต่จำไม่ได้
โคลน repo ลงในโฟลเดอร์ส่วนขยาย zsh:
git clone https://github.com/zsh-users/zsh-autosuggestions ~/.oh-my-zsh/custom/plugins/zsh-autosuggestions
จากนั้นเพิ่มลงในปลั๊กอิน zsh ของคุณและแหล่งที่มาของไฟล์ zshrc:
nano ~/.zshrc # In the .zshrc file plugins(zsh-nvm zsh-autosuggestions git) source ~/.zshrc
ปลั๊กอินจะอ่านประวัติ zsh ของคุณ ดังนั้นให้เริ่มพิมพ์คำสั่งที่คุณเคยพิมพ์มาก่อนและดูความมหัศจรรย์ ลองพิมพ์ส่วนแรกของคำสั่งโคลนแบบยาวด้านบน
หากคุณกด ↹ จะเป็นการเติมคำสั่งอัตโนมัติ หากคุณกด ↹ ต่อไป มันจะวนไปตามคำสั่งใดๆ ในประวัติของคุณที่อาจตรงกัน
แป้นพิมพ์ลัดที่สำคัญ
มีทางลัดเทอร์มินัลสองสามตัวที่ฉันใช้ตลอดเวลา ฉันพบสิ่งนี้ด้วยเครื่องมือทั้งหมดของฉัน รวมถึง VS Code การพยายามเรียนรู้คำสั่งลัดทั้งหมดเป็นการเสียเวลา เพราะคุณจะไม่ใช้มันมากพอที่จะจำ
ต่อไปนี้คือบางส่วนที่ฉันใช้เป็นประจำ:
ทางลัดเทอร์มินัล | มันทำอะไร? |
---|---|
Ctrl + L | การดำเนินการนี้จะล้างเทอร์มินัลและนำคุณกลับสู่ด้านบน เทียบเท่ากับคำว่า "ชัดเจน" |
Ctrl + U | สิ่งนี้จะล้างบรรทัดปัจจุบันเท่านั้น |
Ctrl + A | ส่งเคอร์เซอร์ไปที่จุดเริ่มต้นของบรรทัดคำสั่ง |
Ctrl + E | ย้ายไปยังจุดสิ้นสุดของบรรทัด |
Ctrl + K | ลบอักขระทั้งหมดหลังเคอร์เซอร์ |
แค่นั้นแหละ! ทุกสิ่งทุกอย่างที่ฉันอาจได้เรียนรู้แล้วลืมไปเพราะไม่เคยมีประโยชน์อะไรเลย
การกำหนดค่า Git(Hub/Lab/Whatevs)
Git มาบน Ubuntu ดังนั้นจึงไม่จำเป็นต้องติดตั้ง คุณสามารถทำตามคำแนะนำที่โฮสต์การควบคุมแหล่งที่มาที่คุณเลือกเพื่อสร้างคีย์ ssh และทำงาน
โปรดทราบว่าในคำแนะนำ Github จะบอกให้คุณใช้ยูทิลิตี้ "คัดลอก" เพื่อคัดลอกคีย์ ssh ของคุณ Ubuntu มีคำสั่ง “xcopy” แต่จะใช้งานไม่ได้เนื่องจากไม่มีการทำงานร่วมกันระหว่าง Linux และ Windows ในแง่ของคลิปบอร์ด
คุณสามารถใช้โปรแกรมสั่งการของ Windows Clipboard และเรียกมันโดยตรงจากเทอร์มินัลแทน คุณต้องรับข้อความก่อนด้วย cat
จากนั้นไพพ์ไปที่คลิปบอร์ดของ Windows
cat ~/.ssh/id_rsa.pub | clip.exe
เอกสาร Github บอกให้คุณตรวจสอบให้แน่ใจว่า ssh-agent
กำลังทำงานอยู่ มันไม่ใช่. คุณจะเห็นสิ่งนี้เมื่อคุณลองและเพิ่มรหัสของคุณไปยังตัวแทน:
คุณสามารถเริ่มเอเจนต์ได้ แต่ครั้งต่อไปที่คุณรีบู๊ต Windows หรือ WSL หยุดทำงาน คุณจะต้องเริ่มใหม่อีกครั้ง เนื่องจากไม่มีระบบการเริ่มต้นใน WSL ไม่มี systemd
หรือกระบวนการอื่นที่เริ่มต้นบริการทั้งหมดของคุณเมื่อ WSL เริ่มทำงาน WSL ยังคงอยู่ในการแสดงตัวอย่าง และทีมงานกำลังดำเนินการแก้ไขปัญหานี้
ในระหว่างนี้ เชื่อหรือไม่ว่ามีปลั๊กอิน zsh สำหรับสิ่งนี้ด้วย เรียกว่า ssh-agent
และมาพร้อมกับ oh-my-zsh ดังนั้นสิ่งที่คุณต้องทำคืออ้างอิงในไฟล์ .zshrc
zsh-nvm zsh-autosuggestions ssh-agent git
สิ่งนี้จะเริ่มต้น ssh-agent โดยอัตโนมัติหากไม่ได้ทำงานในครั้งแรกที่คุณเปิด WSL ข้อเสียคือมันจะถามรหัสผ่านของคุณทุกครั้งที่ WSL เริ่มต้นใหม่ นั่นหมายถึงทุกครั้งที่คุณรีบูทคอมพิวเตอร์ของคุณ
รหัส VS และ WSL
WSL ไม่มี GUI คุณจึงไม่สามารถติดตั้งเครื่องมือแสดงภาพ เช่น VS Code ได้ ที่ต้องติดตั้งที่ฝั่ง Windows สิ่งนี้ทำให้เกิดปัญหาเนื่องจากคุณมีโปรแกรมที่ทำงานบนฝั่ง Windows เพื่อเข้าถึงไฟล์บนฝั่ง Linux และอาจส่งผลให้เกิดปัญหาในคฤหาสน์และ "การปฏิเสธการอนุญาต" ตามหลักการทั่วไป Microsoft ไม่แนะนำให้คุณแก้ไขไฟล์ในด้าน WSL ด้วยโปรแกรม Windows
ในการแก้ไขปัญหานี้ มีส่วนขยายสำหรับ VS Code ที่เรียกว่า “Remote WSL” ส่วนขยายนี้สร้างโดย Microsoft และช่วยให้คุณพัฒนาภายใน WSL แต่จากภายใน VS Code
เมื่อติดตั้งส่วนขยายแล้ว คุณสามารถแนบ VS Code กับฝั่ง Ubuntu ได้โดยตรงโดยเปิด Command Palette (
สิ่งนี้จะเปิด VS Code ตัวใหม่ที่ให้คุณทำงานราวกับว่าคุณทำงานด้านลินุกซ์อย่างเต็มที่ การทำ "File/Open" จะเรียกค้นระบบไฟล์ Ubuntu แทนที่จะเป็น Windows
เทอร์มินัลที่ผสานรวมใน VS Code จะเปิดการตั้งค่า zsh ที่ปรับแต่งอย่างสวยงามของคุณ ทุกอย่าง “ใช้งานได้” อย่างที่ควรจะเป็นเมื่อคุณติดตั้งส่วนขยาย Remote WSL
หากคุณเปิดรหัสจากเทอร์มินัลของคุณด้วย code .
VS Code จะตรวจพบโดยอัตโนมัติว่าเปิดจาก WSL และจะแนบส่วนขยาย Remote WSL โดยอัตโนมัติ
ส่วนขยายโค้ด VS พร้อม Remote WSL
ส่วนขยาย WSL ระยะไกลสำหรับรหัส VS ทำงานโดยการตั้งค่าเซิร์ฟเวอร์ขนาดเล็กบนฝั่ง Linux จากนั้นเชื่อมต่อจาก VS Code ทางฝั่ง Windows ในกรณีนี้ ส่วนขยายที่คุณติดตั้งใน VS Code จะไม่แสดงขึ้นโดยอัตโนมัติเมื่อคุณเปิดโครงการจาก WSL
ตัวอย่างเช่น ฉันมีโปรเจ็กต์ Vue ที่เปิดอยู่ใน VS Code แม้ว่าฉันจะติดตั้งส่วนขยาย Vue ที่ถูกต้องทั้งหมดสำหรับการเน้นไวยากรณ์ การจัดรูปแบบ และอื่นๆ ที่คล้ายกัน VS Code ก็ทำหน้าที่เหมือนไม่เคยเห็นไฟล์ . .vue
มาก่อน
ส่วนขยายทั้งหมดที่คุณติดตั้งสามารถเปิดใช้งานได้ใน WSL เพียงค้นหาส่วนขยายที่คุณต้องการใน WSL แล้วคลิกปุ่ม "ติดตั้งใน WSL"
ส่วนขยายทั้งหมดที่ติดตั้งใน WSL จะแสดงในส่วนของตนเองในมุมมอง Extensions Explorer หากคุณมีส่วนขยายจำนวนมาก การติดตั้งแต่ละรายการแยกกันอาจน่ารำคาญเล็กน้อย หากคุณต้องการเพียงแค่ติดตั้งทุกส่วนขยายที่คุณมีใน WSL ให้คลิกไอคอนดาวน์โหลดบนคลาวด์เล็กๆ ที่ด้านบนของส่วน 'ในเครื่อง - ติดตั้งแล้ว'
วิธีตั้งค่าไดเร็กทอรี Dev ของคุณ
นี่เป็นบทความที่มีความคิดเห็นอยู่แล้ว ดังนั้นนี่คือบทความที่คุณไม่ได้ถามถึงวิธีที่ฉันคิดว่าคุณควรจัดโครงสร้างโครงการของคุณในระบบไฟล์ของคุณ
ฉันเก็บโครงการทั้งหมดของฉันไว้ที่ฝั่ง Linux ฉันไม่ใส่โปรเจ็กต์ของฉันใน "เอกสารของฉัน" แล้วลองและทำงานกับพวกเขาจาก WSL สมองของฉันไม่สามารถจัดการกับสิ่งนั้นได้
ฉันสร้างโฟลเดอร์ชื่อ /dev
ซึ่งฉันใส่ไว้ในรูทของโฟลเดอร์ /home
ใน Linux ภายในโฟลเดอร์นั้น ฉันสร้างอีกอันที่มีชื่อเดียวกับ Github repo ของฉัน: /burkeholland
โฟลเดอร์นั้นเป็นที่ที่โปรเจ็กต์ทั้งหมดของ ฉัน ไป แม้แต่โปรเจ็กต์ที่ไม่ได้ถูกผลักไปที่ Github
ถ้าฉันโคลน repo จากบัญชี Github อื่น (เช่น “microsoft”) ฉันจะสร้างโฟลเดอร์ใหม่ใน “dev” ชื่อ /microsoft
จากนั้นฉันก็โคลน repo ลงในโฟลเดอร์ที่อยู่ภายในนั้น
โดยพื้นฐานแล้ว ฉันกำลังเลียนแบบโครงสร้างเดียวกันกับการควบคุมแหล่งที่มาบนเครื่องของฉัน ฉันคิดว่ามันง่ายกว่ามากที่จะให้เหตุผลว่าโครงการอยู่ที่ไหนและเก็บที่เก็บถาวรไว้ที่ไหนโดยอาศัยตำแหน่งของพวกเขา เรียบง่าย แต่มีประสิทธิภาพสูงในการช่วยให้ฉันจัดระเบียบทุกอย่างได้ และฉันต้องการความช่วยเหลือทั้งหมดที่ได้รับ
การเรียกดูไฟล์จาก Windows Explorer
มีบางครั้งที่คุณต้องการเข้าถึงไฟล์ใน Linux จากฝั่ง Windows สิ่งที่สวยงามเกี่ยวกับ WSL ก็คือ คุณยังสามารถทำสิ่งนั้นได้
วิธีหนึ่งคือการเข้าถึง WSL เหมือนกับไดรฟ์ที่แมปไว้ เข้าถึงได้ด้วย \\wsl$
โดยตรงจากแถบ explorer:
\\wsl$
คุณอาจทำเช่นนี้ด้วยเหตุผลหลายประการ ตัวอย่างเช่น วันนี้ฉันต้องการส่วนขยาย Chrome ที่ไม่ได้อยู่ในเว็บสโตร์ ดังนั้นฉันจึงโคลน repo ใน WSL จากนั้นไปที่ "Unpacked Extension" และโหลดลงใน Edge
สิ่งหนึ่งที่ฉันทำกับความถี่ใน Linux คือการเปิดไดเร็กทอรีที่มีไฟล์โดยตรงจากเทอร์มินัล คุณสามารถทำสิ่งนี้ใน WSL ได้เช่นกัน โดยเรียกโดยตรง explorer.exe
ตัวอย่างเช่น คำสั่งนี้เปิดไดเร็กทอรีปัจจุบันใน Windows Explorer
$ explorer.exe .
คำสั่งนี้ค่อนข้างยุ่งยากแม้ว่า บน Linux มันก็แค่ open .
. เราสามารถสร้างเวทย์มนตร์แบบเดียวกันได้โดยการสร้างนามแฝงในไฟล์ ~/.zshrc
alias open="explorer.exe"
นักเทียบท่า
เมื่อฉันบอกว่าเครื่องมือทั้งหมดควรอยู่ฝั่ง Linux ฉันหมายความว่าอย่างนั้น ซึ่งรวมถึงด็อคเกอร์ด้วย
นี่คือจุดที่ยางเริ่มบรรจบกับถนนจริงๆ สิ่งที่เราต้องการที่นี่คือ Docker ที่ทำงานภายใน Linux ที่ทำงานภายใน Windows มันเป็นบิตของตุ๊กตารัสเซียนทำรังเมื่อคุณเขียนลงในบล็อกโพสต์ ในความเป็นจริง มันค่อนข้างตรงไปตรงมา
คุณจะต้องใช้ Docker สำหรับ Windows เวอร์ชันที่ถูกต้อง ในขณะที่เขียนบทความนี้ นั่นคือ WSL 2 Tech Preview
เมื่อคุณเรียกใช้โปรแกรมติดตั้ง ระบบจะถามคุณว่าต้องการใช้คอนเทนเนอร์ Windows แทนคอนเทนเนอร์ Linux หรือไม่ คุณทำอย่างแน่นอน มิฉะนั้น คุณจะไม่ได้รับตัวเลือกให้เรียกใช้ Docker ใน WSL
ตอนนี้คุณสามารถเปิดใช้งาน Docker ใน WSL ได้โดยคลิกที่รายการในซิสเต็มเทรย์และเลือก "WSL 2 Tech Preview":
หลังจากที่คุณเริ่มบริการ คุณสามารถใช้ Docker ภายใน WSL ได้ตามที่คุณต้องการ การรัน Docker ใน WSL นั้นช่วยเพิ่มประสิทธิภาพได้ค่อนข้างมาก เช่นเดียวกับการเพิ่มเวลาเริ่มเย็นบนคอนเทนเนอร์
ฉันขอแนะนำให้คุณติดตั้งส่วนขยาย Docker สำหรับ VS Code ด้วยหรือไม่ มันทำให้อินเทอร์เฟซแบบเห็นภาพในการตั้งค่า Docker ของคุณ และโดยทั่วไปทำให้การทำงานกับ Docker ง่ายขึ้น เนื่องจากคุณไม่จำเป็นต้องจำแฟล็กบรรทัดคำสั่งและตัวเลือกเหล่านั้นทั้งหมด
รับ Bash เพิ่มเติมบน Windows
ณ จุดนี้ คุณควรเข้าใจวิธีวาง Bash บน Windows และวิธีการทำงานเมื่อคุณไปถึงที่นั่น คุณสามารถปรับแต่งเทอร์มินัลของคุณได้ไม่รู้จบ และยังมีโปรแกรม rad ทุกประเภทที่คุณสามารถเพิ่มเพื่อทำสิ่งต่าง ๆ เช่น ตั้งค่าตัวแปร PATH โดยอัตโนมัติ สร้างนามแฝง รับวัว ASCII ในเทอร์มินัลของคุณ และอีกมากมาย
การรัน Bash บน Windows ได้เปิดโลกทัศน์ใหม่ทั้งหมดให้ฉัน ฉันสามารถรวม Windows ที่ฉันชอบในด้านประสิทธิภาพและ Linux ที่ฉันพึ่งพาในฐานะนักพัฒนา เหนือสิ่งอื่นใด ฉันสามารถสร้างแอปสำหรับทั้งสองแพลตฟอร์มได้ด้วยเครื่องเดียว
อ่านเพิ่มเติม
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับ Bash บน Windows ได้ที่นี่:
- “คู่มือการติดตั้งระบบย่อย Windows สำหรับ Linux สำหรับ Windows 10” Microsoft Docs
- “วิธีการติดตั้งและใช้งาน Bash Shell บน Windows 10” Chris Hoffman, How-To Geek
- “แชร์ SSH กับ WSL” Drew Wilson
- “คลั่งไคล้ระบบย่อย Window สำหรับ Linux” Brian Ketelsen
- “ทุกสิ่งที่คุณสามารถทำได้ด้วย Bash Shell ใหม่ของ Windows 10” Chris Hoffman, How-To Geek
ขอขอบคุณเป็นพิเศษกับ Brian Ketelsen, Matt Hernandez, Rich Turner และ Craig Loewen สำหรับความอดทน ความช่วยเหลือ และคำแนะนำในบทความนี้