관료주의 때문에 누군가가 Linux 서버에서 bash 스크립트를 실행하고 출력을 제공하도록 할 수 있지만 거기에 로그인할 수 없거나 스크립트를 직접 실행할 수 없는 상황에 직면했습니다.
문제의 서버가 Debian이나 Ubuntu를 실행하고 있다고 확신합니다.
python
어떤 버전이 설치되어 있는지 , 어떤 버전이 설치되어 있는지 알고 싶습니다 g++
.
지금까지 가장 좋은 아이디어는 $PATH
변수를 가져와서 분할 하고 모든 경로에서 :
일치하는 python
항목을 개별적으로 검색하는 것입니다 g++
.
더 똑똑한 방법이 있나요?
답변1
g++를 로컬에 설치하지 않은 경우 다음이 g++에서 작동합니다.
dpkg -l 'g++*'
내 시스템에서는 다음을 제공합니다.
dpkg -l 'g++*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-================================-=====================-=====================-======================================================================
ii g++ 4:4.9.2-2 amd64 GNU C++ compiler
ii g++-4.6 4.6.3-14 amd64 GNU C++ compiler
un g++-4.6-multilib <none> <none> (no description available)
ii g++-4.9 4.9.2-10 amd64 GNU C++ compiler
ii g++-4.9-multilib 4.9.2-10 amd64 GNU C++ compiler (multilib files)
ii g++-multilib 4:4.9.2-2 amd64 GNU C++ compiler (multilib files)
Python의 경우 유사한 접근 방식은 너무 많은 잘못된 긍정을 제공합니다. 왜냐하면 Debian 및 그 파생 버전에서는 모든 Python 라이브러리가 python-
.
그것은 마치
dpkg -l 'python?.?'
작동해야합니다.
dpkg -l 'python?.?'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-================================-=====================-=====================-======================================================================
ii python2.6 2.6.8-1.1 amd64 Interactive high-level object-oriented language (version 2.6)
ii python2.7 2.7.9-2 amd64 Interactive high-level object-oriented language (version 2.7)
un python3.1 <none> <none> (no description available)
ii python3.4 3.4.2-1 amd64 Interactive high-level object-oriented language (version 3.4)
답변2
그리고 zsh
:
$ type -ma '(python|g++)*'
g++ is /usr/bin/g++
g++-4.4 is /usr/bin/g++-4.4
g++-4.6 is /usr/bin/g++-4.6
g++-5 is /usr/bin/g++-5
python is /usr/bin/python
python-config is /usr/bin/python-config
python-coverage is /usr/bin/python-coverage
python2 is /usr/bin/python2
python2-config is /usr/bin/python2-config
python2-coverage is /usr/bin/python2-coverage
python2-gflags2man is /usr/bin/python2-gflags2man
python2.7 is /usr/bin/python2.7
python2.7-config is /usr/bin/python2.7-config
python2.7-coverage is /usr/bin/python2.7-coverage
python3 is /usr/bin/python3
python3.2 is /usr/bin/python3.2
python3.2mu is /usr/bin/python3.2mu
python3.4 is /usr/bin/python3.4
python3.4m is /usr/bin/python3.4m
python3.5 is /usr/bin/python3.5
python3.5m is /usr/bin/python3.5m
python3m is /usr/bin/python3m
pythontex is /usr/bin/pythontex
pythontex3 is /usr/bin/pythontex3
유사 type cmd
하지만 패턴과 일치하는 모든 a
명령(및 사용자의 셸이 관련된 경우 별칭, 함수 및 내장 )을 보고합니다.zsh
m
답변3
$PATH에 버전을 원하면 다음을 실행할 수 있습니다.
python -V ; g++ --version
답변4
검색 경로를 사용할 수 있습니다 which -a
.
function get_versions {
for p in $(which -a $1); do
$p --version
done
}
get_versions python
get_versions g++