comandos bash que não cabem em uma página - tornam a saída rolável

5

Provavelmente foi respondida em algum lugar, mas é difícil enquadrar a frase de pesquisa.

Estou executando uma janela do terminal bash e alguns comandos são grandes demais para caber na página (por exemplo, ps -A )

Eu me lembro vagamente de um parâmetro / método de linha de comando que mostra a saída do comando página por página para que eu possa rolar pela saída, mas não consigo me lembrar o que é .... quaisquer ponteiros?

    
por code_fodder 02.07.2014 / 11:50

3 respostas

7

Para comandos que eu uso com frequência, geralmente configuro um function no meu .bashrc para fazê-los paginar se for mais longo que uma tela.

Como seu exemplo: (ps -A)

function ps { command ps "$@" |& less -F; }

Isso substitui ps por uma função chamada ps , que chama o comando ps original com os argumentos fornecidos na linha de comando, e canaliza a saída (stdout e stderr, usando o |& pipe) em less -F , que faz uma pausa se houver mais de uma tela cheia, mas sai imediatamente se for menor que uma tela cheia.

MUITO à mão, não interfere em nada com o que trabalhei até agora e é simplesmente legal!

Você também pode adicionar opções muito usadas ao comando / funções:

function nm { command nm --demangle "$@" |& less -F; }

Isso faz com que nm sempre demangle símbolos C ++. AND pagina a saída. Yay!

Eu estou rodando Debian , então eu uso o comando apt-cache com bastante frequência, pesquisa e mostra principalmente. Essa função faz com que essas opções específicas paginem, a saída pesquisa seja classificada e tudo pagine:

function apt-cache { case  "$1" in "search") command apt-cache "$@" | sort | less -F;; *) command apt-cache "$@" | less -F;; esac; }

Se o comando for 'search', classifique a saída e, em seguida, pagine com less -F , mas se o comando for qualquer outra coisa, apenas pagine, sem classificar.

Ocasionalmente esqueço que tenho as funções e faço algo como:

apt-cache search gcc | less

A função não interfere, tudo funciona como esperado, sem nenhum dano.

Outro pequeno ajuste, eu uso o mesmo .bashrc em todos os meus sistemas, então às vezes um utilitário pode não ser instalado, então não há necessidade da função. Eu os faço condicionais assim:

which apt-cache &>/dev/null && function apt-cache { case  "$1" in "search") command apt-cache "$@" |& sort | less -F;; *) command apt-cache "$@" |& less -F;; esac; }

Isto apenas usa o comando which para determinar se um programa está disponível, se não estiver, ele silenciosamente falha e ignora a instalação da função. Taa Daa!

    
por 02.07.2014 / 13:28
5

O método normal é canalizar a saída para "menos".

ls -R / | less

q é a chave para sair, assim como uma página man.

Se o comando pode produzir erros ou outra saída para o stderr, você pode querer direcionar isso para o pipe também.

ls -R 2>&1 | less

Qualquer máquina que tenha bash deve ter menos também. Em máquinas Linux antigas, o programa era mais , mas isso faz apenas uma página de cada vez, menos permitirá que você role conforme desejar.

    
por 02.07.2014 / 12:28
0

Canalize a saída para "mais"

output | more -d


Enter - > Scroll by line
Space - > Scroll by Page
q     - > Quit

Testado no sistema operacional baseado em rpm.

    
por 14.06.2017 / 18:45

Tags