Comment puis - je courir sudo apt-get install
par BOTH voir le processus d'installation (longue dans mon cas) et sauver sa sortie dans un fichier texte?
25
Comment puis - je courir sudo apt-get install
par BOTH voir le processus d'installation (longue dans mon cas) et sauver sa sortie dans un fichier texte?
apt-get
juste?Réponses:
utilisez la
script
commande. Il copiera tout ce qui va à l'écran dans un fichierla source
script
envoie la sortie de la commande dans un fichier, mais ne l'affiche pas à l'écran.script -c "history" ~/hist.txt
et j'ai vu la sortie indiquantScript started
etScript done
, mais je n'ai pas vu la sortie de la commande réelle sur l'écran.history
est un shell intégré, pas une commande externe. Ce qui se passe est: 1) le script démarre, 2) le script recherche la commande d'historique, ne la trouve pas, il suppose donc qu'il devrait l'exécuter via un shell. 3) le script exécute la commandehistory
via un shell 4) un nouveau shell démarre et exécute la commande interne historique. Puisqu'il s'agit d'un nouveau shell non interactif, l'histoire n'a rien à dire.script
peut également être exécuté de manière interactive. Tapez simplementscript
à l'invite de commande. Vous obtiendrez un nouveau shell, et toutes les commandes que vous tapez auront leur sortie enregistrée. Tapezexit
pour terminer le shell et enregistrez le fichier. Par défaut, la sortie est appeléetypescript
et elle contiendra tout ce qui apparaît sur votre écran, que vous l'ayez tapé ou que ce soit la sortie d'une commande. Lahistory
commande devrait également être disponible dans le nouveau shell.Vous pouvez utiliser le
tee
commande pour accomplir cela.Regardez ici pour plus d'informations ou exécutez
man tee
Remarque: Comme d'autres l'ont mentionné, il
2>&1
est nécessaire de rediriger STDERR vers STDOUT pour détecter les erreurs. Voir cette question StackOverflow pour une bonne explication de ce qui2>&1
se passe réellement.la source
script
puisque la commande n'a pas besoin d'être citée. Il est donc plus facile d'accomplir des avantages comme l'achèvement de bash.-c "something ..."
: if vous déposera alors dans un shell, et se terminera lorsque vous quitterez ce shell. Permet plusieurs commandes, etc. De plus, il conserve plus d'informations sur le "formatage", permettant la relecture de plus de choses (comme: écran clair, etc.) (mais cela peut aussi gâcher la sortie ... ymmv)|&
au lieu de2>&1 |
dans bashtee
fera le travail au besoin.Pour capturer la sortie dans un fichier, utilisez:
Cela ne capturera que la sortie, mais pas les messages d'erreur. Si vous souhaitez également enregistrer des messages d'erreur, modifiez la commande pour qu'elle soit:
la source
bash
prend en charge l'|&
opérateur ,sudo apt-get install your_software |& tee log_file.txt
dirigera à la fois stdout et stderr verstee
. (Félicitations à JF Sebastian qui a suggéré cela ailleurs .)L'un des avantages d'apt-get (et d'APT en général) est qu'ils stockent des fichiers journaux pour presque tout, même la sortie du terminal de toute commande que vous exécutez, dans le
/var/log/apt
. Par exemple, c'est la dernière entrée de mon/var/log/apt/term.log
:Maintenant, en comparant avec la sortie réelle:
Cela m'a sauvé plusieurs lignes qui ne sont pas pertinentes dans la plupart des cas, et cela se fait automatiquement. Donc, vous n'avez besoin d'aucune commande supplémentaire pour faire ce que vous voulez faire, apt-get le fait pour vous.
la source
essayez la commande tee . Vous pouvez trouver ici quelques exemples.
Utilisation simple:
Exemple:
la source