Método para armazenar / memorizar comandos de um liner

3

Muitas vezes, ao configurar e ajustar sistemas baseados em Unix, eu uso muitos comandos de uma linha que são difíceis de lembrar. Por exemplo, para determinar qual versão do ntp (o servidor de horário) está executando, você emite o comando:

ntpq -c "rv 0 version"

Este é o tipo de coisa que eu nunca vou me lembrar. Existe alguma maneira ou método para armazenar todos esses one-liners para que eu possa procurá-los facilmente quando eu precisar e colá-los na linha de comando (eu uso vim btw, não emacs, então uma solução centrada no emacs não me ajudará realmente ). Eu estava pensando que poderia haver uma maneira de executar a linha atual de texto do buffer no shell, mas não encontrei nenhum comando desse tipo.

Uma ideia que tive foi colocar os comandos em um arquivo de texto e depois no vimrc fazer esta linha:

nnoremap <F10> :.w !bash<CR>

Agora, digamos que eu tenha esta linha no meu arquivo:

ntpq -c "rv 0 version"    # show current version of NTP which is running

Em seguida, coloco o cursor nessa linha e pressiono F10 e ele funciona (note que, como o comando está sendo enviado para o bash, você usa comentários de bash (#), não comentários de vim). Isso parece um passo na direção certa. Alguma idéia melhor?

    
por Tyler Durden 12.09.2014 / 21:54

3 respostas

5

Você já tentou usar aliases?

exemplo

Crie um alias para o novo comando:

alias ntpversion='ntpq -c "rv 0 version"'

Execute o comando:

ntpversion

A execução do ntpversion, depois de definido como um alias, fornecerá a saída para o seu one-liner.

link

    
por 12.09.2014 / 21:57
3

Executando comandos do vim

Você perguntou sobre o vim. No vim, você pode criar um arquivo com seus atalhos. Teria linhas como:

!ntpq -c "rv 0 version"

Você pode copiar essa linha para a linha de comando vim ( : ) para executá-la. Como a linha começa com ! , o vim lhe dará o shell para executar quando você pressionar enter. Você nunca tem que sair do vim.

Com minha configuração vim, eu copio a linha para o buffer X11 com cliques do mouse, então digite : para abrir a linha de comando e shift-insert para colar na linha. O Vim é muito configurável e sua configuração pode ser diferente. Em caso afirmativo, consulte este post para ver outras formas de colar para a linha de comando.

Salvando comandos em ~/.bashrc

Como alternativa, adicione aliases ou funções de bash ao seu arquivo ~/.bashrc . Um alias típico se parece com:

alias ll="ls --color -l"

Basta colocar a linha acima em seu arquivo ~/.bashrc (ou outro arquivo originado de lá) e você terá todos eles em um local conveniente quando quiser revisá-los.

Os aliases são simples e úteis, mas limitados. Se você quiser mais recursos, como argumentos de processo, aritmética etc., você pode querer ler sobre as funções bash. Eles também podem ser armazenados em ~/.bashrc .

    
por 12.09.2014 / 22:23
2

Você pode tornar seu histórico muito grande e depois executar coisas de lá.
E há commandlinefu.com ...
Você pode anotar todos aqueles liners em um arquivo de texto simples que você guarda.

Eu rodei uma instância privada de habari onde eu coloquei esse tipo de coisa (e mais documentação) ...

    
por 12.09.2014 / 22:00