Find Linux / UNIX Kernel Version Command

Posted on in Categories , , last updated December 29, 2013

How do I find out what kernel version I am currently running under Debian Linux or any other Linux distribution using a shell prompt? How do I find out Unix kernel version?

You need to use the uname command which print certain system information such as:

  1. Kernel version and name.
  2. Print the machine hardware name.
  3. print the processor type.
  4. print the operating system and more.

uname command to display the Linux or Unix kernel version

This command works under all Linux distributions and other UNIX-like operating systems such as FreeBSD, OpenBSD, Solaris, HP UX, OS X and friends. Type the following command to see running kernel version:
$ uname -r
Output taken from Linux based system:

2.6.22-14-generic

Where,

  • 2 : Kernel version
  • 6 : The major revision of the kernel
  • 22 : The minor revision of the kernel
  • 14 : Immediate fixing / bug fixing for critical error
  • generic : Distribution specific sting. For example, Redhat appends string such as EL5 to indicate RHEL 5 kernel.

Another common usage is as follows:
$ uname -mrsn
Output taken from Linux:

Linux moon.nixcraft.in 2.6.18-53.1.4.el5 x86_64

Outputs from my OS X Unix desktop

$ uname -a  
Darwin desktop01 13.0.0 Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64 x86_64

Outputs from OpenBSD Unix server

$ uname -mrs
OpenBSD 5.4 amd64

How to find the kernel version with /proc/version file (Linux only command)

You can also obtain kernel version from /proc/version file by using cat command as follows:
$ less /proc/version
$ more /proc/version
$ cat /proc/version

Sample outputs:

Linux version 2.6.18-53.1.4.el5 ([email protected]) (gcc version 4.1.2 20070626 (Red Hat 4.1.2-14)) #1 SMP Wed Nov 14 10:37:27 EST 2007

Related media

See how to use uname and other commands to find the kernel version on Linux or Unix-like oses:



Video 01: Find The Linux/Unix Kernel Version Command Tutorial

Package management tools (Linux only command)

You can list all installed kernel and its version with the following command under RHEL / CentOS / Suse / Fedora Linux :
$ rpm -q kernel
Output:

kernel-2.6.18-53.el5
kernel-2.6.18-53.1.4.el5

If you are using Debian / Ubuntu, try:
$ dpkg --list | grep linux-image
Output:

ii  linux-image                            2.6.22.14.21                         Generic Linux kernel image.
rc  linux-image-2.6.20-15-generic          2.6.20-15.27                         Linux kernel image for version 2.6.20 on x86/
ii  linux-image-2.6.20-16-generic          2.6.20-16.32                         Linux kernel image for version 2.6.20 on x86/
ii  linux-image-2.6.22-14-generic          2.6.22-14.47                         Linux kernel image for version 2.6.22 on x86/
ii  linux-image-generic                    2.6.22.14.21                         Generic Linux kernel image

29 comment

  1. In Solaris uname -r will give you the solaris release level.
    some other usefull options with uname are

    uname -s [Operating system]
    SunOS

    uname -r [Release version]
    5.8

    uname -v
    Generic_117350-27[OS version]

    uname -a
    SunOS hostname 5.8 Generic_117350-27 sun4u sparc

    the last two words describes h/w name and processor respctl[equivalent to -m and -p),

  2. I log on to different RedHat based servers, Can you please update on how to differentiate between Centos, RedHat, Oracle Linux (i.e. RedHat based distributions) sitting remotely.

    # uname -a (doesn’t help)
    # cat /etc/redhat-relaese (its changed to RedHat as some softwares don’t get installed otherwise.

    Thanks
    Mohit

  3. Newbie here….kind of got thrown in Linux admin for Centos at work due to staff reduction. Confused about something (well lots of things, but can’t seem to find the answer to this particular question).

    [[email protected] ~]# rpm -qa kernel
    kernel-2.6.9-89.0.15.EL
    kernel-2.6.9-89.0.19.EL
    kernel-2.6.9-89.0.28.EL
    kernel-2.6.9-89.0.29.EL
    kernel-2.6.9-78.0.22.EL
    kernel-2.6.9-89.0.11.EL
    kernel-2.6.9-89.0.16.EL
    kernel-2.6.9-89.0.23.EL
    kernel-2.6.9-89.0.25.EL
    kernel-2.6.9-89.29.1.EL
    kernel-2.6.9-78.0.5.EL
    kernel-2.6.9-78.0.8.EL
    kernel-2.6.9-78.0.13.EL
    kernel-2.6.9-89.0.18.EL

    [[email protected] ~]# uname -a
    Linux xxx 2.6.9-78.0.22.EL #1 Thu Apr 30 19:03:25 EDT 2009 i686 athlon i386 GNU/Linux

    Why does rpm -qa show kernel-2.6.9-89.0.xxxxx installed but uname -a shows 2.6.9-78.00.22.EL?

    I know this probably really stupid question – sorry :(

    TIA.

    1. Life is so easy huh? :)

      Send me all the words in the english language and their uses ( I dont claim that this line is original ;) )

  4. Utility uname don’t have any info about OS version, only OS platform!!! uname -p gives
    GNU/Linux… No info there are in environment variables. But I need the info like that
    openSUSE 12.1 (x86_64)… How to solve this problem? I don’t want to set some environment variable manually…

  5. I have installed “Linux mint” I want to know the complete info of my Linux version installed like Linux version kernel version

    1. xcuse me bro..
      i wanna install fedora on VMWARE for running shell and c programming but my vmware is not listing out fedora OS .. what i should do …
      It listing out “Linux Kernel 2.6.10” Is it similar to fedora ? Can i run shell scripts and c programz ???

  6. dpkg –list | grep linux-image
    ii linux-image-2.6.38-11-generic 2.6.38-11.50 Linux kernel image for version 2.6.38 on x86/x86_64
    rc linux-image-2.6.38-8-generic 2.6.38-8.42 Linux kernel image for version 2.6.38 on x86/x86_64
    ii linux-image-3.0.0-12-generic 3.0.0-12.20 Linux kernel image for version 3.0.0 on x86/x86_64
    ii linux-image-3.0.0-16-generic 3.0.0-16.29 Linux kernel image for version 3.0.0 on x86/x86_64
    ii linux-image-3.0.0-17-generic 3.0.0-17.30 Linux kernel image for version 3.0.0 on x86/x86_64
    ii linux-image-generic 3.0.0.17.20 Generic Linux kernel image

    what does it mean 32 or 64 bit ?

    when give uname -a o/p is
    Linux xxxxx 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 2 17:34:21 UTC 2012 i686 i686 i386 GNU/Linux

    when i do file on some executable it tells it 32 bit.
    ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, stripped

Leave a Comment