Como consultar (a partir da linha de comando) informações de ambiente de desktop de alto nível para caracterização do sistema

2

plano de fundo

Ao pedir ajuda com um problema de software, geralmente é bom identificar não apenas quais versões desse código específico estão sendo executadas, mas também caracterizar a plataforma do aplicativo. O hardware de consulta do CLI pode ser irritante , mas felizmente o hardware muitas vezes não faz parte de um etiology ou é padrão o suficiente para ser irrelevante. Consultar os fundamentos de um host Linux via CLI é relativamente simples (pelo menos desde o LSB), então pode-se roteirizar o bash de propósito geral assim:

#!/usr/bin/env bash

### Attempt to create a high-level commandline-query for
### basic host configuration information (at least, for that
### part of the platform just above the hardware.

# constants------------------------------------------------------------

### "Marker file" paths for specific distros. TODO: complete the set.

DEBIAN_FILE='/etc/debian_version'

# code-----------------------------------------------------------------

### Absolute basics: kernel, distro

for CMD in \
    'date' \
    'uname -rsv' \
    'lsb_release -ds' \
; do
    echo -e "\$ ${CMD}"
    eval "${CMD}"
done

### Distro details via marker file. TODO: extend to all major distros.
### Feel free to add stanzas for your distro's marker.

if [[ -r "${DEBIAN_FILE}" ]] ; then
    for CMD in \
        "cat ${DEBIAN_FILE}" \
    ; do
        echo -e "\$ ${CMD}"
        eval "${CMD}"
    done
fi

### Other important non-graphical libraries, toolkits, etc.

for CMD in \
    'gcc --version | head -n 1' \
; do
    echo -e "\$ ${CMD}"
    eval "${CMD}"
done

Isso produz saída como

$ date
Sat Sep 17 14:18:28 MST 2016
$ uname -rsv
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02)
$ lsb_release -ds
LMDE 2 Betsy
$ cat /etc/debian_version
8.5
$ gcc --version | head -n 1
gcc (Debian 4.9.2-10) 4.9.2

pergunta

O que eu não sei é como rotular de forma semelhante as consultas para obter informações importantes sobre a pilha de área de trabalho de uma pessoa? Eu sei que estou rodando X, então posso fazer

## Dunno why X:
## * throws error on '--version'
## * outputs version info to 'stderr'
## * wants to include hostname in 'Current Operating System:' line
$ Xorg -version 2>&1 | grep -ve '^$\|^[[:space:]]\|Current Operating System:'
X.Org X Server 1.16.4
Release Date: 2014-12-20
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.16.0-4-amd64 x86_64 Debian
Kernel command line: BOOT_IMAGE=/vmlinuz-3.16.0-4-amd64 root=/dev/mapper/LVM2_crypt-root ro nomodeset nouveau.modeset=0
Build Date: 11 February 2015  12:32:02AM
xorg-server 2:1.16.4-1 (http://www.debian.org/support) 
Current version of pixman: 0.32.6

$ x-window-manager --version | head -1
metacity 3.14.3

e eu (por acaso) sei que estou usando o Canela desktop e assim posso fazer

$ cinnamon --version
Cinnamon 3.0.6

mas não faço ideia de como consultar o CLI para versões de coisas como o GTK (que eu sei que o Cinnamon usa) ou como fazer consultas semelhantes de alto nível no "mundo do Qt" ou o que fazer pelo Wayland, ou sobre quais outras partes da pilha WM / DE / GUI são geralmente importantes para descrições de problemas. Quais comandos posso usar para obter essas informações?

    
por TomRoche 17.09.2016 / 07:52

0 respostas