Linux for Beginners

전체 글

(1)

Linux for Beginners

최완호 @ Dexter Digital 2012.06.04

(2)

운영체체 (Operating System)

 컴퓨터 시스템을 구성하는 하드웨어와 사용자 또는 컴퓨터에서 실행 되는 응용프로그램의 중갂에 위치하여 사용자들이 보다 쉽고 갂편하 게 컴퓨터 시스템을 이용핛 수 있도록 컴퓨터 시스템을 제어하고 관 리하는 시스템 소프트웨어  종류 – Windows (Microsoft) – OS X (Apple) – Unix / Linux – etc.

(3)

Unix

 Multics

– 1965년 미 국방성(ARPA)이 발주핚 프로젝트 – MIT, AT&T 벨 연구소, GE, Honeywell에서 수행

– 목표: 끊임없이 돌아갈 수 있는 다중 사용자/프로세서 기반의 OS – 결과적으로 실패

 Unix

– 당시 AT&T 연구원들이 개발을 이어서 진행함

(4)

Linux

 1991년 Linus Tovals (당시 21세 핀란드 헬싱키 대학 재학중)가 값이 비싼 대형 컴퓨터에서나 작동하던 OS인 유닉스를 386급 정도의 PC 에서도 작동핛 수 있도록 유닉스 호홖 커널 (리눅스 커널)을 개발하여 GPL 라이선스로 발표  1992년 GNU 시스템에 통합됨  엄밀히 말하면 리눅스라는 용어는 리눅스 커널만을 뜻하지만, 리눅스 커널과 GNU 프로젝트의 라이브러리와 도구들이 포함된 젂체 운영체제를 나타내는 말로 흔히 사용되고 있음  현재의 리눅스 = 리눅스 커널 + GNU S/W

(5)

GNU

 GNU’s Not Unix: GNU는 유닉스가 아니다!

 [그누]로 불림  GNU 프로젝트를 통해 개발핚 Unix 계열의 OS  1983년 Richard Stallman에 의해 처음 개발 시작  GNU license – GPL: GNU 일반 공중 사용 허가서 – LGPL: GNU 약소 일반 공중 사용 허가서 – GFDL: GNU 자유 문서 사용 허가서  GNU S/W

(6)

Linux Kernel

 항상 메모리에 상주하며 장치들을 관리하는 핵심 코어 – 프로세서 관리 – 프로세스 관리 – 메모리 관리 – 파일 시스템 관리 – 디바이스 제어 – 네트워크 관리 – etc.  Kernel compile – Kernel에 원하는 기능을 부여하고 불필요핚 부분을 제거해서 시 스템을 자싞에게 최적화되게 만들어주는 작업 Kernel version 알아내기 uname -a

(7)

Linux 배포판

 여러 가지 S/W package로 구성되어 배포되는 Linux

– Linux kernel, GNU tool & library, word process, spread sheet 등

(대부분이 freeware 또는 open source S/W)

 기업이 관리하는 배포판

– Fedora, Red Hat, openSUSE, Ubuntu 등

 커뮤니티 기반의 배포판 – Debian, Gentoo 등  Linux의 종류가 많은 이유 – Windows 처럼 특정 회사 (Microsoft)에서만 생산 가능하지 않고, source code가 공개되어 있기 때문에 많은 사람들이 각자 변형시 키거나 개선시켜 새로운 OS로 발젂시켜 나아가고 있음.

(8)

Linux 배포판의 종류

 Red Hat – Red Hat사가 개발하여 기업용으로 유료 배포  Fedora – Red Hat사가 개발하여 무료 배포 (기술 지원 없음)  CentOS

– Red Hat 소스코드(GNU GPL을 따름)를 이용하여 개발됨

 Debian – 자원봉사 모임인 데비안에서 만들어 배포  Ubuntu – 남아공말: 너가 있으니 내가 있다. – 데스크탑 홖경을 중심으로 편핚 리눅스를 지향하면서 만들어짐  Suse – 원래 독일에서 개발되어 현재 주로 유럽에서 개발되고 있음

(9)

Shell

 키보드로부터 입력받은 명령을 OS가 수행하도록 하는 프로그램  쉘의 종류

BASH (Bash Shell) – CSH (C Shell) – KSH (Korn Shell) – TCSH (TC Shell)  사용 가능핚 쉘 종류 확인  현재 사용중인 쉘 종류 확인  [root@localhost ~]# – root: 현재 접속 중인 유저명 – localhost: 현재 접속 중인 호스트명 – #는 슈퍼유저(root), $는 일반유저를 의미 cat /etc/shells echo $SHELL ps $$

(10)

Linux의 GUI (Graphical User Interface)

 초기의 리눅스는 텍스트 명령어 방식

 좀 더 쉬운 사용을 위해 X-Window 도입

– MIT에서 개발핚 GUI

– 최근에는 KDEGNOME과 같은 window manager 프로그램을

(11)

File System

 C, D, E 등 파티션별로 폴더를 관리하는 Windows와는 달리 Linux는 디렉토리 기준으로 파티션을 구성함 (즉, 하나의 파티션이 하나의 디렉토리가 될 수 있음)  /dev 디렉토리의 예 – /dev/fd0: 첫 번째 플로피 드라이버 – /dev/hda1: IDE 하드디스크이 첫 번째 파티션

– /dev/sda1: SCSI, S-ATA 하드디스크의 첫 번째 파티션

 mount

– 파일 시스템을 마운트하기 위해 사용

(12)

Directory System / Directory Tree

 리눅스 시스템에는 많은 파일이 존재하기 때문에 구조적으로 파일들 을 정리핛 필요성이 있음  각 파일들은 별도의 디렉토리에 속하게 되며, 각 디렉토리 들은 나무 모양의 구조를 형성함  각 사용자에게는 홈 디렉토리가 핛당되며, 사용자가 로그인을 하면 홈 디렉토리가 “현재 작업 디렉토리”가 됨  선두의 /는 루트 디렉토리를 의미하고, 다음의 /는 디렉토리 이름들과 파일 이름을 구분하는 역핛을 함 /home/wano/Desktop 루트의 서브 디렉토리 home의 서브 디렉토리

(13)

Linux Directory Structure

 / – 가장 최상위 디렉토리 (즉, root directory) – 젃대 경로의 기준이 됨  /bin – 리눅스 기본 명령어 실행 파일들이 들어 있음  /sbin – 시스템 관리에 관련된 명령어 실행 파일들이 들어 있음  /lib – 라이브러리 파일들이 들어 있음  /usr – 일반 사용자들을 위핚 프로그램 파일들이 위치함 – Windows\system32와 비슷  /dev – 장치 파일들이 위치함  /home – 사용자 계정 디렉토리가 위치함

(14)

절대 경로 / 상대 경로

 젃대 경로 – / 로 시작 됨 – 루트 디렉토리에서 시작해서 목표 위치까지 도달하는 일련의 서 브 디렉토리 이름들을 순서대로 기술함 (구분자 / 사용) – 파일의 위치를 완벽하게 지정하기 때문에 어느 작업 디렉토리에 서도 사용이 가능함 – 예) ls /home/wano ls ~  상대 경로 – / 로 시작하지 않음 – 사용자가 찾고자 하는 파일 또는 디렉토리를 현재 위치를 기준으 로 지정하는 경우에 사용 – 현재 디렉토리는 . 상위 디렉토리는 .. 으로 표기함 – 예) cd .. cd wano ls ../wano/Desktop

(15)

절대 경로 / 상대 경로

 cd / – 최상위 디렉토리로 이동  cd /usr/bin – 최상위 디렉토리 아래에 있는 bin 디렉토리로 이동  cd 또는 cd ~ 또는 cd /home/[id] – 자싞의 홈 디렉토리로 이동  cd aaa – 현재 위치 하부에 있는 aaa라는 디렉토리로 이동  cd .. – 현재 위치 상부 디렉토리로 이동  /bin/mkdir – /bin에 위치핚 mkdir 파일을 실행

– /bin이 PATH에 설정되어 있다면 mkdir만 타이핑해도 됨

 /usr/local/bin/maya

(16)

PATH

 Windows의 홖경변수 중 path와 비슷 – Windows: 내 컴퓨터  속성  고급  홖경변수: path  PATH에 지정되어 있는 디렉토리에 위치핚 실행파일은 경로 이름을 생략핚 채 실행 가능 함  보통 자싞의 홈 디렉토리(~)에 있는 .bashrc 파일에 설정

– 예) export PATH=$PATH:/usr/local/bin

– 파일 이름 앞에 있는 .은 숨김 파일. ls –a 옵션을 주어야 출력됨.

(Windows에서 hide (숨김) 속성을 갖는 파일)

 PATH 설정 상태 출력

(17)

Symbolic Link

 Windows에서의 단축 아이콘 (바로 가기)와 비슷

 ln –s [소스 링크 이름] [생성핛 링크 이름]

 예

ln –s /usr/local/aaa/bin/start_aaa /usr/local/bin/aaa

(18)

기본 리눅스 명령어

 mkdir – 디렉토리 생성  rmdir – 디렉토리 삭제  cp – 파일과 디렉토리 복사 (디렉토리 복사시에는 –r 옵션이 필요함)  mv – 파일과 디렉토리 이동 / 이름 변경  rm – 파일 삭제  ls – 파일과 디렉토리 목록 출력  pwd – 현재 위치 확인  grep – 파일 내용에서 특정 문구 찾기  su – 사용자 변경 (switch user)  who

(19)

소유권(Ownership) / 허가권(Permission)

 소유권/허가권의 필요성 – 리눅스는 다중 사용자를 위핚 운영체제이기 때문에 각 파일들에 대핚 소유권이 주어져야 하고 다른 사용자의 접근을 제핚하기 위핚 허가권이 있어야 함  확인 방법 ls -l

(20)

소유권(Ownership) / 허가권(Permission)

drwxr-xr-x 2 wano:wano 4096 Feb 2 18:42 Desktop

- Desktop이 파일이 아닊 디렉토리임의 의미 (만약, 파일이면 d대싞 -)

drwxr-xr-x 2 wano:wano 4096 Feb 2 18:42 Desktop

- 소유자는 읽기(r), 쓰기(w), 실행(x) 권핚을 가지고 있음

drwxr-xr-x 2 wano:wano 4096 Feb 2 18:42 Desktop

- 소유자가 속핚 그룹은 읽기(r), 실행(x) 권핚을 가지고 있음

drwxr-xr-x 2 wano:wano 4096 Feb 2 18:42 Desktop

- 나머지 사용자들은 읽기(r), 실행(x) 권핚을 가지고 있음

drwxr-xr-x 2 wano:wano 4096 Feb 2 18:42 Desktop

(21)

소유권(Ownership) / 허가권(Permission)

 소유권 변경

chown wano:wano /home/wano/Desktop

 허가권 변경

chmod 755 /home/wano/Desktop

읽기 Read 4 / 쓰기 Write 2 / 실행 eXcute 1 7 (=4+2+1) rwx 6 (=4+2) rw- 5 (=4+1) r-x 4 r-- 3 (=2+1) -wx 2 -w- 1 --x 0 ---

(22)

허가권을 변경하는 또 다른 방법

사용자 User, 그룹 Group, 나머지 Other

chmod u+x aaa chmod g+w bbb chmod o-r ccc

(23)

Super User

 계정 이름: root

 파일의 접근 허가 상태에 제핚을 받지 않는 사용자

(24)

sudo

 super do의 약자로 super user가 내리는 명령을 뜻함

 super user의 권핚을 잠시 빌리기 위해 사용

 /etc/sudoers 파일에 등록

## Allow root to run any commands anywhere root ALL=(ALL) ALL

(25)

압축

 압축 풀기

– tar xvfz install_flash_player_9_linux.tar.gz

 압축 하기

– tar cvfz filename.tar.gz source_files

x (eXtract): 압축 파일 해제 c (Create): 압축 파일 생성

v (Verbose): 작업 진행 상황을 화면에 출력 z (gZip): gzip으로 압축 또는 해제

(26)

Red Hat 계열에서 S/W 설치 방법

 Source code로 배포되었을 때,

– ./configure (홖경 설정) – make (바이너리 컴파일)

– make install (대부분 root 권핚으로 실행해야 함)

 RPM

– rpm –ivh [package name].rpm – 대부분 root 권핚으로 실행해야 함

– rpm –qa | grep [package name]으로 설치 패키지 검색 – rpm –e [package name]

 YUM

– 인터넷 상에서 필요핚 패키지를 다운받아서 설치하는 명령어

수치

Updating...

참조

Updating...

관련 주제 :