Formas de pagamento Abuse

O comando more no Linux

26.11.2021, 20:00

O utilitário more é adequado para a visualização página a página de ficheiros no terminal Linux. Ele deve seu nome ao more, que aparece na parte inferior de cada página. O comando linux more é um dos comandos mais primitivos para trabalhar com texto. Seu parente mais próximo, o comando less, tem um conjunto muito maior de opções e recursos adicionais. Vamos dar uma olhada em sua sintaxe e exemplos de seu uso.

Sintaxe, opções

No emulador de terminal Linux, o comando é escrito da seguinte forma:

$ more options_file

Lista de opções do comando:

  • -d - informa no final da página sobre as teclas usadas para continuar, terminar ou receber instruções;
  • -l - ignora o carácter de quebra de página no texto;
  • -f - contar o número de linhas lógicas em vez de linhas de ecrã;
  • -p - limpar o ecrã do terminal para que o utilizador não tenha de se deslocar antes de ser apresentada a parte seguinte do texto;
  • -c - eliminando a necessidade de deslocação (como -p) - mostrando o texto a partir do topo do ecrã e apagando a saída anterior linha a linha;
  • -s - substitui várias linhas vazias numa linha por uma linha vazia;
  • -u - elimina o sublinhado;
  • -n - mostra o n-ésimo número de linhas;
  • +n - mostra o texto a partir da linha com o número n;
  • +/leght - procura a linha especificada no ficheiro e começa a mostrar o texto a partir dela;
  • --help - chama a ajuda;
  • -v (--version) - mostra a versão atual do utilitário.

O comando more também tem as suas próprias teclas de atalho e comandos interactivos:

  • h (?) - ajuda (mostra informação apenas sobre comandos interactivos);
  • SPACE - mostra a próxima porção de texto (por defeito, o número de linhas depende do tamanho atual da janela do terminal);
  • z - o mesmo que SPACE;
  • ENTER - mostra o texto linha a linha (passo de comando - uma linha);
  • d (^D) - percorre o texto pelo número de linhas correspondente ao tamanho do terminal;
  • q (Q) - sair do utilitário;
  • s - avança uma linha;
  • f - avança uma página do ecrã;
  • b (^B) - recua uma página do ecrã;
  • ' - regressa ao local onde a pesquisa começou;
  • = - mostra o número atual de linhas;
  • /pattern - pesquisa utilizando expressões regulares;
  • n - pesquisa por palavras e frases correspondentes à última expressão regular utilizada;
  • !command (:command) - execução de um comando numa sub-shell;
  • v - abre o ficheiro no editor de texto atribuído por predefinição e, se não for encontrado nenhum, utiliza o editor de texto da consola para abrir o ficheiro;
  • ^L - apaga tudo do ecrã, exceto o conteúdo do ficheiro;
  • :n - passa para o próximo ficheiro;
  • :p - passa para o ficheiro anterior;
  • :f - mostra o nome do ficheiro atual e o número de linhas nele contidas;
  • . - repete a execução do comando anterior.

Como utilizar

Para visualizar o texto de um ficheiro, utiliza-se o comando :

$ more example-file-for-more-command.txt

Também é possível listar vários nomes de ficheiros um após o outro no comando, separando-os com um espaço. O conteúdo destes ficheiros será apresentado pela mesma ordem.

Exemplo:

$ more abc1.txt dfg2.txt

Se um ficheiro não estiver no diretório atual, é necessário especificar o seu endereço completo.

Por vezes é necessário mostrar não todo o texto, mas apenas uma parte dele. Para esses casos, são fornecidas as opções - (menos) e + (mais), ao lado das quais é especificado o número de linhas. Por exemplo, para ver o conteúdo de um ficheiro a partir da linha 8, a opção +8 deve ser adicionada ao comando, e para que o comando mostre o resultado que consiste num máximo de 5 linhas, a opção -5 deve ser adicionada:

$ more +8 -5 example-file-for-more-command.txt

Por predefinição, o comando more Linux conta como uma linha exatamente a linha do ecrã - o número de caracteres que cabem numa linha ao longo da largura da janela. Para realizar a contagem em cadeias lógicas (ao digitar, elas são separadas pressionando Enter), a opção -f é usada.

Exemplo:

$ more -f +8 -5 example-file-for-more-command.txt

O more pode lidar com mais do que apenas ficheiros de texto - pode redirecionar a saída de outros comandos para ele (pipelining). O primeiro é o comando principal, o segundo é o more com as opções necessárias. Os comandos são necessariamente separados por uma linha vertical.

Exemplo:

$ locate bin | more -10

Quando um comando tiver produzido uma parte do texto e estiver inativo à espera de outras acções do utilizador, podem ser executados comandos interactivos. Estes são necessários para controlar a saída.

Para saber o número da linha atual, deve premir a tecla =, e para ver o ficheiro num editor de texto deve premir a tecla v.

Note que nem todos os comandos podem ser executados se a saída de outro comando for redireccionada para o utilitário. Abrir um editor de texto, bem como voltar uma página atrás (b ou ^B) só funciona quando se visualizam ficheiros de texto.

Para obter uma lista de todos os comandos interactivos, prima a tecla h.