Alguns desenvolvedores usam a linha de comando porque não temos escolha; outros usam porque nós meio que amamos. De qualquer forma, você sabe quem você é. Quer você adore a CLI ou apenas a use para o trabalho, aqui estão nove ferramentas de linha de comando que o ajudarão a ser mais eficiente, dentro ou fora do trabalho.

9 ferramentas CLI para usar para uma melhor experiência do desenvolvedor

  • tldr
  • ngrok
  • screen
  • sdkman e nvm
  • fzf
  • exa
  • bat
  • nethack

Tldr

Não vou ser poético aqui sobre a magia peculiar do shell Unix. Às vezes você só precisa trabalhar e às vezes precisa ler o manual primeiro. Tradicionalmente, os documentos Unix (as páginas de manual ou manual) são uma faca de dois gumes: a informação está lá, em algum lugar. Encontrar a documentação necessária em meio a um mar de detalhes é uma tarefa difícil.

Para obter o manual oficial em uma linha de comando, você digita:


$ man 

As limitações da página de manual são sua densa verbosidade e que às vezes não contém informações atuais para ferramentas mais recentes. Em vez disso, você pode usar tldruma visão mais sucinta e atualizada do man comando:


$ tldr 

Saiba mais sobre tldr: https://tldr.sh.

Se você tem npm instalado, uma maneira fácil de instalar tldr é:


npm install -g tldr

Ngrok

Uma vez que você tenha tldr instalado, você pode usá-lo para explorar muitos outros comandos finos. Aqui está uma boa:


$ tldr ngrok
Reverse proxy that creates a secure tunnel from a public endpoint to a locally running web service.

Ngrok é um animal interessante porque é uma empresa com fins lucrativos e uma ferramenta de linha de comando gratuita. Mas nunca encontrei o lado comercial interferindo ngrokutilidade.

O Ngrok oferece uma maneira sem estresse de acessar uma máquina de desenvolvimento a partir de um navegador remoto. Mas faz mais do que apenas isso.

Eu uso regularmente ngrok desenvolver na nuvem e visualizar os resultados no meu navegador. Ele também fornece uma maneira extremamente simples de expor seu serviço em execução por HTTPS sem mexer em nenhuma infraestrutura de segurança. (Digamos que você esteja construindo um service worker e ele exija HTTPS; agora você pode simplesmente ativar ngrok e aí está o seu contexto seguro.)

Por exemplo, vamos expor a porta HTTP 8080 para o mundo:


$ ngrok http 8080

Ngrok retorna o seguinte:


https://f951-34-67-117-59.ngrok-free.app -> http://localhost:8080

Agora, qualquer pessoa pode acessar https://f951-34-67-117-59.ngrok-free.app e ver o que há lá. (Você não encontrará nada lá agora porque acabei de encerrar o processo.)

ngrok

Instale o Ngrok: https://ngrok.com/download.

Tela

Ah sim, screen. Esta ferramenta de linha de comando fica entre a simplicidade limitada de colocar em segundo plano um processo com bg e as capacidades mais complexas de systemctl. Com screen, você pode pegar uma sessão de shell e colocá-la de lado com ou sem um processo em execução e, em seguida, trazê-la de volta como a deixou. Se você sair da sessão que gerou a tela, ela ainda estará lá quando você retornar.


$ tldr screen 
Hold a session open on a remote server. Manage multiple windows with a single SSH connection.

Digamos que estamos lançando ngrok para acessar um aplicativo da web em que estamos trabalhando remotamente – um caso de uso perfeito para ngrok. Podemos começar o ngrok processo e deixe-o em execução screen e vá fazer alguma codificação. Ngrok continua funcionando o tempo todo e, sempre que precisarmos, podemos entrar screen para verificar o endereço HTTPS ou parar ngrok.

Podemos lidar com isso fazendo algo assim:


$ screen
// Now we are in a new session
$ ngrok http 8080
// Now ngrok is running, exposing http port 8080
Type ctrl-a
// Now we are in screen’s command mode
Type the “d” key, to “detach”. 
// Now you are back in the shell that you started in, while screen is running your ngrok command in the background:
$ screen -list
There is a screen on:
        128861.pts-0.dev3       (04/25/24 14:36:58)     (Detached)

Como há apenas uma tela em execução, você pode digitar $ screen -r (para anexar novamente) e você estará de volta ao seu ngrok sessão.

Quando você tiver várias telas, poderá juntá-las novamente digitando $ screen -r . Por exemplo, $ screen -r 128861.

Se você quiser encerrar sua sessão, você pode entrar nela, parar ngrok com Ctrl-ce digite exit no prompt para desconectar e encerrar a sessão.

tela

Há muito mais que você pode fazer screen. Verifique os documentos aqui: https://www.gnu.org/software/screen/manual/screen.html.

Sdkman e nvm

Se você é um programador que usa Java ou JavaScript no servidor, você deve se familiarizar com sdkman (para Java) e nvm (para nó). Ambas as ferramentas são úteis para lidar com várias versões da linguagem na mesma máquina e permitem eliminar o ajuste do caminho e das variáveis ​​de ambiente.

eu uso sdkman o tempo todo para explorar versões mais recentes do Java e depois voltar para a versão LTS atual. Um sdk comando torna o processo indolor. Aqui está sdk mostrando todas as instalações Java disponíveis em minha máquina local, incluindo aquela em uso atualmente:

SDK

Aprender mais sobre sdk: https://sdkman.io.

Alternar entre versões é simples: $ sdk use java 19-open permite-me mudar para abrir o JDK versão 19 de uma só vez:


$ tldr sdk
Manage parallel versions of multiple Software Development Kits.
Supports Java, Groovy, Scala, Kotlin, Gradle, Maven, Vert.x and many others.

nvm utilitário funciona da mesma forma:


$ tldr nvm
Install, uninstall or switch between Node.js versions.
Supports version numbers like "12.8" or "v16.13.1", and labels like "stable", "system", etc.
nvm

Aprender mais sobre nvm: https://github.com/nvm-sh/nvm.

Fzf

Ambos grep e find são partes padrão da paleta de linha de comando. Mas depois de várias décadas de uso deles, ainda tenho dificuldade em procurar um arquivo no disco, se for de alguma forma complicado. Nenhuma das ferramentas é tão funcional quanto poderia ser.

Digitar fzf—um localizador de arquivos “difuso”. Por difuso queremos dizer, é bom pesquisar o que você precisa quando você está um pouco confuso com os detalhes. Aqui está um exemplo:


$ tldr fzf
Command-line fuzzy finder.
Similar to sk.

Você tem que tentar fzf para apreciá-lo plenamente. Quando você inicia a ferramenta em sua linha de comando, ela imediatamente começa a indexar o sistema de arquivos. Então ele começa a oferecer sugestões. O que quer que você digite, ele retornará com uma lista de possíveis resultados. Aqui estou eu procurando um projeto recente em que trabalhei:

fzf

Aprender mais sobre fzf: https://github.com/junegunn/fzf.

De 878.937 possibilidades, fzf escolhi os 25 arquivos e diretórios que podem atender às minhas necessidades. E fez isso de forma simples, sem nenhum artifício.

Exa

Este utilitário leva o seu velho e chato ls listagens e as torna mais divertidas e úteis:


$ tldr
A modern replacement for ls (List directory contents). 

Para uma melhor experiência de desenvolvedor sem qualquer sobrecarga mental, apenas alias ls para exa. Exa respeita a maioria dos padrões ls opções, por exemplo, exa -l funciona exatamente como você esperaria.

exemplo

Aprender mais sobre exa: https://the.exa.website/#installation.

Bastão

O bat utilitário é como catsó que melhor:


$ tldr bat
Print and concatenate files.
A cat clone with syntax highlighting and Git integration.

Esta é outra melhoria no conforto da criatura (ou DX), semelhante a exaevolução de ls.

Quando você usa batvocê obtém um visualizador de arquivos completo com título, bordas, números de linha e – mais benéfico para codificadores – destaque de sintaxe para linguagens de programação e arquivos de configuração.

Bat responde a menos/mais comandos, então “q”É usado para sair. A navegação é como seria de esperar, usando as teclas de seta.

É um utilitário simples que realmente eleva a experiência de navegar pelos arquivos do console.

bastão

Saiba mais sobre morcego: https://github.com/sharkdp/bat.

Nethack

Vimos um monte de ferramentas incríveis, algumas novas e outras antigas. Um clássico remanescente que todo aficionado de CLI deve conhecer é nethack.

Este é o rastreador de masmorras ASCII original baseado em console. Isso não o ajudará a ser mais produtivo diretamente, mas poderá ajudá-lo a parar por alguns minutos e deixar seu subconsciente trabalhar nos problemas que você está enfrentando.

Sim, existem versões mais recentes deste modelo, mas nethack continua sendo o eterno clássico:

hackear

Como instalar nethack: https://packages.debian.org/sid/nethack-console.