*nix의 진지한 학생들이 표준 기능을 잘 배우기 위해 POSIX 호환 배포판을 선택해야 할까요?

*nix의 진지한 학생들이 표준 기능을 잘 배우기 위해 POSIX 호환 배포판을 선택해야 할까요?

진지한 학생으로서 유닉스나 리눅스를 배우고 싶고, 특히 특이한 습관을 잊지 않고 플랫폼과 배포판 사이를 오갈 수 있도록 제대로 이해할 수 있도록 기본을 배우고 싶습니다.

표준 분포에서 무엇을 찾아야 합니까? 정말 중요합니까? 많은 배포판이 POSIX를 준수하는 것으로 보입니다. 이것이 가장 중요한 고려 사항입니까?

답변1

분포를 선택하세요

*nix는 실제로 앉아서 배우는 것이 아닙니다. 나는 다음 중 하나와 같은 배포판을 선택합니다.

POSIX

분명히 당신이 볼 수 있는 다른 사람들이 있습니다distrowatch.com. 나는 이 5가지를 선택했는데, 그 이유는 이 5가지가 다음을 제외한 거의 모든 중요한 *nix를 대표하기 때문입니다.솔라리스또는HP-UX.

POSIX 규정 준수는 중요하지만 중요하지는 않습니다. 특히 Bash, awk, sed 유형 스크립트를 사용할 때 더욱 그렇습니다. 의심할 여지 없이 차이가 있으므로 POSIX 경로를 유지하는 경향이 있다면 장기적으로 시간을 절약할 수 있습니다. 특히 하나의 *nix 제품군 배포판에서 다른 버전으로 이동하거나 이동하는 경우 더욱 그렇습니다.

대부분의 배포판은 POSIX와 호환되지 않습니다.POSIX에 관한 Wikipedia 페이지피투성이의 세부 사항을 위해.

최하위 비트

LSB 또는 Linux 표준 라이브러리다음으로 구성된 프로젝트/작업 그룹입니다.리눅스 재단다양한 *nix 배포판에서 API, 도구 등을 표준화하려는 시도입니다. 그 목표는 POSIX와 매우 유사합니다.

매뉴얼 및 정보 페이지

대부분의 응용 프로그램은 일반적으로 *nix 시스템의 3개 위치 중 하나에서 사용 방법에 대한 세부 정보를 제공합니다.

  1. 매뉴얼 페이지- 대부분의 명령어는 맨페이지(man page)의 약어인 맨페이지(man page)와 함께 제공됩니다. *nix에서 명령이 어떻게 작동하는지 알아내려고 할 때 가장 친한 친구입니다. 다음 명령을 사용하여 액세스할 수 있습니다: man <command>.

         $ man less
         LESS(1)                                                                                                                  LESS(1)
    
         NAME
                less - opposite of more
    
         SYNOPSIS
                less -?
                less --help
                less -V
                less --version
                less [-[+]aBcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
                     [-b space] [-h lines] [-j line] [-k keyfile]
                     [-{oO} logfile] [-p pattern] [-P prompt] [-t tag]
                     [-T tagsfile] [-x tab,...] [-y lines] [-[z] lines]
                     [-# shift] [+[+]cmd] [--] [filename]...
               (See the OPTIONS section for alternate option syntax with long option names.)
    
  2. 정보 페이지- 정보 페이지는 매뉴얼 페이지와 유사합니다. 이는 대부분의 GNU 도구에서 제공되며 명령을 사용하여 액세스할 수 있습니다 info <command>.

        $ info less
        File: *manpages*,  Node: less,  Up: (dir)
    
        LESS(1)                                                                LESS(1)
    
    
    
        NAME
               less - opposite of more
    
        SYNOPSIS
               less -?
               less --help
               less -V
               less --version
               less [-[+]aBcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
                    [-b space] [-h lines] [-j line] [-k keyfile]
                    [-{oO} logfile] [-p pattern] [-P prompt] [-t tag]
                    [-T tagsfile] [-x tab,...] [-y lines] [-[z] lines]
                    [-# shift] [+[+]cmd] [--] [filename]...
               (See  the  OPTIONS section for alternate option syntax with long option
               names.)
    
  3. --help** - 대부분의 도구는 프로그램 자체에 대한 일종의 도움말 지원을 제공합니다. 일반적으로 --help명령에 인수를 전달하여 액세스할 수 있습니다 <command> --help.

              $ less --help
    
                           SUMMARY OF LESS COMMANDS
    
              Commands marked with * may be preceded by a number, N.
              Notes in parentheses indicate the behavior if N is given.
    
          h  H                 Display this help.
          q  :q  Q  :Q  ZZ     Exit.
         ---------------------------------------------------------------------------
    
                                   MOVING
    
          e  ^E  j  ^N  CR  *  Forward  one line   (or N lines).
          y  ^Y  k  ^K  ^P  *  Backward one line   (or N lines).
          f  ^F  ^V  SPACE  *  Forward  one window (or N lines).
          b  ^B  ESC-v      *  Backward one window (or N lines).
          z                 *  Forward  one window (and set window to N).
          w                 *  Backward one window (and set window to N).
    

무엇을 찾아야 할까?

우선, [gcc](컴파일러), 패키지 관리자,sed,,진주,불다및 기타 모든 종류 또는GNU Coreutils예를 들어:

이것목록은 계속해서 이어집니다이것이 바로 우리 대부분이 이 스택 익스체인지 사이트 8-)에서 시간을 보내는 이유라고 생각합니다.

저는 *nix를 목공이나 목공처럼 공예라고 생각합니다. 시작하는 것은 쉽지만 이러한 도구를 익히는 데는 평생이 걸릴 수 있습니다.

편집 #1

댓글에서 몇 가지 사항을 터치합니다. 일련의 질문을 제기하고 있습니다@조엘데이비스답변은 잠재적인 독자가 더 쉽게 볼 수 있도록 제시됩니다.

묻다:Fedora/Ubuntu가 언급되지 않은 이유는 무엇입니까? 이들 중 하나 대신 FreeBSD를 선택하면 풀의 깊은 곳에 던지는 것처럼 보입니다.

ㅏ:CentOS는 Red Hat을 다루고 FreeBSD는 BSD를 다룹니다. 초보 학습 *nix의 경우 기본을 가르치기 때문에 Fedora보다 CentOS를 선호합니다. 일자리를 찾으러 나가신다면 Fedora/Ubuntu보다 CentOS(BSD, Debian, SUSE)가 더 적합할 수 있습니다.

나는 또한 다가오는 *nix 사람들에게 이것을 언급하고 싶습니다:"먼저 *nix를 서버 OS로 관리하는 방법을 알아보고, 두 번째로 데스크탑 OS로 관리하는 방법을 알아보세요.". 제가 SE 사이트에서 답변하는 질문의 약 80%에는 *nix 서버 관리 방법에 대한 기본적인 이해가 부족하거나, 해당 서버에서 개발/운영하는 방법을 이해하지 못하는 사용자가 주로 보입니다.

추가 증거가 필요하면 다음 zdnet 기사를 참조하세요.Linux 서버는 계속 성장하고 Windows와 Unix는 계속 축소됩니다.. 서버는 우리 대부분이 *nix를 다루는 곳입니다.

나는 어떤 식으로든 *nix 데스크톱 기술이나 데스크톱에서 *nix의 성능을 부정하므로 위 내용을 읽지 마십시오. 10년 넘게 나의 주요 일일 운영 체제는 Fedora 또는 CentOS였습니다. 서버 운영체제로서 *nix를 배우는 데만 집중하고 있습니다.

답변2

음...사실 좀 부담스럽네요. 일상적인 명령(예: cp, ps, rm) 및 유틸리티(예: vi, top)는 모든 Unix 계열 시스템(Linux 포함)에서 거의 동일합니다. 물론 옵션은 다르지만(모두 사용 가능하며 문자가 바뀌어 사용됩니다) ).

반면에 시스템 관리에 관해서는 프린터 처리부터 사용자 추가, 패키지 설치까지 매우 다양합니다. 서로 다른 Linux 배포판 간에도 차이가 있습니다. 또한 장치의 이름(특히 하드 드라이브, 파티션, "슬라이스")도 다양합니다. 구성 파일과 서비스도 매우 다르게 처리됩니다.

또한 하위 수준 시스템(예: 논리 볼륨 또는 소프트웨어 RAID), 시스템 사용자 및 그룹 사용 방법(예: Solaris 및 해당 "역할") 등은 매우 다양합니다.

X의 GUI 프로그램(Unix/Linux의 "windows" 시스템)은 다음과 같습니다.바라보다어떤 WindowManager(창 및 버튼 등의 모양 제공) 또는 어떤 DesktopEnviroment(기본적으로 편집기, 메일 클라이언트, 파일 브라우저 등의 추가 기능이 있는 더 복잡한 WM)에 따라 느낌이 매우 다릅니다. " "모양"과 "느낌"(버튼 및 마우스 작동 방식)에 대한 테마가 많기 때문에 "테마"도 포함되어 있습니다. Unix 시스템이나 Linux 배포판마다 기본값이 다릅니다. WM/DE의 경우(다른 것으로 전환하는 것은 일반적으로 간단하지만)

물론 "일상적인 사용"의 경우 스프레드시트, 워드 프로세서, 이미지 편집 소프트웨어와 같은 응용 프로그램의 사용은 동일한 응용 프로그램이 동일한 방식으로 작동합니다. 특히 이제 "상용" Unix 시스템도 오픈 소스 소프트웨어가 자주 사용되기 때문에 더욱 그렇습니다. 또한.

다양한 Unix 계열 또는 Linux 시스템의 내부 구조는 유사하지만 동일하지는 않습니다. 커널 내부를 바로 다루지는 않겠지만, 만약 그렇다면, 어느 정도 유사하지만 동일함과는 거리가 멀다는 점을 명심하세요.

+++

따라서 모든 Unix 시스템 또는 Linux 배포판을 사용하면 일상적인 명령을 배우고 (대부분의) 응용 프로그램을 실행할 수 있습니다.존재하다운영 체제에 속하지만 운영 체제의 일부는 아닙니다. Linux 배포판은 종종 두 가지를 번들로 제공하지만 이는 다른 시스템에서도 거의 동일해야 합니다. 그러나 시스템 관리와 ​​관련하여 모든 도구에는 기본적으로 동일한 사용 가능한 도구 세트가 있지만 이름과 사용법은 다양합니다. 기본적으로 모든 운영 체제에서 좋은 관리 루틴(예: 백업 수행)을 배울 수 있지만 각 운영 체제에 대한 실제 명령과 구성 파일을 배워야 합니다.

초보자에게는 Linux 배포판을 권장합니다. 일반 배포판의 경우 모든 Unix 시스템과 충분히 유사하지만 관리 배포판의 경우 다른 배포판과 유사하지 않습니다. 무료이며 널리 사용되므로 온라인에서 쉽게 도움말을 찾을 수 있습니다. 세 가지 주요 Ubuntu 배포판(Ubuntu, Kubuntu 또는 Xbuntu) 중 하나를 선택하는 것이 좋습니다. 왜냐하면 널리 사용되며 많은 패키지가 있고 관리하기 쉽습니다... LinuxMint도 매우 간단하며 Ubuntu의 포크입니다.

기본 사항을 배운 후에는 다른 배포판보다 "실용적"인 SlacwareLinux를 사용해 볼 수 있습니다. 책을 읽는 동안 소스에서 모든 것을 빌드하고 시스템을 "부팅"할 수 있는 GentooLinux도 있습니다. 이 과정을 통해 시스템에 대해 많은 것을 배울 수 있습니다. 마지막으로 책에 따라 "자신만의" Linux 시스템(Gentoo와 같은 부분 자동화 없이)을 구축할 수 있는 LinuxFromScratch가 있습니다.진짜Linux의 다양한 부분이 어떻게 함께 작동하는지 가르쳐주세요. 몇 가지 Linux 커널을 컴파일하고 커널의 소스 코드와 기타 부분을 살펴보는 것도 많은 것을 배울 수 있습니다.

FreeBSD는 "원래" Unix 시스템(BSD) 중 하나를 기반으로 하는 오픈 소스, 무료, 비 Linux 대안입니다. Solaris는 오픈 소스는 아니지만 다운로드할 수 있습니다(업데이트 및 지원 비용이 있음에도 불구하고). 또 다른 "원래 릴리스"이며 사용자(예: "역할") 및 디스크 처리와 관련하여 다소 흥미로운 기능이 있습니다. Minix는 원래 운영 체제 교과서의 동반 제품인 "Unix 교육"입니다. Debian/Hurd는 매우 "현대적인" 커널을 사용하여 진행 중인 프로젝트입니다.

운영 체제를 "Unix"라고 부르려면 인증을 받아야 합니다... 비용이 많이 들기 때문에 대부분의 Linux 배포판은 인증을 받았지만 대부분의 Linux 및 FreeBSD와 같은 기타 무료 운영 체제는 인증되지 않았습니다. . POSIX는 Unix와 같은 "꿈의 운영 체제"를 지정하는 또 다른 인증 표준입니다. 실제로 이 표준을 완전히 따르거나 모든 부분을 구현하는 사람은 거의 없지만(아니요?) 많은 Unix 계열 운영 체제는 어느 정도 호환됩니다. 다시 말하지만 인증은 비용이 많이 들고 표준과 상용 POSIX 인증 운영 체제를 모두 구현하더라도 많은 무료 프로젝트가 인증되지 않습니다(예: Linux 커널은 표준을 매우 잘 따릅니다). 미국 정부 또는 이와 유사한 시스템(보안 및 암호화 등의 이유로 인증이 필요할 수 있음)을 위한 시스템을 설정하지 않는 한 크게 걱정할 필요는 없습니다. Linux 시스템의 대부분 명령은 실제로 POSIX와 호환됩니다.

답변3

내가 당신의 배에 있었다면 나는 상당히 사용자 친화적이고 아마도 과거에 사용했던 운영 체제와 유사한 것을 선택할 것입니다. Linux의 경우 데스크톱 사용자를 위한 가장 큰 두 경쟁자는 Fedora와 Ubuntu입니다. Fedora는 기업/정부에서 가장 널리 사용되는 배포판인 Red Hat Enterprise Linux의 커뮤니티 에디션(본질적으로)입니다. 많은 사람들이 우분투를 좋아한다고 말하지만, 나는 내 의견을 말할 만큼 우분투를 자주 사용하지 않습니다. 이와 같이 데스크탑 지향적인 것을 선택하면 평범한 삶을 살 수 있고, 스스로 부과한 특정 숙제가 있을 때 명령줄로 이동하거나 일부 도구를 사용하면 됩니다.

POSIX는 이제 막 시작한 사람이 아니라 소프트웨어 개발자와 기업 시스템 관리자가 걱정해야 할 문제입니다. 대부분의 POSIX 초안은 명령줄 도구에서 제공되는 옵션 및 API 정의와 같은 항목을 표준화합니다. 때때로 POSIX 표준은 시스템에 대한 일부 운영 요구 사항을 설정하지만, 그렇더라도 사용자의 지식 수준을 고려하면 너무 세밀해서 걱정할 수 없습니다. 여러분이 배우고 있는 기술은 대부분(전부는 아니지만) Linux 외부로 이전할 수 있습니다. POSIX를 사용하더라도 설계상 운영 체제 기능의 특정 하위 집합만 정의하며 일부 항목(예: 진단 유틸리티, 볼륨 관리, 로그 형식 및 위치, 패키지 관리, 방화벽 구현 등)은 사용자가 정의한 모든 항목 내에 존재합니다. POSIX 외부 기준. 정기적으로 교류해야 해요. 표준화된 것조차도 종종 "어쨌든엑스그리고구현에 맡길 예정입니다. "이는 특정 공급업체가 의식적으로 POSIX에서 벗어나는 것을 선택하지 않는다고 가정합니다(예:실제로 GNU/리눅스시간).

다른 사람이 뭐라고 말하든, POSIX를 얼마나 신뢰하든, POSIX가 하는 일은 운영 체제의 특정 주요 기능을 공급업체 전체에서 일관되게 유지하는 것입니다. 다른 운영 체제로 마이그레이션할 때는 항상 큰 학습 곡선이 있습니다. 하지만 당신은 실제로 그것을 원합니다. 상황이 바뀌지 않으면 공급업체 솔루션은 작업 그룹이 지원할 수 있는 정확한 기능으로 제한됩니다(때때로 IEEE의 진행 속도가 느리기 때문에 기능 목록이 작고 작성 속도가 느릴 수 있음). 동일한 문제를 해결하는 방법이 다양하다는 것은 좋은 일이기 때문에 공급업체를 선택해야 합니다.

관련 정보