8 fatos que tornam o comando bat do Linux melhor que o cat

por Nada Em Troca
7 minutos de leitura
9 maneiras práticas de usar o comando linux seq

O programa do morcego se descreve como “um clone de gato com asas”, o que é uma analogia divertida, mas um pouco enganosa. bat é uma ferramenta com dois propósitos principais: destacar a sintaxe e marcar diferenças do git.

Para entender exatamente como usar melhor o bat, estes exemplos mostrarão como o comando funciona e o que suas diversas opções permitem fazer.

bat faz realce de sintaxe por padrão

Para ilustrar a função principal do bat, basta executá-lo em um arquivo de código-fonte na linguagem de sua escolha, por exemplo:

         battile.js

Para um arquivo curto, bat enviará a saída e retornará ao seu prompt:

O conteúdo de um arquivo JavaScript com duas sintaxes de funções curtas destacadas em cores.

A principal coisa que bat faz neste caso é adicionar destaque de sintaxe ao seu arquivo usando cores ANSI. Ele pode fazer isso para muitas linguagens diferentes, cobrindo tudo, desde C até HTML e Markdown:

Um arquivo de texto Markdown com títulos em laranja e URLs sublinhados em verde.

Para listar o conjunto completo de sintaxes de linguagem suportadas por bat, use o –list-idiomas opção.

Você pode usar a opção –theme para alterar as cores específicas que o morcego usa. Por exemplo, aqui está o início do arquivo anterior destacado usando o tema gruvbox-dark:

Um arquivo Markdown com sintaxe destacada usando um tema personalizado, em cores mais suaves.

Embora o morcego se descreva como um “clone de gato”, na verdade não é. Você pode usar o comando cat de várias maneiras, mas sua intenção original era combinar (concatenar) arquivos. cat continua sendo a melhor ferramenta para esse propósito, mas bat melhora seu uso como visualizador de arquivos.

bat usa um pager de forma inteligente

Se um arquivo for muito longo para caber no seu terminal, bat usará um pager para exibir uma versão interativa. Isso funcionará exatamente da mesma maneira que o pager que você usa para visualizar as páginas de manual, desde que seja o mesmo pager. Por padrão, bat usará menos, mas você tem algumas opções para usar uma alternativa:

  • Altere a variável PAGER ou use BAT_PAGER se quiser que bat use um pager diferente de outro software.
  • Use a opção –pager para especificar um comando (ou caminho para um programa). Você pode fazer isso na linha de comando ou no arquivo de configuração do bat.

Você pode achar confuso ou perturbador fazer com que às vezes use um pager e às vezes não. Nesse caso, você pode usar a opção –paging para alterar este comportamento:

         bat --paging=always README.md

Existem várias maneiras diferentes de configurar seu pager usando bat e as opções –paging e –pager. Veja a documentação do morcego (man bat) para mais detalhes.

bat também numera linhas por padrão

Por padrão, bat também exibe números de linha ao lado do seu arquivo. Desativei isso nas capturas de tela anteriores para mantê-los simples; aqui está um exemplo do comportamento padrão real:

O conteúdo de um pequeno arquivo JavaScript com destaque de sintaxe em diferentes cores e números de linha no início de cada linha.

Os números de linha são úteis para rastrear sua localização em um arquivo. O menos pager não mostra essas informações por padrão, embora alternativas como a maioria o façam. Numerar linhas é particularmente útil se você estiver inspecionando o código-fonte e tentando rastrear um bug em uma linha específica. Você pode usar a opção -p para desativar os números de linha ou a opção -n para mostrar os números de linha e nada mais.

bat pode destacar linhas ou intervalos

A numeração de linha do bat é ainda mais eficaz quando combinada com o realce de linha, que pode ser usado em apenas uma linha ou em um conjunto de intervalos. A opção –highlight-line tem algumas variações; aqui está um exemplo:

         bat --highlight-line=7 --highlight-line=14:15 README.md

Isso destacará a linha 7 e as linhas 14-15 usando uma cor de fundo alternativa:

Um arquivo Markdown com três linhas destacadas usando uma cor de fundo diferente.

Uma opção semelhante, –intervalo de linhapermite exibir apenas determinadas linhas ou intervalos:

Um pequeno trecho de um arquivo Markdown, com destaque de sintaxe e números de linha.

Claro, você pode combinar os dois para exibir parte de um arquivo e destacar linhas específicas ao mesmo tempo:

Um trecho de um arquivo Markdown com várias linhas destacadas.

bat funciona bem com Git

Se você estiver usando bat para visualizar o código-fonte, ficará satisfeito em saber que ele tem ótimo suporte para git. bat mostrará alterações em um arquivo se detectar que ele está em um repositório git:

O conteúdo de um arquivo com símbolos de adição verdes no início de várias linhas.

bat mostrará símbolos familiares na margem esquerda de cada linha alterada para indicar se é nova (+), foi removida (-) ou alterada (~). Você pode usar o sinalizador –diff (-d) para dizer ao bat para mostrar apenas linhas com alterações, além de algumas linhas de contexto ao redor delas. Este é um ótimo recurso para revisar alterações de código ou recuperar o ritmo de um projeto para o qual você está retornando.

bat se comporta de maneira sensata se estiver em um pipeline

Já vimos como bat usa o bom senso para decidir se deve usar um pager, mas a ferramenta possui alguns outros recursos de inteligência. Em particular, o mais útil é a sua capacidade de detectar que tipo de resultado é mais apropriado.

bat faz isso verificando se sua saída está sendo enviada para um terminal não interativo: se é canalizada para outro processo ou para um arquivo, por exemplo. Nesses casos, você provavelmente não desejará o destaque da sintaxe do bat, portanto, ele suprimirá os códigos de cores especiais que normalmente gera. Neste modo, ele age essencialmente como um gato, desativando todas as decorações, incluindo números de linha e destaques de intervalo.

Você ainda pode forçar o bat a produzir uma saída formatada, mesmo que esteja em um pipeline. Isso é útil se você souber que o comando para o qual está enviando pode lidar com códigos de cores ANSI, como a maioria dos pagers, por exemplo:

         bat -f README.md | most

A opção –force-colorization (-f) diz ao bat para manter todas as colorizações e decorações, então é o oposto de –plain (-p).

bat funciona bem com o homem também

Como você pode configurar o pager que man usa para exibir ajuda nos comandos do Linux, você também pode configurá-lo para usar bat para uma saída melhor:

Uma página de manual do Linux exibida por bat, com certas palavras-chave destacadas em cores.

Para fazer isso, execute man e defina MANPAGER assim:

         MANPAGER="sh -c 'col -bx | bat -l man -p'" man ls

Este comando precisa de alguma explicação porque faz bastante coisa. Primeiro, ele define a variável MANPAGER e depois executa “man ls” no final. Esta sintaxe (“comando NOME=VALUE”) é uma maneira conveniente de definir uma variável de ambiente para o comando específico a seguir.

O valor de MANPAGER é uma chamada para sh (seu shell padrão) com a opção -c para executar um comando. Por sua vez, esse comando executa dois programas, col e bat, canalizando a saída do primeiro para a entrada do segundo. O programa col ajuda a limpar certos caracteres de formatação e bat é executado com a opção “-l man” para usar a sintaxe man para colorização. O -p usa estilo simples, adequado às páginas de manual.

Você pode definir a variável MANPAGER permanentemente em um arquivo de configuração do usuário para evitar ter que aprender e digitar este comando completo!

bat tem algumas opções de configuração realmente úteis

Até agora, você deve ter notado que bat é altamente configurável. Algumas de suas opções são informativas, como –list-languages. Você pode usar –config-file para imprimir a localização do seu arquivo de configuração bat, por exemplo.

Se você está procurando um esquema de cores diferente (todos nós temos nossos favoritos), verifique as opções –list-themes. Curiosamente, esta saída usa decorações e colorização, e você pode desativá-las usando as opções padrão:

O comando bat mostrando duas formas de saída usando a opção list-themes: uma é uma lista simples de nomes de temas, a outra é uma versão mais detalhada com exemplos de cores.

A ferramenta também oferece suporte a algumas opções simples para controlar detalhes específicos de formatação, para que você possa controlar sua saída com precisão. Use “–tabs n” para definir a largura da tabulação em espaços, –chop-long-lines para truncar todas as linhas maiores que a largura da tela e –squeeze-blank para compactar sequências de linhas em branco em uma única linha.


bat é uma entre um número crescente de ferramentas de linha de comando do Linux escritas em Rust. Este ecossistema está incentivando uma geração de aplicativos TUI interativos e visualmente ricos que assumem comandos estabelecidos, e bat é uma excelente adição ao seu conjunto de ferramentas Linux.

Este artigo foi útil?
Gostei0Não Gostei0

Deixe um comentário

Are you sure want to unlock this post?
Unlock left : 0
Are you sure want to cancel subscription?
-
00:00
00:00
Update Required Flash plugin
-
00:00
00:00