Sao chép tất cả văn bản của toàn bộ trang `man` từ Terminal.app


20

Tôi đang đọc một trang người đàn ông rất dài ( man ssh). Tôi muốn lưu tất cả văn bản đó để đọc thuận tiện hơn trong trình soạn thảo văn bản.

Thật không may, chọn một trong hai:

  • Chỉnh sửa → Chọn tất cả → Sao chép

  • Shell → Xuất văn bản dưới dạng ...

dẫn đến việc chỉ lưu một màn hình đầy văn bản, không phải tất cả văn bản được cuộn bởi.

Làm cách nào để trích xuất văn bản của toàn bộ mantrang?


Có một ứng dụng Man Reader miễn phí của bên thứ 3. Mở một cửa sổ với một danh sách ở bên trái của tất cả các trang man có thể. Khi bạn chọn một, nó sẽ in nội dung ở khung giữa. Khá đẹp.
jmh

Câu trả lời:


25

Bạn có thể đẩy văn bản đơn giản vào bảng tạm bằng cách chuyển đến pbcopy, để dán bất cứ nơi nào như bình thường.

man ssh | col -b | pbcopy

hoặc tương đương

man -P "col -b | pbcopy" ssh

cái sau sẽ đẹp hơn nếu bạn muốn sử dụng nó như một bí danh, như mancp ssh, được cho:

alias mancp='man -P "col -b | pbcopy"'

Có các phương pháp để chuyển sang HTML / PDF: Các trang man có thể được chuyển đổi sang định dạng html và / hoặc pdf không?


Nếu đó chỉ là trải nghiệm đọc đẹp hơn mà bạn theo đuổi, bạn có thể nhấp chuột phải vào lựa chọn lệnh và mở trang man của nó dưới dạng một cửa sổ / tab riêng biệt, với chế độ cuộn thông thường và findF find.

Đọc sách

Bạn có thể tùy chỉnh giao diện của nó trong Tùy chọn đầu cuối → Cấu hình, trong cấu hình Trang con người là một trong những cấu hình mặc định tồn tại.
Điều này bao gồm họ phông chữ và kích thước (cũng xem menu View) và màu nền / màu nền trước.

Tùy chọn hồ sơ trang Man


2
Nhấp chuột phải vào trang man không hoạt động với iTerm. Trên máy của tôi, nó hoạt động với thiết bị đầu cuối. Cửa sổ nhấp nháy tôi đoán 10 lần một giây. Tôi có thể ngăn chặn nó bằng cách nhấp nhưng tôi không biết mình đang nhấp vào đâu ...
jmh

@jmh Có vẻ là một lỗi Mojave, nhấp nháy này, cũng đã có nó ở đây
nohillside

1
pbcopypbpastelà hai trong số các tiện ích tốt nhất có sẵn trên Macos.
Christopher Schultz

1
Cảm ơn! Tất cả các câu trả lời là thông tin và hữu ích, nhưng tôi đã phải chấp nhận điều này. Các man ssh | col -b | pbcopygiải pháp trực tiếp đề cập đến chi tiết cụ thể của câu hỏi của tôi. Và sau đó, khi đóng băng trên bánh, trình đọc trang người dùng tích hợp của Terminal.app hơn hẳn để dễ sử dụng.
Basil Bourque

Một mở rộng hữu ích cho giải pháp của bạn cũng có thể bao gồm chiều rộng cột và / hoặc mở nó trực tiếp trong trình soạn thảo văn bản bạn chọn, ví dụ: MANWIDTH=80 MANPAGER="col -bx" man tmutil | open -fa "TextMate"
Asmus

13

Nếu bạn muốn đọc trang man trong Bản xem trước, được định dạng độc đáo dưới dạng PDF, bạn có thể chạy

man -t ssh | open -f -a Preview

Hoặc là

man ssh | col -b | open -f -e

để mở phiên bản văn bản trong TextEdit.


6

Đưa đầu ra tiêu chuẩn của manlệnh đang chạy vào coltiện ích dựng sẵn . Chạy dòng lệnh sau:

man ssh | col -b > ssh.txt


@BasilBourque Tôi cũng thấy này bài viết tuyệt vời.
Nimesh Neema

4

Trải nghiệm đọc tốt nhất cho các tác vụ này đạt được khi sử dụng một ứng dụng dành riêng cho điều đó.

Hai ứng cử viên:

Thủy

AquaLess là một máy nhắn tin văn bản cho Mac OS X. Nó cho phép bạn duyệt các tệp văn bản đơn giản và - quan trọng hơn - đầu ra văn bản từ các công cụ dòng lệnh Unix. AquaLess là một thay thế ca cao cho lệnh ít hơn, bị ràng buộc với cửa sổ đầu cuối. AquaLess mở một cửa sổ riêng cho mỗi văn bản, do đó bạn có thể tiếp tục làm việc trong thiết bị đầu cuối trong khi bạn đọc.

Hoặc ManOpen

ManOpen là một ứng dụng GUI MacOS X để xem các trang hướng dẫn Unix, là tài liệu chuẩn cho các chương trình dòng lệnh Unix, thư viện lập trình và thông tin hệ thống khác. Nó có thể mở tệp trực tiếp hoặc được cung cấp tiêu đề, trong trường hợp đó, nó sẽ hiển thị đầu ra từ chương trình dòng lệnh 'man'. Một giao diện apropos cũng được cung cấp, về cơ bản là một tìm kiếm nhanh chóng và bẩn thỉu của cơ sở dữ liệu trang người đàn ông. Các dịch vụ được cung cấp cho các ứng dụng khác để mở các tệp / tiêu đề đã chọn hoặc thực hiện tìm kiếm apropos bằng văn bản đã chọn. ManOpen có thể hữu ích để mở một trang man mà không cần thả xuống dòng lệnh, duyệt và tìm kiếm thông qua các trang man dài và phức tạp, hoặc đơn giản là để in chúng ra.

Cũng bao gồm một công cụ dòng lệnh 'openman', tương tự như con người ngoại trừ nó sẽ hiển thị các trang man trong ManOpen.app thay vì trực tiếp đến thiết bị đầu cuối.

Hoặc đọc những trang đó trong Safari? Sau đó đi bwana

Tải xuống Bwana và thả nó vào thư mục ứng dụng của bạn. Sau đó, thậm chí không chạy nó, bạn có thể bắt đầu xem các trang hướng dẫn sử dụng Unix bằng trình duyệt của mình. Chỉ cần nhập "man:" theo sau là trang man bạn đang tìm kiếm vào trường URL của trình duyệt. Nhấn enter và để Bwana làm phần còn lại.

Các trang man được tạo bởi Bwana rất đơn giản và chính xác. Chúng tôi chỉ cần ném một số màu sắc, một số tiêu đề táo bạo và làm sạch nó một chút, để chúng dễ nhìn. Trên thực tế, Bwana rất đơn giản - chúng ta không thể nói gì nhiều về nó. Vì vậy, chỉ cần tải xuống Bwana ngay bây giờ để xem nó tích hợp dễ dàng như thế nào với trình duyệt của bạn và sự khác biệt của nó khi xem các trang man.

Sau đó, bạn có thể xây dựng một hàm shell cho nó như thế này:

function sman
    open -a Bwana man:$1
end

Để hoàn thiện hơn: nếu bạn đã cài đặt X11, thì bạn cũng có xman.

Các ứng cử viên khác có thể là Man Reader ($) , Manpager , Manpower ($) , Man Viewer .


3

Tại sao làm cho mọi thứ phức tạp hơn so với chúng?

https://man.openbsd.org/ssh

Vì bạn có thể đăng bài ở đây, rõ ràng bạn có quyền truy cập vào internet.

Nếu bạn google xung quanh một chút, bạn có thể tìm thấy các phiên bản được định dạng theo các cách khác nhau, ví dụ: pdf hoặc như vậy.


4
+1 cho chủ nghĩa thực dụng mặc dù bây giờ bạn phải tìm ra phiên bản nào của trang man bạn đang tìm kiếm, đôi khi (đối với các công cụ khác nhau trong đó các đối số dòng lệnh khác nhau giữa ví dụ Linux và BSD hoặc nơi mọi thứ thay đổi nhiều giữa các phiên bản )
fluffy

và ngoài các nhận xét của @ fluffy, điều này sẽ không hoạt động đối với bất kỳ công cụ macOS nào có nhiều, ví dụ như tmutil cho Time Machine.
grg

1
@grg Có, nó có ss64.com/osx/tmutil.html
db

1
Đó là một trang web khác, bạn đã đến đó bằng cách tìm kiếm từ liên kết của bạn trong bài đăng hay chỉ Google? Tôi biết có rất nhiều trang người dùng trực tuyến, bao gồm cả tài liệu tham khảo dành cho nhà phát triển của Apple, trong đó thực sự có trang người dùng tmutil, nhưng sau đó câu trả lời này không có gì khác hơn 'Google nó'?
grg

@grg Tôi đã nhận nó từ Google. Có, nhưng mục đích của câu hỏi là đơn giản hóa việc đọc các trang man và trang web là một cách tốt để đạt được mục tiêu đó.
db

2

Nếu bạn muốn bạn có bản sao PDF của các trang hướng dẫn của mình, đây là chức năng tôi đã thêm vào .bash_profiletệp của mình để tạo tệp PDF của mỗi lệnh BSD Tôi sẽ kiểm tra trang hướng dẫn để biết:

manp () 
{ 
    docDir="$HOME/Documents/BSD Commands"
    [[ ! -d $docDir ]] && mkdir -p "$docDir"
    if [[ ! -f $docDir/$1.pdf ]]; then
        man -t "$1" | pstopdf -i -o "$docDir/$1.pdf"
        open "$docDir/$1.pdf"
    else
        open "$docDir/$1.pdf"
    fi
}

Vì vậy, trong nhà ga , gõ ví dụ như manp bashthay vì man bashmột PDF được tạo ra, nếu nó chưa được, và sau đó mở ứng dụng đăng ký xử lý PDF tài liệu. Các mặc địnhPreview , tuy nhiên trên hệ thống của tôi nó thiết lập để sử dụng Skim , như chức năng tìm kiếm của nó là tốt hơn sau đó Preview và như là một vấn đề của thực tế sẽ tìm chuỗi tìm kiếm khi Preview chỉ sẽ không.

Lưu ý rằng lần đầu tiên chức năng được sử dụng, nó sẽ liệt kê một số phông chữ trong đầu ra trong Terminal , tuy nhiên đây là kiểu liệt kê một lần của các phông chữ.

Điều hay ho của các bản sao PDF là nó duy trì định dạng, tức là phông chữ đậm và chữ nghiêng, v.v.


Như một lưu ý phụ, chỉ cần gõ tên lệnh trong Terminal và sau đó nhấp chuột phải vào nó và chọn Open man Page , hiển thị nó trong cửa sổ Terminal có thể cuộn và tìm kiếm đầy đủ , tốt hơn nhiều, sau đó nhập ví dụ man bash.

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.