Есть много вопросов, связанных с этим, но все они начинаются с (справа) предположения, что выходные данные не записываются.
Итак, мой вопрос: где?
Нигде: вывод Bash (и любой другой известной мне оболочки) не регистрируется.
Поскольку выходные данные отображаются на экране, их все равно нужно где-то хранить.
Это так, но, скорее всего, не в виде простого текста и даже не на диске (хотя это действительно зависит от эмулятора терминала): скорее всего, и, по крайней мере, в большинстве случаев, в сегменте памяти, выделенном эмулятором терминала.
Однако наверняка он не записывается в файл, по крайней мере, не оболочкой, и я не знаю эмуляторов терминала, которые по умолчанию записывают вывод в файл.
На самом деле это не означает, что невозможно зарегистрировать вывод терминала: сначала я упомяну что-то, о чем, по-моему, мало кто знает, так как я никогда не видел, чтобы кто-нибудь упоминал об этом, по крайней мере, здесь, в Ask Ubuntu: Konsole позволяет сохранить прокрутка к файлу (возможно, есть другие эмуляторы терминала, которые предоставляют такую функциональность, Konsole - единственный, о котором я знаю), хотя это ограничено ограничением размера прокрутки в Konsole.
Это часто не очень полезно, хотя, и, скорее всего, вы захотите найти «правильные» решения для записи вывода всего сеанса в файл ( Как мне записать весь ввод и вывод в терминальном сеансе? И ответ Рона ).
Это не имеет никакого отношения к вашей оболочке (
bash
), это не особенность эмулятора терминала, который вы используете. Он хранится в «буфере прокрутки» вашего терминала. Я не смог найти четких объяснений того, где именно это хранится, но личный опыт показал мне, что он хранится где-то в/tmp
.Как показывает ответ на вопрос, связанный с вышеупомянутым, он, скорее всего, хранится в безымянном файле. Чтобы понять, что я имею в виду, откройте новый файл в текстовом редакторе:
Запишите строку текста в файл и сохраните его. Теперь, пока этот файл еще открыт, откройте терминал и удалите его:
Поскольку файл все еще открыт
gedit
, вы можете продолжить запись в него. Вы даже можете записать в него несколько гигабайт данных, несмотря на то, что файл был удален. Это потому, что удаление файла просто удаляет ссылку, указывающую на его индекс . Если его дескриптор файла остается открытым другой программой, данные могут быть записаны в него, несмотря на тот факт, что в файловой системе больше нет фактической ссылки (файла), соответствующей дескриптору файла.Все это говорит о том, что история вашего терминала, вероятно, сохраняется с помощью такой хитрости, где-то в удаленном файле в
/tmp
. То, что вы, вероятно, на самом деле хотите, это просто увеличить размер буфера прокрутки вашего эмулятора терминала, чтобы вы могли просто прокрутить вверх и увидеть его. Детали того, как это сделать, зависят от того, какой эмулятор терминала вы используете. У большинства есть переключатель командной строки, который позволяет вам это сделать, и у многих также есть способ настройки GUI. Например, вgnome-terminal
(по умолчанию в Ubuntu) это Edit -> Preferences -> Profiles --- нажмите на свой профиль -> Edit -> Scrolling -> Limit scrollback to NNN:источник
script
как описано в принятом ответе.Терминальная сессия хранится в
.bash_history
файле. Введите это в свой терминалecho $HISTFILE
, это даст вам путь к.bash_history
файлу.источник