นามแฝงที่กำหนดไว้ใน.bash_aliases
และไม่ได้ทำงานใน.bashrc
tmux
สิ่งนี้สามารถเปลี่ยนแปลงได้ในการกำหนดค่าบางอย่างดังนั้นชื่อแทนจะทำงานภายใต้tmux
หรือไม่
นามแฝงที่กำหนดไว้ใน.bash_aliases
และไม่ได้ทำงานใน.bashrc
tmux
สิ่งนี้สามารถเปลี่ยนแปลงได้ในการกำหนดค่าบางอย่างดังนั้นชื่อแทนจะทำงานภายใต้tmux
หรือไม่
คำตอบ:
tmux
เปิดตัวเปลือกเข้าสู่ระบบโดยค่าเริ่มต้นดังนั้น~/.bashrc
จะไม่ถูกดำเนินการ (ซึ่งต่อมาแล้วแหล่งที่มา~/.bash_aliases
. คุณต้องแหล่งที่มา~/.bashrc
จาก~/.bash_profile
. ดูในส่วนของINVOCATION
man bash
( คำตอบของ Chris Downมีคำอธิบายที่ถูกต้อง แต่ไม่ใช่วิธีแก้ปัญหาที่ดี)
ปัญหาของคุณเกิดจากการรวมกันของข้อผิดพลาดการออกแบบทุบตีและข้อบกพร่องการออกแบบ tmux
โดยค่าเริ่มต้น tmux จะเริ่มเชลล์ล็อกอินในทุกหน้าต่าง สิ่งนี้ไม่สมเหตุสมผล: หากคุณตั้งค่า tmux เป็นเชลล์ล็อกอินของคุณคุณต้องตั้งค่าdefault-command
ตัวเลือกให้เป็นอย่างอื่นที่ไม่ใช่ tmux และหากคุณไม่ได้ตั้งค่า tmux เป็นเชลล์ล็อกอินของคุณคุณต้องตั้งค่าdefault-command
ตัวเลือกเพื่อหลีกเลี่ยงการเริ่มต้นเชลล์ล็อกอินภายใน tmux ดังนั้นทำสิ่งนี้ใน~/.tmux.conf
การบอก tmux เพื่อเริ่มเชลล์ธรรมดา:
set-option -g default-command $SHELL
จากนั้นคุณ.bashrc
จะถูกอ่าน มีปัญหาอื่นเกี่ยวกับ bash ซึ่งไม่สำคัญที่นี่หากคุณกำหนดค่า tmux ตามที่แนะนำข้างต้น แต่จะปรากฏอีกครั้งหากคุณเข้าสู่ระบบในโหมดข้อความ (บนคอนโซลข้อความหรือบน SSH) Bash อ่าน~/.bash_profile
ในล็อกอินเชลล์และ~/.bashrc
ในเชลล์โต้ตอบ แต่เฉพาะในกรณีที่ไม่ใช่เชลล์ล็อกอิน หากต้องการอ่าน~/.bashrc
ในเปลือกเข้าสู่ระบบหากพวกเขาโต้ตอบให้เพิ่มไปนี้ของคุณ~/.bash_profile
:
case $- in *i*) . ~/.bashrc;; esac
tmux
? ฉันใช้ tmux ประมาณปีและไม่พบปัญหาใด ๆ กับนามแฝง พยายามที่จะเพิ่มset -x
ที่เริ่มต้นของคุณ.bashrc
และทำงานในคำสั่งtmux
source ~/.bashrc
อาจเป็นคุณจะพบข้อผิดพลาดและจะแก้ปัญหาของคุณ