Como posso executar sudo apt-get install
por AMBOS vendo o processo de instalação (longa no meu caso) e salvar a sua saída em um arquivo de texto?
25
Como posso executar sudo apt-get install
por AMBOS vendo o processo de instalação (longa no meu caso) e salvar a sua saída em um arquivo de texto?
apt-get
certo?Respostas:
use o
script
comando Ele copiará tudo o que for exibido na tela em um arquivofonte
script
envia a saída do comando para um arquivo, mas não a mostra na tela.script -c "history" ~/hist.txt
e vi a saída indicandoScript started
eScript done
, mas não vi a saída do comando real na tela.history
é um shell builtint, não um comando externo. O que acontece é: 1) o script é iniciado, 2) o script pesquisa o comando history, não o encontra, portanto acha que deve ser executado por meio de um shell. 3) o script executa o comandohistory
através de um shell 4) um novo shell é iniciado e executa o comando interno do histórico. Como esse é um novo shell não interativo, a história não tem nada a dizer.script
também pode ser executado interativamente. Basta digitarscript
no prompt de comando. Você receberá um novo shell, e qualquer comando digitado terá sua saída salva. Digiteexit
para finalizar o shell e salve o arquivo. Por padrão, a saída é chamadatypescript
e conterá tudo o que é mostrado na tela, independentemente de você ter digitado ou se foi a saída de um comando. Ohistory
comando ainda deve estar disponível no novo shell também.Você pode usar o
tee
comando para fazer isso.Procure aqui mais informações ou execute
man tee
Nota: Como outros já mencionaram,
2>&1
é necessário redirecionar STDERR para STDOUT para detectar erros. Veja esta pergunta StackOverflow para uma boa explicação do que2>&1
realmente faz.fonte
script
porque o comando não precisa ser citado. Portanto, vantagens como a conclusão do bash são mais fáceis de obter.-c "something ..."
: if, você será direcionado para um shell e finalizado quando você sair desse shell. Permite vários comandos, etc. Além disso, mantém mais informações de "formatação", permitindo a reprodução de mais algumas coisas (como: tela limpa, etc.) (mas que também podem atrapalhar a saída ... ymmv)|&
vez de2>&1 |
no bashtee
fará o trabalho conforme necessário.Para capturar a saída em um arquivo, use:
Isso capturará apenas a saída, mas não nenhuma mensagem de erro. Se você também deseja gravar mensagens de erro, modifique o comando para:
fonte
bash
suporta o|&
operador ,sudo apt-get install your_software |& tee log_file.txt
canalizará stdout e stderr paratee
. (Kudos para JF Sebastian quem sugeriu isso em outro lugar .)Uma das vantagens do apt-get (e do APT em geral) é que eles armazenam arquivos de log para quase tudo, até a saída do terminal de qualquer comando que você executa através do
/var/log/apt
. Por exemplo, esta é a última entrada no meu/var/log/apt/term.log
:Agora, comparando com a saída real:
Isso me salvou várias linhas que não são relevantes na maioria dos casos, e isso acontece automaticamente. Portanto, você não precisa de nenhum comando extra para fazer o que deseja, o apt-get faz isso por você.
fonte
tente o comando tee . Você pode encontrar aqui alguns exemplos.
Uso simples:
exemplo:
fonte