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 examine files on Linux Linux provides very useful options for viewing file attributes, such as owners and permissions, as well as file content. By Sandra Henry Stocker Oct 24, 2024 6 mins Linux how-to 8 easy ways to reuse commands on Linux Typing the same command again and again can become tiresome. Here are a number of ways you can make repeating commands – or repeating commands but with some changes – a lot easier than you might expect. By Sandra Henry-Stocker Oct 15, 2024 5 mins Linux news SUSE Edge upgrade targets Kubernetes and Linux at the edge SUSE Edge 3.1 includes a new stack validation framework and an image builder tool that are aimed at improving the scalability and manageability of complex Kubernetes and Linux edge-computing deployments. By Sean Michael Kerner Oct 15, 2024 6 mins Edge Computing Linux Network Management Software how-to Lesser-known xargs command is a versatile time saver Boost your Linux command line options and simplify your work with xargs, a handy tool for a number of data manipulation tasks. By Sandra Henry Stocker Oct 11, 2024 6 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe