Оказывается, в bash есть такая команда "!" :
# mkdir /yu
# ls -l /yu
total 0
# history |tail -3
996 mkdir /yu
997 ls -l /yu
998 history |tail -3
# !996 <-- Используем номер команды
mkdir /yu
mkdir: cannot create directory `/yu': File exists
# history |tail -5
994 mkdir /yu
995 su - oracle
996 ls -l /yu
997 ls -ld /yu
998 history |tail -5
# !history <-- Используем название команды
history |tail -5
995 su - oracle
996 ls -l /yu
997 ls -ld /yu
998 history |tail -5
999 history |tail -5
# !l <-- можно вообще указать только первый символ
ls -ld /yu
drwxr-xr-x 2 root root 4096 May 19 12:52 /yu
Можно запоминать историю в свой файл: HISTFILE=/home/yu/my_history
Можно запретить сохранять историю: SAVEHIST=0
Можно ограничить размер: HISTSIZE=100
Можно игнорировать некоторые команды: HISTIGNORE="ls:mkdir:ps:history*:
[ \t]*
"Через : указывается список команд, а
[ \t] - означает не записывать в историю команды, начинающиеся с пробела:
# history |tail -5
107 export HISTIGNORE="ls:mkdir:ps:history*:[ \t]*"
108 asb
109 sdf
110 dfg
111 qwe
# ls
# mkdir /yu2
# tail -10 MegaSAS.log
# history |tail -5
108 asb
109 sdf
110 dfg
111 qwe
112 mkdir /yu2
Видим, что команды
"ls", "
tail
" - не попали в историю, а "
mkdir /yu2
" - попала, потому что
мы запретили только mkdir, а не mkdir*
Еще одна опция называется cmdhist - сохранять ли в истории команды набранные через ; как одну команду (def) или как несколько команд, включается/отключается
shopt -s/u cmdhist
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.