Como “copiar e colar” comandos importantes?

0

Esta questão não é sobre o comando cp .

Eu não tenho um mouse nem uma GUI instalada em um servidor Ubuntu, mas gostaria de salvar alguns comandos em um arquivo para que eu possa reutilizá-los mais tarde.

É minha única opção para redigitá-los em um arquivo (usando Vi / Nano / qualquer coisa), ou existe uma maneira de copiá-los?

    
por DrakaSAN 14.11.2013 / 10:39

3 respostas

1

Existe também o mecanismo histórico do bash. Se ativado, o bash manterá um arquivo ~/.bash_history que contém todas as linhas de comando que você digitou, até um número máximo de entradas.

Há também o comando fc para navegar pelo histórico sem olhar pelo arquivo, por exemplo, fc -l 1 | fgrep echo para listar todas as linhas do histórico que contêm echo em qualquer lugar.

Tudo isso, claro, pode ser configurado:

  • HISTFILE define o nome do arquivo de histórico, em vez de ~/bash_history
  • HISTSIZE define o número máximo de entradas que são mantidas no histórico (o padrão é 500).
  • HISTCONTROL permite algum ajuste fino sobre o que é mantido na história e o que não. Ao definir HISTCONTROL=ignoreboth , as entradas duplicadas são mantidas apenas uma vez, e você pode evitar que linhas de comando únicas apareçam no histórico ao prefixar um espaço (por exemplo,  ls em vez de ls ).

Eu gosto de manter o máximo de HISTSIZE sem diminuir a velocidade da minha máquina, o que geralmente é cerca de 50000 antes de ser notado. Dessa forma, eu posso voltar por meses se não lembrar de um canal difícil ou algo assim e precisar novamente.

(Eu não estou usando o bash sozinho, apenas zsh, mas pelo que eu peguei da manpage o mecanismo é similar. Alguém, por favor, me corrija se eu entendi errado.)

    
por 17.12.2013 / 00:13
0

Encontrou!

Digamos que você tenha um comando grande, adicione echo antes do comando e redirecione o stdout para um arquivo.

Exemplo para o comando

someapp -wich have a lot of arguments and -is boring -to type

Digite

echo someapp -wich have a lot of arguments and -is boring -to type > file.sh

Ele irá criar file.sh que contém o comando

    
por 14.11.2013 / 10:48
0

O que você quer, deve / poderia ser feito com o comando alias .

Você pode criar arquivos separados para cada comando complexo, mas isso é exatamente o que usa o alias .

Você faz

alias sa='someapp -wich have a lot of arguments and -is boring -to type'

e quando você digitar sa + digite no prompt, ele executará seu programa com argumentos.

Para sobreviver a uma reinicialização de bash , você precisa adicioná-los a ~/.bashrc (ou ~/.kshrc ou qualquer shell usado).

O meu parece com isto:

# .bashrc

# User specific aliases and functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

Então você pode adicionar sua alias -line lá.

    
por 14.11.2013 / 13:08