วิธีการเปลี่ยนเชลล์ผู้ใช้เริ่มต้นใน Linux
เชลล์หรืออินเทอร์เฟซบรรทัดคำสั่งเป็นองค์ประกอบสำคัญของระบบปฏิบัติการ Linux ทำให้ผู้ใช้มีวิธีที่มีประสิทธิภาพในการโต้ตอบกับระบบ
ผู้ใช้แต่ละคนบนระบบ Linux จะเชื่อมโยงกับเชลล์ดีฟอลต์ ซึ่งจะกำหนดตัวแปลคำสั่งที่พวกเขาใช้เมื่อโต้ตอบกับระบบ
การเปลี่ยนเชลล์เริ่มต้นของผู้ใช้อาจจำเป็นด้วยเหตุผลหลายประการ เช่น ความชอบส่วนตัว หรือความต้องการคุณสมบัติเฉพาะที่นำเสนอโดยเชลล์อื่น
ในบทความนี้ เราจะสำรวจกระบวนการเปลี่ยนเชลล์เริ่มต้นของผู้ใช้ใน Linux เชลล์เป็นโปรแกรมที่ยอมรับและตีความคำสั่ง มีเชลล์โอเพ่นซอร์สหลายตัวเช่น bash, sh, ksh, zsh, fish, และเชลล์อื่นๆ ที่ไม่ค่อยมีใครรู้จักบน Linux
ลินุกซ์ทุบตีเชลล์
Bash (/bin/bash) เป็นเชลล์ที่ได้รับความนิยมในระบบปฏิบัติการ Linux ส่วนใหญ่ (ไม่ใช่ทุกรุ่น) และโดยปกติจะเป็นเชลล์เริ่มต้นสำหรับบัญชีผู้ใช้
มีสาเหตุหลายประการในการเปลี่ยนเชลล์ของผู้ใช้ใน Linux รวมถึงสิ่งต่อไปนี้:
- เพื่อบล็อกหรือปิดใช้งานการเข้าสู่ระบบของผู้ใช้ปกติใน Linux โดยใช้เชลล์ nologin
- ใช้สคริปต์หรือโปรแกรมของเชลล์แรปเปอร์เพื่อบันทึกคำสั่งของผู้ใช้ก่อนที่จะถูกส่งไปยังเชลล์เพื่อดำเนินการ ที่นี่ คุณระบุ wrapper เชลล์เป็นเชลล์การเข้าสู่ระบบของผู้ใช้
- เพื่อตอบสนองความต้องการของผู้ใช้ (ต้องการใช้เชลล์เฉพาะ) โดยเฉพาะผู้ที่มีสิทธิ์ผู้ดูแลระบบ
เมื่อสร้างบัญชีผู้ใช้ด้วยยูทิลิตี useradd หรือ adduser สามารถใช้แฟล็ก --shell
เพื่อระบุชื่อของเชลล์การเข้าสู่ระบบของผู้ใช้นอกเหนือจากที่ระบุไว้ในไฟล์การกำหนดค่าที่เกี่ยวข้อง
เชลล์การเข้าสู่ระบบสามารถเข้าถึงได้จากอินเทอร์เฟซแบบข้อความหรือผ่าน SSH จากเครื่อง Linux ระยะไกล อย่างไรก็ตาม หากคุณเข้าสู่ระบบผ่านอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) คุณจะสามารถเข้าถึงเชลล์ได้จากโปรแกรมจำลองเทอร์มินัล เช่น xterm, konsole และอื่นๆ อีกมากมาย
แสดงรายการเชลล์ที่พร้อมใช้งานบนระบบ Linux
ใน Linux ไฟล์ /etc/shells มักใช้เพื่อจัดเก็บรายการเชลล์การเข้าสู่ระบบที่ถูกต้องที่ติดตั้งไว้บนระบบ ไฟล์นี้ช่วยในการระบุว่าเชลล์ใดที่ผู้ใช้สามารถตั้งค่าเป็นเชลล์เริ่มต้นได้โดยใช้คำสั่งเช่น chsh
หากต้องการดูรายการเชลล์ที่พร้อมใช้งานบนระบบ Linux คุณสามารถใช้คำสั่งต่อไปนี้:
cat /etc/shells
ผลลัพธ์ตัวอย่าง:
/etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen
ก่อนที่คุณจะดำเนินการใดๆ เพิ่มเติม โปรดทราบว่า:
- ผู้ใช้สามารถเปลี่ยนเชลล์ของตนเองเป็นอะไรก็ได้: ซึ่งจะต้องแสดงอยู่ในไฟล์ /etc/shells
- มีเพียงรูทเท่านั้นที่สามารถรันเชลล์ที่ไม่อยู่ในรายการในไฟล์ /etc/shells
- หากบัญชีมีเชลล์การเข้าสู่ระบบแบบจำกัด มีเพียงรูทเท่านั้นที่สามารถเปลี่ยนเชลล์ของผู้ใช้นั้นได้
ค้นหาเชลล์ปัจจุบันใน Linux
ก่อนที่จะเปลี่ยนเชลล์ของผู้ใช้เริ่มต้น สิ่งสำคัญคือต้องกำหนดเชลล์ปัจจุบันโดยการรันคำสั่ง echo ต่อไปนี้ ซึ่งจะแสดงเชลล์ปัจจุบันสำหรับผู้ใช้ที่เข้าสู่ระบบ
echo $SHELL
/bin/bash
ผลลัพธ์แสดงว่าผู้ใช้กำลังใช้เชลล์ Bash (/bin/bash)
การเปลี่ยนเชลล์เริ่มต้นใน Linux
ตอนนี้เรามาพูดถึงสามวิธีในการเปลี่ยนเชลล์ผู้ใช้เริ่มต้นของ Linux
1. ยูทิลิตี้ usermod
คำสั่ง usermod ใช้สำหรับแก้ไขรายละเอียดบัญชีของผู้ใช้ ซึ่งจัดเก็บไว้ในไฟล์ /etc/passwd และตัวเลือก -s
หรือ --shell
ใช้เพื่อเปลี่ยนเปลือกเข้าสู่ระบบของผู้ใช้
ในตัวอย่างนี้ ก่อนอื่นเราจะตรวจสอบข้อมูลบัญชีของผู้ใช้ tecmint เพื่อดูเชลล์การเข้าสู่ระบบเริ่มต้น จากนั้นเปลี่ยนเชลล์การเข้าสู่ระบบจาก /bin/sh เป็น /bin/bash เป็น ดังต่อไปนี้
grep tecmint /etc/passwd
sudo usermod --shell /bin/bash tecmint
grep tecmint /etc/passwd
ตอนนี้เชลล์เริ่มต้นสำหรับผู้ใช้ “tecmint” จะถูกเปลี่ยนเป็น bash
2. ยูทิลิตี้ chsh
คำสั่ง chsh ใช้เพื่อเปลี่ยนเชลล์การเข้าสู่ระบบเริ่มต้นของผู้ใช้แบบโต้ตอบโดยใช้ตัวเลือก -s
หรือ –shell ตามที่แสดง
grep tecmint /etc/passwd
sudo chsh --shell /bin/sh tecmint
grep tecmint /etc/passwd
แทนที่ “/bin/sh” ด้วยเส้นทางจริงไปยังเชลล์ที่คุณต้องการตั้งค่า ตัวอย่างเช่น หากต้องการตั้งค่าเชลล์เป็น sh คุณจะต้องใช้ “/bin/sh“
สิ่งสำคัญคือต้องทราบว่าการเปลี่ยนแปลงเชลล์เริ่มต้นมักจะมีผลเมื่อคุณเข้าสู่ระบบครั้งถัดไป
สองวิธีข้างต้นทั้งหมดแก้ไขเชลล์ที่ระบุในไฟล์ /etc/passwd ซึ่งคุณสามารถแก้ไขได้ด้วยตนเองเช่นเดียวกับวิธีที่ 3 ด้านล่าง
3. เปลี่ยน User Shell ในไฟล์ /etc/passwd
ในวิธีนี้ เพียงเปิดไฟล์ /etc/passwd โดยใช้โปรแกรมแก้ไขข้อความบรรทัดคำสั่งที่คุณชื่นชอบ และเปลี่ยนเชลล์ของผู้ใช้ที่ต้องการ
sudo vi /etc/passwd
OR
sudo nano /etc/passwd
ค้นหาบรรทัดที่สอดคล้องกับผู้ใช้ที่คุณต้องการเปลี่ยนเชลล์เริ่มต้น ตัวอย่างเช่น หากบรรทัดมีลักษณะดังนี้:
tecmint:x:1000:1000:John Doe:/home/tecmint:/bin/bash
ฟิลด์สุดท้าย /bin/bash แสดงถึงเชลล์เริ่มต้น (ในกรณีนี้คือ Bash)
หากต้องการเปลี่ยนค่าของฟิลด์เชลล์เป็นเชลล์ที่ต้องการ เพียงระบุเส้นทางไปยังเชลล์ (/bin/zsh) ดังที่แสดง
tecmint:x:1000:1000:John Doe:/home/tecmint:/bin/zsh
เมื่อแก้ไขเสร็จแล้ว ให้บันทึกและปิดไฟล์
จะติดตั้งเชลล์อื่นได้อย่างไร
เช่นเดียวกับแพ็คเกจซอฟต์แวร์อื่นๆ สามารถติดตั้งเชลล์ยอดนิยม เช่น Zsh และ Fish ได้อย่างง่ายดายจากพื้นที่เก็บข้อมูลของการแจกจ่ายของคุณดังที่แสดง
ติดตั้ง Zsh Shell ใน Linux
หากต้องการติดตั้ง Zsh บน Linux ให้ใช้คำสั่งที่เหมาะสมต่อไปนี้สำหรับการแจกจ่าย Linux เฉพาะของคุณ
sudo apt install zsh [On Debian, Ubuntu and Mint]
sudo yum install zsh [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/zsh [On Gentoo Linux]
sudo apk add zsh [On Alpine Linux]
sudo pacman -S zsh [On Arch Linux]
sudo zypper install zsh [On OpenSUSE]
ติดตั้ง Fish Shell ใน Linux
หากต้องการติดตั้ง Zsh บน Linux ให้ใช้คำสั่งที่เหมาะสมต่อไปนี้สำหรับการแจกจ่าย Linux เฉพาะของคุณ
sudo apt install fish [On Debian, Ubuntu and Mint]
sudo yum install fish [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/fish [On Gentoo Linux]
sudo apk add fish [On Alpine Linux]
sudo pacman -S fish [On Arch Linux]
sudo zypper install fish [On OpenSUSE]
อย่าลืมอ่านหัวข้อที่เกี่ยวข้องเหล่านี้:
ในบทความนี้ เราได้อธิบายวิธีการต่างๆ ในการเปลี่ยนเชลล์ของผู้ใช้ใน Linux หากต้องการแบ่งปันความคิดเห็นกับเรา โปรดใช้ส่วนความคิดเห็นด้านล่าง