นามแฝงที่กำหนดไว้ใน.bash_aliasesและไม่ได้ทำงานใน.bashrctmux
สิ่งนี้สามารถเปลี่ยนแปลงได้ในการกำหนดค่าบางอย่างดังนั้นชื่อแทนจะทำงานภายใต้tmuxหรือไม่
นามแฝงที่กำหนดไว้ใน.bash_aliasesและไม่ได้ทำงานใน.bashrctmux
สิ่งนี้สามารถเปลี่ยนแปลงได้ในการกำหนดค่าบางอย่างดังนั้นชื่อแทนจะทำงานภายใต้tmuxหรือไม่
คำตอบ:
tmuxเปิดตัวเปลือกเข้าสู่ระบบโดยค่าเริ่มต้นดังนั้น~/.bashrcจะไม่ถูกดำเนินการ (ซึ่งต่อมาแล้วแหล่งที่มา~/.bash_aliases. คุณต้องแหล่งที่มา~/.bashrcจาก~/.bash_profile. ดูในส่วนของINVOCATIONman 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และทำงานในคำสั่งtmuxsource ~/.bashrcอาจเป็นคุณจะพบข้อผิดพลาดและจะแก้ปัญหาของคุณ