ฉันจะใช้ Bash บน Windows จากเทอร์มินัลรวมของ Visual Studio Code ได้อย่างไร


279

Visual Studio Code บน Windows ใช้ PowerShell เป็นค่าเริ่มต้นเป็นเทอร์มินัลรวม หากคุณต้องการใช้ Bash จาก Visual Studio Code ควรทำตามขั้นตอนอะไรบ้าง


โปรดอ่านstackoverflow.com/questions/43427631/…เพื่อตอบคำถามของคุณ
AKS

คำตอบ:


347

คุณไม่จำเป็นต้องพิมพ์ในพา ธ bash.exe ด้วยตนเองอีกต่อไป คำตอบนี้เลิกใช้แล้ว ตอนนี้คุณสามารถเปลี่ยนไปใช้ทุบตีโดยตรง เพียงตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งคอมไพล์แล้ว


ติดตั้ง Git จากhttps://git-scm.com/download/win

จากนั้นเปิด Visual Studio รหัสและเปิดจานคำสั่งโดยใช้Ctrl+ +Shift Pจากนั้นพิมพ์ "การตั้งค่าผู้ใช้เปิด" แล้วเลือก "การตั้งค่าผู้ใช้เปิด" จากเมนูแบบเลื่อนลง

เพดานคำสั่งรหัส Visual Studio

จากนั้นแท็บนี้จะเปิดขึ้นพร้อมการตั้งค่าเริ่มต้นด้านซ้ายและการตั้งค่าของคุณทางด้านขวา:

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้คัดลอกบรรทัดของรหัสนี้ไปยังหน้าการตั้งค่าของคุณเอง (บานหน้าต่างด้านขวามือ) และบันทึก - "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

หมายเหตุ: "C:\\Program Files\Git\bin\bash.exe"เป็นเส้นทางที่bash.exeไฟล์นั้นอยู่จากการติดตั้ง Git หากคุณกำลังใช้เชลล์ระบบย่อย Windows สำหรับ Linux (WSL) Bash พา ธ จะเป็นเช่นนั้น"C:\Windows\System32\bash.exe"

ตอนนี้กดCtrl+ `เพื่อเปิด terminal จาก Visual Studio Code และคุณจะมี Bash -

ป้อนคำอธิบายภาพที่นี่


1
เหล่านี้เป็นสีเริ่มต้นจากทุบตี Git
Mahade Walid

5
ข้อมูลข่าวสารสองรายการที่อาจเป็นประโยชน์: ตรวจสอบให้แน่ใจว่าคุณได้หลีกเลี่ยงอักขระแบ็กสแลชใน json ของคุณเมื่อเขียนเส้นทาง ตรวจสอบให้แน่ใจด้วยว่าคุณได้รวม git bash เวอร์ชัน 64 บิตไว้ใน vscode ของคุณเนื่องจากรุ่น 32 บิตอาจไม่มีสีตามค่าเริ่มต้น (เพียงลบส่วน "(x86)" ออกจากเส้นทาง)
Lajos Meszaros

2
การเพิ่มใน Lajos หากคุณยังไม่เห็นเทอร์มินัลเปิดให้ลองรีสตาร์ท vscode
adityah

3
ฉันกำลังเผชิญปัญหากับ"terminal.integrated.shell.windows": "C:\\Program Files\\Git\bin\bash.exe"เทอร์มินัลไม่ได้เปิด "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"พยายาม ทำงานอย่างสมบูรณ์แบบสำหรับฉัน
Dharmjeet Kumar

28
FYI ให้แน่ใจว่าคุณเชื่อมโยงไปยังและไม่bash.exe git-bash.exeหลังจะเปิดเทอร์มินัลนอกรหัส VS เป็นหน้าต่างแยกต่างหากในขณะที่bash.exeจะทำงานภายในรหัส VS
Darius

258
  1. ติดตั้ง Git จากhttps://git-scm.com/download/win

  2. เปิด Visual Studio Code แล้วกดCtrl+ ค้างไว้`เพื่อเปิดเครื่อง

    ป้อนคำอธิบายภาพที่นี่

  3. เปิดจานคำสั่งโดยใช้Ctrl+ +ShiftP

  4. ประเภท - เลือกเชลล์เริ่มต้น

  5. เลือก Git Bash จากตัวเลือก

  6. คลิกที่ไอคอน + ในหน้าต่างเทอร์มินัล

  7. เทอร์มินัลใหม่จะเป็นเทอร์มินัล Git Bash ใช้เวลาสักครู่เพื่อโหลด Git Bash

    ป้อนคำอธิบายภาพที่นี่

  8. ตอนนี้คุณสามารถสลับไปมาระหว่างเทอร์มินัลต่างๆเช่นกันจากดรอปดาวน์ในเทอร์มินัล

    ป้อนคำอธิบายภาพที่นี่


5
สิ่งนี้ใช้ได้สำหรับฉัน ฉันลองใช้คำแนะนำอื่น ๆ ทั้งหมดโดยเพิ่มค่าเริ่มต้นด้วยตนเอง แต่มันเพิ่งเปิดหน้าต่างเทอร์มินัลใหม่ทุกครั้ง ขอบคุณมาก
เกลน

3
นี่คือสิ่งที่ฉันกำลังค้นหา ... นี่เป็นคำตอบที่ยอมรับง่ายกว่านี้
Boopathi T

1
อธิบายได้อย่างสมบูรณ์ .. ขอบคุณสำหรับการตอบกลับนี้
SKalariya

หาก ctrl + `ไม่ทำงาน (ในไม่มีอะไรเกิดขึ้น! แม้หลังจากติดตั้งคอมไพล์แล้วตั้งค่าการตั้งค่าผู้ใช้ json) จากนั้นลองทำสิ่งนี้: ctrl + shift + P> Focus Terminal
olisteadman

1
วิธีแก้ปัญหาที่ง่ายขึ้นและเร็วขึ้น
Themelis

80

อัปเดต: Visual Studio Code เวอร์ชันใหม่กว่ามีคำสั่งSelect Default Shellในเมนูพูลดาวน์เทอร์มินัล:

เลือกตัวเลือกเชลล์เริ่มต้น

จำไว้ว่ามันเป็นเพียงแค่แสดงรายการเชลล์ที่อยู่ในตัวแปรสภาพแวดล้อม% PATH% ของคุณ สำหรับกระสุนที่ไม่ได้อยู่ในเส้นทางของคุณดูคำตอบอื่น ๆ

เคล็ดลับเสริม: เมื่อคุณเริ่มทุบตีมันก็จะดำเนินการ.bashrcถ้าคุณมีการเตรียมใช้คำสั่งในการที่คุณจะต้องคัดลอกไป.bash_profile .bashrcมันจำเป็นสำหรับการใช้สภาพแวดล้อมของ Condaใน Git Bash

ก่อนเวอร์ชัน 1.36 (มิถุนายน 2019)

วิธีที่ง่ายที่สุดในขณะนี้ (อย่างน้อยจาก Visual Studio Code 1.22 เปิด) คือการพิมพ์Shift+ Ctrl+ Pเพื่อเปิดCommand Paletteและพิมพ์:

Select Default Shell

ตอนนี้คุณสามารถเลือกเชลล์ที่คุณต้องการระหว่างสิ่งที่พบในเส้นทางของคุณ :

รายการการเลือกเชลล์

สำหรับเชลล์ที่ไม่ได้อยู่ใน% PATH% ของคุณดูคำตอบอื่น ๆ

ดูการอ้างอิงเชลล์ Visual Studio Code ที่สมบูรณ์ มีหลายสิ่งที่เป็นเนื้อ


1
นี่คือคำตอบที่ฉันต้องการ ฉันต้องการใช้ WSL Bash แต่คำตอบอื่น ๆ คือพยายามใช้ทุบตีที่มาพร้อมกับคอมไพล์
ahmadali shafiee

1
มีวิธีการเปิดเชลล์โดยเฉพาะหรือไม่ ... โดยไม่ทำให้เป็น "ค่าเริ่มต้น" ฉันคิดว่ามันสมเหตุสมผลแล้วที่จะ "เปิด" ทุบตี "แค่ครั้งนี้"
Brent Arias

41

กดCtrl+ ค้างไว้`เพื่อเปิดเครื่อง ภายในเทอร์มินัลพิมพ์bashเพื่อใช้ Git Bash ในเทอร์มินัล หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Git Bash ในเครื่องของคุณ

หากคุณต้องการใช้ PowerShell อีกครั้งเพียงแค่พิมพ์powershellเทอร์มินัล หากต้องการใช้บรรทัดคำสั่ง Windows ให้พิมพ์cmdเทอร์มินัล

การตั้งค่าที่คุณเลือกจะถูกใช้เป็นค่าเริ่มต้น


4
สิ่งนี้จะเพิ่มมูลค่าให้กับคำตอบที่เลือก
pjdupreez

1
หากต้องการ "เปลี่ยนกลับไปที่ PowerShell" คุณอาจต้องเปลี่ยนexitจาก bash shell ที่อยู่ในเชลล์เริ่มต้นจากนั้นพิมพ์powershellเนื่องจาก bash ไม่ทราบว่า PowerShell คืออะไร
ลูคัสมอร์แกน

13

สำหรับฉันแล้วชุดต่อไปนี้ใช้งานได้เท่านั้น!

"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\git-cmd.exe",
"terminal.integrated.shellArgs.windows": [
  "--command=usr/bin/bash.exe",
  "-l",
  "-i"
]

ด้วย git-bash.exe ในฐานะ...shell.windowsBash ทุกครั้งที่เปิดนอก Visual Studio !!


1
สิ่งนี้ช่วยฉันได้จริงๆ ฉันทุบตีทำงานตามคำตอบก่อนหน้าข้างต้น แต่ฉันทำนามแฝงทุบตีและคอมไพล์ของฉันทั้งหมด สิ่งนี้ซื้อมันกลับมา ขอบคุณ
David Martin

1
นี่คือสิ่งที่ทำงานกับฉัน: "terminal.integrated.shell.windows": "C: \\ โปรแกรมไฟล์ \\ Git \\ bin \\ bash.exe", "terminal.integrated.shellArgs.windows": ["- -login "," -i "]
Belal Mohammed

วิธีนี้ใช้ได้ผลสำหรับฉันเช่นกัน ข้อแม้ที่จะเพิ่มคือในกรณีของฉันเพื่อลดความล่าช้าด้วย gitbash ตามโพสต์นี้stackoverflow.com/questions/32232978/…และตั้งค่าตัวแปรสภาพแวดล้อม HOME ใหม่ใน windows เพื่อให้มันทำงานอย่างถูกต้องใน VSCode คำตอบข้างต้นได้ผลสมบูรณ์
Rob B

13

สิ่งต่าง ๆ มีการเปลี่ยนแปลงเล็กน้อยเนื่องจากการปรับปรุงล่าสุดใน Visual Studio Code ขั้นตอนต่อไปนี้ใช้ได้สำหรับฉัน

  1. กดCtrl+ Shift+ Pเพื่อเปิดเพดานคำสั่ง Visual Studio Code

  2. พิมพ์>preferences: Open Settings (JSON)ในพื้นที่ข้อความ

  3. เพิ่มบรรทัดต่อไปนี้ที่ท้ายไฟล์ JSON ซึ่งแสดงในบานหน้าต่างด้านขวาของคุณ

    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
  4. ปิดและเปิดอินสแตนซ์ของรหัส Visual Studio ของคุณอีกครั้ง


10

ฉันติดตามบทเรียนนี้จาก Paul DeCarlo เพื่อใช้ Bash จากระบบย่อย Windows สำหรับ Linux (WSL) แทนสิ่งที่มาพร้อมกับ Git Bash สำหรับ Windows เป็นขั้นตอนเดียวกับข้างต้นในคำตอบ แต่ใช้ด้านล่างในการตั้งค่าผู้ใช้ของคุณแทน

"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",

สิ่งนี้ใช้ได้กับฉันในครั้งแรก ... ซึ่งหายากสำหรับสิ่งนี้


1
หายากแน่นอน ที่ทันสมัย
Christopher Painter

7

อย่างน้อยสำหรับฉันนี้จะทำให้ Visual Studio Code เปิดหน้าต่าง Bash ใหม่เป็นเทอร์มินัลภายนอก

หากคุณต้องการสภาพแวดล้อมแบบรวมคุณจะต้องชี้ไปที่sh.exeไฟล์ภายในbinโฟลเดอร์ของการติดตั้ง Git ของคุณ

C:\\<my-git-install>\\bin\\sh.exeดังนั้นการกำหนดค่าควรจะพูดว่า


5

ขึ้นอยู่กับว่าคุณได้ติดตั้ง Git Bash ในผู้ใช้ปัจจุบันเท่านั้นหรือผู้ใช้ทั้งหมด:

หากมีการติดตั้งกับผู้ใช้ทุกคนให้ใส่"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"การตั้งค่าผู้ใช้ของคุณ ( Ctrl+ Comma)

หากมีการติดตั้งเฉพาะผู้ใช้ปัจจุบันให้ใส่"terminal.integrated.shell.windows": "C:\\Users\\<name of your user>\\AppData\\Local\\Programs\\Git\\bin\\bash.exe"การตั้งค่าผู้ใช้ของคุณ ( Ctrl+ Comma)

หากวิธีการข้างต้นไม่ทำงานคุณควรลองวิธีแก้ปัญหาของ Christerซึ่งระบุว่า -

หากคุณต้องการสภาพแวดล้อมแบบรวมคุณจะต้องชี้ไปที่sh.exeไฟล์ภายในbinโฟลเดอร์ของการติดตั้ง Git ของคุณ

C:\\<my-git-install>\\bin\\sh.exeดังนั้นการกำหนดค่าควรจะพูดว่า

หมายเหตุ: sh.exe และ bash.exe นั้นจะเหมือนกันทั้งหมดกับฉัน ไม่ควรมีความแตกต่างระหว่างพวกเขา


4

เพิ่มGit\binไดเร็กทอรีให้กับPathตัวแปรสภาวะแวดล้อม ไดเรกทอรีเป็น%ProgramFiles%\Git\binค่าเริ่มต้น ด้วยวิธีนี้คุณสามารถเข้าถึง Git Bash ด้วยการพิมพ์ bashในทุกเทอร์มินัลรวมถึงเทอร์มินัลรวมของ Visual Studio Code

วิธีตั้งค่าตัวแปรพา ธ และสภาพแวดล้อมใน Windows


4

ฉันได้ตั้งค่าcondaสภาพแวดล้อมมากมายบนWSL(Bash บน Ubuntu บน Windows) ดังนั้นฉันต้องการใช้การติดตั้ง Bash เดียวกันกับ Visual Studio Code

ต้องการทำเช่นนั้นฉันเพิ่งมีการระบุเส้นทางของการปฏิบัติการทุบตีนี้โดยเฉพาะ (คนแทนของGit-Bash ) กับการตั้งค่า Visual Studio ของรหัส:

"terminal.integrated.shell.windows": "C:\\Windows\\System32\\bash.exe"


PS : เพื่อให้แน่ใจว่าอูบุนตูของคุณติดตั้งโปรแกรมปฏิบัติการ Bash บนเครื่อง Windows ของคุณเปิดCommand prompt(ค้นหา:) cmdและเรียกใช้:

where bash.exe


4

คำตอบนี้จะคล้ายกับด้านบนลงมติคำตอบ แต่มีความแตกต่างที่สำคัญมากคำตอบก่อนหน้านี้เกี่ยวกับคำถามนี้มุ่งเน้นในการเรียกใช้Git ทุบตีในขณะที่คำตอบของฉันมุ่งเน้นไปที่การทำงานWSL ทุบตี

  1. เปิดใช้งาน Windows Subsystem สำหรับ Linux บนเครื่อง Windows 10 ของคุณ

  2. เปิด Visual Studio Code แล้วกดค้างCtrl + `เพื่อเปิดเทอร์มินัล

  3. Ctrl + Shift + Pเปิดจานคำสั่งโดยใช้

  4. พิมพ์ Select Default Shell-

  5. เลือกWSL Bash(ไม่Git Bash) จากตัวเลือก

ป้อนคำอธิบายรูปภาพที่นี่

  1. คลิกที่+ไอคอนในหน้าต่างเทอร์มินัล เทอร์มินัลใหม่ตอนนี้จะเป็นเทอร์มินัล WSL Bash!

4

รหัส VS ล่าสุด:

  • หากคุณไม่เห็น settings.json ให้ไปที่เมนู File -> Preferences -> Settings (หรือกดCtrl+,)
  • การตั้งค่าปรากฏขึ้นให้ดูสองแท็บผู้ใช้ (เลือกโดยค่าเริ่มต้น) และพื้นที่ทำงาน ไปที่ผู้ใช้ -> คุณสมบัติ -> เทอร์มินัล
  • edit in settings.jsonส่วนเทอร์มิปรากฏเห็นการเชื่อมโยง คลิกและเพิ่ม"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
  • บันทึกและรีสตาร์ทรหัส VS

ขั้ว Bash จะสะท้อนที่ขั้ว


1

ฉันบังเอิญได้รับคำปรึกษาจากบริษัท Fortune 500และเป็นเรื่องเศร้าที่Windows 7และไม่มีสิทธิ์ของผู้ดูแลระบบ ดังนั้น Node.js, Npm, Visual Studio Code ฯลฯ ถูกผลักไปยังเครื่องของฉัน - ฉันไม่สามารถเปลี่ยนอะไรได้มากมาย ...

สำหรับคอมพิวเตอร์เครื่องนี้ที่ใช้ Windows 7:

ด้านล่างเป็นการตั้งค่าใหม่ของฉัน คนที่ไม่ทำงานนั้นถูกคอมเม้นท์

{
    "update.channel": "none",
    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"
    //"terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe"
}

0

ฉันลองคำตอบข้างต้นตั้งแต่ vscode 1.42.1 และพวกเขาก็ทำงานเช่นกันเพื่อรับขั้ว bash git ให้ฉัน ดังนั้นบรรทัดล่างการตั้งค่านี้ใช้สำหรับเปิดเปลือก bash จากเทอร์มินัล:

"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe"

อย่างไรก็ตามมันมีผลข้างเคียงที่ไม่พึงประสงค์ของการเป็นเชลล์ที่ใช้ในการสร้างสิ่งต่าง ๆ และที่ทำลายห่วงโซ่ MS C ++ เนื่องจาก\อักขระที่ใช้สำหรับตัวคั่นเส้นทางเข้าใจโดยทุบตีเป็นอักขระหลบหนี การแก้ไขที่สมบูรณ์สำหรับฉันนั้นทำให้ฉันต้องเพิ่มตัวแปรพิเศษนี้โดยตั้งเป็น PowerShell:

"terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe"

ตอนนี้ฉันสามารถมี terminal bash ของฉันและ Ctrl-Shift-BหรือF5ทำงานได้โดยไม่มีปัญหา

Oh, และเป็นผู้โพสต์อื่น ๆ ที่กล่าวถึงแหล่งที่มาสำหรับข้อมูลนี้เป็นเอกสาร VSCode ของ


0

เชลล์และcode [args]การสนับสนุนที่แยกออกหรือไม่เกี่ยวข้องมีอะไรบ้าง

ในขณะที่คำตอบอื่น ๆ พูดคุยเกี่ยวกับวิธีกำหนดค่าและใช้การbashสนับสนุนเทอร์มินัลVScode แบบรวมของ VScode พวกเขาไม่ได้แก้ปัญหาของ "เชลล์ที่แยกออก": เชลล์ที่ไม่ได้เปิดตัวจากภายใน VScode หรือที่ใดก็ได้ "ตัดการเชื่อมต่อ" จากเซิร์ฟเวอร์ VScode อินสแตนซ์ที่เกี่ยวข้องกับ IDE

กระสุนดังกล่าวสามารถให้ข้อผิดพลาดเช่น:

Command is only available in WSL or inside a Visual Studio Code terminal.

หรือ...

Unable to connect to VS Code server. Error in request

นี่คือสคริปต์ที่ทำให้การแก้ไขปัญหานี้ง่ายขึ้น

ฉันใช้รายวันนี้เพื่อเชื่อมต่อเชลล์ในtmuxเซสชันด้วยอินสแตนซ์เซิร์ฟเวอร์ VScode ที่เฉพาะเจาะจงหรือเพื่อแก้ไขเชลล์รวมที่แยกออกจากการโฮสต์ IDE

#!/bin/bash
# codesrv-connect
#
#  Purpose:
#     Copies the vscode connection environment from one shell to another, so that you can use the
#     vscode integrated terminal's "code [args]" command to communicate with that instance of vscode
#     from an unrelated shell.
#
#  Usage:
#    1.  Open an integrated terminal in vscode, and run codesrv-connect
#    2.  In the target shell, cd to the same directory and run
#       ". .codesrv-connect", or follow the instruction printed by codesrv-connect.
#
#  Setup:
#    Put "codesrv-connect somewhere on your PATH (e.g. ~/bin)"
#
#  Cleanup:
#    - Delete abandoned .codesrv-connect files when their vscode sessions die.
#    - Do not add .codesrv-connect files to git repositories.
#
#  Notes:
#     The VSCODE_IPC_HOOK_CLI environment variable points to a socket which is rather volatile, while the long path for the 'code' alias is more stable: vscode doesn't change the latter even across a "code -r ." reload.  But the former is easily detached and so you need a fresh value if that happens.  This is what codesrv-connect does: it captures the value of these two and writes them to .codesrv-connect in the current dir.
#
#   Verinfo: v1.0.0 - les.matheson@gmail.com - 2020-03-31
#

function errExit {
    echo "ERROR: $@" >&2
    exit 1
}

[[ -S $VSCODE_IPC_HOOK_CLI ]] || errExit "VSCODE_IPC_HOOK_CLI not defined or not a pipe [$VSCODE_IPC_HOOK_CLI]"
if [[ $(which code) != *vscode-server* ]]; then
    errExit "The 'code' command doesn't refer to something under .vscode-server: $(type -a code)"
fi
cat <<EOF >.codesrv-connect
# Temp file created by $(which codesrv-connect): source this into your working shell like '. .codesrv-connect'
# ( git hint: add ".codesrv-connect" to .gitignore )
#
cd "$PWD"
if ! test -S "$VSCODE_IPC_HOOK_CLI"; then
    echo "ERROR: $VSCODE_IPC_HOOK_CLI not a socket. Dead session."
else
    export VSCODE_IPC_HOOK_CLI="$VSCODE_IPC_HOOK_CLI"
    alias code=$(which code)
    echo "Done: the 'code' command will talk to socket \"$VSCODE_IPC_HOOK_CLI\" now."
    echo "You can delete .codesrv-connect when the vscode server context dies, or reuse it in other shells until then."
fi
EOF

echo "# OK: run this to connect to vscode server in a destination shell:"
echo ". $PWD/.codesrv-connect"

0

หากคุณมี"bash", "powershell"และ"cmd" CLI's อยู่แล้วและมีการตั้งค่าเส้นทางที่ถูกต้องการสลับจาก CLI หนึ่งไปยังอีกสามารถทำได้โดยวิธีต่อไปนี้

Ctrl + ' : เปิดหน้าต่างเทอร์มินัลด้วยค่าเริ่มต้นของ CLI

bash + enter: เปลี่ยนจาก CLI เริ่มต้น / ปัจจุบันไปเป็นทุบตี CLI

powershell + enter: เปลี่ยนจาก CLI เริ่มต้น / ปัจจุบันของคุณเป็นpowershell CLI

cmd + enter: เปลี่ยนจาก CLI เริ่มต้น / ปัจจุบันของคุณเป็นcmd CLI

VS Code เวอร์ชั่นที่ฉันใช้คือ 1.45.0

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.