Как вспомнить историю в теминале
Я установил Ubuntu 10.10 вчера. Затем при использовании терминала я заметил, что после выхода из сеанса терминала его история исчезает, хотя история существует для приложений в истории терминала как-ROOT(CERN).
Давая команду
echo $HISTFILESIZE
он показывает 2000. Я изменил это на 10000, когда я вышел из сеанса и открыл новый терминал; он снова показывает историю как 2000, и ни одна команда не может быть доступна с помощью клавиш со стрелками вверх / вниз.
Пожалуйста помоги. Я расстраиваюсь с оооочень.... много печатать в Терминале.
2 ответа
Если никакие команды не могут быть запущены с помощью ↑ или ↓, это означает, что ваш файл истории пуст или у вас нет прав на чтение. Проверь это.
Может быть, вы запускаете команды как другой пользователь. Если так, сделайте:
su otheruser
history 10
и посмотрите на вывод.
Если вы измените $HISTFILESIZE
изменения будут перезаписываться при каждом вызове другой оболочки. Чтобы предотвратить это, вы должны изменить эту переменную в вашем .bashrc
, Также вы должны установить переменную $HISTSIZE
на большее значение.
Обычно полезные советы по истории:
Ctrl + R выполняет обратный поиск вашей истории для вас. Alt + . вставляет последний аргумент последней команды в вашу подсказку в позиции курсора.
Тоже челка (!
) оператор будет повторять команды для вас в терминале (если речь идет только о том, чтобы сэкономить вам набор текста. Пример:
confus@confusion:~$ echo "bang + letters will repeat the last command starting with these letters."
bang + letters will repeat the last command starting with these letters.
confus@confusion:~$ clear
confus@confusion:~$ !ech
bang + letters will repeat the last command starting with these letters.
Все эти истории, связанные с историей, хранятся в домашнем каталоге любого пользователя в файле с именем .bash_history
, Вы можете посмотреть их, используя history
-command. Это небольшой учебник по использованию истории.
confus@confus:~$ history 4 #will print last 4 commands
1848 ls
1849 clear
1850 vi /home/confus/.local/share/applications/nautilus-home.desktop
1851 history 4
Еще одна очень полезная вещь, чтобы создать .inputrc
файл в вашем домашнем каталоге со следующим содержанием:
"\e\e[C": forward-word
"\e\e[D": backward-word
"\e[A": history-search-backward
"\e[B": history-search-forward
Таким образом, вы можете использовать ↑ или ↓ для завершения команд, которые вы начали вводить из истории. Например, когда вы набираете довольно длинную команду, такую как rsync -a -v --human-readable --prune-empty-dirs -e 'ssh -i .ssh/id_rsa' --include="*/" --exclude="snapshot_*" --exclude="restart.*" /scratch/ x@cluster1:/home/x/runs/
и хотите запустить его во второй раз, вы можете просто набрать rsy
и затем - он завершится до последней команды, которая началась с rsy. Еще одно нажатие вверх будет завершено до второго и так далее. Я не знаю, почему это не по умолчанию.
Вы можете нажать Control+R и выполнить поиск по истории Bash, если вы помните часть введенной вами команды.
Существует также файл с именем .bash_history
в вашей домашней папке, которую вы можете открыть или grep, чтобы найти ранее введенные команды.