как включить историю команд оболочки

Это является в основном историческим, частично вопрос управления от аспекта системного администрирования, частично проблема мобильности, частично проблема отладки.

"Назад в день", не было никакого autoconf, dpkg, об/мин. Вы загрузили программное обеспечение, иногда от UUCP, скомпилировали продукт и определили - с Вашими собственными конвенциями - где установить продукт. Сцепление продукта до системы начальной загрузки/завершения работы, как думали, было обязанностью системного администратора. Системный администратор записал бы rc сценарий и место это в соответствующем месте для той системы (/etc/inittab, /etc/rcN.d/, /etc/rc.local, /etc/inetd.conf). С меньшим количеством систем не-Linux в центре деятельности, появлении rpm и dpkg делает часть этого локального менее важного выбора.

Системным администраторам также нравится иметь некоторую меру управления их системами, и самая легкая запись, чтобы отладить и изменить позже является сценариями оболочки, не C программы.

Когда я сослался на более раннее, другое OSs UNIX, имел различные способы загрузиться. Запись короткого сценария оболочки для Вашей собственной системы была намного легче, чем разработчик, пишущий для каждой возможной разновидности UNIX, который подходил (снова, это было прежде даже autoconf): SysV, Ultrix, Irix, HP-UX, SunOS, Солярис, NextStep, NonStop, и т.д. По большей части они попали в два или три механизма, но у каждого было их собственное скручивание.

Системы начальной загрузки могут быть сложными легко. Хорошо иметь сценарий оболочки, где можно распечатать отладочную информацию, изменить поток, взаимодействия дескриптора, которые не ожидали авторы программы. Если бы это было скомпилированной программой, то она сделала бы нахождение таких ошибок намного более трудным.

Современные системы имеют более новые механизмы, но большинство все еще назовет сценарии оболочки, в основном по причинам выше.

10
04.08.2013, 02:26
2 ответа

При подсказке Bash введите следующие команды и сделайте шаги, перечисленные после каждого:

set -o | grep history

Если Вы получаете "историю от", затем добавляют эту строку в конце Вашего ~/.bashrc:

set -o history

Следующая попытка:

echo $HISTFILE
echo $HISTSIZE
echo $HISTFILESIZE

Если первый является пробелом или /dev/null, добавьте эту строку в конец Вашего ~/.bashrc:

HISTFILE=$HOME/.bash_history

Если любой из последних двух печатает 0, установил их на некоторое число как значение по умолчанию 500:

HISTFILESIZE=500
HISTSIZE=500

Не забывайте source .bashrc после сохранения ~/.bashrc

12
27.01.2020, 20:02

Другая возможная проблема, с которой я только что столкнулся, заключается в том, что ваш файл .bash_historyможет принадлежать пользователю root:

$ ls -l $HISTFILE
-rw------- 1 root root 9558 Jun 21 21:56 /home/ubuntu/.bash_history

Решение состоит в том, чтобы chownвернуть его вашему пользователю и группе:

$ sudo chown ubuntu:ubuntu /home/ubuntu/.bash_history
$ ls -l $HISTFILE
-rw------- 1 ubuntu ubuntu 9558 Jun 21 21:56 /home/ubuntu/.bash_history
1
23.06.2020, 14:05

Теги

Похожие вопросы