Slackjeff Wiki

Bits que significam

Ferramentas do usuário

Ferramentas do site


utils:more

Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

Ambos lados da revisão anteriorRevisão anterior
Próxima revisão
Revisão anterior
utils:more [2024/12/15 00:16] – [Noções básicas] ajuste tipográfico, inclusão de expressões regulares hrcerqutils:more [2025/01/08 23:23] (atual) – [Noções básicas] Primeira referência a ctags no artigo hrcerq
Linha 1: Linha 1:
 ====== more ====== ====== more ======
  
-**more** é um paginador de terminal, originário do UNIX. +**more** é um paginador [[utils:glossario#t|de terminal]] :?:, originário do UNIX.
- +
-===== História ===== +
- +
-O comando __more__ surgiu no 3.0BSD, por estudantes da universidade de Berkeley (originalmente criado por Daniel Halbert, em 1978). O comando foi gradualmente aprimorado ainda nesse sistema e depois se espalhou para outros UNIX, e depois até mesmo para sistemas não UNIX. +
- +
-O programa inicialmente tinha algumas limitações, como não navegar em sentido reverso. Isso fez com que perdesse a popularidade para o programa __less__, que tinha essa e outras capacidades adicionais. No entanto, __more__ virou parte do padrão POSIX, tendo em parte o padrão se baseado em __less__, e hoje __less__ é uma das implementações possíveis de __more__ (vide seção de [[#implementacoes|Implementações]]). +
-===== Padronização ===== +
- +
-O paginador __more__ é parte do padrão POSIX. Presente nas seguintes revisões: +
- +
-  * [[https://pubs.opengroup.org/onlinepubs/9799919799/utilities/more.html|2024]] +
-  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/more.html|2018]] +
-  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2016edition/utilities/more.html|2016]] +
-  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/utilities/more.html|2013]] +
-  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/utilities/more.html|2008]] +
- +
-===== Implementações ===== +
- +
-Em alguns sistemas tipo UNIX é comum que o paginador __more__ seja apenas uma referência à ferramenta __less__, com opções de compatibilidade com o padrão. Por este motivo, a lista de implementações abaixo fica bem restrita: +
- +
-  * [[https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/text-utils|util-linux]] ([[https://www.man7.org/linux/man-pages/man1/more.1.html|docs]]) +
-  * [[https://git.busybox.net/busybox/tree/util-linux/more.c|Busybox]] ([[https://www.busybox.net/downloads/BusyBox.html#more|docs]]) +
- +
-__less__ (aqui usado como __more__): +
- +
-  * [[https://www.greenwoodsoftware.com/less/|less]] ([[https://www.man7.org/linux/man-pages/man1/less.1.html|docs]]) +
- +
-Nesse sentido, __less__ pode ser entendido como uma das implementações de __more__, desde que usado em modo de compatibilidade (isto é, com o uso da variável de ambiente ''LESS_IS_MORE'', ou com o uso de um link simbólico para __less__ cujo nome seja "//more//"). Para mais informações, vide [[utils:less|less]]+
- +
-Cabe dizer também que no OpenBSD há uma página de manual dedicada ao uso de __less__ em modo de compatibilidade com __more__: +
- +
-  * [[https://man.openbsd.org/more|more]] +
- +
-Existem algumas diferenças quanto ao nível de aderência dessas implementações ao padrão POSIXsendo o modo de compatibilidade do __less__ um dos mais aderentes (sobretudo se considerarmos o suporte a [[utils:ctags|ctags]]). +
- +
-Além dos sistemas aderentes (totalmente ou parcialmente) ao padrão POSIX, outros sistemas também possuem o paginador __more__, com algumas diferenças inevitáveis de implementação, mas com relativa semelhança. +
- +
-  * [[https://github.com/FDOS/more|FreeDOS]] ([[http://wiki.freedos.org/wiki/index.php/More|docs]]) +
-  * [[https://reactos.org/wiki/Working_Batch_Commands#m|ReactOS]] ([[https://ss64.com/nt/more.html|docs]]) +
-  * [[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/more|Windows]]+
  
 ===== Noções básicas ===== ===== Noções básicas =====
Linha 60: Linha 20:
  
 É possível também acionar comandos internos do paginador __more__, para navegar de volta para o arquivo anterior, ou pular o arquivo atual e passar para o próximo da lista. É possível também acionar comandos internos do paginador __more__, para navegar de volta para o arquivo anterior, ou pular o arquivo atual e passar para o próximo da lista.
 +
 +  * **Buffer**
 +
 +Para paginar arquivos, __more__ usa um //buffer//, isto é, uma área de memória que vai guardar o texto do arquivo. O modo como __more__ gerencia esse //buffer// é um detalhe de implementação, podendo variar. Em alguns casos, todo o conteúdo é salvo no //buffer//, em outros, ele pode manter apenas parte do arquivo, para poupar memória.
  
   * **Capacidades do terminal**   * **Capacidades do terminal**
Linha 71: Linha 35:
 Uma vez com o programa aberto, é possível enviar alguns comandos para ele. Comandos como navegar para outro arquivo (anterior, próximo ou algum arquivo cujo nome seja informado), abrir o arquivo atual em um editor de texto, pesquisar por alguma palavra ou trecho específico, dentre outros. Uma vez com o programa aberto, é possível enviar alguns comandos para ele. Comandos como navegar para outro arquivo (anterior, próximo ou algum arquivo cujo nome seja informado), abrir o arquivo atual em um editor de texto, pesquisar por alguma palavra ou trecho específico, dentre outros.
  
-  * **Editor**+  * **Editor**
  
 Uma vez com o programa __more__ aberto, é possível acionar um editor de texto para abrir o arquivo atual e possivelmente alterá-lo. Portanto nesse existe a noção de editor como o programa que vai ser usado nesse contexto (tipicamente o __vi__). Uma vez com o programa __more__ aberto, é possível acionar um editor de texto para abrir o arquivo atual e possivelmente alterá-lo. Portanto nesse existe a noção de editor como o programa que vai ser usado nesse contexto (tipicamente o __vi__).
Linha 109: Linha 73:
   * **Prompt**   * **Prompt**
  
-...+__more__ é uma ferramenta interativaO modo dessa ferramenta de mostrar que está à espera de um comando do usuário (como avançar ou retroceder no texto, por exemplo) é apresentando um //prompt// ao fim da página. 
 + 
 +Esse //prompt// consiste em um texto destacado informando o nome do arquivo que está sendo lido, e possivelmente algumas informações adicionais (como o percentual de linhas desde o início do arquivo até o ponto atual em relação ao tamanho total do arquivo).
  
   * **Redesenho**   * **Redesenho**
  
-...+Um redesenho da tela é o movimento de apagar o conteúdo atual da tela, e reescrever ou substituir por um texto diferente.
  
   * **Rolagem**   * **Rolagem**
  
-...+Uma rolagem de tela é o movimento de adicionar linhas ao fim da página (quando está avançando) ou ao topo (quando está retrocedendo) e deslizar as demais linhas para cima (ao avançar) ou para baixo (ao retroceder).
  
   * **Tags**   * **Tags**
 +
 +//Tags// (do inglês, etiquetas) são uma maneira de rastrear definições (de funções, de tipos e outros objetos) dentro de um arquivo de código-fonte C ou Fortran (e opcionalmente de outras linguagens). Um arquivo específico guarda as referências dessas definições, apontando para o arquivo e para o local dentro desse arquivo onde cada uma delas pode ser encontrada.
 +
 +O arquivo em questão é gerado pelo utilitário [[utils:ctags|ctags]], e __more__ suporta a abertura de arquivos buscando por essas referências, o que é conveniente para a leitura de código-fonte.
 +===== Iniciando e encerrando =====
 +
 +Iniciar o paginador __more__ é bastante simples. Basta acionar o programa, seguido (opcionalmente) pelos seus [[utils:glossario#p|parâmetros]] :?: e depois por um ou mais arquivos a serem paginados.
 +
 +<code>
 +$ more arquivo1 arquivo2 arquivo3
 +</code>
 +
 +Os arquivos não são abertos todos de uma vez. Apenas o primeiro deles estará visível na tela do terminal (ou seja, neste exemplo, apenas //arquivo1// estaria visível na tela, os outros só poderiam ser acessados por meio de comandos de navegação do paginador).
 +
 +Antes de tratarmos sobre como navegar pelos arquivos abertos, precisamos falar sobre como encerrar o paginador. Basta digitar **q**, um //comando// que encerra o paginador, independente de você ter lido tudo ou não. Em qualquer ponto do texto, de qualquer um dos arquivos abertos para examinação, você pode acionar esse comando para encerrar o paginador.
 +
 +Ao encerrar __more__, você notará que o texto continuará visível na tela.
 +
 +<note tip>
 +A permanência do texto na tela pode ou não ser conveniente (costuma ser, quando o conteúdo do arquivo paginado é alguma informação útil para algum outro comando que deseja executar), mas caso não seja, você pode depois limpar a tela com __clear__ (ou **Ctrl** + **L**).
 +</note>
 +
 +===== Comandos =====
  
 ... ...
 +===== Trocando de arquivos =====
  
-  * **Terminal**+... 
 + 
 +===== Texto formatado =====
  
 ... ...
-===== Iniciando e encerrando =====+ 
 +===== Pesquisa de texto =====
  
 ... ...
 +
 +==== Expressões regulares ====
 +
 +...
 +
 +===== Marcadores =====
 +
 +...
 +
 +===== Passando para a edição =====
 +
 +...
 +
 +===== História =====
 +
 +O comando __more__ surgiu no 3.0BSD, por estudantes da universidade de Berkeley (originalmente criado por Daniel Halbert, em 1978). O comando foi gradualmente aprimorado ainda nesse sistema e depois se espalhou para outros UNIX, e depois até mesmo para sistemas não UNIX.
 +
 +O programa inicialmente tinha algumas limitações, como não navegar em sentido reverso. Isso fez com que perdesse a popularidade para o programa __less__, que tinha essa e outras capacidades adicionais. No entanto, __more__ virou parte do padrão POSIX, tendo em parte o padrão se baseado em __less__, e hoje __less__ é uma das implementações possíveis de __more__ (vide seção de [[#implementacoes|Implementações]]).
 +===== Padronização =====
 +
 +O paginador __more__ é parte do padrão POSIX. Presente nas seguintes revisões:
 +
 +  * [[https://pubs.opengroup.org/onlinepubs/9799919799/utilities/more.html|2024]]
 +  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2018edition/utilities/more.html|2018]]
 +  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2016edition/utilities/more.html|2016]]
 +  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/utilities/more.html|2013]]
 +  * [[https://pubs.opengroup.org/onlinepubs/9699919799.2008edition/utilities/more.html|2008]]
 +
 +===== Implementações =====
 +
 +Em alguns sistemas tipo UNIX é comum que o paginador __more__ seja apenas uma referência à ferramenta __less__, com opções de compatibilidade com o padrão. Por este motivo, a lista de implementações abaixo fica bem restrita:
 +
 +  * [[https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/tree/text-utils|util-linux]] ([[https://www.man7.org/linux/man-pages/man1/more.1.html|docs]])
 +  * [[https://git.busybox.net/busybox/tree/util-linux/more.c|Busybox]] ([[https://www.busybox.net/downloads/BusyBox.html#more|docs]])
 +
 +__less__ (aqui usado como __more__):
 +
 +  * [[https://www.greenwoodsoftware.com/less/|less]] ([[https://www.man7.org/linux/man-pages/man1/less.1.html|docs]])
 +
 +Nesse sentido, __less__ pode ser entendido como uma das implementações de __more__, desde que usado em modo de compatibilidade (isto é, com o uso da variável de ambiente **LESS_IS_MORE**, ou com o uso de um link simbólico para __less__ cujo nome seja "//more//"). Para mais informações, vide [[utils:less|less]].
 +
 +Cabe dizer também que no OpenBSD há uma página de manual dedicada ao uso de __less__ em modo de compatibilidade com __more__:
 +
 +  * [[https://man.openbsd.org/more|more]]
 +
 +Existem algumas diferenças quanto ao nível de aderência dessas implementações ao padrão POSIX, sendo o modo de compatibilidade do __less__ um dos mais aderentes (sobretudo se considerarmos o suporte a __ctags__).
 +
 +Além dos sistemas aderentes (totalmente ou parcialmente) ao padrão POSIX, outros sistemas também possuem o paginador __more__, com algumas diferenças inevitáveis de implementação, mas com relativa semelhança.
 +
 +  * [[https://github.com/FDOS/more|FreeDOS]] ([[http://wiki.freedos.org/wiki/index.php/More|docs]])
 +  * [[https://reactos.org/wiki/Working_Batch_Commands#m|ReactOS]] ([[https://ss64.com/nt/more.html|docs]])
 +  * [[https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/more|Windows]]
utils/more.1734232590.txt.gz · Última modificação: 2024/12/15 00:16 por hrcerq