Một dự thảo làm việc cho một vỏ truyền thống:
ttyid=$(readlink /proc/$$/fd/1)
\___/ \______/ \___/ | | |
| | | | | \- 0: stdin
| | | | | 1: stdout <- our interest
| | | | | 2: stderr
| | | | \- fd is, maybe, filedescriptor
| | | |
| | | \- $$ is the PID of the current process (shell,
| | | in our case)
| | |
| | \- you know, much runtime stuff is here
| |
| \- readlink extracts the symbolic link of /proc/$$/fd/1
| lrwx------ 1 stefan stefan 64 2011-03-18 09:11
| /proc/22159/fd/1 -> /dev/pts/4
|
\- /dev/tty3 for real shell, /dev/pts/3 for xterm
Bây giờ chúng ta có thể cat màn hình vào một tập tin. Nhu cầu sudo.
id=${ttyid//\/dev\/tty}
sudo cat /dev/vcs$id > screen.dump
Apropose screendump
: vì vậy chương trình được đặt tên không còn hiệu quả với tôi nữa. Có lẽ chỉ dành cho hạt nhân cũ. / dev / pts / N cũng không hiệu quả với tôi. Có thể bạn phải có một số MKDEV tùy chọn trong / dev - Tôi nhớ rất rõ về một số /dev/cuaN
, nhưng tôi có thể sai.
Chúng tôi muốn chuyển đầu ra thay vì sử dụng screen.dump. Nhưng bằng cách nào đó nó không hoạt động - đôi khi nó chờ ENTER.
Việc chụp không phải là một tệp văn bản thông thường với các nguồn cấp dữ liệu, nhưng với - ví dụ - ký tự 80x50 trong một chuỗi.
Để chọn 2 dòng cuối cùng, 1 cho đầu ra của lệnh và một cho dòng nhắc nhở, tôi hoàn nguyên nó, chọn 160 ký tự, hoàn nguyên lại và chọn 80.
rev vcs4.dat | sed 's/\(.\{160\}\).*/\1/g' | rev | sed 's/\(.\{80\}\).*/\1/g'
Chỉ trong trường hợp bạn từng tự hỏi, tại sao có một rev
chương trình.
Phê bình:
- Các lệnh đầu tiên được nhập, do đó di chuyển dòng ahed. Chà - chỉ là một bài tập số để chọn dòng thứ 3 hoặc thứ gì đó. Tôi làm việc chủ yếu ở một cửa sổ khác.
- Không phải ai cũng có màn hình 80x50. Vâng, vâng, chúng tôi biết. Có $ COLUMNS và $ ROWS cho niềm vui của bạn.
- Đầu ra không phải là tất cả ở phía dưới. Một vỏ tươi và trẻ có thể ở hàng trên. Vâng - đơn giản như vậy: Đánh giá cái gì đang chạy. Dấu nhắc nào được sử dụng. Thực hiện một số phát hiện nhanh chóng và tìm dòng cuối cùng với dấu nhắc shell. Dòng trước (hoặc 2. trước) nên chứa thư mục.
Sơ đồ đầu tiên được thực hiện với giải thích