Eu uso essa linha de comando , que é apenas uma análise de /boot/grub/grub.cfg
, para mostrar entradas numeradas , uma por linha:
sed ':again;$!N;$!b again; :b; s/{[^{}]*}//g; t b' /boot/grub/grub.cfg | cut -c -60 | grep -e "^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color
que resulta (não é o mesmo exemplo do gráfico anterior, desculpe):
Meumétodopreferidoéadicioná-locomoumaliasoufunção.Porexemplo,comoumafunçãoem~/bashrc
:
#Listentriesnumbersforgrub-reboot:functionGRUB-ListMenu(){sed':again;$!N;$!bagain;:b;s/{[^{}]*}//g;tb'/boot/grub/grub.cfg|cut-c-60|grep-e"^menuentry" -e "submenu" | nl -v 0 | grep -e "menuentry" -e "submenu" --color
}
Explicação :
- O comando
sed
remove todas as linhas entre chaves ({
e}
), pois elas correspondem aos submenus suspensos . - O comando
cut
deixa apenas os primeiros 60 caracteres, para tornar os resultados mais legíveis para o usuário. - O comando
grep
deixa apenas as linhas correspondentes a entradas do menu real :menuentry
esubmenu
. - O comando
nl
numera cada linha (a partir de 0, é claro). - Existe um comando adicional
grep
, não estritamente necessário, que simplesmente adiciona cores aos resultados ;-).
Conselhos sobre otimizações são bem-vindos.
Testado trabalhando no GRUB v2.02 ~ beta2-9ubuntu1 rodando em Ubuntu Desktop, Servidor, v12, v14, Kali e BackTrack. Feedbacks sobre o comportamento em outro Linux são encorajados (vou adicioná-los a este post).