GRUB: boot specific kernel on debian / ubuntu / rhel / centos / oracle linux

Debian-based distributions:
1. List installed kernels in grub:

root@deb8-template:~# awk '/menuentry/ && /class/ {count++; print count-1"****"$0 }' /boot/grub/grub.cfg
0****menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-75b66937-9cfb-4606-9e0b-b27aa66e7286' {
1****	menuentry 'Debian GNU/Linux, with Linux 4.15.0-1007-aws' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-1007-aws-advanced-75b66937-9cfb-4606-9e0b-b27aa66e7286' {
2****	menuentry 'Debian GNU/Linux, with Linux 4.15.0-1007-aws (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.15.0-1007-aws-recovery-75b66937-9cfb-4606-9e0b-b27aa66e7286' {
3****	menuentry 'Debian GNU/Linux, with Linux 3.16.0-4-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-amd64-advanced-75b66937-9cfb-4606-9e0b-b27aa66e7286' {
4****	menuentry 'Debian GNU/Linux, with Linux 3.16.0-4-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-3.16.0-4-amd64-recovery-75b66937-9cfb-4606-9e0b-b27aa66e7286' {

…and make grub boot kernel by number, in this example kernel ‘Debian GNU/Linux, with Linux 4.15.0-1007-aws’:

root@deb8-template:~# grub-set-default 1

RHEL-based distributions:

1. List kernels:

root@ol7-template.test:~# awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg 
0 : Oracle Linux Server (4.14.35-1844.5.3.el7uek.x86_64 with Unbreakable Enterprise Kernel) 7.6
1 : Oracle Linux Server (3.10.0-957.el7.x86_64 with Linux) 7.6
2 : Oracle Linux Server (0-rescue-b1a45709c59a44dda124eb5162f11bbc with Linux) 7.6

2. Set default kernel in GRUB:
Lets boot kernel ‘4.14.35-1844.5.3.el7uek.x86_64’, it has number 0:

root@ol7-template.test:~# grub2-set-default 0

… and then reboot.