qual é a melhor maneira de armazenar e listar comandos (especialmente para git e docker) (como uma folha de dicas)

2

Agora estou no ponto em que preciso, com frequência, de alguns comandos do git ou do docker
(como docker system prune -a ou docker stop $(docker ps -a -q) .

Eu quero saber como você lida com esses comandos parcialmente longos? Existe uma maneira de armazená-los e listá-los, como git config --global --list (mas você vê mais do que os aliases)?
O arquivo ".zshrc" é a maneira padrão de salvar comandos / aliases? e como posso listá-los?

Trabalhar com aliases é bom, mas eu não quero esquecer os comandos originais - é por isso que eu quero uma lista de comandos armazenados.


ATUALIZAÇÃO:
Agora eu tenho o nome responsável por isso: eu quero ter uma folha de dicas que eu possa chamar no meu terminal, por exemplo com $ git-cheat e, em seguida, aparece uma lista dos meus comandos git armazenados (como os aliases no git).

Você pode por favor dar algumas sugestões?

Muito obrigado.

    
por m1well 23.08.2017 / 16:25

2 respostas

0

Aqui está uma solução razoavelmente simples usando scripts de shell:

  1. Cada comando que você deseja salvar é colocado em um script de shell de 2 linhas da seguinte forma:
#!/bin/bash
docker system prune -a
  1. Todos esses scripts são colocados em um diretório, que você adiciona ao seu caminho se quiser que eles sejam acessíveis de forma trivial.
  2. Supondo que todos eles estejam em ~/cheat-sheet/ , o script a seguir deve cunhar uma lista que mapeie o nome do arquivo para o comando que ele executa:
#!/bin/bash
commands='ls ~/cheat-sheet/'
for item in commands ; do
    cmd='tail -n 1 ~/cheat-sheet/${item}'
    echo "${item}:  ${cmd}"
done

Note que isso requer que você dê a cada um dos scripts nomes razoavelmente descritivos para serem úteis, mas é provavelmente uma das opções mais rápidas possíveis sem usar software extra.

    
por 23.08.2017 / 17:01
0

se você estiver interessado, eu já implementei uma solução e a disponibilizei no github. (mais recursos estão chegando hoje ou amanhã)

link

Problema

Agora estou no ponto em que geralmente uso comandos como $ docker system prune -a ou $ git reset --soft HEAD^
e eu não quero pesquisar no Google se eu precisar deles ad hoc e não memorizá-los neste momento.

Os aliases são legais, mas se eu começar a trabalhar apenas com aliases e alguém me perguntar "como posso redefinir meu commit?" - claro que não posso contar a ele o meu pseudônimo. ;)) O histórico do shell também é legal, mas um pouco longo (mesmo se você grep).

Solução

Uma ferramenta onde eu posso armazenar todos os meus comandos de shell usados, listá-los, adicionar novos comandos e, claro, também excluir comandos.

Então, se eu pesquisar, por exemplo para um comando para parar todo contêiner docker que eu pesquiso em meus comandos armazenados:
$ sh script_cheatsheet.sh -l 'docker stop'
e recebo uma resposta da minha saída armazenada:
//-----------------------------//
//-------- cheatsheet --------//
list of greped commands:
docker stop $(docker ps -a -q)
//-----------------------------//

Uso

Você pode apenas executar o script e ...

... adicionar um comando à sua planilha:
$ sh script_cheatsheet.sh -a 'git commit --amend'
... mostra todos os comandos na sua cheatsheet:
$ sh script_cheatsheet.sh -l all
... mostra um comando específico em sua cheatsheet:
$ sh script_cheatsheet.sh -l 'commit'
... remover um comando da sua planilha:
$ sh script_cheatsheet.sh -r 'git commit --amend'
... remove todos os comandos da sua cheatsheet:
$ sh script_cheatsheet.sh -r all

Além disso, você pode ...

... verificar o uso / ajuda:
$ sh script_cheatsheet.sh -h
... verifique a versão:
$ sh script_cheatsheet.sh -v

Dica

Para um melhor uso, seria mais adequado criar um alias como alias cheat="sh [path-to-script]/script_cheatsheet.sh"
para que você possa executar a ferramenta da seguinte forma:
$ cheat -l all

    
por 24.08.2017 / 10:52