Pesquisa de site

Saiba por que o comando 'menos' é mais rápido que 'mais' para uma navegação eficaz em arquivos


Mais é uma linha de comando *nix usada para exibir o conteúdo de um arquivo em um console. O uso básico do comando more é executar o comando em um arquivo conforme mostrado abaixo:

Leia também: Aprenda a diferença entre os comandos ‘cat’ e ‘tac’ com exemplos

Aprenda o comando ‘mais’ do Linux

# more /var/log/auth.log
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:02 tecmint CRON[7435]: pam_unix(cron:session): session closed for user root
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
....

Outra forma de usar o comando more em conjunto (pipe) com outros comandos, como o comando cat, conforme apresentado no exemplo abaixo:

cat /var/log/auth.log | more

Para navegar pelo arquivo linha por linha, pressione a tecla Enter ou pressione a tecla Barra de espaço para navegar uma página por vez, sendo a página o tamanho atual da tela do terminal. Para sair do comando basta pressionar a tecla q.

Uma opção útil do comando more é a opção -number que permite definir o número de linhas que uma página deve conter. Como exemplo, exiba o arquivo auth.log como uma página de 10 linhas:

more -10 /var/log/auth.log

Além disso, você pode exibir uma página começando em um número de linha específico usando a opção +número conforme ilustrado abaixo:

more +14 /var/log/auth.log
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
Apr 12 12:16:01 tecmint mate-screensaver-dialog: gkr-pam: unlocked login keyring
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session closed for user root
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session closed for user root
Apr 12 12:25:01 tecmint CRON[8107]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:25:01 tecmint CRON[8108]: pam_unix(cron:session): session opened for user root by (

Aprenda o comando ‘menos’ do Linux

Semelhante ao mais, o comando menos permite visualizar o conteúdo de um arquivo e navegar pelo arquivo. A principal diferença entre more e less é que o comando less é mais rápido porque não carrega o arquivo inteiro de uma vez e permite a navegação pelo arquivo usando teclas para cima/para baixo da página.

In pode ser usado como um comando independente emitido em um arquivo ou usado com pipes com uma infinidade de comandos do Linux para restringir a saída da tela, permitindo que você role pelos resultados.

less /var/log/auth.log
ls /etc | less

Você pode navegar pelo arquivo linha por linha pressionando a tecla Enter. A navegação na página pode ser feita com a tecla spacebarr. O tamanho da página é representado pelo tamanho atual da tela do seu terminal. Para sair do comando digite a tecla q, da mesma forma que para mais comandos.

Um recurso útil do comando less é o uso da opção /word-to-seach. Por exemplo, você pode pesquisar e combinar todas as mensagens sshd de um arquivo de log especificando interativamente a string /sshd.

Para exibir um arquivo iniciando em um número de linha específico, use a seguinte sintaxe:

less +5 /var/log/auth.log

Se você precisar rastrear o número de cada linha com o comando less, use a opção -N.

less -N /var/log/daemon.log
      1 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
      2 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
      3 Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
      4 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
      5 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
      6 Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
      7 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
      8 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
      9 Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
     10 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
     11 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root

Por padrão, a única maneira de sair do comando less é pressionar a tecla q. Para alterar este comportamento e sair automaticamente do arquivo ao chegar ao final do arquivo, use a opção -e ou -E:

less -e /var/log/auth.log
less -E /var/log/auth.log

Para abrir um arquivo na primeira ocorrência de um padrão use a seguinte sintaxe:

less +/sshd /var/log/auth.log
Apr 12 16:19:39 tecmint sshd[16666]: Accepted password for tecmint from 192.168.0.15 port 41634 ssh2
Apr 12 16:19:39 tecmint sshd[16666]: pam_unix(sshd:session): session opened for user tecmint by (uid=0)
Apr 12 16:19:39 tecmint systemd-logind[954]: New session 1 of user tecmint.
Apr 12 16:19:48 tecmint sshd[16728]: Received disconnect from 192.168.0.15: 11: disconnected by user
Apr 12 16:19:48 tecmint sshd[16666]: pam_unix(sshd:session): session closed for user tecmint
Apr 12 16:20:01 tecmint CRON[16799]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:20:02 tecmint CRON[16799]: pam_unix(cron:session): session closed for user root
Apr 12 16:25:01 tecmint CRON[17026]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:25:01 tecmint CRON[17025]: pam_unix(cron:session): session opened for user root by (uid=0)

O comando acima diz a less para abrir o arquivo auth.log na primeira correspondência da string sshd.

Para anexar automaticamente o conteúdo de um arquivo aberto no comando less use a combinação de teclas Shift+f ou execute less com a seguinte sintaxe.

less +F /var/log/syslog

Isso faz com que menos seja executado no modo interativo (ao vivo) e exiba novo conteúdo rapidamente enquanto espera que novos dados sejam gravados no arquivo. Este comportamento é semelhante ao comando tail -f.

Em combinação com um padrão, você pode observar o arquivo de log interativamente com o toque da tecla Shift+f enquanto corresponde a uma palavra-chave. Para sair do modo ao vivo, basta pressionar as teclas Ctrl+c.

less +/CRON /var/log/syslog

Se você decidir usar mais ou menos, o que é uma escolha pessoal, lembre-se de que menos é mais com mais características.

Leia também: Gerencie arquivos de maneira eficaz usando os comandos head, tail e cat