Coreutils สำหรับ Windows
(github.com/microsoft)- รัน ยูทิลิตีแกนหลักสไตล์ UNIX บน Windows แบบเนทีฟ ทำให้สามารถใช้คำสั่งและไปป์ไลน์ชุดเดียวกับที่เคยใช้บน Linux/macOS/WSL ได้เหมือนเดิม
- เป็นบิลด์ที่ Microsoft ดูแล โดยรวม uutils/coreutils, findutils, grep ไว้เป็น มัลติคอลไบนารี เดียว
- คำสั่ง/แฟลก/ไปป์ไลน์แบบเดียวกันทำงานในลักษณะเดียวกัน จึงสามารถ ย้ายสคริปต์เดิมมาใช้ได้โดยไม่ต้องแปลง
- เป้าหมายคือทำให้การย้ายไปมาระหว่าง Linux/macOS/WSL/คอนเทนเนอร์/Windows เป็นไปอย่าง ไร้แรงเสียดทาน
- ต้องใช้ PowerShell 7.4 ขึ้นไป (แนะนำ 7.6 ขึ้นไปเพื่อรองรับ
~)- บางคำสั่งมีชื่อชนกับคำสั่งในตัวของ CMD และ PowerShell ทำให้การจะรันคำสั่งใดขึ้นอยู่กับ ลำดับใน PATH และตาราง alias
- คำสั่งที่ไม่มีให้:
dir/expand/more(ชนกับคำสั่ง DOS แบบฝังตัว),kill(ไม่มีสัญญาณ),timeout(ขึ้นกับkill),whoami(ชนกับคำสั่งในตัวของ Windows) findและsortเป็นพอร์ตแบบรวมของคำสั่ง DOS ดั้งเดิม ส่วนhostnameเป็นซูเปอร์เซ็ตของคำสั่งในตัวของ Windows
- มี ความแตกต่างของสภาพแวดล้อมบน Windows
- ใช้
NULแทน/dev/null, ไม่รองรับสัญญาณแบบ POSIX (ใช้ได้แค่Ctrl+C) - ตัวคั่นพาธใช้ได้ทั้ง
/และ\\ส่วนสิทธิ์ไฟล์อิง ACL ไม่ใช่บิตแบบ POSIX - การขึ้นบรรทัดใหม่แบบ CRLF ส่วนใหญ่จัดการให้แบบโปร่งใส (transparently) แต่คำสั่งที่ทำงานระดับไบต์อย่าง
uniqอาจมีความแตกต่าง - การอ่าน symbolic link ทำได้ตามปกติ แต่การสร้าง symbolic link ใหม่ต้องใช้ โหมดนักพัฒนา หรือเทอร์มินัลที่ยกระดับสิทธิ์
- ใช้
- แนวคิดที่เป็น POSIX โดยเฉพาะ (
chmod,chown,id,whoเป็นต้น) และคำสั่งที่ไม่จำเป็นบน Windows (dircolors,shred,unameเป็นต้น) ถูกตัดออกโดยตั้งใจ - สัญญาอนุญาตแบบ MIT : พัฒนาด้วย Rust + PowerShell + Inno Setup
ยังไม่มีความคิดเห็น