Làm thế nào để chia sẻ lịch sử giữa các tab thiết bị đầu cuối?


23

Tôi thường thấy mình sử dụng hai hoặc ba tab trong Terminal trên OS X.

Một bất tiện nhỏ là theo mặc định, các tab không chia sẻ lịch sử lệnh của chúng. Vì vậy, tìm kiếm một lệnh trước đó mà tôi đã chạy trên một tab khác bằng cách gõ history | grep thingIamlooking forkhông tìm thấy nó.

Có cách nào để buộc các tab Terminal chia sẻ lịch sử hay có một số lệnh " history_of_all_tabs " khác không?

Câu trả lời:


29

Tôi không nghĩ chỉ có một cách để chia sẻ lịch sử giữa các tab Terminal, nhưng đây là thứ có thể giúp bạn.

Lịch sử không phải là thứ được xử lý bởi thiết bị đầu cuối của bạn mà bởi vỏ của bạn (bash, tcsh, zsh, v.v.)

Dưới đây là một số tùy chọn sẽ giúp bạn thiết lập lịch sử được chia sẻ giữa tất cả các cửa sổ đầu cuối (phiên bản shell).

Điều này nên được đặt ở đâu đó trong .bashrctập tin của bạn .

export HISTCONTROL=ignoredups:erasedups  # no duplicate entries
export HISTSIZE=100000                   # big big history
export HISTFILESIZE=100000               # big big history
shopt -s histappend                      # append to history, don't overwrite it

# Save and reload the history after each command finishes
export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"

1
+.5 cho câu trả lời hay, +.5 cho ngữ pháp tốt;)
Matt

@ Giải pháp của Lifely không hiệu quả với tôi ở El Capitan. Ở tất cả. Ngay cả chiều dài tối đa của tập tin lịch sử. Có một giải pháp mới kể từ năm 2012? (Tôi đã nhận xét ở trên, nhưng không có đại diện)
JP Duffy

1
Đây là hoạt động đối với tôi (được thêm vào trong .bash_profile) ở El Capitan với việc bổ sung xuất khẩu SHELL_SESSION_HISTORY = 0 trong .bash_profile và tôi chạy: cảm ứng ~ / .bash_sessions_disable
Andy

hoạt động tuyệt vời trên Ubuntu 18.04 cho bash
anon58192932
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.