ฉันใหม่สำหรับ OS X ฉันใช้ OS X Lion บน MacBook Pro การอัพเกรด bash shell นั้นปลอดภัยหรือไม่โดยใช้ Homebrew
$ brew install bash
ถ้าปลอดภัยฉันจะทำให้เป็นอินสแตนซ์เริ่มต้นของเชลล์ที่ฉันรันผ่าน Terminal ได้อย่างไร
ขอบคุณ!
ฉันใหม่สำหรับ OS X ฉันใช้ OS X Lion บน MacBook Pro การอัพเกรด bash shell นั้นปลอดภัยหรือไม่โดยใช้ Homebrew
$ brew install bash
ถ้าปลอดภัยฉันจะทำให้เป็นอินสแตนซ์เริ่มต้นของเชลล์ที่ฉันรันผ่าน Terminal ได้อย่างไร
ขอบคุณ!
คำตอบ:
/{,usr/}{,s}bin/
โดยปกติไบนารีในไม่ควรถูกแทนที่ด้วยไฟล์อื่น โปรแกรมอื่น ๆ คาดว่าพวกเขาจะเป็นรุ่นที่มาพร้อมกับ OS X และพวกเขาจะถูกแทนที่ด้วยการอัพเกรดระบบปฏิบัติการ
หลังจากทำงานbrew install bash
คุณสามารถเปลี่ยนเชลล์เริ่มต้นได้อย่างปลอดภัยโดย:
/usr/local/bin/bash
ไปยัง/etc/shells
chsh -s /usr/local/bin/bash
เล่นการตั้งค่าใน Terminal หรือ iTerm 2 ไม่จำเป็นต้องเปลี่ยน ทั้งคู่เป็นค่าเริ่มต้นในการเปิดหน้าต่างใหม่ด้วยล็อกอินเชลล์ของเชลล์เริ่มต้น
เปลือกเริ่มต้นยังสามารถเปลี่ยนจากการตั้งค่าระบบหรือ dscl /var/db/dslocal/nodes/Default/users/$USER.plist
แต่ทั้งหมดสามตัวเลือกเพียงแค่ปรับเปลี่ยน
/etc/shells
จำเป็นต้องมีบิตเกี่ยวกับการแก้ไขเพื่อรวม bash ที่ติดตั้งมาให้ มิฉะนั้น (อย่างน้อยในเครื่องของฉัน) เทอร์มินัลจะปฏิเสธที่จะเริ่มต้น
brew install bash
ทำสิ่งนี้ให้ได้ (เช่นไม่ต้องแก้ไข/etc/shells
)
ฉันอาจจะผิดที่นี่ แต่เท่าที่ฉันรู้ว่าbrew
จะติดตั้งมันเป็นตัวอย่างของตัวเองbash
ตั้งแต่ชงทำงานภายใต้/usr/local/bin
ในขณะที่ค่าเริ่มต้นระบบการทำงานภายใต้/bin
(และ/usr/bin
)
เกี่ยวกับเทอร์มินัลคุณสามารถทำให้เชลล์เปิดด้วยคำสั่งที่กำหนดเองของคุณเอง ไปที่การตั้งค่า> การเริ่มต้นและเลือกหอยเปิดด้วย: คำสั่ง (เส้นทางที่สมบูรณ์) เพียงพิมพ์เส้นทางไปสู่ใหม่bash
และ vuala ของคุณ!
หวังว่ามันจะช่วย!
BTW: สำรองข้อมูล! คำแนะนำที่ดีที่สุดในสถานการณ์นี้!
ก่อนที่คุณจะทำอะไรให้สำรองไฟล์ปัจจุบันของคุณ (แน่นอน แต่สมควรพูดเสมอ)
sudo cp /bin/bash /bin/bash.3.2.bk
จากนั้นสร้าง symlink ให้กับ bash ที่สามารถเรียกทำงานได้ซึ่ง Homebrew ดาวน์โหลด ฉันคิดว่ามันจะอยู่ใน / usr / local / Cellar เช่นนั้น
sudo ln -s /usr/local/Cellar/bash/4.2.10/bin/bash /bin/bash
ตอนนี้ / bin / bash ชี้ไปที่ไฟล์ในไดเรกทอรี usr / local ของคุณ
ฉันคิดว่ามันปลอดภัยถ้าคุณเพิ่งเปิดตัว
brew install bash
จากนั้นเพิ่มเป็นเปลือกเริ่มต้นของคุณ
chsh -s /usr/local/bin/bash
เนื่องจากคุณกำลังแก้ไขผู้ใช้ปัจจุบันของคุณเท่านั้น แต่ผมสังเกตเห็นว่าเริ่มต้นของฉัน~ / .profileคือ
if [ "/bin/bash" == $BASH ]; then
source ~/.bashrc
fi
ดังนั้นจึงต้องมีการอัพเดท ฉันเปลี่ยนเป็น
if [ "bash" == $(basename $BASH) ]; then
source ~/.bashrc
fi
chsh
คนเดียวไม่พอ นอกจากนี้ยังเป็นข้อมูลโค้ด. profile ที่อัปเดตของคุณซึ่งมีลักษณะเหมือนของเดิม
brew install bash
ไม่ต้องการการดำเนินการใด ๆ เพิ่มเติม ด้วยโปรไฟล์ที่อัปเดตที่ฉันแบ่งปันไม่ทำเช่นนั้น ฉันหวังว่านี่จะช่วยผู้อื่นได้