Câu trả lời:
tmuxkhởi chạy shell đăng nhập theo mặc định, do đó ~/.bashrcsẽ không được thực thi (mà sau đó là nguồn ~/.bash_aliases. Bạn cần lấy nguồn ~/.bashrctừ ~/.bash_profile. Xem INVOCATIONphần của man bash.
( Câu trả lời của Chris Down có lời giải thích đúng nhưng không phải là cách giải quyết tốt)
Vấn đề của bạn bắt nguồn từ sự kết hợp của lỗi thiết kế bash và lỗi thiết kế tmux.
Theo mặc định, tmux bắt đầu một vỏ đăng nhập trong mỗi cửa sổ. Điều này không có ý nghĩa gì: nếu bạn đã đặt tmux làm vỏ đăng nhập của mình, bạn cần đặt default-commandtùy chọn thành một thứ khác ngoài tmux; và nếu bạn chưa đặt tmux làm vỏ đăng nhập, bạn cần đặt default-commandtùy chọn để tránh bắt đầu một vỏ đăng nhập bên trong tmux. Vì vậy, hãy bĩu môi này ~/.tmux.confđể nói với tmux để bắt đầu một lớp vỏ thông thường:
set-option -g default-command $SHELL
Sau đó, bạn .bashrcsẽ được đọc. Có một vấn đề khác với bash, không thành vấn đề ở đây nếu bạn định cấu hình tmux như được đề xuất ở trên, nhưng sẽ xuất hiện lại nếu bạn đăng nhập ở chế độ văn bản (trên bảng điều khiển văn bản hoặc qua SSH). Bash đọc ~/.bash_profiletrong shell đăng nhập và ~/.bashrctrong shell tương tác nhưng chỉ khi chúng không phải là shell đăng nhập. Để đọc ~/.bashrccả trong shell đăng nhập nếu chúng tương tác, hãy thêm phần này vào ~/.bash_profile:
case $- in *i*) . ~/.bashrc;; esac
tmux? Tôi sử dụng tmux khoảng năm và chưa thấy vấn đề gì với bí danh. Cố gắng thêmset -xvào lúc bắt đầu của bạn.bashrcvà chạy trongtmuxlệnhsource ~/.bashrc. Có thể bạn sẽ tìm thấy bất kỳ lỗi nào và nó sẽ giải quyết vấn đề của bạn.