Когда bash встречает неизвестную команду (слово?), она делает это:
The program 'hello' can be found in the following packages:
* hello
* hello-debhelper
Try: sudo apt-get install <selected package>
то, что я хотел бы знать, - это то, как это делается, поэтому я могу отредактировать его или добавить что-то перед этим, чтобы пересечь проверьте неизвестное слово из словаря, выращенного в домашних условиях, который будет иметь фразу: пары ответов, которые затем могут быть отправлены на вывод.
Я виноват в том, что вы не достаточно выглядите для этого ... но несколько руководств bash, которые я пробовал выкапывание не имело ничего на этом. Может быть, я смотрю на неправильные места .. любые указатели?
И да, я делаю это каждый раз, когда я печатаю wtf, когда программа терпит неудачу, я хочу, чтобы что-то хорошее отбросило назад ...
Посмотрите на /etc/bash.bashrc для определения функции command_not_found_handle.
Если вы хотите удалить это поведение, поместите это в свой .bashrc
[[ $(type -t command_not_found_handle) = "function" ]] &&
unset -f command_not_found_handle
Если вы хотите настроить, вы можете сделать
# see http://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function
alias_function() {
eval "${1}() $(declare -f ${2} | sed 1d)"
}
alias_function orig_command_not_found_handle command_not_found_handle
command_not_found_handle() {
command=$1
shift
args=( "$@" )
do your stuff before
orig_command_not_found_handle "$command" "${args[@]}"
do your stuff after
}
Посмотрите на /etc/bash.bashrc
для определения функции command_not_found_handle
.
Если вы хотите удалить это поведение, поместите это в свой .bashrc
[[ $(type -t command_not_found_handle) = "function" ]] &&
unset -f command_not_found_handle
Если вы хотите настроить, вы можете сделать
# see http://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function
alias_function() {
eval "${1}() $(declare -f ${2} | sed 1d)"
}
alias_function orig_command_not_found_handle command_not_found_handle
command_not_found_handle() {
command=$1
shift
args=( "$@" )
do your stuff before
orig_command_not_found_handle "$command" "${args[@]}"
do your stuff after
}
Посмотрите на /etc/bash.bashrc
для определения функции command_not_found_handle
.
Если вы хотите удалить это поведение, поместите это в свой .bashrc
[[ $(type -t command_not_found_handle) = "function" ]] &&
unset -f command_not_found_handle
Если вы хотите настроить, вы можете сделать
# see http://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function
alias_function() {
eval "${1}() $(declare -f ${2} | sed 1d)"
}
alias_function orig_command_not_found_handle command_not_found_handle
command_not_found_handle() {
command=$1
shift
args=( "$@" )
do your stuff before
orig_command_not_found_handle "$command" "${args[@]}"
do your stuff after
}
Посмотрите на /etc/bash.bashrc
для определения функции command_not_found_handle
.
Если вы хотите удалить это поведение, поместите это в свой .bashrc
[[ $(type -t command_not_found_handle) = "function" ]] &&
unset -f command_not_found_handle
Если вы хотите настроить, вы можете сделать
# see http://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function
alias_function() {
eval "${1}() $(declare -f ${2} | sed 1d)"
}
alias_function orig_command_not_found_handle command_not_found_handle
command_not_found_handle() {
command=$1
shift
args=( "$@" )
do your stuff before
orig_command_not_found_handle "$command" "${args[@]}"
do your stuff after
}
Посмотрите на /etc/bash.bashrc
для определения функции command_not_found_handle
.
Если вы хотите удалить это поведение, поместите это в свой .bashrc
[[ $(type -t command_not_found_handle) = "function" ]] &&
unset -f command_not_found_handle
Если вы хотите настроить, вы можете сделать
# see http://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function
alias_function() {
eval "${1}() $(declare -f ${2} | sed 1d)"
}
alias_function orig_command_not_found_handle command_not_found_handle
command_not_found_handle() {
command=$1
shift
args=( "$@" )
do your stuff before
orig_command_not_found_handle "$command" "${args[@]}"
do your stuff after
}
Посмотрите на /etc/bash.bashrc
для определения функции command_not_found_handle
.
Если вы хотите удалить это поведение, поместите это в свой .bashrc
[[ $(type -t command_not_found_handle) = "function" ]] &&
unset -f command_not_found_handle
Если вы хотите настроить, вы можете сделать
# see http://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function
alias_function() {
eval "${1}() $(declare -f ${2} | sed 1d)"
}
alias_function orig_command_not_found_handle command_not_found_handle
command_not_found_handle() {
command=$1
shift
args=( "$@" )
do your stuff before
orig_command_not_found_handle "$command" "${args[@]}"
do your stuff after
}
Это может быть потенциально полезно ...
Не найденный пакет - это то, что дает вам магический ответ. Я не уверен, можно ли его настроить, но это может стоить взгляда.
Еще один способ сделать то, что я думаю, что вы пытаетесь сделать, это добавить к вам псевдоним. bashrc, который печатает сообщение всякий раз, когда вы вводите «wtf» или что-то в этом роде:
alias wtf='echo "chill out man"'
Добавьте это в свой файл ~ / .bashrc, а затем выполните: source $HOME/.bashrc
[d5 ] Затем это будет просто печатать сообщение всякий раз, когда вы вводите wtf в свой терминал. Вы также можете сделать этот псевдоним вызовом сценария, который печатает более подробное сообщение или что-то подобное. Возможности бесконечны!Это поведение определено в системном файле конфигурации Bash, /etc/bash.bashrc:
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found ]; then
/usr/bin/python /usr/share/command-not-found -- "$1"
return $?
else
return 127
fi
}
fi
Чтобы настроить его, просто переопределите эту функцию в своем ~/.bashrc:
[ f2]@ user606723, если вы хотите полностью избавиться от этого поведения:
sudo apt-get remove command-not-found command-not-found-data
Если это не работает, попробуйте следующее:
sudo apt-get purge command-not-found command-not-found-data
If вы хотите вернуть поведение:
sudo apt-get install command-not-found
@ user606723, если вы хотите полностью избавиться от этого поведения:
sudo apt-get remove command-not-found command-not-found-data
Если это не работает, попробуйте следующее:
sudo apt-get purge command-not-found command-not-found-data
Если вы хотите вернуть поведение:
sudo apt-get install command-not-found
Это поведение определено в системном файле конфигурации Bash, /etc/bash.bashrc
:
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found ]; then
/usr/bin/python /usr/share/command-not-found -- "$1"
return $?
else
return 127
fi
}
fi
Чтобы настроить его, просто переопределите эту функцию в своем собственном ~/.bashrc
:
function command_not_found_handle {
echo "Sorry, smotchkiss, try again."
}
Это поведение определено в системном файле конфигурации Bash, /etc/bash.bashrc
:
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found ]; then
/usr/bin/python /usr/share/command-not-found -- "$1"
return $?
else
return 127
fi
}
fi
Чтобы настроить его, просто переопределите эту функцию в своем собственном ~/.bashrc
:
function command_not_found_handle {
echo "Sorry, smotchkiss, try again."
}
@ user606723, если вы хотите полностью избавиться от этого поведения:
sudo apt-get remove command-not-found command-not-found-data
Если это не работает, попробуйте следующее:
sudo apt-get purge command-not-found command-not-found-data
Если вы хотите вернуть поведение:
sudo apt-get install command-not-found
Это поведение определено в системном файле конфигурации Bash, /etc/bash.bashrc
:
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/bin/python /usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found ]; then
/usr/bin/python /usr/share/command-not-found -- "$1"
return $?
else
return 127
fi
}
fi
Чтобы настроить его, просто переопределите эту функцию в своем собственном ~/.bashrc
:
function command_not_found_handle {
echo "Sorry, smotchkiss, try again."
}
@ user606723, если вы хотите полностью избавиться от этого поведения:
sudo apt-get remove command-not-found command-not-found-data
Если это не работает, попробуйте следующее:
sudo apt-get purge command-not-found command-not-found-data
Если вы хотите вернуть поведение:
sudo apt-get install command-not-found
@ user606723, если вы хотите полностью избавиться от этого поведения:
sudo apt-get remove command-not-found command-not-found-data
Если это не работает, попробуйте следующее:
sudo apt-get purge command-not-found command-not-found-data
Если вы хотите вернуть поведение:
sudo apt-get install command-not-found
Это может быть потенциально полезным ...
Не найденный пакет - это то, что дает вам магический ответ. Я не уверен, можно ли его настроить, но это может быть полезно.
Еще одна возможность сделать то, что я думаю, что вы пытаетесь сделать, это добавить к вам псевдоним. bashrc, который печатает сообщение всякий раз, когда вы вводите «wtf» или что-то в этом роде:
alias wtf='echo "chill out man"'
Добавьте это в свой файл ~ / .bashrc, а затем выполните: source $HOME/.bashrc
Затем это будет просто печатать сообщение всякий раз, когда вы вводите wtf
в свой терминал. Вы также можете сделать этот псевдоним вызовом сценария, который печатает более подробное сообщение или что-то подобное. Возможности бесконечны!