What can `inxi` be used for?
Solution 1:
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 ininxi -t c10
, as an example, would list the top ten processes in terms of CPU usage -
-m
when used ininxi -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
whereN
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.
Solution 2:
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:
- https://smxi.org/docs/inxi.htm - overview of inxi documentation options.
- https://smxi.org/docs/inxi-options.htm - fairly up to date inxi option / -h help menu
- https://smxi.org/docs/inxi-man.htm - equally up to date man page from current inxi.
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
- useslsusb
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
andlsusb
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.