Я работаю над интерпретатором Python по умолчанию в Mac OS X, и я Cmd+ K(очистил) мои предыдущие команды. Я могу просмотреть их один за другим, используя клавиши со стрелками. Но есть ли такая опция, как опция --history в оболочке bash, которая показывает все команды, которые вы ввели на данный момент?
150
history
shell - это программа, как и любая другая. Это не «опция» вbash
команде.history
это встроенная оболочка.%history
. И-g
опция получает более ранние сессии .Ответы:
Используйте,
readline.get_current_history_length()
чтобы получить длину иreadline.get_history_item()
просмотреть каждый.источник
Код для печати всей истории:
Python 3
Однострочник (быстрое копирование и вставка):
(Или более длинная версия ...)
Python 2
Однострочник (быстрое копирование и вставка):
(Или более длинная версия ...)
Примечание :
get_history_item()
индексируется от 1 до n.источник
import readline; print '\n'.join([str(readline.get_history_item(i)) for i in range(readline.get_current_history_length())])
history()
функцию, описанную выше, в мой скрипт запуска интерпретатора Python (скрипт, на который указывает env. Var$PYTHONSTARTUP
). Отныне я могу просто вводитьhistory()
С интерпретатором Python 3 история записывается в
~/.python_history
источник
cat ~/.python_history
quit()
переводчик для текущей истории сеанса был включен в~/.python_history
Если вы хотите записать историю в файл:
Функция справки дает:
источник
Поскольку вышесказанное работает только для Python 2.x, для Python 3.x (в частности, 3.5) аналогично, но с небольшой модификацией:
обратите внимание на дополнительные ()
(использование сценариев оболочки для анализа .python_history или использование python для изменения приведенного выше кода - вопрос личного вкуса и ситуации imho)
источник
C:\>python -m pip install readline
=>Collecting readline
\ nDownloading https://files.pythonhosted.org/packages/f4/01/2cf081af8d880b44939a5f1b446551a7f8d59eae414277fd0c303757ff1b/readline-6.2.4.1.tar.gz (2.3MB)
\ n|████████████████████████████████| 2.3MB 1.7MB/s
\ nERROR: Complete output from command python setup.py egg_info:
\ nERROR: error: this module is not meant to work on Windows
\ n----------------------------------------
\ n `ОШИБКА: Сбой команды" python setup.py egg_info "с кодом ошибки 1 в C: \ Users \ dblack \ AppData \ Local \ Temp \ pip-install-s6m4zkdw \ readline`pip install readline
, ноreadline
по умолчанию устанавливается в Windows.В IPython
%history -g
должна быть вся история команд. Конфигурация по умолчанию также сохраняет вашу историю в файл с именем .python_history в вашем пользовательском каталоге.источник
Простая функция для получения истории, аналогичной версии Unix / Bash.
Надеюсь, это поможет некоторым новым людям.
Фрагмент: протестировано с Python3. Дайте мне знать, если есть какие-либо глюки с python2. Образцы:
Надеюсь, это поможет ребятам.
источник
cut -c 8
их выхожу.)@ Джейсон-V, это действительно помогает, спасибо. Затем я нашел этот пример и составил собственный фрагмент.
источник
Это должно дать вам команды, напечатанные в отдельных строках:
источник
Перефразировать ответ Doogle , который не печатает номера строк, но позволяет указать количество строк для печати.
источник