Как я могу работать sudo apt-get install
на ОБА видеть процесс установки (долго в моем случае) и сохранение его вывод в текстовый файл?
25
Как я могу работать sudo apt-get install
на ОБА видеть процесс установки (долго в моем случае) и сохранение его вывод в текстовый файл?
apt-get
правильно?Ответы:
используйте
script
команду. Он скопирует все, что идет на экран в файлисточник
script
отправляет вывод команды в файл, но не показывает его на экране.script -c "history" ~/hist.txt
и увидел вывод, указывающийScript started
иScript done
, но я не увидел вывод действительной команды на экране.history
- это встроенная оболочка, а не внешняя команда. Происходит следующее: 1) скрипт запускается, 2) скрипт ищет команду истории, не находит ее, поэтому он предполагает, что он должен запустить ее через оболочку. 3) скрипт запускает командуhistory
через оболочку 4) новая оболочка запускается и выполняет внутреннюю команду history. Поскольку это новая неинтерактивная оболочка, истории нечего сказать.script
также может быть запущен в интерактивном режиме. Просто введитеscript
в командной строке. Вы получите новую оболочку, и любые введенные вами команды сохранят свои результаты. Введите,exit
чтобы закрыть оболочку и сохранить файл. По умолчанию вызывается вывод,typescript
и он будет содержать все, что отображается на вашем экране, независимо от того, набрали ли вы его, или это был вывод команды. Командаhistory
все еще должна быть доступна в новой оболочке.Вы можете использовать
tee
команду для достижения этой цели.Посмотрите здесь для получения дополнительной информации или выполнить
man tee
Примечание. Как уже упоминалось,
2>&1
необходимо перенаправить STDERR в STDOUT, чтобы перехватить любые ошибки. Посмотрите этот вопрос StackOverflow для хорошего объяснения того, что на2>&1
самом деле делает.источник
script
что команду не нужно заключать в кавычки. Поэтому такие преимущества, как завершение bash, легче реализовать.-c "something ..."
: if, после чего вы попадете в оболочку, и закончите, когда вы выйдете из этой оболочки. Позволяет использовать несколько команд и т. Д. Кроме того, в нем содержится больше информации о «форматировании», что позволяет воспроизводить некоторые другие вещи (например, очистить экран и т. Д.) (Но это также может испортить вывод ... ymmv)|&
вместо2>&1 |
Bashtee
будет делать работу по мере необходимости.Чтобы записать вывод в файл, используйте:
Это будет захватывать только выходные данные, но не сообщения об ошибках. Если вы также хотите записать сообщения об ошибках, измените команду на:
источник
bash
поддерживает|&
оператор ,sudo apt-get install your_software |& tee log_file.txt
воли трубы как стандартный вывод и стандартный поток ошибок вtee
. (Престижность Дж. Ф. Себастьяну, который предложил это в другом месте .)Одна из прелестей apt-get (и APT в целом) заключается в том, что они хранят файлы журналов практически для всего, даже для вывода на терминал любой команды, которую вы запускаете через
/var/log/apt
. Например, это последняя запись в моем/var/log/apt/term.log
:Теперь, сравнивая с фактическим результатом:
Это спасло меня от нескольких строк, которые в большинстве случаев не актуальны, и делает это автоматически. Таким образом, вам не нужна дополнительная команда, чтобы делать то, что вы хотите, apt-get сделает это за вас.
источник
попробуйте тройник команду. Вы можете найти здесь несколько примеров.
Простое использование:
пример:
источник