Choi Kyeong Min Report

교과서 정리 보고서

리눅스 개론

1. 리눅스의 탄생

  • 리눅스(Linux)는 핀란드 헬싱키대학 학생아었던 “리누즈 (Linus E Torvalds)” 의 시작으로 만들어진 운영체제에 대한 이름이다.
  • 다중사용자, 다중 작업처리를 지원하는 운영체제로 유닉스를 벤치마킹한 것이다.
  • 리눅스는 유닉스와는 독립적으로 개발되었으므로 유닉스 계열로 분류하지 않는다.
  • 스톨만: “What’s GNU? GNU’s Not Unix! ” (GNU 선언문)

2. 리눅스의 특징 (장점)

  • 호환성
    • 리눅스의 보급이 다른 OS보다 빨랐던 이유 중 하나가 “호환성이 높다”라는 점이다
    • 유닉스용 프로그램은 별도의 수정 없이 리눅스에서 동작할 수 있으며 이것은 유닉스의 성능과 역사가 리눅스에서 활용될 수 있다는 것을 의미한다.
  • 공개성
    • 많은 우수 인력이 확보되어 있기 때문에 우수한 소프트웨어 개발이 가능하고 여러 배포판 개발 단체들이 있기 때문에 사용자에게 선택권이 주어진다.
    • 윈도우즈의 경우 개발사가 “마이크로소프트” 뿐이기 때문에 마이크로소프트가 운영체제의 문제를 해결해주지 않으면 다음 단계로 진행할 수 없다
    • 그러나 리눅스는 지금까지의 배포판 제공업체가 문제에 대응하지 않으면 다른 배포판으로 바꿀 수 있고 소스코드가 공개되기 때문에 우수한 코드만이 살아남을 수 있다
    • 다중사용자, 다중작업 등으로 보안성이 높은 파일을 관리하고 시스템이 풍부한 네트워크를 지원
  • 안정성
    • 일반 PC 는 업무가 끝나면 전원을 끄지만 리눅스는 네트워크 사용을 전제로 설계되었기에 불가피한 경우를 제외하고는 서버가 항상 실행 될 수 있도록 안정적으로 설계되어 있다.
  • 무료
    • 무료로 자유롭게 배포되는 프로그램이 매우 많다
  • 효율성
    • 리눅스는 하드웨어의 기능을 알뜰하게 사용한다.
    • 다른 운영체제보다 비교적 적은 양의 메모리를 사용하여도 된다
  • 다중성
    • 이마 하나의 프로세스가 실행되고 있는 가운데 또 다른 프로세스가 진행될 수 있다.
  • 다양성
    • 다양한 응용프로그램을 한다.
  • 지원성
    • 인터넷용 프로그램인 웹 브라우저, 메일, 뉴스, 웹서버, 메일서버, 뉴스서버, DNS 서버, IRC 서버 등 거의 모든 인터넷서버의 기능을 갖추고 있고, 방화벽으로도 사용할 수 있다.

3. 리눅스의 단점

  • 공개운영체제이기 때문에 문제점 발생 시 보상받을 수 없다.
  • 소스코드까지 공개된 운영체제이기 때문에 보안에 취약할 것이다

그러나!

  • 공개이기 때문에 보안이 취약하다는 의미보다는 공개이기 때문에 신속한 보완이 가능하다는 뜻을 내포하고 있다고 보아야 한다.
  • 리눅스의 급부상으로 많은 리눅스 관련업체들이 생겨나고 서비스를 제공하고 있기 때문에 이 문제는 점차 해결되고 있다.

리눅스 배포판들

  • 리눅스는 공개소프트웨어로 제공되므로 거의 모든 사람들이 리눅스를 사용하거나 배포하는 것에 제재를 받지 않는다 → 많은 리눅스 배포판이 있다.

  • 배포판의 종류

    • 우분투
    • 페도라
    • 레드햇
    • 센토서
    • 데비안

Ubuntu(우분투)

  • 수많은 리눅스의 배포판 중에서 가장 쓰기 쉽다
  • 우분투 슬로건
    • 소프트웨어는 자유롭게 사용되어야 한다
    • 소프트웨어 도구는 사람들의 모국어로 사용되고 어떠한 장애도 극복되어야 한다
    • 사람들은 소프트웨어를 고치고 그들에게 맞는 어떠한 방법으로 변경하는 자유를 가져야 한다

Red Hat(레드햇) 과 Fedora(페도라)

  • 레드햇: 상용 시장인 서버 용으로만 배포
  • 페도라: 데스크톱용
  • 알기 쉬운 인스톨러와 관리

CentOS(센토서)

  • RedHat Enterprise Linux AS 기반의 리눅스 배포판
  • 페도라에 비해서 설치되는 프로그램들의 간결함이 특징

Debian (데비안)

  • 데비안은 비영리조직에 의해 전 세계의 다양한 개발자들이 참여할 수 있도록 만든 데비 안 프로젝트에 의해 발전되어 왔는데, 버그를 보고하거나 패키지를 개발하는 형태로 참가할 수 있다. 따라서 데비안은 Linux가 개발된 과정을 거쳐 왔다고 할수 있다.
  • 패키지에 보안 취약점이 발견되면, 대부분 며칠 안에 수정된 내용이 Anonymous FTP에서 발견할 수 있다.

Slackware (슬랙웨어)

  • 구조가 간결하여 내용을 파악하기 쉬우며 관리 도구도 간소하다
  • 대부분의 설정이 편집기에서 텍스트 파일을 다시 써야 하기 때문에 어렵다

Open Linux (오픈 리눅스)

  • 미국에서 인기가 높은 오픈 리눅스
  • Netware와 접속성에 뛰어나다
  • Netware에 탑재되어 있는 디렉터리 서비스인 NDS (Novell Directory Service)의 클라이언트 기능을 갖추고 있다
  • 네트워크 내의 서버나 프린터 등, NDS가 지난 정보를 이용할 수 있다

Mandrake (맨드레이크)

  • 단순함을 추구
  • 윈도우 사용자들에게도 친숙한 윈도우 환경 제공
  • 쉽게 설치하고 사용 가능
  • 설치 중에 x윈도우 테스트 할 수 있으며 설치 후 곧 바로 X윈도우로 부팅할 수 있다

SuSE-Linux (수세)

  • “YaST2”로 중앙 집중 관리가 되데 윈도우의 제어판 같은 기능과 패키지 추가/삭제도 가능하다.
  • Security의 신뢰가 매우 높다

Booyo (부요)

  • 운영 체제 (OS) 부분의 한국 표준 구실을 할 소프트웨어로 평가되는 한국전자통신연구원과 국내 공개 소프트웨어 개발업체들로 구성된 ‘부요컨소시엄’에서 개발된 리눅스 배포판

Asianux (아시아눅스)

  • 아시아 지역의 표준 리눅스를 개발하기 위하여 한국(한글과컴퓨터), 중국(홍기), 일본(미러클 ), 베트남 (비에트소프트)가 합작하여 개발한 리눅스 배포판

한컴리눅스

  • 한글 컴퓨터에서 리눅스 개발팀을 운영하여 배포한 리눅스 배포판

민트리눅스

  • 우분투 리눅스의 변화를 받아들이지 않는 전통적인 리눅스 GUI를 고수하는 메니아를 중심으로 꾸준한 성장을 하고 있는 리눅스 배포판

리눅스의 미래

윈도우즈에 뒤지지 않는 운영체제일 뿐만 아니라 윈도우즈가 갖지 못한 기능들도 보유하고 앞으로 운영체제 시장을 선도해 나갈 것이다.

리눅스는 다양한 사용자 환경을 지원하는운영체제를 만들고자 하는시도에서 촐발하였기 때문에 개인용 운영체제인 윈도우즈와 UNIX의 특징을 모두 가지고 있다.

요즘에는 컴퓨터의 중요도가 더이상 단순한 문서작성이 아닌 인터넷 사용과 멀티미디어를 활용으로 소셜네트워크의 기반을 이루고 있기 때문에 리눅스의 중요성이 더욱 부각되고 있다.

리눅스는 소스코드를 무료로 제공하기 때문에 전 세계에 있는 수많은 프로그래머들에 의해 임청난속도로 다양한 형태로 개발되고 있다. 따라서 앞으로의 발전 가능성이 무한하다고 여겨지고 있기 때문에 21 세기에 가장 주목받고 있는 운영체제


리눅스 명령어 응용

권한 관리

리눅스 서버 운영체계는 다양한 사용자가 접속하여 시스템을 이용하게 된다

각각의 사용자는 서버 시스템을 사용할 수 있는 범위의 제한을 가지고 파일과 디렉토리 등에 접근할 수 있도록 되어 있다

시스템 관리자는 모든 권한을 가지고 시스템을 운영

일반 사용자는 자기의 영역을 사용하고 이 영역을 다른 사용자들이 사용하거나, 사용하지 못하게 조정할 수도 있다

(1) 사용자 그룹, 권한 관리

  1. 사용자는 여러 개의 그룹에 포함될 수 있다
  2. 사용자 및 그룹 관리 명령어는 아래와 같다
    1. id : 현재의 사용자를 알아보는 명령
    2. groups : 현재의 그룹을 알아보는 명령
    3. adduser : 사용자를 등록하는 명령
    4. addgroup : 그룹을 등록하는 명령어
    5. deluser : 사용자를 삭제하는 명령
    6. delgroup : 그룹을 삭제하는 명령
  3. 사용자와 그룹은 시스템 내부에서 숫자로 표시된다
    1. uid : 사용자를 표시하는 숫자
    2. gid : 그룹을 표시하는 숫자

(2) 그룹 관리 명령어

파일을 탐색하기 위한 명령으로 pwd, cd, ls가 있다

  1. 그룹조회
    1. 자기가 속한 그룹 : groups , id
    2. 서버 내 전체 정의되어 있는 그룹을 보려면 /etc/group 파일을 봄
  2. 그룹 생성 : groupadd
  3. 그룹 변경 : groupmode
  4. 그룹 삭제 : delgroup

(3) 패스워드, 그룹 관련 설정 파일

  1. 사용자 정보 파일
    1. /etc/passwd 파일
    2. user, password, uid, pid 정보 기록, 해당 파일의 수정 삭제 등으로 사용자 관련 설정 변경 가능
  2. 그룹 정보 파일
    1. /etc/group 파일
    2. 그룹의 정보가 기록되며 해당 파일의 수정 삭제 등으로 사용자 관련 설정 변경도 가능
    3. groupadd,groupmod, delgroup
  3. 패스워드 관련 파일
    1. /etc/shadows 파일 : /etc/passwd 파일과 함께 사용자 패스워드를 저장
    2. 이 파일에서 패스워드 필드를 고치면 시스템 오류가 발생

권한의 이해 및 표기

리눅스에서는 파일이나 디렉토리에 대하여 권한을 주어서 관리한다

1) 파일, 디렉토리의 소유자

파일이나 디렉토리는 소유자가 해당 사용 권한을 가지고 있으며 해당 파일과 디렉토리의 사용자 및 관리자(root) 는 이러한 권한을 바꿀 수 있다.

  1. 파일이나 디렉토리의 소유자
    1. 처음 파일이나 디렉토리를 생성한 User의 소유로 생성 kopoctc 라는 서용자로 접속하여 파일을 하나 만들었다면, 해당 파일은 opoc 가 소유권을 가짐.
  2. 파일, 디렉토리 소유 사용자 권한 변경
    1. chown: 파일 또는 디 렉토리의 소유 사용자를 바꿈.
  3. 파일, 디렉토리 소유 그룹 권한 변경
    1. chgrp: 파일 또는 디렉토리의 소유그룹을 바꿈.

2) 권한의 이해

  • 파일이나 디렉토리의 권한은 읽기 . 쓰기, 실행 권한의 3단계로 나누어짐.
  • 권한 부여는 소유자(user), 그룹(group), 다른 사용자(other) 에 대하여 부여함.
  • 읽기 권한 : 파일을 조회할 수 있음
  • 쓰기 권한 : 파일을 변경하거나 지우거나 할 수 있음
  • 실행 권한 : 파일을 실행할 수 있음
  • ls -al 명령으로 각각의 파일, 디렉토리의 권한을 알 수 있음

ls-al실행

  • 파일 또는 디렉토리를 나타내는 해당 라인의 처음 필드 자리는 다음과 같은 의미를 가짐.

10자리권한표시

3) 권한의 숫자 표기법

  1. 권한의 숫자 표기법
    1. 권한에 대한 부분을 대상자와 3단계 권한을 결합하여 다음과 같이 3자리 숫자로나타냄 .
    2. 3자리 숫자는 순서대로 사용자, 같은그룹 사용자, 다른사용자를 의미함.
    3. 읽기 (4) .쓰기 (2), 실행하기 (1) 로 보고 각각의 권한 부여를 더한 값을 사용­

4) 권한 설정

  1. 상대 모드
    • 현재 권한을 기준으로 권한을 제거하거나 부여하는 방식
    • 상대 모드 표현 시 아래와 같은 방식으로 표기

상대모드권한

  1. 절대 모드
    • 권한의 숫자 표기법을 이용하여 권한을 표기
    • 기존 부여된 권한은 무시되며 새롭게 지정된 권한으로 설정
    • 사용자 r(4) w(2) x(1), 그룹 r(4) w(2) x(1), 다른 사람 r(4) w(2) x(1) 으로 표시 한 값을 각 권한자별로 더한 값으로 나타냄 .

링크 파일

시스템을 운영하다 보면 하나의 파일을 여러 디렉토리에 가져다 사용히는 경우가 있다.

이때 사용한다

하드링크

  1. 특징
    • 두 파일명은 같은 디스크에 위치한 같은 데이터를 가리킴
    • 하드 링크는 원본 파일과 완전히 동일하고, 부가적인 디스크 공간을 차지 하지 않음.
    • 원본과 동일하기 때문에 하드링크 파일을 지우면 원본도 삭제됨
  2. 하드 링크로 연결
    • In 명령
    • In abc abc2: 라는 파일을 abc2라는 하드링크 파일로 연결. abc2 파일 은 새로 생성됨 .

심볼릭 링크

심볼릭 링크(symbolic link)는 원 파일을 연결해 주는 파일로 단순 링크된 파일이다

  1. 특징
    • 심볼릭 링크는 작은 파일로 존재하며 , 이 파일은 링크된 파일올 가리 킴
    • 윈도우에서 바탕화면의 바로 가기 아이콘 개념 . 아이콘을 지운다고 해당 파일이 지워지지는 않음.
  2. 심볼릭 링크로 연결하기
    • ln-s 명령
    • In -s abc abc2: abc라는 파일을 abc2라는 심볼릭 링크 파일로 연결, abc2 파일은 새로 생성됨.
    • 해당 파일 상태를 보는 명령은 stat

편집기

리눅스 서버 운영체계에서 파일의 내용을 편집하는 일은 매우 빈번한 일이다.

이를 위해 유닉스 리눅스 환경에서 파일을 다루는 편집기 프로그램이 있다

1) VI 편집기

  • 유닉스 리눅스 서버 환경에서 가장 많이 사용는 편집기

기본명령어

vi 실행

  • 리눅스 쉘(터미널) 환경에서 시용되는 파일의 조회, 수정 . 작성을 위한 프로그램 , 윈도우에서 메모장과 같은 기능을 함.
  • vi filename : filename이라는 파일을 편집함
  • vi filename1 filename2 .. .finenameN: 파일 filename1, … ,filenameN을 전부 열어서 편집함 처음 보이는 파일은 filename1 이며 편집기 안에서 필요한 파일로 전환하여 편집 수행
  • vi *.txt: 확장 파일명으로 vi 실행 시 관련된 모든 파일이 편집됨 .

vi 명령어 모드

vi명령어모드

vi 명령어 및 주요 키

  • 명령 모드에서 사용되는 명령어

| 키 | 의미 | 키 | 의미 | | — | — | — | — | | i | 현재 커서 위치부터 입력 | I | 현재 커서 줄의 맨 앞에서 입력 | | a | 현재 커서 다음 위치부터 입력 | A | 현재 커서 줄의 맨 뒤부터 입력 | | o | 현재 커서의 다음 줄에 입력 | O | 현재 커서의 이전 줄에 입력 | | s | 현재 커서의 한 글자 지우고 입력 | S | 현재 커서 한 줄을 지우고 입력 | | ^ | 현재 줄의 처음으로 이동 | $ | 현재 줄의 마지막으로 이동 | | g g | 맨 앞 첫 번째 줄로 이동 | G | 맨 끝 줄로 이동 | | 숫자 G | 해당 숫자 줄로 이동 | u | 되돌리기 | | Ctrl+F | 다음 화면으로 이동 | Ctrl+B | 이전 화면으로 이동 | | x | 현재 커서가 위치한 글자 삭제 | X | 현재 커서가 위치한 앞 글자 삭제 | | d d | 현재 커서의 줄 삭제 | 숫자d d | 현재 커서부터 숫자만큼 줄 삭제 | | y y | 현재 커서가 있는 줄 복사 | 숫자y y | 현재 커서부터 숫자만큼 줄 복사 | | p | 복사한 내용을 현재 줄 이후로 붙여넣기 | P | 복사한 내용을 현재 줄 이전에 붙여넣기 | | w | 현재 커서에서 다음 단어로 이동 | - | 이전 줄의 처음으로 이동 | | . | 이전에 사용한 명령어 재실행 | ~ | 대소문자 변경 | | J | 현재 줄과 다음 줄을 연결 | « | 현재 줄을 왼쪽으로 내어쓰기 | | » | 현재 줄을 오른쪽으로 들여쓰기 | r | 한 글자 변경하기 | | Ctrl+G | 마지막 줄에 현재 줄 정보 출력 | ) | 다음 문장으로 이동 | | ( | 이전 문장으로 이동 | } | 다음 문단으로 이동 | | { | 이전 문단으로 이동 | + | 다음 줄의 처음으로 이동 |

  • 명령 모드에서 편집 모드로 전환하는 명령키
내용
a 커서의 오른쪽에서 입력을 받음.
o 현재 라인 아래 빈 라인을 추가하여 입력을 받음.
i 커서의 왼쪽에서 입력을 받음.
A 라인의 마지막에서 입력을 받음.
O 현재 라인 위에서 빈 라인을 추가하여 입력을 받음.
  • 마지막 행 명령 모드 명령키
내용
:q! 저장하지 않고 vi 종
:w 문서의 저장
:x 문서 저장 후 종료
:q vi 종료
:e! 그동안 작성한 문자를 무시하고 원본을 불러오

vi편집기 활용

파일 내 단어 검색

필요한단어 검색

  • 마지막행 명령 모드에서 실행함.
  • /word: word 라는 단어를 위에서 아래 방향으로 찾음
  • ?word: word라는 단어를 아래에서 위 방향으로 찾음.

검색 이후 계속해서 다음 단어 검색

  • n: 한번 검색 후 아래로 동일한 검색어를 다시 찾음.
  • N: 한번 검색 후 위로 동일한 검색어를 다시 찾음.

하나의 문자열 변경

  • 마지막 행 명령 모드에서 실행
  • s/찾을문자열/변경할문자열/로 명령
  • 정확한 표현은 :s/찾을 문자열/변경할 문자열/g로 명령
  • 현재 커서가 위치한 행에 대하여 문자열 교체

모든 문자열 변경

  • 마지막행 명령 모드에서 실행
  • :1,$ s/찾을 문자열/변경할 문자열/g로 명령
  • 1,$는 첫줄부터 끝줄까지를 의미함.
  • 1,5 라고 표기하면 첫 줄부터 다섯째 줄까지임.
서브목차