75 Comandos Zsh, Plugins, Aliases e Ferramentas

Mai 9, 2021
admin

Passei muito do meu dia no terminal, e a minha shell de escolha é Zsh – uma shell Unix altamente personalizável que contém algumas características muito poderosas. Como sou um programador preguiçosoTM, estou sempre à procura de formas de escrever menos e de automatizar todas as coisas. Felizmente, isto é algo que o Zsh se presta bem a.

Neste post, vou compartilhar com vocês 75 comandos, plugins, pseudônimos e ferramentas que, com sorte, irão poupar algumas teclas e torná-lo mais produtivo no seu dia-a-dia de trabalho.

Se você não tem o Zsh instalado em sua máquina, então confira este post, onde eu mostro como se levantar e rodar.

15 Coisas que o Zsh pode fazer fora da caixa

Zsh compartilha um monte de recursos úteis com o Bash. Nenhuma das seguintes são exclusivas do Zsh, mas são boas de saber, no entanto. Eu encorajo você a começar a usar a linha de comando para realizar operações como as listadas abaixo. Pode parecer mais trabalho do que usar uma GUI no início, mas uma vez que você pegar o jeito das coisas, você nunca vai olhar para trás.

  • Entering cd de qualquer lugar no sistema de arquivos irá trazê-lo de volta ao seu diretório home.
  • Entering !! irá trazer o último comando. Isto é útil se um comando falhar porque precisa de direitos de administrador. Neste caso você pode digitar sudo !!.
  • Você pode usar && para encadear comandos múltiplos. Por exemplo, mkdir project && cd project && npm init -y.
  • Execução condicional é possível usando ||. Por exemplo, git commit -m "whatever..." || echo "Commit failed".
  • Usando um comando -p com o comando mkdir será possível criar diretórios pai conforme necessário. Usando a expansão brace reduz a repetição. Por exemplo, mkdir -p articles/jim/sitepoint/article{1,2,3}.
  • Definir variáveis de ambiente em uma base per-comando como tal: NODE_DEBUG=myapp node index.js. Ou, em uma base por sessão como esta: export NODE_DEBUG=myapp. Você pode verificar se foi definido digitando echo $<variable-name>.
  • Pipe a saída de um comando em um segundo comando. Por exemplo, cat /var/log/kern.log | less para fazer um log longo legível, ou history | grep ssh para procurar por quaisquer entradas do histórico contendo “ssh”.
  • Pode abrir ficheiros no seu editor a partir do terminal. Por exemplo, nano ~/.zshrc (nano), subl ~/.zshrc (Texto Sublime), code ~/.zshrc (Código VS). Se o arquivo não existir, ele será criado quando você pressionar Save no editor.
  • Navigation é uma habilidade importante a ser dominada. Não confie apenas nas setas do seu teclado. Por exemplo, Ctrl + a o levará ao início de uma linha.
  • Whereas Ctrl + e o levará ao final.
  • Você pode usar Ctrl + w para apagar uma palavra (para trás).
  • Ctrl + u removerá tudo do cursor para o início da linha.
  • Ctrl + k limpará tudo do cursor para o final da linha. Estes três últimos podem ser desfeitos com Ctrl + y.
  • Pode copiar texto com Ctrl + Shift + c. Isto é muito mais elegante do que clicar com o botão direito do rato e seleccionar Copy.
  • Conversamente, pode colar texto copiado com Ctrl + shift + v.

Tente submeter esses combos de teclas à memória. Você ficará surpreso com a frequência com que eles são úteis.

15 Aliases personalizados para aumentar a sua produtividade

Aliases são atalhos de terminal para comandos regulares. Pode adicioná-los ao seu ficheiro ~/.zshrc e depois recarregar o seu terminal (usando source ~/.zshrc) para que tenham efeito.

A sintaxe para declarar um alias (simples) é a seguinte:

alias =''

Aliases são óptimos para comandos frequentemente usados, comandos longos, ou comandos com uma sintaxe difícil de lembrar. Aqui estão alguns dos que eu uso regularmente:

  • A myip alias, que imprime seu endereço IP público atual para o terminal: alias myip='curl http://ipecho.net/plain; echo'.
  • A distro alias, que imprime informações sobre a sua distribuição Linux: alias distro='cat /etc/*-release'.
  • A reload alias, pois nunca consigo lembrar-me como recarregar o meu terminal: alias reload='source ~/.zshrc'.
  • An undo-git-reset alias: alias undo-git-reset-head="git reset 'HEAD@{1}'". Isto reverte os efeitos de executar git reset HEAD~.
  • Um apelido para atualizar listas de pacotes: alias sapu='sudo apt-get update'.
  • Um alias para reexecutar o comando anterior com sudo: alias ffs='sudo !!'.
  • Porque eu sou preguiçoso, eu tenho alias y para o comando yarn: alias y='yarn'. Isto significa que posso clonar um repo, depois digite y para puxar em todas as dependências. Aprendi esta com Scott Tolinski em Syntax.
  • Não é uma das que uso, mas este alias rebenta com a pasta node_modules e remove o arquivo package-lock.json, antes de reinstalar as dependências de um projeto: alias yolo='rm -rf node_modules/ && rm package-lock.json && yarn install'. Como você provavelmente sabe, yolo significa You Only Live Once.
  • Um alias para abrir o meu ficheiro .zshrc para edição: alias zshconfig='subl $HOME/.zshrc'.
  • Um pseudónimo para actualizar a lista de versões Ruby que o rbenv pode instalar: alias update-available-rubies='cd ~/.rbenv/plugins/ruby-build && git pull'
  • Um alias para iniciar um servidor no seu directório actual (não são necessários pacotes npm): alias server='python -m SimpleHTTPServer 8000'.
  • Você também pode criar um alias para abrir a documentação no seu navegador: alias npmhelp='firefox https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/npm'.
  • Um alias global para pipear a saída de um comando para less: alias -g L='| less'. Você pode usá-lo dessa forma: cat production.log L.
  • Um alias global para pipear a saída de um comando para grep: alias -g G='| grep'. Você pode usá-lo dessa forma: history G ssh.
  • >

  • Você também pode usar funções para criar alias. O seguinte (tirado daqui) cria um alias que adiciona, submete e empurra código para GitHub:
    bash
    function acp() {
    git add .
    git commit -m ""
    git push
    }

Existem muitos lugares para encontrar mais idéias para alias online. Por exemplo, esta discussão sobre Hacker News, ou este post sobre produtividade na linha de comando com Zsh.

15 Cool Things You Can Do with (Oh My) Zsh

Oh My Zsh é um framework orientado à comunidade para gerenciar sua configuração Zsh e vem empacotado com milhares de funções úteis, helpers, plugins e temas. Se você vai fazer do shell Z seu driver diário, você deve realmente instalar Oh My Zsh.

Aqui estão quinze coisas úteis Oh My Zsh pode fazer por você:

  • O comando take irá criar um novo diretório e mudar para ele. take my-project substitui mkdir my-project && cd my-project.
  • zsh_stats dar-lhe-á uma lista dos 20 comandos principais e quantas vezes foram executados.
  • Oh O My Zsh simplifica a navegação no seu sistema de ficheiros. Por exemplo, .. é um alias para cd ...
  • Da mesma forma, ... move-o para cima dois directórios, .... move-o para cima três, e ..... move-o para cima quatro.
  • Você pode omitir o cd quando estiver a navegar. Digitando /, por exemplo, irá levá-lo diretamente para a raiz do seu sistema de arquivos.
  • A correspondência parcial também é suportada. Por exemplo, digitando /h/j/De e pressionando TAB, então Return, leva-me a /home/jim/Desktop/.
  • rd é um alias para rmdir e md é um alias para mkdir -p.
  • Pode escrever dpara listar os últimos directórios usados de uma sessão terminal.
  • Pode então navegar para qualquer um destes usando cd -n, onde n é o número do directório.
  • A conclusão do TA é outra grande característica. Por exemplo, digitando ls - e pressionando TAB irá listar todas as opções do comando, juntamente com uma descrição útil do que eles fazem. Isto também funciona para cap, rake, ssh, e kill.
  • Typing alias lista todos os seus aliases atuais.
  • Com globbing (uma funcionalidade Zsh), você pode listar arquivos com uma extensão em particular. Por exemplo, ls *.html listará todos os arquivos HTML no diretório atual. Para incluir subdiretórios, mude para: ls **/*.html.
  • Os qualificadores Glob permitem-lhe seleccionar tipos de ficheiros usando bandeiras. Por exemplo, ls -l **/*(.x) encontrará todos os arquivos executáveis no diretório atual e todos os subdiretórios.
  • Você pode procurar por arquivos por data modificados. Por exemplo, ls *(m-7) irá listar todos os ficheiros modificados na última semana.
  • Pode procurar por ficheiros por tamanho. Por exemplo, ls *(Lm+1) irá encontrar todos os ficheiros com um tamanho superior a 1MB.

Utilizar Plugins para Diversão e Lucro

Oh O meu Zsh vem com muitos plugins. Você deve olhar através destes e investir algum tempo aprendendo aqueles que irão ajudar o seu fluxo de trabalho.

Aqui estão três plugins que eu uso regularmente, que fornecem uma tonelada de atalhos e aliases úteis.

10 Nifty Git Aliases

O plugin git fornece muitos aliases e várias funções úteis. Por que não passar por estas e tentar memorizar as suas dez melhores funções? Aqui estão as que eu uso com mais frequência.

  1. g é um pseudônimo útil para git. Isto significa que você pode digitar coisas como g clone <whatever> ao invés de git clone <whatever>. Podem ser apenas dois toques de tecla, mas logo somam.
  2. gaa é um pseudônimo para git add all. Eu uso este o tempo todo.
  3. gb é um alias para git branch, que listará todos os ramos do reporte atual e mostrará qual deles você está.
  4. gcb é um alias para git checkout -b, o comando que lhe permite criar um novo ramo.
  5. gcm é um alias para git checkout master. Isto devolve-o ao ramo mestre.
  6. gdca é um alias para git diff --cached. Isto permite-lhe divulgar quaisquer ficheiros que tenha encenado para commit.
  7. gf é um alias para git fetch.
  8. gm é um alias para git merge.
  9. gp é um alias para git push. Para sincronizar um garfo de um repo, você poderia fazer: gf upstream, gm upstream/master, seguido por gp.
  10. glog é um alias para git log --oneline --decorate --graph, o que lhe dará um gráfico de ramo bonito.

10 Prático npm Pseudônimos

O plugin npm também fornece um monte de pseudônimos úteis.

  • npmg é um pseudônimo para npm install --global, que você pode usar para instalar dependências globalmente no seu sistema. Por exemplo, npmg nodemon.
  • npmS é um alias para npm install --save, que você pode usar para instalar dependências e adicioná-las à seção dependencies do seu package.json. Note que, a partir da npm 5.0.0, este é o padrão ao executar npm i <package>.
  • npmD é um apelido para npm install --save-dev, que você usa para instalar dependências e adicioná-las à seção devDependencies do seu package.json.
  • npmO é um alias para npm outdated, que irá verificar o registo para ver se algum (ou, específicos) pacotes instalados estão desactualizados.
  • npmL é um alias para npm list, que irá listar os pacotes instalados.
  • npmL0 é um alias para npm list --depth=0, que lista os pacotes de nível superior. Isto é especialmente útil para ver quais módulos são instalados globalmente sem inundar o seu terminal com uma enorme árvore de dependências: npmL0 -g.
  • npmst é um alias para npm run start, um script npm frequentemente usado para iniciar uma aplicação.
  • npmt é um alias para npm run test, que, como você pode adivinhar, é usado para executar seus testes.
  • npmR é um alias para npm run. Por si só, este comando irá listar todos os scripts npm disponíveis de um projeto, juntamente com uma descrição do que eles fazem. Usado em conjunto com um nome de script, ele irá executar esse script, Por exemplo, npmR build.
  • npmI é um apelido para npm init. Isto irá fazer-lhe um monte de perguntas e depois criar um package.json com base nas suas respostas. Use a bandeira -y para automatizar o processo. Por exemplo, npmI -y.

10 Poupa tempo no Rails/Rake Aliases

Este plugin adiciona a conclusão para o framework Ruby on Rails e para o programa Rake, assim como alguns aliases para logs e variáveis de ambiente.

  • rc é um alias para rails console, que permite que você interaja com seu aplicativo Rails a partir do CLI.
  • rdc é um alias para rake db:create, que (a menos que RAILS_ENV esteja definido) cria o banco de dados de desenvolvimento e teste para o seu aplicativo.
  • rdd é um alias para rake db:drop, o que retira as bases de dados de desenvolvimento e teste do seu aplicativo.
  • rdm é um alias para rake db:migrate, o que irá executar qualquer migração pendente de base de dados.
  • rds é um alias para rake db:seed, que executa o ficheiro db/seeds.rb para preencher a sua base de dados de desenvolvimento com dados.
  • rgen é um alias para rails generate, que irá gerar o código da placa de caldeira. Por exemplo: rgen scaffold item name:string description:text.
  • rgm é um alias para rails generate migration, que irá gerar uma migração de base de dados. Por exemplo: rgen scaffold item name:string description:text.
  • rgm: rgm add_description_to_products description:string.
  • rr é um alias para rake routes, que listará todas as rotas definidas de um aplicativo.
  • rrg é um alias para rake routes | grep, que lhe permitirá listar e filtrar as rotas definidas. Por exemplo, rrg user.
  • rs é um apelido para rails server, que lança o servidor web padrão do Rails.

Recursos Adicionais

O principal trabalho dos plugins listados acima é fornecer apelidos para comandos frequentemente utilizados. Por favor esteja ciente de que há muito mais plugins por aí que aumentam seu shell com funcionalidades adicionais.

Aqui estão quatro dos meus favoritos:

  • sudo permite que você prefira facilmente seus comandos atuais ou anteriores com sudo pressionando ESC duas vezes.
  • autosuggestions sugere comandos conforme você digita baseado no histórico e completações. Se a sugestão é a que você está procurando, pressione a tecla → para aceitá-la. Uma economia de tempo real!
  • command-not-found: se um comando não for reconhecido no arquivo $PATH, ele usará o pacote command-not-found do Ubuntu para encontrá-lo ou sugerir erros ortográficos.
  • z é um plugin prático que constrói uma lista das suas pastas mais frequentes e recentes (ele chama estas “frecent”) e permite que você pule para elas com um comando.

E não se esqueça, se você passar muito tempo no terminal, vale a pena investir algum esforço para torná-lo visualmente atraente. Felizmente, Oh Meu Zsh navega com um monte de temas para você escolher. A minha escolha do grupo é Agnoster.

Pode descobrir mais sobre temas no meu artigo 10 Dicas Zsh & Truques: Configuração, Personalização & Uso.

Conclusão

Então aí temos: 75 comandos Zsh, plugins, pseudônimos e ferramentas. Espero que tenha aprendido um ou dois truques pelo caminho, e encorajo-o a sair das suas GUIs e entrar no terminal. É mais fácil do que parece e uma ótima maneira de aumentar sua produtividade.

Se eu perdi seu plugin favorito, ou alias/comando que economiza tempo, me avise no Twitter.

Quer tirar ainda mais do seu toolkit? Confira o Visual Studio Code: Ferramentas de edição e depuração de ponta-a-ponta para desenvolvedores Web da Wiley.

Deixe uma resposta

O seu endereço de email não será publicado.