Нет никакой проблемы с помощью нескольких вызовов 'sudo' в сценариях.
Я нахожу его лучше, чем запущение целых скриптов как корень, поскольку риски ограничены путем ограничения расширения полномочий командами, для которых действительно нужны они.
я предпочел бы сохранять псевдоним ко всем частым ошибкам, которые происходят пример
alias ls-lh = ls -lh
Используйте псевдоним для фиксации недостающих опечаток пространства:
alias cd..='cd ..
Используйте HISTIGNORE для определения всех команд, которые Вы хотите проигнорировать из истории. использовать export HISTIGNORE="$LIST"
для списка этого, Вы хотите проигнорировать внутреннюю историю
Существует несколько других опций интереса, которым управляет встроенная команда 'shopt'.
посмотрите здесь
Я не знаю ни о каком способе настроить историю вне некоторых HIST…
переменные. Можно хотеть переключиться на zsh, который немного более умен (но только немного). В zsh можно включить автоисправление команды (setopt correct
), который предложит исправление для некоторых опечаток на основе доступных названий команды (например, в моей системе оно предлагает исправлять sl
кому: ls
, но ничего не делает о ls-lh
). Дубликат Zsh более умен в этом, он обнаруживает непоследовательные дубликаты (под setopt hist_ignore_all_dups
). Zsh не делает, любая пробельная нормализация в истории, но система завершения немного более умна, чем удар при хранении количества пробела, последовательного, вводите ли Вы полное имя или поражаете Вкладку, которая помогает.
Из этого блога, этот скрипт может удалить автоматически все команды, которые не найдены bash.
Если у вас ещё нет bash PROMPT_COMMAND
, добавьте это в .bashrc
:
PROMPT_COMMAND="mypromptcommand"
function mypromptcommand {
}
Эта функция теперь будет выполняться каждый раз, когда ваша подсказка появится. В ней мы поместили следующее:
local exit_status=$?
# If the exit status was 127, the command was not found. Let's remove it from history
local number=$(history | tail -n 1 | awk '{print $1}')
if [ -n "$number" ]; then
if [ $exit_status -eq 127 ] && ([ -z $HISTLASTENTRY ] || [ $HISTLASTENTRY -lt $number ]); then
history -d $number
else
HISTLASTENTRY=$number
fi
fi
Ссылка предоставляет объяснение того, как она работает
.
export HISTCONTROL="ignoredups"
предотвратить дубликаты команд. – 03.01.2012, 01:49