Qualquer maneira de cat algumas linhas de man page para mostrar no stdout como referência?

6

Esta é uma pergunta simples. Tentando o meu melhor para colocar em uma palavra simples. Espero que você consiga sem muita confusão -

Eu li uma página man para alguma opção / opção de comando que tem uma longa descrição. Eu li, pressione q para escapar e tente a opção. Mas então eu preciso voltar para a mesma página de manual para mais informações. Então, repito os passos

Gostaria de saber se existe alguma maneira de enviar o conteúdo da página de manual para o stdout para consultá-lo rapidamente.

Por exemplo, vamos usar o short-one cal , pode ser algo como

cat 'man cal'

seria eficaz e ajudaria a alcançar o requisito desejado.

Alguma dica?

    
por mtk 04.12.2013 / 09:46

4 respostas

7

Você pode executar a saída de man no comando col e enviar para less . Uma vez em less você pode cair para um shell enquanto mantém sua localização em less .

$ man col | col -b | less

Uma vez em less , você pode usar !bash para obter uma solicitação para fazer o que quiser. Quando terminar, digite exit para retornar ao seu local em less .

Exemplo

Aqui está uma demonstração que mostra toda a operação.

Digaaohomemparausarumpagerdiferente

Vocêtambémpodedizeramanparausardiferentespagerspormeiodaopção-P.Assim,podemossimplificarométodoacimadaseguinteforma:

$man-Plesscol

Issoestáchamandomane,emseguida,exibindooconteúdodapáginaparaless,ondenovamentepodemosusar!bashparachegaraumshell.Pararetornar,usamososmesmospassosacima,exit.

Oquehádeerradocomopagerpadrão?

Naverdade,nada.

$mancol

Eletambémpodeusarocomando!bashparaescaparparaumshell,ondenovamentepodemosdigitarexitparavoltaraolocalemqueestávamosanteriormentenamanpage.

Oquemais?

Sevocêestiverrealmentelouco,podeusarvimcomoumpageralternativotambém.Configurarissoéumpoucodifícil,maséfactível,instruçõesparafazerissoestãoaquinotópicowikiadovimintitulado: Usando o vim como um visualizador de páginas de manual no Unix .

Não deixe a página acima enganar você, ela não cobre apenas os métodos vim . Esse tópico abrange várias maneiras de alterar seu pager de manual, além de usar vim .

    
por 04.12.2013 / 09:54
6

Você pode canalizar a saída de man através do comando que quiser.

man cal | head
man cal | cat

Se você quiser que a página man (ou pelo menos a parte que você percorreu) permaneça no buffer de rolagem do terminal quando sair menos, execute

LESS=-X man cal

(isso pode ter efeitos estranhos em alguns terminais).

Se você estiver lendo uma página de manual e quiser experimentar algo, a maneira mais fácil é manter a página de manual aberta em um terminal e ter um prompt de shell em outro terminal. Se possível, providencie para que ambos os terminais fiquem visíveis na tela ao mesmo tempo. Você pode usar a Tela ou Tmux se você não puder executar duas janelas de emulador de terminal por algum motivo.

Se você quiser fazer tudo no mesmo terminal, você pode suspender o comando man pressionando Ctrl + Z e voltar para ele com o comando %código%. Se você tiver vários comandos suspensos ou em segundo plano, fg retoma o último a ter estado em primeiro plano; digitar fg , %1 , etc. recomeça um designado por seu número de trabalho.

    
por 05.12.2013 / 02:32
1

Como slm já apontou , você pode usar a col para filtrar feeds de linha reversa da saída de man , em seguida, canalize essa saída ainda mais. Para produzir algumas linhas a partir do início de uma página de manual, você pode combinar isso com head , por exemplo para produzir as primeiras vinte linhas:

$ man cal | col -b | head -n 20

Como sobre a saída de cada linha que se parece com uma descrição de opção:

$ man cal | col -b | grep -A1 "^\s*-"
    
por 04.12.2013 / 10:12
1

Você está procurando

PAGER="cat" man cal

... pelo menos essa é a sintaxe para bash . O conteúdo da variável PAGER é usado para exibir a página do manual. Se você definir PAGER="cat" , ele será gravado no stdout. Se você definir PAGER="pastebinit" , acabará postando man-pages para pastebin.

Claro que isso só resolve a saída do conteúdo da man page no stdout

    
por 04.12.2013 / 10:45

Tags