ฉันควรเก็บแอปพลิเคชันบรรทัดคำสั่งไว้ที่ไหน


46

เมื่อฉันดาวน์โหลดแอปพลิเคชันบรรทัดคำสั่งพวกเขาจะอยู่ใน~/Downloads/ไดเรกทอรีของฉัน แต่ฉันรู้สึกว่ามันผิดที่จะมีแอปพลิเคชันบรรทัดคำสั่งอยู่ ฉันควรจะเก็บแอพพลิเคชั่นบรรทัดคำสั่งไว้ที่ไหนในระบบไฟล์ Mac OS X

/Applications/ยังรู้สึกผิดมันเป็นมากกว่าสำหรับแอปพลิเคชันเดสก์ทอป และให้/bin/เสียงที่มากกว่าสำหรับแอพพลิเคชั่นที่เป็นของ OS X


ฉันเห็นด้วยกับความรู้สึกของคุณว่าการวางสิ่งของโดยตรงใน / bin หรือ / Applications เป็นรูปแบบที่ไม่ดี คำตอบของ Patrix เป็นตำแหน่งที่ยอมรับได้มากที่สุดที่ฉันเคยเห็นสำหรับที่เก็บบรรทัดคำสั่งทั่วไปของโปรแกรมและสคริปต์
bmike


2
ฉันไม่เห็นสิ่งเหล่านี้ซ้ำซ้อนเนื่องจากคำถามที่เชื่อมโยงดูเหมือนจะเกี่ยวกับการเล่นกลตัวเลือกจากบุคคลที่สามหลาย ๆ ตัวและนี่เป็นสิ่งที่บริสุทธิ์กว่า - แอปที่ฉันดาวน์โหลดด้วยตนเองจะไปไหน
bmike

คำตอบ:


44

เนื่องจาก OS X มาจากระบบปฏิบัติการยูนิกซ์คุณจะต้องเก็บไฟล์ระบบไว้/usr/local/binสำหรับแอปพลิเคชันบรรทัดคำสั่งและสคริปต์ที่เป็นของระบบภายในเครื่องและไม่ให้กับผู้ใช้เฉพาะราย คุณอาจต้องสร้างไดเรกทอรีนี้ก่อนโดยการเรียกใช้:

sudo mkdir -p /usr/local/bin

คุณสามารถย้ายแอปพลิเคชันบรรทัดคำสั่งใด ๆ ไปยังโฟลเดอร์นั้นได้โดยเรียกใช้:

sudo mv my-binary /usr/local/bin/

เพื่อให้แน่ใจว่า/usr/local/binเป็นส่วนหนึ่งของเส้นทางการค้นหามาตรฐานของคุณในเทอร์มินัลให้ตรวจสอบเนื้อหา/etc/pathsและเพิ่มหากจำเป็น:

grep -w /usr/local/bin /etc/paths || sudo sh -c 'echo /usr/local/bin >> /etc/paths'

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

ฉันมักจะสร้างไดเรกทอรี bin ในแต่ละโฟลเดอร์ผู้ใช้แล้วซ่อนจาก Finder - แต่คุณสามารถตัดสินใจด้วยตัวเองว่าคุณต้องการซ่อน:

 mkdir ~/bin
 chflags hidden ~/bin

ในกรณีนี้คุณจะต้องให้พา ธ ของผู้ใช้แต่ละรายรวมตำแหน่งนี้ด้วยการแก้ไขสคริปต์เริ่มต้นเชลล์ ( ~/.bash_profileสำหรับ bash ซึ่งเป็นเชลล์มาตรฐาน)

 export PATH=$PATH:~/bin

หรือโดยการเข้ารหัสเส้นทางไปยังแต่ละแอปอย่างหนักเมื่อคุณเรียกใช้


3
นี่เป็นคำแนะนำที่ดีที่สุดและฉันจะให้กับทุกคนที่ถาม ฉันจะเพิ่มเพียง 2 สิ่ง: 1) /etc/launchd.conf อาจเป็นสถานที่ที่ต้องเพิ่มพา ธ 2) แม้ว่าฉันจะใช้ / usr / local / สำหรับ Unix utils ที่ติดตั้งผ่านhomebrewสำหรับเชลล์สคริปต์ของตัวเองฉัน มี ~ / Dropbox / bin / ที่ฉันเพิ่มไปยัง $ PATH ของฉันดังนั้นฉันจึงมีสคริปต์เชลล์ที่กำหนดเองทั้งหมดใน Mac ของฉัน แต่ฉันทำอย่างนั้นนอกเหนือไปจาก / usr / local / bin / ไม่ใช่แทน
TJ Luoma

/ usr / local / bin เป็นจุด UNIX แบบดั้งเดิมสำหรับสคริปต์ของผู้ใช้ซึ่งจะช่วยให้เข้าถึงผู้ใช้อื่น ๆ ในระบบ การวางสคริปต์ไว้ที่นั่นจะทำให้สคริปต์ใน $ PATH ของผู้ใช้ทุกคนอย่างง่ายดาย แต่ฉันเชื่อว่าวิธีMacเนื่องจาก Mac ส่วนใหญ่มีผู้ใช้คนเดียวคือการสร้างไดเรกทอรีทำให้มองไม่เห็นและเพิ่มลงในผู้ใช้เพื่อให้เป็นส่วนหนึ่งของผู้ใช้ $ PATH เป็นตำแหน่งที่เหนือกว่าสำหรับความปลอดภัยและการโยกย้าย มิฉะนั้นคุณต้องจำเกี่ยวกับสิ่งที่คุณทิ้งไว้ใน / usr / local / bin และก็เป็นสิ่งที่ดี ~/binchflags uchg ~/bin~/.bash_profile~/binln -s ~/bin ~/Dropbox/
chillin

7

พิจารณาสร้าง/optไดเรกทอรีซึ่งเป็นอีกตำแหน่งหนึ่งที่ซอฟต์แวร์ Unix แบบกำหนดเองจะปรากฏขึ้นตามแบบแผน


5
/opt/มีประโยชน์มากสำหรับแอปพลิเคชันที่สมบูรณ์ในขณะที่/usr/local/bin/เหมาะสมสำหรับสคริปต์บรรทัดคำสั่งแบบสแตนด์อโลน มันมักจะดีกว่าที่จะใช้/opt/ในกรณีที่ชุดของสคริปต์ที่เกี่ยวข้องทำหน้าที่เป็นห้องสมุด (เช่น/opt/myscriptslib/bin/)
plasmid87

ขอบคุณสำหรับคำแนะนำของคุณ ฉันสร้างโฟลเดอร์ / opt / เพื่อวางซอฟต์แวร์ของฉันและจากนั้นฉันเพิ่งสร้างลิงก์สัญลักษณ์ไปยัง / usr / local / bin สำหรับ executables ทั้งหมด ... จากนั้นไม่จำเป็นต้องเพิ่ม / opt / myspecific-soft ในตัวแปรสภาพแวดล้อมของเส้นทาง .
рüффп
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.