Eu tenho muitos comandos que eu preciso executar rotineiramente, geralmente com a menor variação.
No momento, estou armazenando todos eles em .bash_history
uso CTRL- Rpara acessá-los, mas me pergunto se há uma maneira melhor. O que estou olhando:
- Fácil de adicionar um novo comando
- Fácil de pesquisar e reexecutar um comando desejado
- Evite comandos indesejados nas sugestões
Infelizmente, bash_history não é tão forte na terceira demanda: se eu fizer alguns cd
e ls
, ele preenche o arquivo de histórico rapidamente. Eu aprendi recentemente HIST_SIZE
e que você pode configurar o histórico para evitar duplicatas ou determinados comandos, mas antes de configurar tudo isso, eu queria ter certeza de que é o melhor caminho.
shell
command-history
Konerak
fonte
fonte
alias
talvez mais útil. por exemplo.alias gfc="git fetch origin"
Respostas:
Acho muito úteis os seguintes comandos readline
(atenção: eles são diferentes do habitual
reverse-search-history
,forward-search-history
, amarrado a Ctrl- R, Ctrl- S).Eu tenho esses comandos associados Ctrl- Upe Ctrl- Downcolocando as seguintes linhas em
~/.inputrc
:Como eles funcionam: escreva alguns caracteres do início do comando, pressione Ctrl- Upe o próximo comando antigo começando com esse prefixo será exibido, pressione novamente para ver o próximo e assim por diante. Quando estiver satisfeito, depois de modificar o comando, pressione Enterpara executar.
fonte
"\e[B": history-search-forward
e"\e[A": history-search-backward
HISTFILESIZE
e / ouHISTSIZE
(o zsh suporta apenasHISTSIZE
, o bash suporta os dois) para garantir que seu buffer seja suficientemente grande. A questão SO bash HISTSIZE vs. HISTFILESIZE? pode iluminar ainda mais.Outra dica: às vezes uso comentários para marcar / marcar um comando:
então:
fonte
$_bookmark
. Pode-se argumentar que este é um truque horrível que explora o fato de que variáveis inexistentes se expandem para nada, mas certamente funciona, com a ressalva de que espaços não são permitidos (use _'s).Embora de escopo muito limitado, gostaria de destacar esses dois espaços reservados de expansão:
é uma expansão de espaço reservado para o último comando. Útil se você esqueceu de colocar
sudo
antes do comando.repete o último parâmetro. Útil se você deseja repetir um comando diferente com
a/very/long/path/name/you/do/not/want/to/type/again
fonte
Use 'alias'
alias
é uma ótima ferramenta para isso.Quando você usa um alias, é exatamente como se você o tivesse digitado, por isso é bastante flexível. Por exemplo, você pode usá-lo com pipes:
Você deve conseguir "pequenas variações" passando os sinalizadores que ainda não especificou.
fonte
Eu crio scripts shell mínimos para meus comandos freqüentes e dou nomes abreviados. Todos eles são armazenados no mesmo local ao qual é adicionado
PATH
.Dessa forma, tenho acesso de atalho a comandos muito complexos e, ao contrário de
alias
eu, posso transformar as partes alteráveis da minha tarefa em argumentos de linha de comando do meu atalho.fonte
Estou mantendo uma cópia do .bash_history no Git . Para simplificar isso, eu configurei
em .bashrc e os seguintes comandos (modificados para uso geral) em um script de limpeza
que eu corro antes de adicionar linhas
git gui
. Como o arquivo de histórico é modificado com todos os comandos, também tenho um comando especial para atualizar esse repositório específico:fonte
HISTCONTROL=ignorespace
, o que é importante para não entupir a história, às vezes.Entre todas as outras respostas aqui envolvendo história.
eu coloco
em ~ / .bash_profile
Além dos outros comentários, re: history
Outro recurso útil ...
Iniciando um recall de história com
lembrará o último comando que começou com as primeiras letras
por exemplo:
Você não mencionou se está usando ou não uma GUI ou apenas uma linha de comando. Se você estiver usando uma GUI, poderá usar um dos gerenciadores de área de transferência persistentes para copiar / colar comandos, IDs de usuário, senhas, URLs, etc.
fonte
!find<ESC>CTRL-E
funciona, mas duvido que consiga me lembrar disso amanhã. O que é esse ESC CTRL-E?Aprendendo a usar Ctrl-Re Ctrl-Spermite pesquisar facilmente os comandos que você está procurando no histórico, e você já encontrou a variável de ambiente HISTCONTROL para ignorar duplicatas e alterar o site do arquivo de histórico do bash.
Normalmente, faço muitos Ctrl-Rseguidos Ctrl-Ee altero alguns parâmetros, se pulei um comando encontrado pressionando Ctrl-Rmuitas vezes, Ctrl-Spara o resgate.
fonte
Eu sempre prefiro armazenar os últimos comandos usados e sua saída.
fonte
Além das boas respostas acima, se você estiver usando um gui baseado no kde ou no gnome, o AutoKey pode ser incrivelmente útil.
Ele permite que você crie frases que são acionadas digitando alguns caracteres ou pressionando uma tecla de atalho. Essas frases são substituídas ou adicionadas à sua entrada.
Ele também suporta scripts escritos em python que você pode fazer quase tudo se souber python. Ainda não conheço python, mas já estou recebendo alguns scripts muito básicos para fazer coisas legais.
Tudo parece vir do seu teclado, portanto funciona com qualquer aplicativo que aceite entrada do teclado - e com a sua área de trabalho.
Ele tem muitas opções para controlar como e onde essas coisas são ativadas, para que você possa ter algumas que funcionam apenas no console e outras que funcionam apenas em outra janela. Você também pode definir frases para serem executadas assim que digitar a sequência que as aciona ou esperar até que você dê OK.
fonte
Como outros já disseram, o apelido é seu amigo. Para coisas um pouco mais complicadas (quando você precisa de argumentos em algum lugar entre as instruções), eu uso funções no meu .zshrc, como:
que funciona como localizar (eu o uso quando por algum motivo o db não está disponível). Ou
por um substituto de killall.
fonte
Além de usar Cntl-Rpara olhar para trás
.bash_history
, também tenho um arquivo README no~/develop
diretório em que coloco comandos longos como paragit
/svn
, para que eu possa voltar mais tarde quando precisar. Da mesma forma, estou planejando ter um~/install/README
arquivo para colocar todos os nomes de pacotes comuns que geralmente instalo após a instalação de uma nova versão do Linux / Ubuntu. Portanto, a idéia é ter um arquivo LEIA-ME dentro de cada diretório, por exemplo, Vídeo, Áudio, ... e coloque neles os comandos / dicas comuns que você precisará conhecer posteriormente.fonte