Lưu thiết bị đầu cuối hiện tại cuộn lại vào tập tin?


24

Tôi đã tìm kiếm một câu trả lời cho điều này và không tìm thấy bất cứ điều gì khiến tôi nghĩ rằng điều đó là không thể nhưng ...

Có thể lưu bộ đệm cuộn Gnome Terminal hiện tại vào một tệp không?

Tôi biết rằng tôi có thể làm một cái gì đó như command > output.txtchuyển hướng tất cả đầu ra sang một tệp hoặc command | tee output.txtđể tách đầu ra cho thiết bị đầu cuối cũng như thành một tệp. Những gì tôi đang cố gắng làm là nắm bắt điều này sau khi thực tế. Tôi muốn lưu nội dung cuộn lại của tab thiết bị đầu cuối hiện tại vào một tệp.


kittylà một chương trình thiết bị đầu cuối có thể làm điều này, thật không may, phông chữ trông rất tệ (không có kết xuất
pixel

Cảm ơn, @jberryman. Tốt để biết.
Karl Wilbur

Câu trả lời:


37

Sau một hồi chơi xung quanh tôi đã phát hiện ra rằng bạn có thể:

  • triple-click dòng cuối cùng
  • đánh shift + home
  • shift + click dòng đầu tiên
  • sao chép bằng ctrl + shift + c(hoặc right-click> 'Sao chép')

Bây giờ dán nó vào một tệp văn bản ... hoặc, bằng cách sử dụng, xselbạn có thể chuyển bảng tạm của mình sang một tệp mới bằng cách bật mở một tab mới và thực hiện:

xsel -o > out.txt

(Để cài đặt xsellàm sudo apt-get install xsel)


5
Làm nổi bật có thể được thực hiện dễ dàng hơn: Edit-> Select All.
egmont

3
Đây là một câu trả lời tuyệt vời vì nó khiến bạn nhận ra bạn có thể sử dụng triple-click the last lineshift + home or the scrollbarđi đến vị trí chính xác mà bạn muốn cho đầu ra.
Đầu bếp Pharaoh

2
Cảnh báo: Đừng thử điều này với một scollback lớn (nhiều megabyte) vì nó có thể treo X (xảy ra với tôi).
Kevin Cox

Với nhiều megabyte, việc xử lý chậm sẽ được mong đợi. Hãy kiên nhẫn và để máy tính làm việc. "Đợi một chút! Nó sẽ lên vũ trụ! Bạn có thể cho nó một giây để quay trở lại từ không gian không?!"
Karl Wilbur

Tôi vừa thử sao chép một cuộn lớn (đầu ra rsync từ sao lưu một vài ổ 2TB qua đêm) bằng cách sử dụng phương thức Edit-> Select Allđể chụp đầu ra. Bây giờ là 25-30 phút và Gnome Terminal vẫn bị khóa. Sử dụng Byobu, tôi có thể khởi động topđể thấy rằng Gnome Terminal vẫn đang chạy (tăng thời gian CPU); hiện đang sử dụng hơn 4.176g RAM và từ từ leo lên. Vì vậy, yeah, với một cuộn ngược rất lớn, nó sẽ mất một lúc. X vẫn đang chạy (và Chrome, YouTube, Nautilus, Byobu, v.v.) nhưng Gnome Terminal sẽ cần một phút. Tôi nên có kế hoạch tốt hơn.
Karl Wilbur

2

scriptlệnh thích hợp khi bạn muốn lưu phiên cuối vào tệp và hiển thị sau. Khi bạn gọi scriptnó sẽ khởi chạy shell của bạn và khi bạn hoàn thành, chỉ cần gõ thoát. Tất cả mọi thứ sẽ có trong typescripttập tin trừ khi bạn chỉ định khác.

Ví dụ,

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit
Script done, file is typescript
xieerqi@eagle:~$ cat typescript 
Script started on 2015年10月27日 星期二 11时37分55秒

xieerqi:$ echo "Hello, Karl Wilbur"
Hello, Karl Wilbur

xieerqi:$ date
2015年 10月 27日 星期二 11:38:15 MDT

xieerqi:$ df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      115247656 80939384  28430924  75% /
none                   4        0         4   0% /sys/fs/cgroup
udev             2914832        4   2914828   1% /dev
tmpfs             585216     1100    584116   1% /run
none                5120        0      5120   0% /run/lock
none             2926072      328   2925744   1% /run/shm
none              102400       52    102348   1% /run/user

xieerqi:$ exit

Script done on 2015年10月27日 星期二 11时38分18秒

Có thể có các ký tự điều khiển trong tệp bản thảo, chẳng hạn như từ lscomand, vì vậy hãy sử dụng cat typescript | col -b > outputfile.txtlệnh để chuyển hướng đầu ra sạch sang tệp


5
Cảm ơn, nhưng đây là việc cần phải làm trước khi bạn thu thập thông tin có giá trị trong thiết bị đầu cuối của mình. Tôi cần một giải pháp sau thực tế.
Karl Wilbur

1
Điều này là rất tốt để biết mặc dù. Tôi sẽ cho nó một phát súng trong tương lai.
Karl Wilbur

@KarlWilbur :) Tôi chắc chắn bạn sẽ thấy nó hữu ích. Tôi sử dụng nó rất nhiều cho bài tập về nhà lập trình của tôi. Thực sự có một cách để loại bỏ những gì trên màn hình trong bảng điều khiển TTY, nhưng thiết bị đầu cuối gnome khó khăn hơn một chút
Sergiy Kolodyazhnyy

@SergiyKolodyazhnyy Tôi cố gắng thực hiện điều này vào tập lệnh python của mình, nhưng tôi không thể thoát khỏi tập lệnh đang thực hiện "os.system (" exit "). Tuy nhiên, nó thoát khỏi terminal và lưu kết quả vào tập tin.
mtkilic

@mtkilic scriptLệnh khởi chạy một tiến trình riêng biệt, vì vậy tập lệnh python của bạn là cha mẹ của quy trình con đang chờ con thoát ra. Nó có ý nghĩa nhiều hơn đối với các phiên tương tác, nhưng nếu bạn muốn ghi lại một phiên trong trình thông dịch Python, hãy bắt đầu scriptlệnh trước và khởi chạy trình thông dịch thứ hai. Lệnh cũng nên có -ccờ để bạn có thể gọi script -c pythonnhưng kiểm tra lại bằng man script.
Sergiy Kolodyazhnyy
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.