• รัน ยูทิลิตีแกนหลักสไตล์ 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

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น