ฉันจะเปลี่ยนเชลล์เริ่มต้นในอินสแตนซ์ AWS ได้อย่างไร


121

ฉันต้องการเปลี่ยนเชลล์จากเชลล์ bash ดีฟอลต์เป็น zsh บนอินสแตนซ์ Amazon EC2 ของฉัน ฉันจะทำยังไงต่อไป? ขอบคุณ!

คำตอบ:


159

ลองใช้chshคำสั่ง

เช่น

chsh -s / bin / zsh

คุณสามารถยืนยันตำแหน่งของ zsh ได้โดยการเรียกใช้whereis zshหรือเพียงแค่เรียกใช้

chsh -s $ (ซึ่ง zsh)

หากคุณต้องการเปลี่ยนเชลล์สำหรับบัญชีผู้ใช้อื่นนอกเหนือจากที่คุณเข้าสู่ระบบคุณจะต้องเรียกใช้เป็นรูทดังนั้นหากต้องการเปลี่ยนเชลล์ของ john ให้ทำ:

sudo chsh -s $ (zsh ใด) john

โปรดทราบว่าคุณจะต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล หากคุณใช้ Gnome หรือโปรแกรมจัดการหน้าต่างอื่น ๆ คุณจะต้องออกจากระบบของเซสชันนั้นโดยสมบูรณ์เช่นกันเพียงแค่ปิดและเปิดเทอร์มินัลไม่เพียงพอ


ฉันลองแล้ว แต่กับผู้ใช้รูท !! AMI Image ของฉันมี ubuntu มากกว่ารูท ต้องเปลี่ยนไปใช้ผู้ใช้ Ubuntu เพื่อเปลี่ยนเปลือก! ขอบคุณสำหรับคำแนะนำ :)
Shripad กฤษณะ

3
@Paddy chsh -s /bin/zsh usernameถ้าคุณเป็นรากคุณสามารถเปลี่ยนได้สำหรับผู้ใช้คนอื่นโดยการเรียกใช้
John T

ยอดเยี่ยม :) ง่ายขึ้นมาก ขอบคุณสำหรับข้อมูลนั้นด้วย
Shripad Krishna

3
@ We are the World: คุณต้องเพิ่ม / usr / local / bin / zsh เป็นบรรทัดใหม่ใน / etc / shells
Nate Parsons

5
ฉันใช้รุ่นที่แตกต่างกันเล็กน้อยsudo chsh -s $(which zsh) $(whoami)
SergioAraujo

20

เปิด / etc / passwd:

sudo vi /etc/passwd

ค้นหาบรรทัดด้วยชื่อผู้ใช้ของคุณ:

username:x:1634231:100:Your Name:/home/username:/bin/bash

และแทนที่ bash ด้วย zsh:

username:x:1634231:100:Your Name:/home/username:/bin/zsh

ออกจากระบบและล็อกอินกลับเพื่อให้การเปลี่ยนแปลงมีผล


6
มันเป็นเรื่องดีที่จะใช้chshแต่ถ้าคุณจริงๆจะแก้ไข/etc/passwdด้วยมืออย่างน้อยใช้vipwคำสั่ง
Valmiky Arquissandas

ฉันไม่มี chsh บนเครื่องของฉัน นอกจากนี้ด้วยเหตุผลแปลก ๆ บางอย่างไฟล์ / etc / passwd ของฉันก็ถูกเขียนทับโดยค่าปริยาย คุณรู้ไหมว่าทำไมสิ่งนี้ถึงเกิดขึ้น
Georgii Oleinikov

อย่าแตะ / etc / passwd มีวิธีที่ดีกว่าในการทำเช่นนี้ซึ่งไม่จำเป็นต้องล้อเล่นกับเครื่องมือ passwd!
แอนดรู

6

ฉันมาที่นี่เพื่อเพิ่มข้อมูลเพิ่มเติม หากคุณมีปัญหาเมื่อติดตั้งzshในAmazon Linux AMIโดย Amazon เช่นเมื่อคุณรัน:

sudo chsh $(which zsh) : // chsh command not found

จากนั้นคุณควรติดตั้งutil-linux-user :

sudo yum install util-linux-user

(โดยค่าเริ่มต้น Amazon Linux AMI มีlchshเท่านั้น แต่ฉันไม่สามารถคิดได้ว่ามันทำงานอย่างไร)

จากนั้นเรียกใช้คำสั่งต่อไปนี้มันควรจะทำงาน:

sudo chsh -s $(which zsh) $(whoami)

5

ใน Ubuntu ภายในเทอร์มินัล GNOME การเปลี่ยนแปลงผ่าน chsh จะไม่มีผลตามที่คาดไว้ ...

เมื่อต้องการแก้ไขปัญหานี้ให้ทำดังนี้:

  • คลิกขวาที่เทอร์มินัล
  • โปรไฟล์ -> การตั้งค่าโปรไฟล์
  • ภายใต้แท็บ "ชื่อเรื่องและคำสั่ง" ให้ทำเครื่องหมาย "เรียกใช้คำสั่งที่กำหนดเองแทนเปลือกของฉัน" และระบุพา ธ ไปยังโปรแกรมปฏิบัติการ zsh
  • รีสตาร์ท Terminal

ความสงบ.

ป.ล. ไม่มีชื่อเสียง 10 ข้อในการโพสต์รูปภาพดังนั้นคำแนะนำสำหรับ texty ทั้งหมด :)


คุณมีตัวแทนที่คุณต้องการในขณะนี้ : P
pradyunsg

0

หนึ่งบรรทัด

sudo chsh -s $(which zsh) $(whoami)

ข้อมูลเสริม: หลังจากนั้นคุณอาจต้องการทำสิ่งนี้

git clone https://github.com/zdharma/fast-syntax-highlighting.git \
  ~/.oh-my-zsh/custom/plugins/fast-syntax-highlighting

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions

nano ~/.zshrc 

find plugins = (git) ผนวก zsh-autosuggestions & zsh-syntax- เน้นที่ปลั๊กอิน () เช่นนี้

plugins = (git zsh-autosuggestions การเน้นไวยากรณ์อย่างรวดเร็ว)

source ~/.zshrc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.