สิ่งที่เกิดขึ้นคือ FreeBSD และ Linux ใช้เชลล์ที่แตกต่างกันตามค่าเริ่มต้น ค่าเริ่มต้นของ FreeBSD จะtcshซึ่งมีคุณลักษณะแบบโต้ตอบดีกว่าทุบตีในอดีต ( แต่ทุบตีได้จับขึ้นไป) แต่คุณสมบัติสคริปต์อย่างเห็นได้ชัดที่เลวร้ายยิ่ง
วิธีที่ตรงไปตรงมาที่สุดเพื่อให้ได้สภาพแวดล้อมที่คุณคุ้นเคยคือการเปลี่ยนเชลล์เป็น tcsh บน Linux โดยมีเงื่อนไขว่ามีการติดตั้ง tcsh ทั่วทั้งระบบ (หากไม่มีให้ขอให้ผู้ดูแลระบบของคุณติดตั้ง) เรียกใช้chsh -s tcsh
เพื่อเปลี่ยนเชลล์เริ่มต้นของคุณ
หรือคุณสามารถตั้งค่า bash ให้ใช้คำสั่งนี้ ตามค่าเริ่มต้นแล้วลูกศรUpและจะDownนำทางไปตามคำสั่งทั้งหมดในประวัติศาสตร์ไม่ใช่เฉพาะคำสั่งที่ขึ้นต้นด้วยคำนำหน้าที่คุณพิมพ์ หากต้องการเปลี่ยนสิ่งนี้กับพฤติกรรมที่คุณคุ้นเคยให้วางบรรทัดต่อไปนี้ในไฟล์กำหนดค่าเริ่มต้นของ bash ซึ่งอยู่.bashrc
ในโฮมไดเร็กตอรี่ของคุณ เรียกใช้. ~/.bashrc
หรือเริ่มเชลล์ใหม่เพื่ออ่านไฟล์การกำหนดค่าเริ่มต้นอีกครั้ง
bind '"\eOA": history-search-backward'
bind '"\e[A": history-search-backward'
bind '"\eOB": history-search-forward'
bind '"\e[B": history-search-forward'
ลำดับ escape เป็นสิ่งที่เทอร์มินัลของคุณส่งไปยังเชลล์เมื่อคุณกดปุ่มลูกศร Upอาจจะ\eOA
(หนีO
, A
) หรือขึ้นอยู่กับขั้วของคุณและในทำนองเดียวกันสำหรับ\e[A
Down
โดยค่าเริ่มต้นทุบตีเสนอการผูกกุญแจที่แตกต่างกันเพื่อค้นหาประวัติคำสั่ง คุณสามารถกดCtrl+ Rจากนั้นป้อนอักขระบางตัวเพื่อค้นหาคำสั่งที่มีสตริงย่อยนี้ที่ใดก็ได้ในบรรทัด กดCtrl+ Sเพื่อไปข้างหน้าแทนการถอยหลัง การค้นหานั้นเพิ่มขึ้น (เช่นเมื่อคุณพิมพ์); Alt+ PและAlt+ Nให้การค้นหาที่ไม่เพิ่มขึ้น
แทนการทุบตีและ tcsh คุณสามารถสลับไป zsh ซึ่งมีคุณสมบัติบางอย่างที่ไม่พบในเปลือกหอยอื่น ๆ Zsh มีCtrl+ Rและ
Ctrl+ Sตามค่าเริ่มต้นเช่นเดียวกับทุบตี ที่จะได้รับUpและDownชอบที่คุณมีใน tcsh ใส่บรรทัดต่อไปนี้ใน~/.zshrc
:
bindkey '\eOA' history-beginning-search-backward
bindkey '\e[A' history-beginning-search-backward
bindkey '\eOB' history-beginning-search-forward
bindkey '\e[B' history-beginning-search-forward
หากคุณต้องการใช้เชลล์เดียวกันทุกที่คุณสามารถใช้ bash หรือ zsh ใน FreeBSD ได้เช่นกันหากมีการติดตั้งพอร์ต (ขอให้ผู้ดูแลระบบของคุณอีกครั้ง)