파일 시스템 또는 명령에서 Linux 배포 이름 읽기

파일 시스템 또는 명령에서 Linux 배포 이름 읽기

일부 시스템 정보를 수집해야 합니다.일부 배포판/버전별 조건에 따라 수행할 작업을 결정합니다.

예를 단순화하기 위해 가상의 함수를 만들었습니다 my_function_display_operating_system. 이것은 쓸모없는 기능이지만 문제를 해결합니다.

  1. 일반 운영 체제 유형 감지(,, 등. )
  2. 운영 체제에 대한 일부 버전 정보 감지
  3. 탐지 분포친근감있는 이름

3.내가 가장 도움이 필요한 곳에 초점을 맞 춥니다.

호스트를 나타내는 문자열을 읽는 안정적인 방법이 있습니까?배포판 이름?

/etc/issue나는 이 정보를 얻을 수 있는 다른 방법이나 일련의 방법을 모르기 때문에 아래 예를 사용하고 있습니다.

하나 있어서 다행이에요때에 따라 다르지case esac답변, 필요한 경우 매우 복잡한 스위치 문을 작성할 수 있습니다.

어디를 봐야 할지 알아야 하는데, "둘러보기" 및/또는 내가 알고 있는 모든 배포판에 대한 가상 머신을 다운로드/설치할 수 없습니다.이름 때문에...


# Displays operating system.

function my_function_display_operating_system() {
  local operating_system
  case $my_global_os_type in
    OSX)
      printf -v operating_system \
                'OS X v%s (build %s)' \
                $(sw_vers -productVersion) \
                $(sw_vers -buildVersion)
      ;;
    Linux)
      local -r linux_kernel_version=$(uname -r)
      printf -v operating_system \
                'GNU/Linux (kernel %s)' \
                "$linux_kernel_version"
      if [[ -f /etc/issue ]]; then
        local -r distribution=$(cat /etc/issue | sed 's/ \\n \\l//g')
        operating_system+="\nDistribution: $distribution"
      fi
      ;;
    *)
      operating_system=Unknown
      ;;
  esac
  printf "Operating system: $operating_system\n"
}

예제 출력:


> my_function_display_system_information
Operating system   GNU/Linux (kernel 3.5.0-25-generic)
Distribution       Ubuntu 12.10
System memory      1 GB
Bash               v4.2.37(1)-release
Vim                VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Oct 26 2012 16  45  54)
# ... etc ...

답변1

매우 유사한 조언이 여기에 제공됩니다.

https://superuser.com/questions/11008/how-do-i-find-out-what-version-of-linux-im-running

짧은 답변:

 ls /etc/*{release,version}

다양한 배포판은 다양한 형식으로 출력되며 안타깝게도 단일 통합 시스템은 없습니다. 위의 답변에는 가장 일반적인 파일 중 일부가 더 자세히 나열되어 있습니다.

관련 정보