Puede recorrer el menú de finalización en Bash y también puede mostrar el menú de elementos. A diferencia de Zsh, el elemento de menú actual no se resaltará.
Añadir a~/.inputrc
:
set show-all-if-ambiguous on
set show-all-if-unmodified on
set menu-complete-display-prefix on
"\t": menu-complete
"\e[Z": menu-complete-backward
Documentación deman bash
:
Readline Variables
menu-complete-display-prefix (Off)
If set to On, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling
through the list.
show-all-if-ambiguous (Off)
This alters the default behavior of the completion functions. If
set to On, words which have more than one possible completion
cause the matches to be listed immediately instead of ringing
the bell.
show-all-if-unmodified (Off)
This alters the default behavior of the completion functions in
a fashion similar to show-all-if-ambiguous. If set to On, words
which have more than one possible completion without any
possible partial completion (the possible completions don't
share a common prefix) cause the matches to be listed
immediately instead of ringing the bell.
Completing
menu-complete
Similar to complete, but replaces the word to be completed with
a single match from the list of possible completions. Repeated
execution of menu-complete steps through the list of possible
completions, inserting each match in turn. At the end of the list
of completions, the bell is rung (subject to the setting of
bell-style) and the original text is restored. An argument of
n moves n positions forward in the list of matches; a negative
argument may be used to move backward through the list. This
command is intended to be bound to TAB, but is unbound by
default.
menu-complete-backward
Identical to menu-complete, but moves backward through the list
of possible completions, as if menu-complete had been given
a negative argument. This command is unbound by default.
Вам не нужно отказываться от DHCP. Вы можете указать сценариям запуска отключить маршрут по умолчанию, даже если он получен в ответе от DHCP-сервера. Это позволяет сохранить действующую активную аренду на DHCP-сервере и получить другую полезную информацию, предоставляемую DHCP, а также позволяет установить шлюз по умолчанию в другом месте.
Просто измените параметр DEFROUTE
на:
DEFROUTE=no
в /etc/sysconfig/network-scripts/ifcfg-em1
и перезапустите сеть (или простоifdown em1; ifup em1
).
Найдено путем изучения /etc/sysconfig/network-scripts/ifup-eth
, а затем в Redhat (, хотя упоминается только его использование в NetworkManager, он работает с ним и без него):
4.6. Настройка шлюза по умолчанию
In dynamic network environments, where mobile hosts are managed by NetworkManager, gateway information is likely to be interface specific and is best left to be assigned by DHCP. In special cases where it is necessary to influence NetworkManager's selection of the exit interface to be used to reach a gateway, make use of the DEFROUTE=no command in the ifcfg files for those interfaces which do not lead to the default gateway.
Обратите внимание, что в CentOS, если параметр NM_CONTROLLED=no
не задан, а установлен NetworkManager, что, вероятно, является вашим случаем с дополнительными параметрами, NetworkManager будет (обычно хорошо )взаимодействовать со сценариями sysconfig и создаст эквивалентная настройка из того же файла. Затем рекомендуется выполнить nmcli c reload
после прямого изменения файла.
Аналогичное изменение также может быть достигнуто со стороны NetworkManager, как только вы определите имя id или uuid, используемое для интерфейса (, выбрав здесь, чтобы он назывался System em1
NetworkManager ).
nmcli c modify id 'System em1' ipv4.never-default yes
, который автоматически поместит DEFROUTE=no
в /etc/sysconfig/network-scripts/ifcfg-em1
. Циклический переход вниз/вверх по интерфейсу по-прежнему требуется.
Возможно, вам также придется рассмотреть возможность отключения DNS-серверов DHCP и замены его «статическими» параметрами DNS, хотя нет хорошего решения, предоставляемого сетевыми сценариями, если вам нужно одновременное внутреннее и внешнее разрешение DNS (тогда вам, вероятно, потребуется собственный локальный DNS-сервер или подобное решение ), так что подумайте, поможет это или нет:
PEERDNS=no
Этот параметр работает нормально только под контролем NetworkManager, в тестах, которые я провел, по-видимому, без него он не работал.потому что DNS был установлен непосредственно в /etc/resolv.conf
dhclient
, а не был сначала «интегрирован» NM. Если это действительно ваш случай (нет NetworkManager и он не нужен ), то другой доступный ответ может подойти лучше.
Кроме того, есть эквивалентный NetworkManager ipv4.ignore-auto-dns
(, а также ipv6.ignore-auto-dns
соответствующее свойство IPV6_PEERDNS=
).
В вашей конфигурации все еще есть DHCP.
Ваш /etc/sysconfig/network-scripts/ifcfg-em1
скрипт должен выглядеть так:
DEVICE=em1
BOOTPROTO=static
DHCPCLASS=
IPADDR=192.168.0.240
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
NETWORK=192.168.0.0
ONBOOT=yes
Ваш /etc/sysconfig/network-scripts/ifcfg-em2
должен быть похож:
DEVICE=em2
BOOTPROTO=static
DHCPCLASS=
IPADDR=179.94.94.83
NETMASK=255.255.255.248
BROADCAST=179.94.94.87
NETWORK=179.94.94.80
ONBOOT=yes
Дополнительно добавьте следующую строку в /etc/sysconfig/network
или отредактируйте существующую строку GATEWAY:
GATEWAY=179.94.94.81