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/25 20:11] – Seções criadas (vazias) hrcerqutils:more [2025/01/08 23:23] (atual) – [Noções básicas] Primeira referência a ctags no artigo hrcerq
Linha 2: Linha 2:
  
 **more** é um paginador [[utils:glossario#t|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 POSIX, sendo 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 129: Linha 89:
 //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. //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 __ctags__, e __more__ suporta a abertura de arquivos buscando por essas referências, o que é conveniente para a leitura de código-fonte.+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 ===== ===== Iniciando e encerrando =====
  
-...+Iniciar o paginador __more__ é bastante simplesBasta 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 ===== ===== Trocando de arquivos =====
  
Linha 143: Linha 120:
  
 ===== Pesquisa de texto ===== ===== Pesquisa de texto =====
 +
 +...
 +
 +==== Expressões regulares ====
  
 ... ...
Linha 153: Linha 134:
  
 ... ...
 +
 +===== 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.1735168302.txt.gz · Última modificação: 2024/12/25 20:11 por hrcerq