Поскольку UNR был прекращен с Ubuntu 11.04 (вместо этого есть только «настольная версия»), я предполагаю, что вы говорите об интерфейсе Unity по умолчанию - если, конечно, вы не используете Ubuntu 10.10 или 10.04.
Во всяком случае, нет никаких оснований придерживаться Unity для экономии энергии, Unity зависит от аппаратного ускоренного Compiz, который, как правило, достаточно голоден.
Если срок службы батареи является для вас большой проблемой, вы даже должны подумать об использовании более старая версия, чем 11.04 из-за регрессии мощности в последних версиях ядра Linux.
Если вы захотите потерять неиспользуемые по умолчанию функции (которые просматривают пакеты, предоставляющие команду и т. д.), затем определите функцию command_not_found_handle, которая проверяет, доступна ли версия .exe в PATH:
command_not_found_handle ()
{
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
return 127;
fi
}
Например, тестирование с помощью sh вместо .exe:
$ z
z: command not found
$ command_not_found_handle () { if command -v "$1"sh; then "$1"sh "${@:2}"; return $?; else return 127; fi; }
$ z -c 'echo "$@"' _ b c
/usr/bin/zsh
b c
$ ba -c 'echo "$@"' _ b c
/bin/bash
b c
Конечно, это зависит от того, как WSL подключается к bash для обеспечения доступа к командам Windows (если WSL использует command_not_found_handle, то это не сработает).
Исходный, по умолчанию, определение command_not_found_handle находится в /etc/bash.bashrc:
$ tail -15 /etc/bash.bashrc
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/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/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
Вы можете просто включите этот код в redifinition:
command_not_found_handle ()
{
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
fi
}
Или используйте этот трюк, чтобы автоматически вставить старое определение:
eval "original_$(declare -f command_not_found_handle)"
command_not_found_handle () {
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
original_command_not_found_handle "$@"
fi
}
Если вы захотите потерять неиспользуемые по умолчанию функции (которые просматривают пакеты, предоставляющие команду и т. д.), затем определите функцию command_not_found_handle, которая проверяет, доступна ли версия .exe в PATH:
command_not_found_handle ()
{
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
return 127;
fi
}
Например, тестирование с помощью sh вместо .exe:
$ z
z: command not found
$ command_not_found_handle () { if command -v "$1"sh; then "$1"sh "${@:2}"; return $?; else return 127; fi; }
$ z -c 'echo "$@"' _ b c
/usr/bin/zsh
b c
$ ba -c 'echo "$@"' _ b c
/bin/bash
b c
Конечно, это зависит от того, как WSL подключается к bash для обеспечения доступа к командам Windows (если WSL использует command_not_found_handle, то это не сработает).
Исходный, по умолчанию, определение command_not_found_handle находится в /etc/bash.bashrc:
$ tail -15 /etc/bash.bashrc
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/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/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
Вы можете просто включите этот код в redifinition:
command_not_found_handle ()
{
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
fi
}
Или используйте этот трюк, чтобы автоматически вставить старое определение:
eval "original_$(declare -f command_not_found_handle)"
command_not_found_handle () {
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
original_command_not_found_handle "$@"
fi
}
Если вы захотите потерять неиспользуемые по умолчанию функции (которые просматривают пакеты, предоставляющие команду и т. д.), затем определите функцию command_not_found_handle, которая проверяет, доступна ли версия .exe в PATH:
command_not_found_handle ()
{
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
return 127;
fi
}
Например, тестирование с помощью sh вместо .exe:
$ z
z: command not found
$ command_not_found_handle () { if command -v "$1"sh; then "$1"sh "${@:2}"; return $?; else return 127; fi; }
$ z -c 'echo "$@"' _ b c
/usr/bin/zsh
b c
$ ba -c 'echo "$@"' _ b c
/bin/bash
b c
Конечно, это зависит от того, как WSL подключается к bash для обеспечения доступа к командам Windows (если WSL использует command_not_found_handle, то это не сработает).
Исходный, по умолчанию, определение command_not_found_handle находится в /etc/bash.bashrc:
$ tail -15 /etc/bash.bashrc
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/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/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
Вы можете просто включите этот код в redifinition:
command_not_found_handle ()
{
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
fi
}
Или используйте этот трюк, чтобы автоматически вставить старое определение:
eval "original_$(declare -f command_not_found_handle)"
command_not_found_handle () {
if command -v "$1".exe; then
"$1".exe "${@:2}";
return $?;
else
original_command_not_found_handle "$@"
fi
}