Tôi đã sử dụng câu trả lời trong /unix//a/1292/41729 để kích hoạt lịch sử chia sẻ thời gian thực giữa các thiết bị đầu cuối bash riêng biệt. Như đã giải thích trong câu trả lời ở trên, điều này đạt được bằng cách thêm:
# avoid duplicates..
export HISTCONTROL=ignoredups:erasedups
# append history entries..
shopt -s histappend
# After each command, save and reload history
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
Điều này hoạt động tốt nếu các bash shell riêng biệt (ví dụ: mở các thiết bị bash khác nhau bằng cách sử dụng CTRL+ALT+T
. Tuy nhiên, nó không hoạt động nếu tôi sử dụng tabs
(từ một thiết bị đầu cuối mở `CTRL + SHIFT + T) chứ không phải là các cửa sổ mới. Tôi có thể chia sẻ lịch sử bash giữa các tab khác nhau không?
CẬP NHẬT: Tôi nhận thấy một hành vi bất thường: nếu tôi gõ CTRL+C
thì lệnh cuối cùng được gõ vào bất kỳ thiết bị đầu cuối nào khác (cả tab hoặc không) được hiển thị chính xác. Nó giống như nếu CTRL + C buộc một luồng lịch sử để sau đó nó được chia sẻ chính xác.
Ví dụ: các đầu ra (T1 biểu thị đầu cuối 1 và đầu cuối 2):
T1:
ls -lah <enter>
# the list of files and directory is shown
T2:
cd Documents <enter>
T1:
<up> (i.e. I press the up arrow)
ls -lah #i.e the last command in terminal 1 is shown rather than the last of terminal 2
^C (i.e. I press CTRL+C)
<up>
cd Documents #the last command issued in terminal 2 is correctly displayed
Hy vọng điều này có thể cung cấp bất kỳ gợi ý!
~.bashrc
tập tin của bạn ? Mặt khác, xuất các biến đó là vô nghĩa; Chỉ lãng phí không gian môi trường.