배경
소프트웨어 문제에 대한 도움을 구할 때 실행 중인 특정 코드의 버전뿐만 아니라 애플리케이션 플랫폼의 특성도 확인해야 하는 경우가 많습니다.CLI에서 하드웨어를 쿼리하는 것은 성가실 수 있습니다., 그러나 다행히도 하드웨어는 일반적으로 사용자의 일부가 아닙니다.병인학아니면 관련성이 없을 정도로 표준적입니다. CLI를 통해 Linux 호스트를 쿼리하는 기본 사항은 상대적으로 간단하므로(적어도 LSB로 시작) 일반 bash 스크립트는 다음과 같이 작성할 수 있습니다.
#!/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
그러면 다음과 유사한 출력이 생성됩니다.
$ 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
질문
내가 모르는 것은 누군가에 대한 중요한 정보를 쿼리하기 위해 유사한 스크립트를 작성하는 방법입니다.데스크탑 스택? 나는 X를 실행하고 있다는 것을 알고 있습니다.
## 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
나는 (우연히) 내가 사용하고 있다는 것을 알고 있습니다.계피 데스크탑그래서 그것은 이루어질 수 있다
$ cinnamon --version
Cinnamon 3.0.6
하지만 CLI를 통해 GTK(Cinnamon이 사용하는 것으로 알고 있음)와 같은 버전을 쿼리하는 방법, "Qt 세계"에서 이와 같은 고급 쿼리를 수행하는 방법, Wayland에서 수행할 작업 또는 기타 관련 사항을 모르겠습니다. WM/DE/GUI 스택 섹션은 문제 설명에 중요한 경우가 많습니다. 이 정보를 얻으려면 어떤 명령을 사용할 수 있습니까?