Ubuntu для чайников. Команда history

 Чтобы посмотреть историю вводимых команд нужно набрать в терминале history


set +o history   отключить историю команд  
set -o history   включить историю команд  

Количество хранимых команд определяется двумя переменными: 
HISTSIZE (определяет количество команд, хранимых в памяти)  
HISTFILESIZE  (определяет количество команд, хранимых в файле) 
эти переменные хранятся в файле ~/.bachrc
посмотреть значения этих переменных
echo $HISTSIZE
echo $HISTFILESIZE

history 5  посмотреть историю последних команд
history | grep install    посмотреть всю историю и вывести те строки в которых есть install
 history -d257    удалить команду номер 257
!!    повторить последнюю выполненную команду
!-2    повторить предпоследнюю команду
 !sud    повторить последнюю команту имя которой начинается с sud (со всеми аргументами)
sudo !123    выполнить команду номер 123 от имени администратора
history -c    очистить историю

к примеру, ранее вы выполняли команду cat /etc/X11/xorg.conf.backup | grep Driver
то чтобы выполнить ее снова, можно набрать !?xorg? (будет выполнена последняя команда c подстрокой xorg)
 
Поиск по истории
Ctrl-r    в терминале, 
  Ctrl-r    для следующего совпадения 
  Ctrl-s    для передвижения в другую строну
Для некоторых терминалов Ctrl-s приводит к засыпанию.
Чтобы выйти из сна, нажмите Ctrl-q
Чтобы отключить засыпание, есть команда: stty -ixon

Ctrl+f    перемещение вправо на один символ
Ctrl+b    перемещение влево на один символ
Ctrl+a (или клавиша Home)    перемещение на начало строки
Ctrl+e (или клавиша End)    перемещение в конец строки
Alt+f    перемещение на начало предыдущего слова
Alt-b    перемещение на начало последующего слова
Ctrl+d (или клавиша Delete)    удаление  символа, на котором стоит курсор
Ctrl+k    удаление всех символов справа от курсора до конца строки с запоминанием удаленного для дальнейшего использования
Alt+d    удаление  символов справа от курсора до конца текущего слова с запоминанием удаленного для дальнейшего использования;
Ctrl+y    вставка удаленных символов и слов, удаленных при помощи двух предыдущих комбинаций.

к примеру вы решили просмотреть файл cat /etc/X11/xorg.conf.backup 
далее, выполняете что-то, и решили перейти в директорию /etc/X11
можно сделать следующее cd !cat:$:h
!cat   вернет последнюю команду cat с аргументами
:$    извлечет последний аргумент
:h    извлечет путь без имени файла

:t    извлекает имя файла
:r    отрезать расширение. Можно указывать несколько раз, есть вы хотите отрезать несколько расширений (.tar.gz).

чтобы сохранять время выполнения каждой команды нужно  добавить в файл ~/.bashrc эту строку export HISTTIMEFORMAT="%h %d %H:%M:%S "  
shopt -s histappend    добавлять новые команды в файл с историей, а не переписывать его каждый раз(нужно добавить в ~/.bashrc)

Чтобы мгновенно сохранять историю в файл, нужно добавить в файл ~/.bashrc, 
если переменная $PROMPT_COMMAND не была задана ранее:
  PROMPT_COMMAND='history -a'
Добавьте следующую строку, если переменная $PROMPT_COMMAND уже была задана:
  PROMPT_COMMAND='$PROMPT_COMMAND; history -a'

Комментарии