$ PATH หมายถึงอะไร


28

ฉันพยายามที่จะติดตั้งบางสิ่งบางอย่างและระหว่างขั้นตอนมีสิ่งนี้:

"วางลงบนของคุณ$PATH"

สิ่งนี้หมายความว่า? นั่นคืออะไร?

ฉันค้นหาทั้งไซต์นี้และบน Google แล้ว แต่ทุกคนก็ยอมแพ้!


2
มีความเป็นไปได้ที่ซ้ำกันของวิธีเพิ่มไดเรกทอรีในเส้นทางของฉัน
muru

2
@muru ไม่ฉันได้อ่านคำถามนั้นแล้วและมันก็ไม่มีอะไรเหมือนกันกับฉัน คำถามนี้ก็ไม่ได้มีประโยชน์เลย
อดัม

4
@muru ฉันคิดว่าคำถามไม่ได้เกี่ยวกับวิธีเพิ่ม (หรือฉันอาจเข้าใจผิดว่ามีความหมายโดย "วางไว้บน $ PATH ของคุณ")
Jacob Vlijm

1
@JacobVlijm คุณพูดถูก
อดัม

2
ฉันเห็น. Alright ที่เกี่ยวข้อง askubuntu.com/q/141718/158442
muru

คำตอบ:


24

ทำงานใน terminal:

echo $PATH

หรือ

printf "%s\n" "$PATH"

สิ่งที่คุณเห็นคือรายการไดเรกทอรีดูเหมือนว่า:

/home/jacob/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

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

ผู้บริหารใน$PATHไม่ควรมีนามสกุลภาษาตามแบบแผน (แม้ว่าพวกเขาจะทำงาน)

การแก้ไขตัวแปร $ PATH ของคุณ

คุณสามารถ (อย่างถาวร) เพิ่มไดเรกทอรีไปยัง$PATHโดยเพิ่มบรรทัดต่อไปนี้ใน~/.profileไฟล์ของคุณ(มองไม่เห็นโดยค่าเริ่มต้นกดCtrl+ Hในตัวจัดการไฟล์เพื่อให้มองเห็นได้):

export PATH=$PATH:/path/to/dir

ข้อมูลที่เป็นประโยชน์เพิ่มเติมเกี่ยวกับตัวแปรสภาพแวดล้อม

(เช่น$PATH) สามารถพบได้ที่นี่ (ขอบคุณสำหรับคำแนะนำ @Letizia)


เราสามารถแนะนำวิธีการเปลี่ยนเป็น. bashrc PATH = $ PATH: / path / you / want หรือใน. profile คุณคิดอย่างไร
Lety

และนี่คือลิงค์ที่มีประโยชน์สำหรับผู้เริ่มต้น
Lety

@ Latizia ฉันต้องการคนแรก คุณลบคำตอบของคุณหรือไม่ เราสวยมากในเวลาเดียวกัน เราจะได้ทำรวมกันแพร่กระจายอย่าง :)
จาค็อบ Vlijm

ใช่ฉันทำไปแล้วคำตอบของฉันถูกลบออกและฉันคิดว่านั่นจะเป็นประโยชน์ต่อคุณมากขึ้น คุณคิดอย่างไรเกี่ยวกับความคิดเห็นของฉัน
Lety

@Letizia ความคิดเห็น = สมบูรณ์แบบฉันจะแก้ไข ขอบคุณ!
Jacob Vlijm

6

$PATHเป็นที่ตั้งของไฟล์ที่เกี่ยวข้องกับ ตัวแปรสภาพแวดล้อม

เมื่อหนึ่งพิมพ์คำสั่งเพื่อเรียกใช้ระบบจะค้นหามันในไดเรกทอรีที่ระบุโดยตามPATHลำดับที่ระบุ

คุณสามารถดูไดเรกทอรีที่ระบุโดยการพิมพ์echo $PATHใน terminal

สมมติว่ามีไฟล์ปฏิบัติการfoobar01.shอยู่ที่/home/user/foo1/foo2/foobar01.shคุณต้องการดำเนินการเป็นประจำ การพิมพ์ "เส้นทาง" ทั้งหมดจะใช้เวลานาน ดังนั้นเราจึงเพิ่มไดเรกทอรีใน$PATHตัวแปรและเราสามารถดำเนินการfoobar.shโดยตรงโดยไม่ต้องระบุเส้นทาง

คุณสามารถเพิ่มลงในได้$PATHโดยพิมพ์คำสั่งต่อไปนี้

export PATH=$PATH:/home/user/foo1/foo2


2

ฉันคิดว่าคุณมาจากพื้นหลังของ Windows (ขออภัยหากไม่เป็นจริง) ในเงื่อนไขของคนธรรมดาพา ธ (หรือเส้นทางการค้นหา) คือรายการของไดเรกทอรีที่จะค้นหาสิ่งที่คุณพิมพ์บนบรรทัดคำสั่ง หากคุณพิมพ์คำสั่งในตัวเช่น ls มันจะค้นหารายการไดเรกทอรีที่ระบุ คุณสามารถค้นหาเส้นทางของคุณโดยพิมพ์ echo $ PATH นี่คือความแตกต่างอย่างหนึ่งระหว่าง Windows และ * ระวัง: ตามค่าเริ่มต้น Windows จะค้นหาไฟล์ที่เรียกใช้งานได้ในไดเรกทอรีปัจจุบันเสมอ ตัวอย่างเช่นถ้าคุณมีไฟล์ชื่อ uptime.bat ใน c: \ myscripts และคุณ cd c: \ myscripts แล้วพิมพ์เป็น uptime มันจะทำงาน อย่างไรก็ตามใน * ระวังเส้นทางจะได้รับการพิจารณาและพบว่าปฏิบัติการ (ถ้ามี)

หากคุณเก็บสคริปต์ของคุณไว้ในไดเรกทอรีที่เรียกว่า / home / teresa / สคริปต์เพื่อเรียกใช้งานสคริปต์เหล่านั้นคุณจะต้องระบุเส้นทางแบบเต็มไปยังไดเรกทอรีนั้น ตัวอย่าง: / เหลา / teresa / checkHost รูปแบบจะเป็น cd / home / teresa จากนั้นพิมพ์. / checkHost (หมายเหตุ. / ซึ่งหมายความว่าคุณกำลังขอให้ไฟล์ทำงานจากไดเรกทอรีปัจจุบันอย่างชัดเจน

เพื่อหลีกเลี่ยงปัญหานี้คุณสามารถพิมพ์ได้

ส่งออก PATH = $ PATH: / home / teresa / สคริปต์

ซึ่งหมายความว่านอกเหนือจากเส้นทางที่มีอยู่แล้วในขณะนี้ยังค้นหาใน / เหลา / teresa / สคริปต์ อย่างไรก็ตามปัญหานี้คือเมื่อคุณออกจากระบบการตั้งค่านี้จะหายไป ดังนั้นคุณควรแก้ไขไฟล์ที่ซ่อนอยู่ ~ / .bashrc ค้นหาบรรทัด PATH ที่นั่นและต่อท้ายไฟล์นั้น ฉันสมมติว่าคุณใช้ทุบตี ในกรณีของเชลล์อื่น ๆ ไวยากรณ์และไฟล์ต่างกัน

ในฐานะผู้ใช้ใหม่มันดึงดูดมากที่จะมี ในเส้นทางการค้นหาซึ่งโดยทั่วไปหมายความว่ายังค้นหาในไดเรกทอรีปัจจุบัน อย่างไรก็ตามนั่นไม่ถือเป็นแนวปฏิบัติที่ดีสำหรับเหตุผลที่กล่าวถึงในที่อื่น

HTH

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