Как узнать историю команд оболочки с момента создания машины?

Я создал виртуальную машину с Ubuntu пару недель назад и с тех пор работаю над проектами.

Теперь я хотел бы найти синтаксис некоторых команд, которые я набрал в терминале неделю назад, но я открывал и закрывал окно терминала и многократно перезагружал машину.

Как мне получить команду history, чтобы вернуться к первой команде, которую я набрал после создания машины?
Или есть другое место, где хранятся все команды в Ubuntu?

23
задан 7 September 2016 в 00:03

4 ответа

По умолчанию нет места, где все команды записываются и хранятся неопределенно долго, хотя ~/.bash_history содержит несколько последних команд (если вы используете bash, который является оболочкой по умолчанию в Ubuntu).

Если вы хотите, чтобы каждая команда, введенная в bash, записывала навсегда , вы должны настроить ее самостоятельно. Например, вы можете поместить следующее в ваш файл ~/.bashrc, чтобы записать все команды, введенные в оболочке bash, в файл ~/.command_log:

# log every command typed and when
if [ -n "${BASH_VERSION}" ]; then
    trap "caller >/dev/null || \
printf '%s\\n' \"\$(date '+%Y-%m-%dT%H:%M:%S%z')\
 \$(tty) \${BASH_COMMAND}\" 2>/dev/null >>~/.command_log" DEBUG
fi

. Вышеприведенное устанавливает ловушку на DEBUG. ], которая выполняется непосредственно перед выполнением обычной команды. Встроенный caller используется для проверки того, вводится ли команда в интерактивной оболочке или выполняется что-то вроде ~/.bashrc. Значение ${BASH_COMMAND} содержит команду, выполняемую в данный момент.

0
ответ дан 7 September 2016 в 00:03

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

Однако вы можете видеть, что список истории хранится здесь

/home/<YOUR_USERNAME>/.bash_history

Смежный вопрос (для обработки истории нескольких оболочек):

Возможно сделать запись в .bash_history незамедлительной?

0
ответ дан 7 September 2016 в 00:03

Вы можете вернуться, только если ваш предел истории установлен; как только он достигнет этой точки, история начнет перезаписываться. Тем не менее, возможно иметь больший размер истории на будущее. Поместите это в ваш .bashrc и укажите значение (у меня установлено 1000):

export HISTSIZE=1000
0
ответ дан 7 September 2016 в 00:03

Кое-что, что также может вас заинтересовать, - это поиск в вашей предыдущей истории команд. Вы можете выполнить обратный поиск в своей истории в командной строке, нажав Ctrl+r, а затем набрав буквы, которые вы хотите сопоставить. Если у вас более одной совпадающей команды, нажмите Ctrl+r еще раз. Чтобы выйти из обратного поиска, нажмите Ctrl+g.

http://www.ice2o.com/bash_quick_ref.html

0
ответ дан 7 September 2016 в 00:03

Другие вопросы по тегам:

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