실행중인 Linux 버전을 어떻게 알 수 있습니까?


209

어떤 Linux 시스템에서 작동하는지 (명령 줄에서) 실행중인 Linux 버전 (배포 및 커널 버전)을 결정하는 방법이 있습니까?

답변:


267

커널은 보편적으로 uname다음 과 같이 감지됩니다 .

$ uname -or
2.6.18-128.el5 GNU/Linux

실제로 어떤 배포 및 버전을 결정하는지에 대한 교차 배포 방법은 없습니다. 이 일관성을 유지하려는 시도가 있었지만 불행히도 결과는 다양합니다. LSB 도구는이 정보를 제공하지만 아이러니하게 기본적으로 설치되지는 않습니다. lsb-release패키지가 설치된 Ubuntu 9.04 시스템의 예 :

$ lsb_release -irc
Distributor ID: Ubuntu
Release:        9.04
Codename:       jaunty

그렇지 않으면 가장 널리 사용되는 방법은 파일을 확인 하는 것입니다. 이들은 대부분의 공통 플랫폼과 그 파생물 (예 : Red Hat 및 CentOS)에 존재합니다./etc/something-release

여기 몇 가지 예가 있어요.

우분투는 /etc/lsb-release:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

그러나 데비안은있다 /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat 및 CentOS에는 다음이 있습니다.

Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)

Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)

newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

젠투 :

$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1

현재 사용할 수있는 SUSE 시스템이 없지만이 시스템은 /etc/SuSE-release입니다.

슬랙웨어에는 /etc/slackware-release및 / 또는이 /etc/slackware-version있습니다.

만드 리바가 /etc/mandriva-release있습니다.

당시 대부분의 인기 배포판에서

$ cat /etc/*{release,version}

가장 자주 작동합니다. 제거 및 베어 본 "서버"설치에는 배포 용 '릴리스'패키지가 설치되어 있지 않을 수 있습니다.

또한이 정보를 자동으로 얻는 데 사용할 수있는 두 개의 타사 프로그램은 OhaiFacter 입니다.

많은 배포판에는 /etc/issue또는에 이러한 종류의 정보가 /etc/motd있지만 일부 보안 정책 및 모범 사례 에 따르면 이러한 파일에는 액세스 알림 배너가 포함되어 있어야합니다.

관련 : 어떻게 노드에 설치된 소프트웨어 패키지의 버전을 확인하는 방법? , .


3
여기에 Lol 제안 할 생각이었습니다 : 정보를 찾으십시오!
Ivo Flipse

2
슬랙웨어는 / etc / slackware-version을 가지고 있습니다
Ken Keenan

감사합니다 켄, 슬랙웨어 시스템도 없습니다.
jtimberman

4
IOW : ls / etc / * {release, version} 그리고 무엇이 돌아 오는지 조사하십시오 ...
freiheit

1
대부분 / etc / issue
Drew Stephens

41

시도해 볼 수도 있습니다.

$ cat /etc/issue

일반적으로 (항상 그런 것은 아니지만) 사용중인 배포판을 알려줍니다. /etc/issue로그인 화면에 사용되는 파일입니다.


2
이것은 공유 미디어 템플 서버에서 나를 위해 유일하게 유일했습니다. 감사!!
TryTryAgain

2
\S[newline]Kernel \r on an \m
하핫

20

핵심: uname -a


+1. MinGW 와 같은 유사한 시스템의 경우 "-a"는 버전 정보를 가져와야합니다 (예 : "MINGW32_NT-5.1 LAP065 1.0.17 (0.48 / 3 / 2) 2011-04-24 23:39 i686 Msys").
Peter Mortensen

15
cat /etc/os-release

Ubuntu, Fedora 및 OpenSUSE의 경우 최소

10.9 (Mavericks)까지는 OS X에서 작동하지 않습니다. 대신 sw_vers 를 사용하십시오 .

OpenSUSE는 13.1까지 cat / etc / SuSE 릴리스 를 사용했지만 os 릴리스를 위해 더 이상 사용되지 않습니다.

Redhat 6.1에는 cat / etc / redhat-release가 있습니다.





6

핵심: uname -r

배포판 : lsb_release -a

이들은 대부분의 Linux 시스템에서 실행됩니다



1

문제는 모듈 과 함께 Python을platform 사용하여 해결할 수도 있습니다 .

platform()기능 사용하기 :

python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6

위의 명령 은 가능한 많은 유용한 정보로 기본 플랫폼을 식별하는 단일 문자열을 반환합니다.

또는 uname()기능 사용 :

python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')

위의 명령은 반환 namedtuple()포함한 여섯 개 속성 : system, node, release, version, machine,와 processor.

또는 dist()기능 사용 :

python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')

마지막 명령은 리눅스 OS 배포판 이름의 이름을 확인하려고 하지만입니다 파이썬 3.5부터 사용되지 않습니다됩니다 파이썬 3.8에서 제거 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.