ฉันรู้ว่าฉันสามารถตั้งค่า "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)