การลบโปรแกรมอรรถประโยชน์บรรทัดคำสั่งในตัวออกจาก PATH, zsh


3

ตกลงดังนั้นฉันเป็นผู้ใช้พลังงาน Linux ฉันรู้สึกเหมือนอยู่บ้านมากที่สุดเมื่อฉันเข้าถึงบรรทัดคำสั่งและฉันคุ้นเคยกับการใช้ coreutils ของ GNU มากตอนนี้ฉันได้ติดตั้ง coreutils GNU Mac OS X ใช้ Homebrew, ฉันจะไปลบ coreutils ในตัวที่วานิลลา Mac OS X มาด้วยได้อย่างไร?

โปรดจำไว้ว่าฉันกำลังใช้ zsh ดังนั้นเมื่อฉันกำหนดเส้นทางไปยังสิ่งที่ฉันทำเช่นนี้:

path=(/usr/local/bin ~/.gem/ruby/2.0.0/bin ~/.nvm/bin ~/bin /bin $path)

ฉันอยากจะพูด

รวมทุกอย่างที่มีอยู่ในเส้นทางปัจจุบันในเส้นทางใหม่ไม่รวมไฟล์เหล่านี้: /usr/bin/ls, /usr/bin/grep...

คำตอบ:


4

เพิ่มสิ่งต่อไปนี้ลงในพา ธ ของคุณเพื่อแทนที่เครื่องมือ OS X ด้วย Homebrew Coreutils:

$(brew --prefix coreutils)/libexec/gnubin

ไวยากรณ์ต่อ zsh ...

path=($(brew --prefix coreutils)/libexec/gnubin $path)

ไม่เพียงแค่พูดเท่านั้น brew install everything from now on in 'coreutils' นั่นไม่ใช่สิ่งที่ฉันต้องการ ฉันต้องการบางอย่างที่บอกว่า include everything in '/usr/bin' EXCEPT for this list of files
Alexej Magura

1
@AlexejMagura กำลังเพิ่ม $(brew --prefix coreutils)/libexec/gnubin ไปยัง เส้นทางที่คุณมีอยู่ จะหมายความว่าเครื่องมือ GNU ใด ๆ จะแทนที่เครื่องมือที่เกี่ยวข้องที่พบใน / usr / bin หากไม่มีอยู่ในถังขยะของ GNU จะใช้ / usr / bin
grg

ดูเหมือนจะไม่ทำงาน การเพิ่มสิ่งนั้นลงในพา ธ ไม่ทำอะไรเลยแม้ว่าฉันจะเพิ่มเข้าไป $path.
Alexej Magura

2
@AlexejMagura การเพิ่มมันหลังจากเส้นทางปัจจุบันของคุณ (เช่น $ PATH) ไม่สามารถใช้งานได้ - จะค้นหาตามลำดับที่ระบุใน $ PATH ดังนั้นถัง GNU ต้องเป็นรายการแรกใน $ PATH หรืออย่างน้อยก็ก่อน ตำแหน่งที่คุณพยายามแทนที่
grg

4

ขั้นแรกคุณไม่ต้องการลบเครื่องมือบรรทัดคำสั่งใด ๆ ที่แอปเปิ้ลนำเสนอเว้นแต่คุณต้องการระบบที่ไม่เสถียร อย่างไรก็ตามใน Unix / Linux แบบดั้งเดิมคุณสามารถตั้งค่าคำสั่งพา ธ เพื่อตรวจสอบ /usr/local/bin ก่อนอื่นจึงจะติดตั้งระบบสาธารณูปโภค (ค่าเริ่มต้นสำหรับ homebrew) ก่อน /usr/bin (หรือ /bin ) ปัญหาที่เหลืออยู่ในเชลล์สคริปต์ - คุณต้องชัดเจนเนื่องจากอาจละเว้น $ PATH ของคุณ

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