Terminal * đầu ra * lịch sử?


19

Tôi sử dụng rộng rãi các chức năng để điều hướng trong lịch sử lệnh trong thiết bị đầu cuối của mình; Tôi tự hỏi nếu có một số cách để điều hướng lịch sử đầu ra lệnh là tốt? (bên cạnh việc giữ một histsize lớn và dựa vào phím pgup)

Tôi không thể chỉ 'chạy lại lệnh', vì trong tình huống cụ thể của tôi, nguồn lệnh thay đổi; Tôi thường xuyên cần nhìn lại đầu ra của một thay đổi trước đó.

Hacks chào mừng.

Cảm ơn!

Chỉnh sửa 2010:

Tôi đã cho 'tee' tín dụng; trong số tất cả các phương pháp để ghi nhật ký phiên của bạn ở nơi khác, đó là cách áp dụng rộng rãi nhất (nghĩa là nó là một phần của gnu coreutils và không yêu cầu trình bao hoặc tiện ích cụ thể để hoạt động). Đó thực sự không phải là thứ tôi đang tìm kiếm, nhưng tôi nhận ra rằng một thứ như vậy không thực sự tồn tại.

Phép tính gần đúng nhất mà tôi có thể nghĩ đến là sử dụng một cái gì đó như screen(byobu / tmux) để ghi vào tệp và viết (và keybind) một lệnh tùy chỉnh để trang / tìm kiếm thông qua logfile đó (nghĩ lessphân trang theo dấu nhắc thay vì màn hình). Cảm ơn mọi người.

Chỉnh sửa 2012:

Câu trả lời của @Dustin Kirkland rõ ràng là tốt nhất, ít nhất là nói chung; bộ đệm cuộn của thiết bị đầu cuối là cách ít xâm phạm nhất để điều hướng lịch sử đầu ra lệnh. Byobu dường như có một số lượng lớn các dòng lịch sử mặc định được lưu (10K; tmux có 2K, màn hình GNU 100) và nó cho phép tìm kiếm regex (giao diện chữ thảo chỉ ra rằng màn hình GNU không có tìm kiếm cuộn ngược và tmux chỉ tìm kiếm bản rõ).

Câu trả lời:


4

Bạn đề cập đến việc sử dụng byobu ...

Đó chắc chắn là một cách để làm điều đó. Byobu lưu trữ 10K dòng lịch sử cuộn lại trên mỗi cửa sổ hoặc mỗi lần phân chia (khung).

Bạn có thể nhập cuộn lại dễ dàng bằng cách nhấn Alt- PageUp, Alt- PageDownhoặc F7. Khi bạn đang ở chế độ cuộn ngược, bạn có thể tìm kiếm tiến và lùi bằng các lệnh giống như vi. Sử dụng /regexđể tìm kiếm về phía trước, và ?regexđể tìm kiếm ngược.


Lịch sử cuộn được lưu trữ ở đâu và có cách nào để duy trì lịch sử giữa các phiên không? Tức là: Mở thiết bị đầu cuối với Byobu, chạy một số lệnh, gọi exit, đóng thiết bị đầu cuối, mở một thiết bị đầu cuối mới với Byobu và vẫn có phiên trước đó.
Darrel Holt

11

Bạn có thể sử dụng teeđể gửi đầu ra lệnh của mình đến một tệp và đến thiết bị đầu cuối cùng một lúc.


8

Bạn có thể sử dụng scriptđể đăng nhập phiên cuối của bạn vào một tập tin. Nếu bạn luôn muốn điều này xảy ra thì hãy thêm một scriptlệnh phù hợp vào .login.

$ man script


5

sử dụng screen -L

sau khi thoát phiên shell ( exitlệnh), bạn nhận được một logfile trong cùng thư mục bạn đã bắt đầuscreen

sau đó bạn có thể xem đầu ra với morehoặcless -R


5

screen có thể được thiết lập để đăng nhập đầu ra.

Một cách để bắt đầu nó, trong một screenphiên đang chạy , là nhấn Ctrl- a, sau đó :, sau đó nhập log.

Từ man screen:

log [on|off]

Start/stop writing output of the current window to a file "screenlog.n" in the 
window's default directory, where n is the number  of  the  current  window.
This filename can be changed with the `logfile' command. If no parameter is
given, the state of logging is toggled. The session log is appended to the
previous contents of the file if it already  exists.  The current contents and
the contents of the scrollback history are not included in the session log.
Default is `off'.

logfile filename
logfile flush secs

Defines  the  name  the  log files will get. The default is "screenlog.%n". The 
second form changes the number of seconds screen will wait before flushing the
logfile buffer to the file-system. The default value is 10 seconds.

@SQB: Tôi đã mở rộng câu trả lời của mình.
Tạm dừng cho đến khi có thông báo mới.

3

bash không giữ lịch sử của những gì bạn đã làm, nhưng không phải là đầu ra từ các lệnh. Nó có khả năng rất lớn và thường không hữu ích.

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.