What can your Linux system tell you about the Linux kernel it's using? Let's do a little probing and see. Credit: James Emery How much can your Linux system tell you about the kernel it’s running and what commands are available to help you ask? Let’s run through some of them. uname The simplest and most straight-forward command for providing information on your kernel is the uname -r command. It provides a succinct answer to your question but in a format that also includes a number of fields each which provides a particular piece of information. $ uname -r 4.15.0-30-generic ^ ^ ^ ^ ^ | | | | | | | | | | | | | | +-- the distribution-specific string | | | +------- the latest bug fix | | +---------- the minor revision | +------------ the major revision +--------------- the kernel version Add an “s” and your output will include the kernel’s name: $ uname -sr Linux 4.15.0-30-generic In the first display above, you can see that each field has been annotated. If you use, the uname -a command instead, you will get quite a bit more information. In the display below, each of the fields is explained. Notice that the third field shows the same information we see above. The output is wrapped around below to make it easy to label the fields. OK, so the kernel in this case is “4.15.0-30-generic,” and each portion of the name provides some detail on the kernel’s identity. To add the the kernel’s name, add the “s” swtich: $ uname -a Linux butterfly 4.15.0-30-generic #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 ----- --------- ----------------- ------------------------------------------- | | | | | | +- kernel version +---- compilation stats | +-- hostname +-- kernel name x86_64 x86_64 x86_64 GNU/Linux | | | | | | | +-- operating system | | +---------- OS architecture | +----------------- processor architecture +------------------------ machine architecture The compilation stats shown on the right in the top line of the output above also tells you some interesting things. #32-Ubuntu SMP –- the number of times this version of the kernel was compiled Thu Jul 26 17:42:43 UTC 2018 –- the last time the kernel was compiled (timestamp) x86_64 –- the machine architecture x86_64 –- the processor architecture x86_64 –- the OS architecture GNU/Linux –- the operating system (distribution name not included) /proc/version In the following command, we see the Linux distribution name along with the kernel name. We also see some of the other information that the uname command provided. $ cat /proc/version Linux version 4.15.0-30-generic (buildd@lgw01-amd64-060) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 rpm On some systems, you can use the rpm command as shown below to provide information on your kernel. $ rpm -q kernel kernel-2.6.32-696.30.1.el6.x86_64 kernel-2.6.32-754.el6.x86_64 kernel-2.6.32-754.2.1.el6.x86_64 dmesg You can also extract kernel information from your dmesg output: $ dmesg | grep Linux [ 0.000000] Linux version 4.15.0-30-generic (buildd@lgw01-amd64-060) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #32-Ubuntu SMP Thu Jul 26 17:42:43 UTC 2018 (Ubuntu 4.15.0-30.32-generic 4.15.18) [ 0.052298] ACPI: Added _OSI(Linux-Dell-Video) [ 0.885913] Linux agpgart interface v0.103 [ 0.908086] usb usb1: Manufacturer: Linux 4.15.0-30-generic ehci_hcd [ 0.928062] usb usb2: Manufacturer: Linux 4.15.0-30-generic ehci_hcd [ 0.928516] usb usb3: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.928838] usb usb4: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.929146] usb usb5: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.929450] usb usb6: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.929758] usb usb7: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 0.930065] usb usb8: Manufacturer: Linux 4.15.0-30-generic uhci_hcd [ 1.873372] pps_core: LinuxPPS API ver. 1 registered dpkg The dpkg command can also be used to identify the kernel version. Notice that in the output shown below, we see both the current and prior kernel versions. $ sudo dpkg -l | grep linux-headers | grep ii | awk '{print $3}' | tail -1 4.15.0.30.32 $ sudo dpkg -l | grep linux-headers | grep ii | awk '{print $3}' 4.15.0-24.26 4.15.0-24.26 4.15.0-29.31 4.15.0-29.31 4.15.0-30.32 4.15.0-30.32 4.15.0.30.32 Wrap-up There are many commands on Linux to help you get information on the kernel that your system is using. I hope this post adds some insight into what all those numbers and designations represent. Related content how-to How to find files on Linux There are many options you can use to find files on Linux, including searching by file name (or partial name), age, owner, group, size, type and inode number. By Sandra Henry Stocker Jun 24, 2024 8 mins Linux opinion Linux in your car: Red Hat’s milestone collaboration with exida With contributions from Red Hat and critical collaborators, the safety and security of automotive vehicles has reached a new level of reliability. By Sandra Henry Stocker Jun 17, 2024 5 mins Linux how-to How to print from the Linux command line: double-sided, landscape and more There's a lot more to printing from the Linux command line than the lp command. Check out some of the many available options. By Sandra Henry Stocker Jun 11, 2024 6 mins Linux how-to Converting between uppercase and lowercase on the Linux command line Converting text between uppercase and lowercase can be very tedious, especially when you want to avoid inadvertent misspellings. Fortunately, Linux provides a handful of commands that can make the job very easy. By Sandra Henry Stocker Jun 07, 2024 5 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe