13

There are several questions and answers here that include the output of inxi. What can inxi be used for?

muru
  • 197,895
  • 55
  • 485
  • 740
DK Bose
  • 42,548
  • 23
  • 127
  • 221

2 Answers2

20

inxi is a package available in the Universe repository. The version of inxi in 18.04.1 is 2.3.56. It uses Gawk/Bash to examine your system to extract a variety of information that could be helpful in describing your system when seeking help.

From the man page:

inxi is a command line system information script built for console and IRC. It is also used a debugging tool for forum technical support to quickly ascertain users' system configurations and hardware. inxi shows system hardware, CPU, drivers, Xorg, Desktop, Kernel, gcc version(s), Processes, RAM usage, and a wide variety of other useful information.

The man page lists numerous inxi options but to summarize the uppercase options:

  • -A = Audio
  • -B = Battery
  • -C = CPU
  • -D = Hard Disk
  • -G = Graphics
  • -I = Information about processes, uptime, memory, inxi version
  • -M = Machine data such as device (laptop/desktop), motherboard, BIOS, etc
  • -N = Network information
  • -P = Partition information
  • -R = RAID information
  • -S = System information such as hostname, kernel, 32/64-bit, desktop environment, distro, etc
  • -W = Weather but this maybe unreliable!

And here's just a few of the lowercase ones:

  • -c0 turns off colored output and is useful for redirecting cleanly (without escape codes) to a text file
  • -c when used in inxi -t c10, as an example, would list the top ten processes in terms of CPU usage
  • -m when used in inxi -t m10, as an example, would list the top ten processes in terms of RAM usage
  • -n shows advanced network information
  • -t as illustrated above, is required to generate a numbered list of processes such as specified by -cN or -mN where N is the number of processes required
  • -r lists repository data including ppas
  • -s provides information on temperatures (mobo/cpu/gpu) and fan speeds

Privacy considerations
Since inxi output is often posted in public fora, the -z option filters out data such as MAC addresses. If the hostname (normally generated by -S), is to be hidden, -! 31 can be used.

The -x factor
The following example illustrates the use of -x, -xx, and -xxx and should be self-explanatory:

dkb@dkb-xubu:~$ 
dkb@dkb-xubu:~$ inxi -S
System:    Host: dkb-xubu Kernel: 4.15.0-33-generic x86_64 bits: 64 Desktop: Xfce 4.12.3
           Distro: Ubuntu 18.04.1 LTS
dkb@dkb-xubu:~$ inxi -Sx
System:    Host: dkb-xubu Kernel: 4.15.0-33-generic x86_64 bits: 64 gcc: 7.3.0
           Desktop: Xfce 4.12.3 (Gtk 2.24.31) Distro: Ubuntu 18.04.1 LTS
dkb@dkb-xubu:~$ inxi -Sxx
System:    Host: dkb-xubu Kernel: 4.15.0-33-generic x86_64 bits: 64 gcc: 7.3.0
           Desktop: Xfce 4.12.3 (Gtk 2.24.31) dm: lightdm Distro: Ubuntu 18.04.1 LTS
dkb@dkb-xubu:~$ inxi -Sxxx
System:    Host: dkb-xubu Kernel: 4.15.0-33-generic x86_64 bits: 64 gcc: 7.3.0
           Desktop: Xfce 4.12.3 (Gtk 2.24.31) info: xfce4-panel dm: lightdm Distro: Ubuntu 18.04.1 LTS
dkb@dkb-xubu:~$ 

Conclusion: So, what's a convenient command for someone wanting to present information concisely?

  • I'd go with inxi -Fxxxz for starters where -F is shorthand for including all uppercase options, plus -s and -n
  • For reporting on CPU/RAM, something like inxi -t cm10 may help
  • inxi -r would list your repos and ppas and their status

Footnote: a newer Perl-based version of inxi is available via:

sudo wget -O /usr/local/bin/inxi https://github.com/smxi/inxi/raw/master/inxi
sudo chmod +x /usr/local/bin/inxi

after which

sudo inxi -U will, when run for the first time, install the corresponding man pages and, on subsequent runs, will install newer versions of inxi and its man page. The changelog is very good reading for those interested in the inner workings of inxi.

Another option is to add Unit 193's personal package archive which closely tracks the github version.

DK Bose
  • 42,548
  • 23
  • 127
  • 221
  • inxi has always been rolling release, it rolled right along from 2.3.55 to 2.3.56 to 2.9.00 (although there was a signficant period between 2.3.56 and 2.9.00 due to the rewrite to Perl) to its current 3.0.22. Nifty 3.x new options: --usb, --slots, --admin. Hugely enhanced -S. Tomorrow it will roll along to 3.0.23 unless something goes wrong. – Lizardx Sep 07 '18 at 01:18
  • @Lizardx if you're on Ubuntu 18.04 or any other official Ubuntu flavor, please run apt policy inxi or even apt-get changelog inxi > inxi.txt to see the version of inxi available in the default repos. I have version 3.0.22 because I'm using the version from github and not the one from the default repos. – DK Bose Sep 07 '18 at 03:37
  • Distribution packaging has nothing to do with whether a program is rolling release or not. All frozen pool distros of course have frozen packages, even when doing so hurts their users by not having current software. It's somewhat tautological to note that a frozen pool distro has a frozen package pool, lol. If I could fix one thing, it would be getting frozen pool distros to realize that not all packages should be frozen, particularly when they are for support, and have no version based dependencies. All 18-04 based distros are using an unsupported EOL inxi version, for example. – Lizardx Sep 07 '18 at 19:18
  • 1
    You can also just add the Unit193 PPA by the way, he's the maintainer of inxi for Debian and Ubuntu, and he tends to track current inxi reasonably closely, usually within the latest version or two. – Lizardx Sep 07 '18 at 19:25
  • First time hearing of this utility. Looks very interesting. – Sergiy Kolodyazhnyy Sep 08 '18 at 00:29
3

To add to the answer from DK Bose, and focusing on current inxi, not the legacy 2.3 or 2.2 versions, which are technically EOL, and unsupported:

Easy way to see if you have legacy or current inxi: inxi -v8 If you get an error, you have legacy inxi, if you get a huge page of output, you have current inxi. -v8 level was added in 2.9, the beta test release for 3.0. It's the 'everything plus the kitchen sink option'. Almost everything anyway.

Interesting options:

  • --usb - uses lsusb and/or /sys data to construct your usb report.
  • --slots - lists board PCI slots. I've noticed that sometimes the system is wrong about what slots it has, but that's not an inxi bug.But still useful.
  • -a/--admin - Just extended in 3.0.23 to include CPU vulnerability report. Earlier versions had a simplistic report. If you get unsupported option error, you either have legacy inxi, or your current inxi is not new enough. As of 3.0.33, a quite useful support debugging option adds kernel boot parameters to the System: line, which can help show if they have blacklisted nouveau, for example. Also added partition raw size, as well as the available size, and swap information.
  • -Cxx - in 3.0.24, which just hit Debian sid, and may just squeeze into 18-10, L1 and L3 cache report if you run it as sudo/root
  • -S, -Sx, -Sxx, -Sxxx - hugely enhanced desktop/window manager, display manager, and extra info data like taskbars, docks, panels. While it doesn't technically support all window managers, it supports most of the ones that seem to be in actual use.
  • -G, -Gxxx - shows all known display compositors, and if available, version number.

There are also some specific options that are useful now and then. All the -! and -@ options from legacy inxi were given long option names.

  • --no-host - turns off hostname, for users who don't want to post it, this corresponds nicely with the -z option in terms of output filtering/sanitization.
  • --display - a little known option, that will try to get desktop data if you are out of X, say, via SSH. This only works as non root, and doesn't always work. Can target a specific display if you use a value like :1 for display 1.
  • --no-ssl - this is useful if you are on a very old system with expired ssl certificates, it will bypass for certain actions the ssl checks, it depends.
  • --usb-sys - forces use of only /sys data for USB report. This can be useful because the values are often quite different between /sys and lsusb for the vendor/product data.

Basically all options are enhanced in 3.x, some more than others. Dynamic line wrap is much better as well, and some old glitches like not removing color codes when piping or redirecting were corrected, which removed the requirement to use the -c 0 flag to force color code removal. All option names have long forms in 3.x.

There are also some more obscure options, like being able to export to xml or json if users want.

Support for ARM and ARM SOC (system on chip, or SBC, single board computer) devices (like rasberry pi) is hugely upgraded in 3.0, along with various other obscure architectures like MIPS and SPARC which recently saw basic support added.

The most common use of inxi I believe is for forum/irc support for distro users, and for sys admin use, particularly when you ssh into a machine and need to know what it is. The most common option seems to be, at least on forums, -Fxz, though some prefer the shorter -bxxz

As noted, the Unit193 PPA can be added, there are never any dependency issues so you can install current inxi on a 10 year old system and it should all 'just work'. You can also just directly install it, there's a shortcut URL to the GitHub location: wget -Nc smxi.org/inxi which I find easier to remember than the longer GitHub URL path. If you are not using the packaged version, the options sudo inxi -U will update inxi and the man page using GitHub sources.

Lizardx
  • 426
  • You can also get it here, don't really need to add the ppa as the version is self updating. After install just run sudo inxi -U to update & run every month or so. Note that if the repo or other ppa version of is already installed purge it first. https://launchpad.net/~mc3man/+archive/ubuntu/inxi1 – doug Sep 11 '18 at 22:01
  • That's a good option too, good to know about. Personally I only use the git versions, and use the -U option to update, but some people like package manager controlled updates, either way is fine, unless you are stuck on an obsolete version, then the PPA or the direct install method are better. – Lizardx Sep 11 '18 at 22:09