Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022



uname - print name of current system


uname [-a | --all] [-i | --hardware-platform] [-m | --machine]
     [-n | --nodename] [-o | --operating-system] [-p | --processor]
     [-r | --kernel-release] [-s | --kernel-name]
     [-v | --kernel-version] [-V | --virtual-environment] [-X]
uname --help
uname [-S system_name]


The uname utility prints information about the current system on the standard output. When options are specified, symbols representing one or more system characteristics will be written to the standard output. If no options are specified, uname prints the current operating system's name. The options print selected information returned by uname(2), sysinfo(2), or both.

Independent software vendors (ISVs) and others should not use the uname command to determine detailed characteristics of the platform on which their software is either being installed or executed. Instead, tests for the particular feature or facility should be performed ideally either at runtime or at build time.

The operating system version and release are intended only as a very high level hint as to the Oracle Solaris installation. For more information about Oracle Solaris software versions, see the pkg(1) man page.


The following options are supported:

–a, –-all

Prints basic information currently available from the system.


Display usage message and exit.

–i, –-hardware-platform

Prints the name of the platform. For machines of the sun4v architecture, the –i option returns: sun4v. Use prtconf(8) with the –b option to obtain the platform name for a sun4v machine.

–m, –-machine

Prints the machine hardware name (class). Use of this option is discouraged. Use uname –p instead. See NOTES section below.

–n, –-nodename

Prints the nodename (the nodename is the name by which the system is known to a communications network).

–o, –-operating-system

Print the name of the operating system.

–p, –-processor

Prints the current host's ISA or processor type.

–r, –-kernel-release

Prints the operating system release level.

–s, –-kernel-name

Prints the name of the operating system. This is the default.

–S system_name

The nodename may be changed by specifying a system name argument. The system name argument is restricted to SYS_NMLN characters. SYS_NMLN is an implementation specific value defined in <sys/utsname.h>. The {PRIV_SYS_ADMIN} privilege is required.

This change does not persist across reboots of the system. Use hostname(1) to make persistent changes to the system name.

–v, –-kernel-version

Prints the operating system version.

–V, –-virtual-environment

Prints the current virtual environment. See virtinfo(8) for more information.


Prints expanded system information, one information element per line, as expected by SCO UNIX. The displayed information includes:

  • system name, node, release, version, machine, and number of CPUs.

  • BusType, Serial, and Users (set to <unknown> in Solaris)

  • OEM# and Origin# (set to 0 and 1, respectively)


Example 1 Printing the OS Name and Release Level

The following command prints the operating system name and release level, separated by one SPACE character:

example% uname −sr
SunOS 5.11

Environment Variables

See environ(7) for descriptions of the following environment variables that affect the execution of uname: LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, and NLSPATH.

Exit Status

The following exit values are returned:


Successful completion.


An error occurred.


See attributes(7) for descriptions of the following attributes:

Interface Stability

See Also

arch(1), hostname(1), isainfo(1), isalist(1), sysinfo(2), uname(2), getopt_long(3C), nodename(5), attributes(7), environ(7), privileges(7), standards(7), prtconf(8), virtinfo(8)


To determine the operating system name and release level, use uname –sr. To determine only the operating system release level, use uname –r. Notice that operating system release levels are not guaranteed to be in x.y format (such as 5.3, 5.4, 5.5, and so forth); future releases could be in the x.y.z format (such as 5.3.1, 5.3.2, 5.4.1, and so forth).

To determine supported instruction set architectures, including 32-bit or 64-bit variants, use isainfo(1) instead of the uname command.

In SunOS 4.x releases, the arch(1) command was often used to obtain information similar to that obtained by using the uname command. The arch(1) command output sun4 was often incorrectly interpreted to signify a SunOS SPARC system. If hardware platform information is desired, use uname –sp.

The arch –k and uname –m commands return equivalent values; however, the use of either of these commands by third party programs is discouraged, as is the use of the arch command in general. To determine the machine's Instruction Set Architecture (ISA or processor type), use uname with the –p option.


Support for the -V and --virtual-environment options was added in the Oracle Solaris 11.4.36 release.

Support for the -o option, and the long options --all, --hardware-platform, --kernel-name, --kernel-release, --kernel-version, --machine, --nodename, --processor, and --help was added to Oracle Solaris in the Solaris 11.4.0 release.

Support for providing output in the historical formats used by System V Release 3 systems by setting the SYSV3 environment variable was removed in the Solaris 11.0.0 release.

Support for the -X option and the SYSV3 environment variable was added in the Solaris 2.6 release.

Support for the -i option was added in the Solaris 2.5 release.

Support for the -p option was added in the Solaris 2.0 release.

The uname command, including support for the -a, -m, -n, -r, -s, and -v options, has been included in all Sun and Oracle releases of Solaris.