Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม Bash

สลับ Unix Shells: ระบุและเปลี่ยน Login Shell จาก Bash ไป Alternatives

คำถาม: จะรู้ได้ยังไงว่าตัวเองกำลังรัน Unix Shell อะไรอยู่? อธิบายได้ไหมว่าจะเปลี่ยน Unix Shell ได้ยังไงทั้ง Temporary และ Permanent? (เช่น จาก bash ไป tsh)

คำตอบ: ทำได้ด้วย $0, exec, chsh -s ในบทความนี้ มาทบทวนรายละเอียด

1. Current Unix Shell ของผมคืออะไร?

ใช้ echo $0 Command เพื่อได้ Current Shell Name

 $ echo $0
/bin/bash 

2. เปลี่ยน Current Shell เป็นอีก Type – Temporary?

ใช้ exec Command เปลี่ยน Shell ชั่วคราว

 $ echo $0
/bin/bash
$ exec /bin/sh
$ echo $0
/bin/sh 

หมายเหตุ: การเปลี่ยนแปลงข้างต้นเป็น Temporary เมื่อ Re-login จะกลับไป Shell เดิม

3. เปลี่ยน Current Shell เป็นอีก Type – Permanent?

เพื่อเปลี่ยน Shell แบบ Permanent ใช้ chsh Command

 $ chsh -s /bin/sh
Password: 

หมายเหตุ: การเปลี่ยนแปลงข้างต้นเป็น Permanent แม้ Re-login ก็จะเห็น Shell ใหม่เท่านั้น

4. หา Available Shells ทั้งหมดใน System ยังไง?

Available Shells ทั้งหมดอยู่ใน /etc/shells File

 $ cat /etc/shells
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
/usr/bin/screen
/bin/ksh93 

สำหรับเปลี่ยน Login Shell สามารถทำได้จาก Output ข้างต้นเท่านั้น แต่สำหรับเปลี่ยน Current Shell ไป Shell ใดก็ได้ที่ Available

5. Installing New Shell (ติดตั้ง Shell ใหม่)

ติดตั้ง Shell ใหม่ (เช่น ksh) ได้ดังนี้ หลังติดตั้ง สามารถใช้เป็น Permanent Login Shell หรือ Temporary Shell สำหรับ Command Line Operations

 $ sudo apt-get install ksh