Đọc tất cả lịch sử lệnh đầu cuối trong OS X


10

Sẽ thật tuyệt khi truy cập tất cả các lệnh của tôi chạy trong thiết bị đầu cuối trên OS X để tôi có thể xem lại và sử dụng như một bảng nhắc nhở đang chạy.

Tôi đang sử dụng lời nhắc Reverse-I-Search và đã cập nhật .bash_profile của tôi để lưu trữ tất cả lịch sử của tôi như được đề cập ở đây trên Mactoids: Cách tìm kiếm lịch sử lệnh Terminal .

  1. Bắt đầu thiết bị đầu cuối.

  2. Điều hướng đến thư mục Home bằng cách nhập:

    cd ~/
    
  3. Tạo .bash_profile bằng cách nhập:

    touch .bash_profile
    
  4. Bây giờ, hãy chỉnh sửa .bash_profile trong trình soạn thảo văn bản yêu thích của bạn hoặc nhập tệp này vào cửa sổ Terminal để tự động mở tệp trong TextEdit mặc định:

    open -e .bash_profile
    
  5. Cuối cùng, thêm tệp này vào tệp .bash_profile:

    HISTFILESIZE=1000000000 HISTSIZE=1000000
    
  6. Lưu và thoát.

Bạn có biết làm thế nào tôi có thể truy cập để xuất lịch sử lệnh đầu cuối trong OS X không?


4
Tôi đoán bạn đã đọc man bash, vì vậy bạn nên biết rằng lịch sử được lưu trữ trong tệp ~/.bash_history. Những gì bạn cần biết, bạn có thể làm rõ?

Có, bởi vì tôi mới ra lệnh 'người đàn ông' sau đó đọc hướng dẫn tìm thấy câu trả lời và quyết định đặt câu hỏi ở trên chỉ để giải trí. Cảm ơn fideli cho câu trả lời nhanh chóng, rõ ràng và không phô trương.
Cameron McGrane

Câu trả lời:


6

Tất cả lịch sử của bạn được lưu trữ trong ~/.bash_historyđó reverse-i-searchsử dụng cả phím và phím lên / xuống. Tập tin đó thường xuyên được cắt tỉa, nhưng nếu bạn làm theo hướng dẫn trong liên kết của mình, .bash_historytập tin thực tế sẽ không bao giờ bị cắt xén.


Cắt tỉa hàng năm hay LIFO?
Pacerier

@Pacerier, tôi không thể hoàn toàn chắc chắn vì tôi không còn sử dụng macOS nữa nhưng nếu tôi phải đoán, thì nên cắt tỉa.
fideli

2

Cá nhân, tôi thích làm điều đó theo cách đơn giản hơn và in mọi thứ , thay vì kiểm tra phiên mới nhất không bao gồm tất cả các cửa sổ Terminal và tất cả các lệnh.

Nhận một lịch sử đầy đủ

cd ~/.bash_sessions
cat *.historynew *.history

Nếu bạn muốn sắp xếp theo ngày phiên

cd ~/.bash_sessions
cat `ls -tr *.historynew *.history`

1

Trong trường hợp bạn vẫn cần một sửa chữa cho điều này, đây là cách tôi đã làm. Với điều này, tôi có thể TIẾT KIỆM VÀ TIẾP CẬN lịch sử trên tất cả các tab (nghĩa là nếu bạn nhập lệnh trên một tab, sau đó mở một tab mới và nhấn lên, nó sẽ gợi ý lệnh bạn vừa nhập trong tab trước đó)

Bạn sẽ cần 2 điều: 1. Nhập lệnh này vào thiết bị đầu cuối của bạn để đảm bảo histappend được bật:

shopt -s histappend && shopt histappend

2. Bạn cũng cần biết nơi các lệnh lịch sử của bạn đang được lưu trữ.

Các tệp lịch sử của tôi được lưu trữ trong ~ / .bash_simes vì ​​vậy đó là những gì mã của tôi sẽ phản ánh. Nếu thư mục của bạn được lưu trữ trong ~ / .bash_history hoặc thư mục khác, chỉ cần trao đổi nó với ~ / .bash_simes khi chúng tôi nhập nó vào bash_profile.

Khi bạn đã tìm ra điều đó, hãy mở bash_profile của bạn và thêm mã sau đây:

source ~/.bash_sessions/*.history        #<--sources prev sessions through your bash_profile. If you don't use ~/.bash_sessions to store your history, replace it with whatever you use (i.e. source ~/.bash_history/*.history

export HISTCONTROL=ignoredups:erasedups #<-- auto-erases duplicates in your history
export HISTSIZE=1000                    #<-- assigns # of results to return
export HISTFILESIZE=100000              #<-- assigns # of results to store in your .bash_history
shopt -s histappend                     #<-- appends & saves history throughout all tabs

export PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"  <--appends history from all tabs, clears & uses appended history file as current  

1
lưu ý rằng việc chạy source ~/.bash_sessions/*.historythực thi tất cả các lệnh
panchicore
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.