ตัวแปรเส้นทางได้รับการรีเซ็ตเสมอ จะแก้ไขได้อย่างไร?


9

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

คุณรู้วิธีแก้ไขปัญหานี้หรือไม่?

เพราะเมื่อฉันต้องการเริ่มต้นสคริปต์บางคำสั่งด้วยคำสั่งเทอร์มินัลฉันไม่ต้องการขยายตัวแปร PATH ทุกครั้งก่อน ...


1
ใส่ไว้ในของคุณ.bashrc?
gniourf_gniourf

ทำอย่างไร ฉันใหม่บน Linux;)
Jenne

2
เปิด.bashrcไฟล์ของคุณอย่างนั้น: gedit ~/.bashrcและวางสิ่งที่คุณต้องการในนั้น (ที่ด้านล่างของไฟล์จะดีกว่า) เช่นPATH="~/my/cool/path/:$PATH"และส่งออกตัวแปรนี้: หลังจากบรรทัดที่คุณเพิ่งป้อนให้ใส่export PATHแล้วบันทึกไฟล์จากนั้นปิดเทอร์มินัลแล้วเปิดใหม่ มันและตอนนี้สิ่งที่คุณเรียกใช้ในโปรแกรม~/my/cool/pathจะพบ
gniourf_gniourf

ฉันเขียนขึ้นเป็นคำตอบเต็มรูปแบบสำหรับคุณ ...:)
gniourf_gniourf

เป็นไปได้ที่ซ้ำกันของวิธีเพิ่มไดเรกทอรีไปยัง PATH
David Foerster

คำตอบ:


15

ฉันเข้าใจว่าคุณมีไฟล์ปฏิบัติการบางไฟล์ในโฟลเดอร์โฮมของคุณเช่นใน~/binและคุณต้องการที่จะสามารถรันได้โดยไม่ต้องพิมพ์พา ธ เต็ม~/bin/my_cool_executableเสมอ

คุณสังเกตเห็นแล้วว่าการเข้าสู่PATH=~/bin:$PATHเครื่องเทอร์มินัลทำให้สิ่งต่าง ๆ ใช้งานได้ ... แต่จนกว่าคุณจะปิดเครื่อง เมื่อคุณเปิดขึ้นมาใหม่PATHตัวแปรเก่าของคุณจะถูกรีเซ็ตเป็นค่าดั้งเดิม โดยวิธีการที่ฉันคิดว่าคุณรู้วิธีการได้ตลอดเวลาตรวจสอบค่าของPATHตัวแปร: ดังนี้:

echo "$PATH"

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

gedit ~/.bashrc

นี่เป็นการเปิดตัวgeditแก้ไข เลื่อนไปที่ท้ายไฟล์และเพิ่ม:

# Added by me on 2013/06/24
PATH=~/bin:$PATH
export PATH

geditและบันทึกไฟล์และเลิก จากนั้นปิดเครื่องของคุณและเปิดเครื่องใหม่ ตอนนี้PATHตัวแปรของคุณควร~/binอยู่ข้างหน้ามันเพื่อให้คำสั่งของคุณใน~/binนั้นสามารถเข้าถึงได้โดยไม่ต้องพิมพ์พา ธ เต็ม echo "$PATH"และคุณรู้ว่าวิธีการตรวจสอบว่า

สนุก!

การเตือน มันถือว่าเป็นการปฏิบัติที่ไม่ดีและมีความเสี่ยงด้านความปลอดภัยที่จะใส่.ในPATHตัวแปรของคุณ


นั่นเป็นสิ่งที่ดีจริงๆ แต่ตอนนี้ฉันไม่สามารถเริ่มโปรแกรมได้เมื่อฉันรูต คุณรู้สาเหตุและวิธีการแก้ไขที่? :)
Jenne

ในกรณีนี้ตัวเลือกหนึ่งคือการใส่โปรแกรมของคุณ/usr/local/binแทนที่จะเล่นซอกับPATHตัวแปร ... หรือใน/usr/local/sbinกรณีที่รูทต้องเข้าถึงได้โดยรูทเท่านั้น
gniourf_gniourf

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