ฉันจะตั้งค่าเปลือกของฉันใน Mac OS X ได้อย่างไร


21

ฉันรู้ว่าฉันสามารถตั้งค่า "Shells open with" ในการตั้งค่าเทอร์มินัล แต่ฉันอยากรู้ว่ามีระบบการตั้งค่านี้ (คล้ายกับการปรับปรุง / etc / passwd ใน Unixes บางอย่าง)

คำตอบ:


24

ใช้chshยูทิลิตี้เช่นนี้:

chsh -s bash

Apple ได้เปลี่ยนแปลงchshเล็กน้อยใน Mac OS X เปรียบเทียบกับตัวอย่างที่chshคุณเห็นใน Linux คุณสามารถอ่านข้อมูลเกี่ยวกับพวกเขาในchsh Mac OS X หน้าคน


และที่นี่ฉันคิดว่ามันเป็นสิ่งที่ซับซ้อนด้วยยูทิลิตี้เฉพาะ OSX บางอย่างเฮ้ ขอบคุณ
nall

@ John - เรียนรู้อย่าง :)
akira

ใช่ฉันรู้คำตอบครั้งที่แล้วเช่นกันฉันเพิ่งถูกมัน! :(
John T

19

โปรดทราบว่าคุณจะได้รับอนุญาตให้เปลี่ยนเป็นเชลล์ที่อยู่ในรายการ/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ถ้าคุณไม่ต้องทำ เพื่อความมีสติฉันชอบที่จะเก็บไฟล์ระบบไว้เหมือนเดิม
ma11hew28

@MattDiPasquale ฉันไม่แน่ใจว่าคุณหมายถึง "สติ" /etc/shellsเป็นไฟล์บนระบบที่กำหนดเชลล์ที่รู้จัก ฉันเปลี่ยนไฟล์นั้นเพราะฉันต้องการเพิ่มเชลล์ลงในรายการเชลล์ที่รู้จัก ดูเหมือนว่าสมเหตุสมผลกับฉัน
Telemachus

ดีเอแอลที วิธีด้วยเหตุผลบางอย่าง chsh จะไม่ทำงานสำหรับฉัน ฉันได้รับสิ่งนี้ chsh: bash: non-standard shell
RyBolt

@RyBolt ใช่: เหตุผลอาจเป็นสิ่งที่ฉันพูดถึงในคำตอบ คุณไม่สามารถใช้เพียงอย่างเดียวถ้าคุณกำลังพยายามที่จะใช้เปลือกที่ไม่ได้ระบุไว้ในchsh /etc/shells
Telemachus

@ Telemachus ฉันแค่พยายามเปลี่ยนเชลล์ bash ดั้งเดิมที่มาพร้อมกับ Mac OSX บิลด์เริ่มต้นของฉัน บางทีมันอาจจะไม่ใช่/etc/shellsสิ่งที่แปลกสำหรับฉัน
RyBolt

10

ในการดำเนินการนี้โดยใช้ Mac OS X GUI:

  1. เปิด“ การตั้งค่าระบบ”
  2. เปิดบานหน้าต่างการตั้งค่า "บัญชี" / "ผู้ใช้ & กลุ่ม" และปลดล็อคบานหน้าต่างการตั้งค่าถ้ามี
  3. ในผู้ใช้ที่คุณต้องการเปลี่ยนเปลือกcontrol+ คลิกหรือคลิกขวาที่ผู้ใช้และเลือก "ตัวเลือกขั้นสูง ... "
  4. ที่ซึ่งมันบอกว่า“ Login Shell:” เปลี่ยนเป็นเชลล์ที่คุณต้องการใช้

โปรดทราบว่าที่ตั้งนี้เป็นที่ที่คุณสามารถเปลี่ยนโฮมไดเร็กตอรี่ของคุณ, UUID, ID ผู้ใช้, ID กลุ่มและชื่อย่อหากคุณอึดอัดกับ Terminal มีคำถามที่คล้ายกันอยู่ที่นี่เช่นกัน


5

ใช้คำตอบข้างต้นฉันได้รับข้อความแสดงข้อผิดพลาด:

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