วิธีเปลี่ยนเชลล์เริ่มต้นของคุณบน Linux ด้วย chsh
เผยแพร่แล้ว: 2022-01-29 Bash ไม่ใช่ลินุกซ์เชลล์ตัวเดียว ง่ายต่อการลองใช้เชลล์อื่นๆ เช่น Zsh ซึ่งเป็นที่นิยมอย่างมาก เมื่อคุณพบอันที่ชอบแล้ว ให้ใช้คำสั่ง chsh
เพื่อทำให้เป็นเชลล์เริ่มต้นของคุณ เราจะแสดงให้คุณเห็นว่า
ทำไมเชลล์ถึงสำคัญ
เชลล์ตั้งอยู่ระหว่างคุณกับระบบปฏิบัติการ มีสภาพแวดล้อมภายในหน้าต่างเทอร์มินัลที่ให้คุณพิมพ์คำสั่งและรันโปรแกรมได้ เชลล์ตรวจสอบข้อมูลที่คุณป้อนและค้นหาสิ่งที่คุณต้องการ หากสามารถดำเนินการเสนอราคาของคุณเองได้ หากต้องการความช่วยเหลือจากภายนอก มันจะค้นหาเส้นทางและค้นหาโปรแกรมที่สามารถทำสิ่งที่คุณร้องขอได้
มีเชลล์ที่แตกต่างกันมากมายบน Linux ทั้งหมดนี้ช่วยให้คุณทำงานหลักเดียวกันได้: สำรวจระบบไฟล์ ทำงานกับไฟล์ เปิดโปรแกรม และเรียกใช้สคริปต์ อย่างไรก็ตาม พวกเขาแต่ละคนทำงานเหล่านี้ด้วยวิธีของตนเอง และมีคุณสมบัติพิเศษและลักษณะเฉพาะของตนเอง
เปลือกหอยมักจะได้รับการออกแบบโดยผู้ที่ต้องการให้สิ่งต่าง ๆ มีพฤติกรรมในลักษณะเฉพาะ หากความคิดของคุณสอดคล้องกับนักออกแบบคนนั้น เปลือกนั้นก็อาจเหมาะกับคุณ นอกจากนี้ การลองใช้เชลล์ใหม่บน Linux นั้นทำได้ง่าย
ในลีนุกซ์ลีนุกซ์ส่วนใหญ่รวมถึงอูบุนตู, เชลล์เริ่มต้นคือ bash
มันทำงานได้ดีและมีความสามารถมาก อย่างไรก็ตาม เชลล์อื่นอาจเสนอความแตกต่างที่ช่วยประหยัดเวลาซึ่งจะมีผลกระทบอย่างมากต่อเวิร์กโฟลว์ของคุณ คุณจะไม่มีทางรู้ถ้าคุณไม่มอง!
ที่เกี่ยวข้อง: ZSH คืออะไรและทำไมคุณจึงควรใช้แทน Bash
เปลือกหอยเต็มถัง
เราเคยพูดถึง Linux shells ต่างๆ กันมาก่อนแล้ว แต่ต่อไปนี้คือข้อมูลเบื้องต้นคร่าวๆ เกี่ยวกับสิ่งที่พบบ่อยที่สุด:
- bash: เชลล์ Bourne อีกครั้งเป็นค่าเริ่มต้นในการแจกแจงจำนวนมาก
- rbash:
bash
shell ที่จำกัดนี้มีฟังก์ชันการทำงานน้อยที่สุดแก่บุคคลหรือสคริปต์ที่ทำงานอยู่ในนั้น - เถ้า: เปลือก Almquist เป็นทุบตีรุ่นที่เบากว่า
- dash: Debian Alquist Shell เป็นเชลล์สคริปต์เริ่มต้นใน Ubuntu แม้ว่า
bash
จะเป็นการเข้าสู่ระบบเริ่มต้นและเชลล์แบบโต้ตอบ แต่dash
จะใช้เพื่อเรียกใช้กระบวนการของระบบเพราะมันเบากว่าbash
มาก - zsh: เปลือก Z เป็นรูปแบบที่ทันสมัยในตระกูล
bash
ของเชลล์ มีการปรับปรุงอย่างประณีต เช่น การตรวจตัวสะกดของคำสั่งและการแก้ไขที่แนะนำ - ปลา: เชลล์แบบโต้ตอบที่เป็นมิตรนี้เขียนขึ้นตั้งแต่ต้นและไม่ได้มาจากตระกูลเชลล์อื่นๆ มีวัตถุประสงค์เพื่อให้ใช้งานง่าย ในบรรดาข้อดีอื่น ๆ มากมาย ปลาเสนอคำแนะนำสำหรับคำสั่งตามประวัติของคุณและเนื้อหาของโฟลเดอร์ปัจจุบัน คล้ายกับข้อความคาดเดา
- ksh: KornShell จัดเตรียมภาษาสคริปต์ที่แข็งแกร่งเป็นพิเศษ
ที่เกี่ยวข้อง: อะไรคือความแตกต่างระหว่าง Bash, Zsh และ Linux Shells อื่น ๆ
รายชื่อ Shells ที่ติดตั้ง
หากต้องการดูว่าเชลล์ใดติดตั้งอยู่ในคอมพิวเตอร์ของคุณ ให้ใช้คำสั่งนี้ มันแสดงรายการเนื้อหาของไฟล์ /etc/shells
:
cat /etc/shells
เราได้กล่าวถึง bash
, dash
และ rbash
แล้ว แต่ sh
คืออะไร?
sh
คือเปลือก Thompson ซึ่งเขียนขึ้นในปี 1971 โดย Ken Thompson จาก Bell Labs ที่มีชื่อเสียง มันไม่ได้รับการบำรุงรักษาอีกต่อไปและถูกแทนที่ด้วยกระสุนสมัยใหม่มานานแล้ว รวมไว้เพื่อรักษาความเข้ากันได้กับสคริปต์ที่เก่ากว่าซึ่งยังคงมีสิ่งต่อไปนี้เป็นบรรทัดแรก:
#!/bin/sh
สิ่งนี้แนะนำให้ระบบใช้เชลล์ sh
เพื่อรันสคริปต์ คุณมีเชลล์แบบโบราณในเครื่องของคุณจริงๆ และมันถูกใช้เพื่อรันสคริปต์ของคุณหรือไม่? คำสั่ง which
จะบอกเราว่าโปรแกรมใดทำงานจริงเมื่อคุณพิมพ์คำสั่ง
มาดูกันว่ามีอะไรทำงานบ้างเมื่อคุณพิมพ์ sh
:
ซึ่งsh
ดูเหมือนว่าจะพบไบนารี หากเราขุดลึกลงไปอีกเล็กน้อย เราจะเห็นว่ามันเป็นลิงก์สัญลักษณ์ที่ชี้ไปที่ dash
จริง ๆ เชลล์น้ำหนักเบาที่ใช้ในการรันสคริปต์:
ls -l /bin/sh
นั่นเป็นวิธีที่เรียบร้อยและน้ำหนักเบาในการจัดหาเครือข่ายความปลอดภัยสำหรับสคริปต์ที่คาดว่าจะพบใน sh
ที่ทันสมัย
การติดตั้งเชลล์อื่น
มาติดตั้งเปลือก fish
และตั้งเป็นค่าเริ่มต้นสำหรับ dave
บน Ubuntu เราพิมพ์คำสั่งต่อไปนี้:
sudo apt-get ติดตั้งปลา
บน Manjaro ใช้ pacman
:
sudo pacman -ปลาซี
บน Fedora พิมพ์ดังต่อไปนี้:
sudo dnf ติดตั้งปลา
เมื่อการติดตั้งเสร็จสิ้น คุณสามารถตรวจสอบเชลล์ที่ติดตั้งอีกครั้ง:
cat /etc/shells
เชลล์ใหม่ของเราปรากฏเป็น /usr/bin/fish
จดเส้นทางนั้นไว้—คุณจะต้องใช้ในไม่ช้า
ตัวแปรสภาพแวดล้อม $SHELL
ตัวแปรสภาพแวดล้อม $SHELL
เก็บชื่อของเชลล์ปัจจุบันของคุณ เราสามารถตรวจสอบได้ว่าอันไหนถูกตั้งค่าด้วย echo
:
เสียงสะท้อน $SHELL
มาเริ่มกันที่เปลือก fish
กัน:
ปลา
ตอนนี้ มาตรวจสอบอีกครั้งว่าตัวแปรสภาพแวดล้อม $SHELL
บอกว่าอย่างไร:
เสียงสะท้อน $SHELL
ครั้งแรกที่เราใช้ echo $SHELL
เราอยู่ใน bash
shell ตัวแปรสภาพแวดล้อมเก็บพา ธ ไปยังไฟล์ปฏิบัติการ bash
/bin/bash
เมื่อเราเปิดเปลือก fish
เราได้รับข้อความต้อนรับที่เป็นมิตรและการเปลี่ยนแปลงพร้อมท์คำสั่ง สิ่งที่น่าแปลกใจคือ $SHELL
สภาพแวดล้อมยังคงมีพาธไปยัง bash
ที่สามารถเรียกทำงานได้ /bin/bash
ไม่เป็นไร นี่เป็นเรื่องปกติ
เมื่อคุณเปิดเชลล์ใหม่ (หรือโปรแกรมอื่นๆ) เชลล์จะสืบทอดสภาพแวดล้อมของพาเรนต์เชลล์ ดังนั้นเปลือก fish
จึงสืบทอดตัวแปรสภาพแวดล้อมทั่วโลกและส่งออกจากเปลือก bash
เนื่องจากค่าในตัวแปรสภาพแวดล้อม $SHELL
ไม่ได้เปลี่ยนแปลง ค่านั้นในเปลือก fish
จะเหมือนกับค่าที่ทำใน bash
shell
เรากำลัง fish
เหมือนโปรแกรมอื่นๆ เรายังสามารถใช้ exit
เพื่อออกจากเปลือก fish
ได้อีกด้วย มันปิดเหมือนโปรแกรมอื่น ๆ และเรากลับไปที่ bash
shell
เป็นการดีที่จะลองกระสุนใหม่ ดูว่ามันทำอะไรได้บ้าง และคุณเข้ากันได้หรือไม่ คุณสามารถสำรวจก่อนที่จะกระโดดและนำไปใช้เป็นเปลือกหอยที่คุณควรทำ
หากคุณตัดสินใจที่จะสร้าง fish
—หรือเชลล์อื่นๆ— ค่าเริ่มต้นของคุณ คุณจะต้องใช้คำสั่ง chsh
คำสั่ง chsh
คำสั่ง chsh
อนุญาตให้คุณเปลี่ยนเชลล์เริ่มต้นของคุณ เคล็ดลับคือการทราบว่าช่วยให้คุณสามารถเปลี่ยนทั้งการเข้าสู่ระบบเริ่มต้นและเชลล์แบบโต้ตอบเริ่มต้นได้ คุณอาจต้องการเปลี่ยนอย่างใดอย่างหนึ่ง หรือทั้งสองอย่าง
เมื่อใดก็ตามที่คุณเข้าสู่ระบบเพื่อรับพรอมต์คำสั่ง คุณจะใช้เชลล์ที่กำหนดค่าให้เป็นเชลล์การเข้าสู่ระบบของคุณ เมื่อคุณเข้าสู่ระบบและเปิดหน้าต่างเทอร์มินัลแล้ว คุณจะใช้เชลล์ที่กำหนดค่าให้เป็นเชลล์แบบโต้ตอบได้ สิ่งเหล่านี้อาจเป็นเชลล์เดียวกันหรือต่างกันก็ได้
ในการตั้งค่าเชลล์การเข้าสู่ระบบของคุณ ให้ใช้ chsh
โดยไม่มีพารามิเตอร์:
chsh
คุณได้รับพร้อมท์ให้ใส่รหัสผ่าน จากนั้น คุณต้องพิมพ์เส้นทางไปยังเชลล์ใหม่และกด Enter
หากเราทำการเชื่อมต่อระยะไกลกับคอมพิวเตอร์ทดสอบเครื่องนี้จากเครื่องอื่น เราจะพบว่าตัวเองอยู่ในเปลือก fish
เมื่อเราเข้าสู่ระบบแล้ว
ในการเปลี่ยนเชลล์แบบโต้ตอบของคุณให้ใช้ chsh
พร้อมตัวเลือก -s
(เชลล์) ส่งเส้นทางไปยังเชลล์ใหม่บนบรรทัดคำสั่ง:
chsh -s /usr/bin/fish
คุณได้รับพร้อมท์ให้ใส่รหัสผ่านและกลับไปที่พรอมต์คำสั่งของเชลล์ปัจจุบันของคุณ คุณต้องออกจากระบบและกลับเข้ามาใหม่เพื่อให้การเปลี่ยนแปลงมีผล เมื่อทำเช่นนั้น คุณจะเห็นคำทักทายและพรอมต์คำสั่ง fish
shell
ตัวแปรสภาพแวดล้อม $SHELL
จะเก็บพาธไปยังเชลล์เริ่มต้นใหม่ของคุณ:
เสียงสะท้อน $SHELL
การเปลี่ยน Shell ของบัญชีผู้ใช้อื่น
หากคุณมีสิทธิ์รูทและสามารถใช้ sudo
ได้ คุณสามารถเปลี่ยนเชลล์ของบัญชีผู้ใช้อื่นได้ คำสั่งจะเหมือนกับเมื่อก่อน โดยเพิ่มชื่อผู้ใช้ของบุคคลนั้นในบรรทัดคำสั่ง:
sudo chsh -s /usr/bin/fish mary
เมื่อ mary
เข้าสู่ระบบครั้งต่อไป เธอจะเห็นเชลล์ใหม่เมื่อเธอเปิดหน้าต่างเทอร์มินัล
ทุกคนมีความชื่นชอบ
ตราบใดที่คุณพอใจกับการเลือกเปลือกและมันเหมาะกับคุณ นั่นก็เยี่ยมมาก! เพียงจำไว้ว่าต้องสามารถเรียกใช้สคริปต์ทั่วไปได้ เช่น รูทีนการติดตั้ง สำหรับเชลล์ที่กล่าวถึงในที่นี้ ไม่น่าจะมีปัญหา
แน่นอน คุณยังสามารถดาวน์โหลดและติดตั้งเชลล์ใหม่ และนำไปทดสอบไดรฟ์โดยไม่ต้องทำการเปลี่ยนแปลงการกำหนดค่าใดๆ กับคอมพิวเตอร์ของคุณ เมื่อคุณพร้อมที่จะผูกปม chsh
จะทำพิธีให้คุณ
คำสั่งลินุกซ์ | ||
ไฟล์ | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · เข้าร่วม · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · ดู · strings · พิมพ์ · เปลี่ยนชื่อ · zip · unzip · เมานต์ · umount · ติดตั้ง · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · แพทช์ · แปลง · rclone · ฉีก · srm | |
กระบวนการ | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · หมดเวลา · ผนัง · ใช่ · ฆ่า · หลับ · sudo · su · เวลา · groupadd · usermod · กลุ่ม · lshw · ปิดระบบ · รีบูต · หยุด · poweroff · passwd · lscpu · crontab · วันที่ · bg · fg | |
ระบบเครือข่าย | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
ที่เกี่ยวข้อง: แล็ปท็อป Linux ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ