🐚🦀Comandos shell reescritos em Rust
Tags: rust, shell, braziliandevs, beginners
Published: 2023-10-04 21:56:35

## Introdução

Para todo engenheiro de software, desenvolvedor ou programador, as ferramentas de linha de comando são essenciais para tornar a vida mais fácil, especialmente quando se trabalha com código. Nos últimos anos, com o aumento da popularidade da linguagem Rust, temos visto um crescente número dessas ferramentas sendo reescritas em Rust, o que tem proporcionado melhor desempenho e confiabilidade.

Mas você pode estar se perguntando: Por que devo usar um comando reescrito em Rust? A resposta é simples: porque é incrível!

Neste artigo, vamos apresentar uma lista de algumas dessas ferramentas que utilizamos em nosso dia a dia.

## Ferramentas Essenciais

### [**bat**](https://github.com/sharkdp/bat) 

O "bat" é um clone do `cat` com destaque de sintaxe e integração com o Git. Funciona em Windows, MacOS e Linux, oferecendo destaque de sintaxe para uma ampla variedade de extensões de arquivo.

### [**bottom**](https://github.com/ClementTsang/bottom)

O "bottom" é uma ferramenta de visualização e gerenciamento de processos e sistemas. Ele fornece widgets gráficos para monitorar CPU, RAM, rede, disco e outros recursos, tornando-se uma escolha versátil e altamente personalizável para Linux, MacOS e Windows.

### [**lsd**](https://github.com/lsd-rs/lsd)

O "lsd" é um aprimoramento do comando `ls`. Adiciona cores, ícones, visualização em árvore e mais opções de formatação, tornando a listagem de diretórios mais informativa e agradável visualmente.

### [**fd**](https://github.com/sharkdp/fd)

O "fd" é uma alternativa rápida e amigável ao comando `find` para localizar entradas em seu sistema de arquivos. Embora não tenha como objetivo replicar todas as funcionalidades avançadas do `find`, ele oferece padrões sensíveis (baseados em opiniões) para a maioria dos casos de uso.

### [**sd**](https://github.com/chmln/sd)

O "sd" é uma ferramenta de linha de comando intuitiva para localizar e substituir texto. Ele simplifica o processo de busca e substituição com uma sintaxe fácil de entender, eliminando a necessidade de lidar com barras invertidas e outros caracteres especiais.

## Bônus

Aqui estão algumas ferramentas adicionais que pretendemos começar a usar:

### [**xh**](https://github.com/ducaale/xh)

O "xh" é uma ferramenta amigável e rápida para enviar solicitações HTTP. Ele compartilha muitos dos excelentes recursos de design do HTTPie, mas com foco em melhorar o desempenho. Embora ainda usemos o HTTPie por hábito, planejamos migrar para o "xh" em breve.

### [**joshuto**](https://github.com/kamiyaa/joshuto)

Um gerenciador de arquivos de terminal inspirado no Ranger. Atualmente, usamos o Ranger, mas estamos considerando fazer a troca para o "joshuto".

### [**jql**](https://github.com/yamafaktory/jql)

O "jql" é uma ferramenta de Linguagem de Consulta JSON construída em Rust. Oferece uma maneira conveniente de consultar dados JSON de forma eficaz.

### [**xcp**](https://github.com/tarka/xcp)

O "xcp" é um clone parcial do comando Unix "cp". Não é destinado a ser uma substituição completa, mas sim uma utilidade complementar que fornece feedback mais amigável ao usuário e otimizações específicas para certas tarefas.

## Configurações Personalizadas

Aqui estão alguns aliases úteis que configuramos para o "bat" e o "lsd":

```
#Aliases
alias bat='batcat'
alias ll='lsd -la'
alias lld='lsd -la --date=relative --group-dirs=first'
alias lle='lsd -la --date=relative --sort=extension --group-dirs=first'
alias la='lsd -a'
alias l='lsd -l'
alias lt='lsd --tree'
```

## Conclusão

Estas são algumas das ferramentas que adoramos usar em nosso fluxo de trabalho diário, e esperamos que você também as ache úteis. Além disso, apresentamos algumas opções que pretendemos adotar no futuro.

Para obter mais informações e explorar mais comandos e aplicativos reescritos em Rust, consulte os seguintes links:

- [Lista de comandos](https://gist.github.com/sts10/daadbc2f403bdffad1b6d33aff016c0a)
- [Artigo original](https://zaiste.net/posts/shell-commands-rust/)

Experimente essas ferramentas e veja como elas podem aprimorar sua experiência de desenvolvimento e uso do terminal!