ฉันรู้ว่าฉันสามารถตั้งค่า "Shells open with" ในการตั้งค่าเทอร์มินัล แต่ฉันอยากรู้ว่ามีระบบการตั้งค่านี้ (คล้ายกับการปรับปรุง / etc / passwd ใน Unixes บางอย่าง)
ฉันรู้ว่าฉันสามารถตั้งค่า "Shells open with" ในการตั้งค่าเทอร์มินัล แต่ฉันอยากรู้ว่ามีระบบการตั้งค่านี้ (คล้ายกับการปรับปรุง / etc / passwd ใน Unixes บางอย่าง)
คำตอบ:
ใช้chshยูทิลิตี้เช่นนี้:
chsh -s bash
Apple ได้เปลี่ยนแปลงchshเล็กน้อยใน Mac OS X เปรียบเทียบกับตัวอย่างที่chshคุณเห็นใน Linux คุณสามารถอ่านข้อมูลเกี่ยวกับพวกเขาในchsh Mac OS X หน้าคน
โปรดทราบว่าคุณจะได้รับอนุญาตให้เปลี่ยนเป็นเชลล์ที่อยู่ในรายการ/etc/shellsเท่านั้น นี้เป็นปกติดี แต่มันหมายความว่าหากคุณต้องการติดตั้งทุบตี 4 (จาก Homebrew, MacPorts หรือการรวบรวมของคุณเอง) /etc/shellsคุณจะต้องเพิ่มบรรทัดให้ (ฉันวิ่งเข้าไปในไม่กี่สัปดาห์ที่ผ่านมาและคิดว่ามันอาจช่วยให้คนอื่นรู้ ...
แก้ไข : Tim Smithชี้ให้เห็นว่าคุณสามารถหลีกเลี่ยง/etc/shellsข้อ จำกัด ได้ถ้าคุณวิ่งchshผ่านรูsudoต เช่นsudo chsh -s /usr/local/bin/my_shell $USERจะทำงานแม้ว่าจะไม่ได้อยู่ในmy_shell /etc/shellsฉันชอบที่จะแก้ไข/etc/shellsแต่ในท้ายที่สุดมันเป็นการใช้งานsudoอย่างใดอย่างหนึ่งเนื่องจากคุณไม่สามารถแก้ไข/etc/shellsในฐานะผู้ใช้ทั่วไปได้ ดังนั้นอาจจะหกหกครึ่งครึ่ง
/etc/shellsถ้าคุณไม่ต้องทำ เพื่อความมีสติฉันชอบที่จะเก็บไฟล์ระบบไว้เหมือนเดิม
/etc/shellsเป็นไฟล์บนระบบที่กำหนดเชลล์ที่รู้จัก ฉันเปลี่ยนไฟล์นั้นเพราะฉันต้องการเพิ่มเชลล์ลงในรายการเชลล์ที่รู้จัก ดูเหมือนว่าสมเหตุสมผลกับฉัน
chsh: bash: non-standard shell
chsh /etc/shells
/etc/shellsสิ่งที่แปลกสำหรับฉัน
ในการดำเนินการนี้โดยใช้ Mac OS X GUI:
โปรดทราบว่าที่ตั้งนี้เป็นที่ที่คุณสามารถเปลี่ยนโฮมไดเร็กตอรี่ของคุณ, UUID, ID ผู้ใช้, ID กลุ่มและชื่อย่อหากคุณอึดอัดกับ Terminal มีคำถามที่คล้ายกันอยู่ที่นี่เช่นกัน
ใช้คำตอบข้างต้นฉันได้รับข้อความแสดงข้อผิดพลาด:
$ chsh -s zsh
Changing shell for myuser.
Password for myuser:
chsh: zsh: non-standard shell
ในการหลีกเลี่ยงสิ่งนี้:
sudo chsh -s zsh $(whoami)
whoami ในเชลล์ย่อยคือการเปลี่ยนเชลล์สำหรับผู้ใช้ของคุณไม่ใช่รูท
อีกอย่างหนึ่งถ้าคุณใช้โฮมบรูว์ เมื่อคุณรันคำสั่งในฐานะรูท (โดยใช้sudo), zsh จะชี้ไปที่ / bin / zsh ซึ่งมาพร้อมกับ OSX และอาจล้าสมัย หากต้องการใช้งานล่าสุดที่ติดตั้งผ่านโฮมบรูว์ใช้สิ่งต่อไปนี้:
sudo chsh -s $(which zsh) $(whoami)