Copie todo o texto de uma página inteira `man` do Terminal.app

20

Estou lendo uma página de manual muito longa ( man ssh). Quero salvar todo esse texto para uma leitura mais conveniente em um editor de texto.

Infelizmente, escolha um dos seguintes:

  • Editar → Selecionar tudo → Copiar

  • Shell → Exportar texto como ...

resulta em salvar apenas uma tela cheia do texto, nem todo o texto que rolou.

Como extraio o texto de uma manpágina inteira ?

Basil Bourque
fonte
Há um aplicativo gratuito de terceiros Man Reader. Abre uma janela com uma lista à esquerda de todas as páginas de manual possíveis. Quando você seleciona um, imprime o conteúdo no painel do meio. Muito bom.
jmh

Respostas:

25

Você pode enviar texto sem formatação para a área de transferência, canalizando para pbcopy, para colar em qualquer lugar, como de costume.

man ssh | col -b | pbcopy

ou equivalente

man -P "col -b | pbcopy" ssh

o último dos quais é melhor se você quiser usá-lo como um alias, como mancp ssh, dado:

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

Existem métodos para acessar HTML / PDF: As páginas de manual podem ser convertidas para o formato html e / ou pdf?


Se você procura apenas uma experiência de leitura melhor, clique com o botão direito do mouse em uma seleção de um comando e abra sua página de manual como uma janela / guia separada, com rolagem normal e ⌘F find.

Melhor leitura

Você pode personalizar a aparência em Terminal Preferences → Profiles, no perfil Man Page, que é um dos perfis padrão existentes.
Isso inclui a família e o tamanho da fonte (também consulte o menu Exibir) e as cores de segundo plano / primeiro plano.

Preferências do perfil da página de manual

grg
fonte
2
O clique direito na página de manual não funciona com o iTerm. Na minha máquina, funciona mais ou menos com o terminal. A janela piscou, eu acho, 10 vezes por segundo. Eu poderia pará-lo clicando, mas não sabia onde estava clicando ...
jmh 20/11/18
@jmh Parece ser um bug do Mojave, esse tremor, também chegou aqui
nohillside
11
pbcopye pbpastesão dois dos maiores utilitários disponíveis em Macos.
21418 Christopher Schultz
11
Obrigado! Todas as respostas são informativas e úteis, mas eu tive que aceitar esta. A man ssh | col -b | pbcopysolução aborda diretamente os detalhes da minha pergunta. E então, como cereja no topo do bolo, o leitor de páginas de manual interno do Terminal.app supera isso para facilitar o uso.
Basil Bourque
Uma expansão útil da sua solução também pode incluir a largura da coluna e / ou abri-la diretamente no editor de texto de sua escolha, por exemplo: MANWIDTH=80 MANPAGER="col -bx" man tmutil | open -fa "TextMate"
Asmus
13

Se você quiser ler a página do manual na Visualização, bem formatada como PDF, poderá executar

man -t ssh | open -f -a Preview

Ou

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

para abrir a versão de texto no TextEdit.

nohillside
fonte
6

Canalize a saída padrão do mancomando running para o colutilitário interno . Execute a seguinte linha de comando:

man ssh | col -b > ssh.txt

Nimesh Neema
fonte
@BasilBourque Também encontrei este artigo maravilhoso.
Nimesh Neema
4

A melhor experiência de leitura para essas tarefas é obtida ao usar um aplicativo dedicado para isso.

Dois candidatos:

AquaLess

O AquaLess é um pager de texto para o Mac OS X. Ele permite que você navegue em arquivos de texto sem formatação e - mais importante - na saída de texto das ferramentas de linha de comando do Unix. O AquaLess é um substituto do cacau para o comando less, que é restrito à janela do terminal. O AquaLess abre uma janela separada para cada texto, para que você possa continuar trabalhando no terminal enquanto lê.

Ou homem

O ManOpen é um aplicativo da interface do usuário do MacOS X para a visualização de páginas de manual do Unix, que são a documentação padrão para programas de linha de comando, bibliotecas de programadores e outras informações do sistema. Pode abrir arquivos diretamente ou receber títulos; nesse caso, ele exibirá a saída do programa de linha de comando `man '. Uma interface apropriada também é fornecida, que é basicamente uma pesquisa rápida e suja dos bancos de dados da página de manual. Os serviços são fornecidos a outros aplicativos para abrir arquivos / títulos selecionados ou fazer pesquisas apropriadas usando o texto selecionado. O ManOpen pode ser útil para abrir uma página de manual sem cair na linha de comando, navegando e pesquisando em páginas de manual longas e complexas ou simplesmente para imprimi-las.

Também está incluída uma ferramenta de linha de comando `openman ', que é semelhante ao man, exceto que exibirá as páginas do manual no ManOpen.app, em vez de diretamente no terminal.

Ou leia essas páginas no Safari? Então vá para o bwana

Baixe o Bwana e solte-o na sua pasta de aplicativos. Então, mesmo sem executá-lo, você pode começar a visualizar as páginas de manual do Unix usando seu navegador. Basta digitar "man:" seguido da página de manual que você procura no campo de URL do seu navegador. Pressione enter e deixe o Bwana fazer o resto.

As páginas de manual geradas pelo Bwana são simples e objetivas. Nós jogamos apenas algumas cores, alguns cabeçalhos em negrito e os limpamos um pouco, para que fiquem fáceis de ver. De fato, o Bwana é tão simples - não há muito mais o que dizer sobre isso. Portanto, basta fazer o download do Bwana agora para ver como ele se integra facilmente ao seu navegador e que diferença faz na visualização de páginas de manual.

Em seguida, você pode criar uma função shell assim:

function sman
    open -a Bwana man:$1
end

Por uma questão de integridade: se você possui o X11 instalado, também o possui xman.

Outros candidatos podem ser o Man Reader ($) , Manpager , Manpower ($) , Man Viewer .

LÁngLаngС
fonte
3

Por que tornar as coisas mais complicadas do que são?

https://man.openbsd.org/ssh

Como você pode postar aqui, obviamente você tem acesso à Internet.

Se você pesquisar um pouco no Google, provavelmente poderá encontrar versões formatadas de maneiras diferentes, por exemplo, PDF ou mais.

db
fonte
4
+1 para pragmatismo, embora agora você precise descobrir qual versão da página de manual você está procurando, às vezes (para as várias ferramentas em que os argumentos da linha de comando são diferentes entre, por exemplo, Linux e BSD, ou onde as coisas mudaram muito entre as versões )
fluffy
e, além dos comentários do @ fluffy, isso não funcionará para nenhuma ferramenta do macOS com abundância, por exemplo, tmutil para Time Machine.
grg
11
@grg Sim, ele faz ss64.com/osx/tmutil.html
db
11
Esse é um site diferente. Você conseguiu isso pesquisando no seu link no post ou apenas no Google? Estou ciente de que há muitas páginas de manual on-line, incluindo a referência de desenvolvedor da Apple, que de fato contém a página de manual tmutil, mas essa resposta se torna nada mais do que 'Google it'?
grg
@grg Eu peguei no Google. Sim, mas o objetivo da pergunta era simplificar a leitura de páginas de manual e páginas da web, que são uma boa maneira de atingir esse objetivo.
db
2

Se você gosta de ter cópias em PDF de suas páginas de manual, aqui está uma função que adicionei ao meu .bash_profilearquivo para criar um PDF de cada comando BSD . Verifique a página de manual para:

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
}

Assim, no Terminal , a digitação, por exemplo, em manp bashvez de man bashum PDF, é criada, se ainda não o foi, e então aberta pelo aplicativo registrado para lidar com documentos PDF . O padrão é Preview , no entanto, no meu sistema, ele está configurado para usar o Skim , pois sua funcionalidade de pesquisa é melhor que o Preview e, de fato, encontrará a sequência de pesquisa quando o Preview simplesmente não.

Observe que a primeira vez que a função é usada, ela enumera algumas fontes na saída do Terminal ; no entanto, essa é uma enumeração única das fontes.

O bom das cópias em PDF é que ela mantém a formatação, como fonte em negrito e itálico, etc.


Como observação lateral, digite apenas o nome do comando no Terminal e clique com o botão direito do mouse e selecione Abrir página de manual , exibindo-o em uma janela do Terminal totalmente rolável e pesquisável , o que é muito melhor do que digitar, por exemplo man bash.

user3439894
fonte