Как заставить терминал запоминать предыдущие команды после закрытия окна в SL 10.6.8?

4

Любой способ включить прокрутки после выхода из окна? Даже если само приложение все еще работает, закрытие окна и открытие нового не работает.

Я уверен, что раньше он работал на моем старом Mac, но я просто не могу найти вариант в настройках, и Google не мой друг.

Dan
источник
До Mac OS X Lion 10.7 в терминале не было возможности сохранять / восстанавливать прокрутку после закрытия окна. Вы говорите о журнале прокрутки (т. Е. О тексте, который прокручивался вверху экрана терминала) или истории команд оболочки? (например, в bash запустите команду «history», и вы увидите записанную историю команд.)
Chris Page
Был ли у вас «старый» Mac с Mac OS X Lion 10.7 или более ранняя версия Mac OS X?
Chris Page
Нету. Та же версия - никогда не использовал Lion.
Dan
1
@Chris_Page - я сейчас использую не Lion Macbook Pro бок о бок, который с удовольствием прокручивает всю предыдущую историю даже после выхода из Cmd + Q. Я не подвергаю сомнению ваши знания ОС здесь, насколько я знаю, это может быть не встроенная функция, но у меня был этот Mac с нового, я никогда ничего не делал сознательно, чтобы добавить эту функцию. Так что это возможно, и я могу это доказать, но понятия не имею, как включить его на Mac под управлением идентичной ОС.
Dan
1
SL 10.6.8 B10K549 - Клемма 2.1.2 (273.1). Невероятно, не невозможно. :-) Я имею в виду с технической точки зрения, это не большой скачок для хранения некоторых прокруток в энергонезависимой памяти, и Lion's доказал это, а не то, что это нужно было доказать. Для меня это всегда просто работало, поэтому я никогда не задавался вопросом, почему его там не может быть. Моя новая машина корпоративная, поэтому я предположил, что это была функция безопасности, позволяющая администратору на случай кражи ноутбука.
Dan

Ответы:

4

У меня была такая же проблема на моем новом Mac, когда я проверил файл истории ~ / .bash_history, я обнаружил, что он принадлежит root. я бегу sudo chown username .bash_historyТеперь, когда я снова открываю терминал, моя история сохраняется.

RayBo
источник
2

Предполагая, что вы никоим образом не изменили поведение по умолчанию, вы сможете прокрутить список своих предыдущих команд, просто нажав клавишу курсора вверх. Существует так много альтернатив в зависимости от того, какую оболочку вы используете, если вы изменили настройки по умолчанию и т. Д., Так что это будет полезной информацией. Кроме того, в какой ОС вы работаете, начиная с Lion, терминал перезагружает последние 500 строк выходного сигнала даже после последнего закрытого экрана при перезапуске.

stuffe
источник
Стандартная установка, Snow Leopard 10.6.8, стандартное приложение Terminal. Прокрутка установлена ​​без ограничений. Чем больше я думаю об этом, тем больше думаю, что это может быть функция безопасности, поскольку это корпоративная машина. Где-нибудь еще я мог бы изменить поведение по умолчанию?
Dan
Когда вы запускаете оболочку, вы можете задать ей параметры для такого рода вещей. Например, «bash -o vi» или «ksh -o vi» запустит оболочку Bash или Ksh с историей команд, используя стандартные команды VI, это K, чтобы вернуться в вашу историю, и J, чтобы двигаться вперед. Это позволит настроить другие параметры для перемещения влево / вправо, а также использовать H и L вместо клавиш курсора, но это не поведение по умолчанию, хотя это может быть остановка пробела, пока вы не исправите это. Конечно, по умолчанию это разрешено, так что вы можете быть настроены так или иначе.
stuffe
Исправление: Терминал восстанавливает последние 10000 строк журнала прокрутки по умолчанию (не 500), в дополнение к содержимому экрана.
Chris Page
1
Количество восстановленного прокрутки можно контролировать с помощью defaults write com.apple.Terminal установив RestoreScrollbackLines (или вы можете установить для ShouldLimitRestoreScrollback значение NO, чтобы сохранить / восстановить весь текст).
Chris Page
2

Если ваш Терминал теряет историю (ранее введенные команды), попробуйте это:

Сначала проверьте в своем домашнем каталоге, кому принадлежит файл .bash_history

ls -al .bash_history

Если по какой-либо причине файл не принадлежит вашему имени пользователя, он появится (например) в списке как

-rw-------    1 root      staff       32 Jul 11  2011 .bash_history

Исправить это с помощью:

sudo chown [username] .bash_history

(источник: http://www.paulmc.org/2009/01/enable-bash-history-in-terminal/ )

Теперь закройте терминал, снова откройте его, и вы сможете увидеть ранее введенные команды, нажав стрелку вверх (то есть, если вы используете bash в качестве оболочки терминала - по умолчанию).

Cristian Murillo
источник
1
Или просто rm ~/.bash_history, он будет воссоздан, когда вы начнете следующий bash,
nohillside
1

Насколько я знаю, история прокрутки отбрасывается при закрытии окна; нет способа открыть окно, которое вы закрыли, чтобы просмотреть историю прокрутки. Однако есть параметр предпочтений, который позволяет настроить «последний шанс» для просмотра или сохранения истории прокрутки после выхода из начальной оболочки окна (я не уверен, соответствует ли это тому, что вы подразумеваете под «после выхода из окна»). ).

В 10.6 эта настройка предпочтения находится в Терминал Предпочтения ( Терминал & GT; Настройки ... пункт меню или его ярлык: ⌘,) под настройки раздел в Ракушка вкладка вашего «набора настроек» (возможно, с именем основной найдите тот, у которого слово «По умолчанию» находится под его именем). Предпочтение помечено « Когда оболочка выходит: ».

Screen shot of Terminal preferences window showing the “When the shell exits” options.

Доступные варианты

  • Закрыть окно

    Окно всегда исчезнет сразу после выхода из оболочки.

  • Закрыть, если оболочка вышла чисто

    Окно будет немедленно закрыто (как указано выше), если оболочка выдаст нулевой код выхода («чисто завершено»).
    Окно останется открытым (см. Ниже), если оболочка выдаст ненулевой код выхода.

  • Не закрывайте окно

    Окно всегда будет оставаться открытым при выходе из оболочки; линия [Process completed] будет добавлено к содержимому окна.
    Чтобы закрыть окно, вы должны использовать

    • Ракушка & GT; Закрыть окно пункт меню ( Ракушка & GT; Закрыть вкладку для вкладки), или
    • ⌘W (ярлык пункта меню), или
    • красная кнопка закрытия в строке заголовка ( x кнопка на вкладке для вкладки).
Chris Johnsen
источник
0

Это контролируется во всем мире путем включения Системные настройки - & gt; Общее - & gt; Восстановление окон при выходе и повторном открытии приложений ,

Ingmar Hupp
источник
Функция возобновления Lion не влияет на сохранение или восстановление оболочками истории команд.
Chris Page
Похоже, вопрос касается буфера обратной прокрутки терминала (на который влияет описанный параметр), а не истории команд.
Ingmar Hupp
Да, вопрос вводит в заблуждение: «предыдущие команды», вероятно, должны быть «журналом прокрутки». С другой стороны, автор говорит, что раньше он работал на «старом Mac», но до Lion в Terminal не было возможности восстановить прокрутку. Если речь идет о журнале прокрутки, я могу только предположить, что они использовали программу, подобную screen, для восстановления прокрутки, или они использовали какую-то другую терминальную программу. Или «старый Mac» означает просто другую машину с Lion, а не «старый компьютер с более старой версией ОС».
Chris Page
Да, я говорю о прокрутке назад. Старый Mac - это MacBook Pro, работающий до последней версии, на котором установлена ​​последняя версия Snow Leopard. Прокрутка не работает на новом Mac, независимо от того, что я делаю: приведенные выше советы.
Dan