Mostrando todas as páginas de uma só vez com o comando man [duplicate]

4

Digamos que se eu executar o comando man who , tenho que continuar pressionando o espaço ou entrar para mostrar todo o conteúdo. Existe uma maneira de mostrar todo o conteúdo de uma só vez?

    
por gillette64 10.03.2015 / 23:09

5 respostas

8

Canalize a saída por meio de cat :

man who | cat

Isso funciona porque man (ou realmente pager , que é um link simbólico para less ) verificará qual tipo de terminal está conectado ao STDOUT. Se não houver terminal, ou seja, se o STDOUT for redirecionado para um arquivo ou canal, não haverá nenhuma tentativa de formatar o texto para que ele possa ser rolado de forma interativa.

    
por 10.03.2015 / 23:15
5

Use cat como o pager; por exemplo, isso despejará a manpage inteira para o comando ls :

man -P cat ls

Note que isto não é portátil (eu apenas tentei isto nos sistemas Debian e Mac OS); por exemplo, em Ultrix ou Tru64, - P define o caminho do caminho .

    
por 10.03.2015 / 23:15
3

Uma cena antiga:

man whatever | col -b > whatever.txt

O uso do comando col , muito obscuro, filtra todos os backspaces e caracteres duplicados que nroff usa para fazer a formatação. Então, você pode usar a sua escolha de editor de texto para examinar toda a página do manual.

    
por 10.03.2015 / 23:25
1

Se você usa um emulador de terminal que suporta a rolagem de volta e definiu o tamanho do buffer de rolagem para algo "suficientemente grande", você pode usar essa rolagem para navegar pela saída.

eu usaria

MANPAGER=cat man who

para escrever todo o texto da página de manual de uma vez para o terminal (é uma variante de man -P cat ls ).

Eu uso konsole como terminal, que é configurado para suportar a rolagem usando a roda de rolagem do mouse.
Funciona muito bem para este caso - a roda rola através do texto da página do manual, e a inserção de qualquer caractere retorna ao prompt. Usando as teclas Shift + PgUp e Shift + PgDn , você pode rolar por seções de altura do terminal.

Outros emuladores de terminal podem ser configurados de maneira semelhante.
Como alternativa, um multiplexador de terminal como tmux / screen pode ser usado para fornecer o buffer de rolagem.

Se você não pode rolar até o topo da página man, defina o tamanho do buffer de rolagem do seu emulador de terminal para um valor maior.

    
por 11.03.2015 / 01:38
0

Suponha que você precise ler manul ls :

man ls | sed  's/\n//g'
    
por 10.03.2015 / 23:33