This tutorial describes how to find out whether your Linux system’s OS is 32-bit or 64-bit. This will be helpful if you wanted to download or install an application in your Linux system. As we all know, we can’t install 64-bit applications into a 32-bit OS type. That’s why knowing your Linux system’s OS type is important.
Here are the five easy and simple methods to verify your Linux system’s OS type. It doesn’t matter whether you’re using a GUI or CLI type systems, the following commands will work on almost all Linux operating systems such as RHEL, CentOS, Fedora, Scientific Linux, Debian, Ubuntu, Linux Mint, openSUSE etc.
1. uname Command
uname -a command will display your Linux system’s OS type. This is the universal command and it will work on almost all Linux/Unix operating systems.
To find out the system’s OS type, run:
$ uname -a Linux tecmint.com 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
2. dpkg Command
dpkg command will also display whether your Debian/Ubuntu operating system is 32-bit or 64-bit. This command will work only on Debian and Ubuntu based distributions and it’s derivatives.
Open your Terminal, and run:
$ dpkg --print-architecture
If your OS is 64-bit, you’ll get the following output:
amd64
If your OS is 32-bit, then the output will be:
i386
3. getconf Command
getconf command will also display the system configuration variables. Now, let me show you how to find out the Linux system arch using getconf command.
$ getconf LONG_BIT 64
For more details refer the man pages.
$ man getconf
4. arch Command
arch command will display your OS type. This command is similar to uname -m command. If its output is x86_64 then it’s 64-bit OS. If the output is i686 or i386, then it’s 32-bit OS.
$ arch x86_64
5. file Command
file command with with a special argument /sbin/init will display the OS type.
$ file /sbin/init /sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=7a4c688d009fc1f06ffc692f5f42ab09e68582b2, stripped
Conclusion
You now know the ways to find out your Linux operating system’s type. Of course, there are few other ways to find out the OS type, but these are the often and pragmatic methods so far. If you know any other commands or methods to display the OS type, feel free to let us know in the comments section below.
Very helpful. I was trying to confirm whether I was running the 32-bit or 64-bit OS’s on Raspberry Pi. With
"uname -a"
, I kept seeing aarch64 when I had installed 32-bit.After finding this article, I learned that some commands revealed “armhf” or “32” which was what I was expecting.
So, you might be running 32-bit OS on 64-bit architecture and get confusing results without a deep dive.
I’d just like to interject for a moment. What you’re referring to as Linux, is in fact, GNU/Linux, or as I’ve recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine’s resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.
Great post!
You can also check using a environment variable:
echo $HOSTTYPE
Result:
i386 -> 32 bits
x86_64 -> 64 bits
You can also use:
echo $HOSTTYPE
@Xinchuangfu,
Thanks for the tip, yes that command worked on my Ubuntu, here is the output.
Thanks mate. I don’t know this command before. Much appreciated.
Anyway your post is apt and of high value. Thanks for your posts, do keep them coming.
I know few of them.
lscpu
lshw -class cpu
You can also use:
uname -m
Yes. Thanks for the suggestion.
These methods are fine but they cannot conclusively lead you to show whether your CPU can do 64 bit computing. You have to ascertain whether you have a processor that can do 64 bit before you want to do the actual installation of the GNU/Linux port. You need to do the correct installation of the OS port to match your CPU. For that the best tool would be to boot the server/system using a Live GNU/Linux distribution, drop down to the command line and do a ‘cat /proc/cpuinfo | grep flags’ at the root prompt. If you see the ‘lm’ flag then your CPU supports 64 bit computing. If so, you can proceed to install the x86_64/amd64 port of the GNU/Linux distribution.
Agreed. This article only states that whether the installed OS is 32 bit or 64 bit, not CPU supports 32/64 bit.