Câu trả lời:
tmux
khởi chạy shell đăng nhập theo mặc định, do đó ~/.bashrc
sẽ không được thực thi (mà sau đó là nguồn ~/.bash_aliases
. Bạn cần lấy nguồn ~/.bashrc
từ ~/.bash_profile
. Xem INVOCATION
phầ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-command
tù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-command
tù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 .bashrc
sẽ đượ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_profile
trong shell đăng nhập và ~/.bashrc
trong shell tương tác nhưng chỉ khi chúng không phải là shell đăng nhập. Để đọc ~/.bashrc
cả 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 -x
vào lúc bắt đầu của bạn.bashrc
và chạy trongtmux
lệ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.