1 부 Linux 설치 및 기본 활용 저자 : 이성미 내용목차 1. 리눅스 개요 2. 리눅스 설치 3. 설치 후 기본 작업 4. KDE&GNOME 5. 기본 명령어 1. 리눅스 개요 가. 리눅스란? 리눅스(Linux) 는 윈도우, 유닉스와 같은 컴퓨터 운영체제 중 하나로 1991년 핀란드의 헬싱키 대학에 재학중이던 리누스 토발즈(Linus Bene dict Torvalds) 에 의해 만들어졌다. 리눅스는 네델란드 브리제 대학의 교수 앤드류 타넨바움 (Andrew Tanenbaum) 이 유닉스 소스코드를 참고로 하여 만든 교육용 유닉스인 미닉스(MINIX) 운영체제에서 영감을 받아 만든 유닉스와 유사한 X86 용 운영체제이다. 지금의 리눅스는 리누스 토발즈가 발표한 커널(Kernel) 과 리처드 스톨만의 GNU 활동으로 만 들어진 공개용 유닉스 유틸리티가 하나로 결합된 운영체제가 되었다. 때문에 리눅스를 GNU/Linux 라 부르기도 한다. 리눅스는 GNU GPL에 따라 개발되고 배포되며 누구나 자유롭게 소스코드를 읽고 수정할 수 있다. (GNU GPL - http://korea.gnu.org/copyleft/) 나. 리눅스 배포판 배포판이란 리눅스 커널에 GNU GPL 라입센스를 가진 쉘 프로그램, 유틸리티 프로그램, 응용 프로그램들을 하나로 묶어 판매 또는 무료로 다운로드할 수 있도록 하는 제품을 말한다. 리눅 스 배포판 회사에서는 인터넷상에 있는 수많은 프로그램들을 테스트하여 우수한 프로그램을 선별한 후 이를 커널과 함께 묶어 하나의 운영체제로 만든다. 종류를 살펴보면 다음과 같다. 많이 알려진 리눅스 배포판의 1) Slackware 국내에서는 어느 정도 알려져 있지만 사용자는 적은 편인 슬랙웨어는 (Patrick Volkerding) 에 의해 개발되었다. 1993년 패트릭 볼커딩 슬랙웨어는 초기 배포판으로, 리눅스 사용자 층을 많이 확보하여 현재의 리눅스 배포판들의
기반을 만들어주었다. 그러나, 설치부터 관리/ 운영하는 작업이 어려워 현재는 거의 사용되지 않는다. http://www.slackware.com 2) Debian 데비안 리눅스는 SPI(Software in Public Interest) 단체가 후원하고 있으며, FSF(Free Software Foundation) GNU 프로젝트의 공식 지원을 받으며 개발되었다. 때문에, 데비안을 Debian GNU/Linux 라고 말하는데, 인기가 많은 배포판이다. http://www.debian.org, http://www.debian.or.kr 뛰어난 수행능력과 안정성으로 초창기 리눅서들 사이에는 3) Redhat 1995년 발표된 레드햇 배포판은 쉬운 설치과정으로 리눅스 사용자를 압도적으로 많이 확보한 배포판으로, RPM(Redhat Package Management) 이라는 패키지 관리 프로그램을 제작하여 리 눅스 프로그램을 쉽게 설치하고 관리할 수 있도록 하였다. 레드햇이 발표된 이후로, 레드햇을 기반으로 수많은 배포판들이 만들어졌고, 국내에서도 리눅스 배포판 시장이 활성화되었다. 국 내의 대부분의 리눅스 배포판은 레드햇을 기반으로 제작된 것이다. http://www.redhat.com, http://www.fedora.redhat.com 4) SuSE SuSE 리눅스는 독일 SuSE, Inc 에서 개발되어 영어, 불어, 독어, 이태리어, 스페인어, 포르투 갈어 등 6 개 언어로 배포되었다. SuSE 또한 쉬운 설치 과정과 기본 유틸리티 프로그램 내장 등의 이유로 상당히 인기가 많은 배포판이다. 특히 SuSE는 유럽에서 가장 많은 사용자를 확보 하고있다. http://www.novell.com/linux/ 5) Asianux Asianux는 아시아 표준 리눅스 운영체제 개발 프로젝트로서 중국의 Red Flag, 일본의 Miracle Linux, 대한민국의 한글과컴퓨터가 중심이 되어 제작 배포하는 배포판으로, 각 나라에서 추진 하고 있는 공개 소프트웨어 정책에 맞게 배포판을 제작하고 있다. http://www.asianux.com 6) 레드햇 계열 국내 배포판 - Haansoft Linux http://www.haansoftlinux.com, http://open.haansoftlinux.com 다. 리눅스의 특징 1) 멀티태스킹 지원 멀티태스킹(Multitasking) 이란 하나의 컴퓨터에서 두개이상의 작업을 동시에 수행할 수 있는 기 술이다. 리눅스에서는 동시에 여러 개의 프로세스가 구동될 수 있다. 하나이 프로세스는 이미 실행되고 있는 다른 프로세스에 관계없이 CPU 의 자원을 제한 없이 활용할 수 있고, 백그라운
드 작업처리가 가능하며, 한 프로세스가 무한루프에 들어가거나 다운되어도 그 프로세스만 종 료하면 원상복구 되므로 안정된 환경에서 프로그램을 구동할 수 있다. 2) 멀티유저 지원 멀티유저(Multuser) 란 하나의 컴퓨터에 여러 명의 사용자가 동시에 접속해 각기 자신의 프로그 램을 실행할 수 있는 기술이다. 리눅스는 기본적으로 멀티유저, 멀티태스킹을 지원하므로, 여 러 명의 사용자들이 로그인 작업을 거쳐 시스템에 접속한 후 각기 다른 프로그램을 구동하여 작업할 수 있다. 심지어 리눅스는 한 시스템에서 로그아웃하지 않은 사용자가 다른 콘솔을 통 해 다시 로그인하는 가상 콘솔기능도 지원한다. 3) GUI 환경 지원 리눅스는 유닉스의 기본 환경이었던 CUI(Command User Interface) 와 X윈도우를 사용한 GUI(Graphic User Interface) 환경을 모두 지원한다. GUI 방식의 X윈도우 환경은 윈도우 환경 과 매우 흡사하여 리눅스를 처음 접하는 사람도 쉽게 사용할 수 있다. 리눅스에서는 다양한 종류의 X 윈도우를 지원하므로, 자신이 원하는 윈도우를 골라 사용할 수 있다. 대표적인 X윈도우 환경의 데스크탑으로는 KDE와 GNOME 이 있다. 4) 다양한 파일시스템 리눅스는 UNIX, MINIX, MS 윈도우, OS/2, MacOS 등 다양한 형태의 파일시스템을 지원한다. 때문에 필요하다면 하드디스크의 한 부분을 다른 운영체제와 호환되게 설정하여 데이터를 공 유할 수 있다. 또한 리눅스는 유닉스 표준인 POSIX(Portable Operating System Interface for Computer Environment) 규격에 맞게 개발되었으므로, 유닉스 환경에서 컴파일하여 사용하는 수많은 프 로그램을 리눅스 환경에서도 컴파일하여 사용할 수 있다. 5) 공유 라이브러리 지원 공유라이브러리(Shared Library) 란 하나의 라이브러리 프로그램을 여러 개의 응용프로그램이 공유하여 사용할 수 있는 기술이다. 리눅스는 /lib 라는 디렉토리에서 공유라이브러리를 관리한다. 리눅스의 수많은 응용프로그램 과 유틸리티 프로그램들은 이 공유 라이브러리에 저장되어 있는 라이브러리를 호출하여 사용 한다. 공유 라이브러리 기술을 사용하면, 프로그램 소스가 중복되지 않아 전체적인 운영체제의 크기가 줄어들고 시스템의 성능도 높아진다. 6) TCP/IP 네트워크와 BSD 소켓 지원 리눅스는 TCP/IP를 비롯한 SLIP, PPP와 BSD 소켓에 의한 네트워크 환경을 모두 지원한다. 때문에 리눅스에서 WWW, FTP, Mail, Firewall 등 수 많은 서버 프로그램을 구동시킬 수 있 다. 라. 리눅스 관련 주요 사이트 Korean Linux Documentation Project(KLDP) - http://kldp.org
리눅스 포탈 사이트 - http://www.linux.co.kr 한국 리눅스 협의회 - http://www.linuxkr.or.kr 전국리눅스 유저 그룹 - http://www.lug.or.kr 리눅스사랑넷 - http://www.linux-sarang.net/ Freshmeat - http://freshmeat.net RPM find - http://www.rpmfind.net Open Source File - http://sourceforge.net
2. 리눅스 설치 가. 하드웨어 정보 보기 리눅스를 설치하기 전에 하드웨어에 대해 기본적으로 알아둔다. 하드디스크 종류 및 용량 메모리 용량 CD-ROM 종류 네트워크 인터페이스 카드 종류 IP 주소 / Netmask / Gateway / DNS 마우스와 키보드 타입 비디오 카드와 모니터 종류 나. 한소프트 리눅스 설치 1) CDROM 부팅 한소프트 리눅스 설치 CD 1번을 CD-ROM에 넣고 시스템을 부팅하면 아래와 같은 설치 시작 화면이 나타난다. <Enter> 를 눌러 그래픽 모드로 설치를 진행한다. 2) 설치시작 가) 설치 시작 초기화면이 표시된다. [ 다음] 을 누른다.
나) 리눅스 설치 시 사용할 언어를 선택한다. [ 한국어] 가 선택된 상태에서 [ 다음] 을 누른다. 다) 설치 동의서에 [ 동의] 를 선택한 후 [ 다음] 을 누른다. 라) 시스템에서 사용할 키보드를 선택하는 창이 표시된다. [U.S 영어] 가 선택된 상태에서 [ 다 음] 을 누른다. 3) 파티션 설정 파티션이란 하나의 디스크를 용도에 맞게 공간을 나누는 작업을 말한다. 파티션을 하는 이유 는 디스크의 효율적인 관리와 속도를 위한 것이다. 가장 간단한 파티션 방법은 / 로 표현되는 루트 파티션과 swap 파티션 두개로 나누는 것이다. 좀더 복잡한 방법은 루트, boot, usr, home 과 같은 서로 다른 성격의 디렉토리를 각각 다른
파티션으로 설정하는 방법이 있다. 파티션을 어떻게 나눌 것인가에는 정답이 없다. 서버의 환경과 목적에 따라 파티션은 두개 또 는 여러 개로 구성될 수 있고, 각 파티션의 용량도 목적에 따라 달라진다. 루트(/), /home, swap 3 개의 파티션을 나눠보도록 한다. / swap /home 여유 공간 7GB 512MB 500MB 가) 파티션 분할 방법을 선택한다. haansoft linux 는 파티션 분할 방법으로 자동 파티션 분 할 과 Disk Druid" 방식 두 가지를 제공한다. 이중 Disk Druid 를 통한 수동 파티션 설정" 을 선택한 후 [ 다음] 을 클릭한다. - 자동파티션 : 리눅스 사용에 필요한 파티션을 자동으로 생성하고 할당하므로 마운트 할 지점이나 파티션 생성을 할 필요가 없다. 단, 기존의 모든 파티션은 제거되고 리눅스를 위한 파티션으로 재구성된다. 하나의 하드디스크 전체에 리눅스를 설치할 경우 이용할 수 있다. - Disk Druid : 그래픽 방식으로 파티션을 설정하므로 사용이 쉽고 마운트 지점까지 한번에 설정 할 수 있어 초보 사용자도 쉽게 파티션을 설정할 수 있다. 나) 현재 시스템의 하드디스크에 처음 리눅스를 설치할 경우 드라이브를 초기화 할 것인지 묻 는 경고창이 표시된다. [ 예] 를 선택한다.
다) 파티션 설정을 위해 현재 상태를 표시해준다. 아래 그림은 파티션이 전혀 나눠지지 않은 IDE 하드디스크의 모습이다. swap, /home, / 파티션을 할당해본다. [ 새로 생성] 버튼을 클릭 한다. - IDE 방식의 하드디스크인 경우 Primary Master 는 /dev/hda, Primary Slave 는 /dev/hdb, Secondary Master 는 /dev/hdc, Secondary Slave 는 /dev/hdd 로 명시된다. - Linux는 Primary Partition을 총 4 개까지 만들어 사용할 수 있고, 4개 이상의 파티션이 필 요한 경우 마지막 한 개를 Extended Partition으로 확장시켜 확장된 파티션 안에 Logical Partition을 12 개까지 생성하여 사용할 수 있다. 라) [ 파티션 추가] 화면이 표시되면 파일시스템 유형에서 swap을 선택하고 용량은 메모리의 2 배 크기를 지정한 후 [ 확인] 을 누른다. 마) swap 파티션이 생성되었다. /home 디렉토리에 해당하는 파티션을 생성해본다. [ 새로 생성] 버튼을 클릭한 후 마운트 지점: /home, 파일시스템 유형: ext3, 용량: 500을 지 정한 후 [ 확인] 을 누른다. 마운트 지점은 특정 파티션과 연결시킬 디렉토리고, ext3는 리눅스 시스템이 사용하는 파일 시 스템 종류이다.
바) / 파티션을 생성한다. [ 새로 생성] 버튼을 클릭한 후 마운트 지점을 / 로 선택하고 용량은 7000 을 입력한 후 [ 확인] 을 누른다. 사) 전체 파티션이 설정된 모습이다. - RAID : Redundant Array of Inexpensive Drives로 여러 개의 하드디스크를 마치 하나의 블록장치처럼 사용하여 데이터를 백업하거나, 여러 개의 하드디스크에 분산시켜 데이터를 저 장함으로써 시스템의 속도를 향상시키는 기술이다. - LVM : Logical Volume Manager로 물리적으로 나누어진 파티션을 모아 논리적으로 하나 의 파티션으로 설정하여 사용할 수 있도록 하는 기술이다.
4) 시스템 설정 가) 부트로더 GRUB 을 설정한다. 부트 로더(Boot Loader) 란 하드디스크의 Master Boot Record 에 위치하며, 하나의 시스템에 여러 개의 운영체제를 설치한 경우 사용할 운영체제를 선택할 수 있는 화면을 표시해주고, 해 당 운영체제를 메모리에 로딩하는 작업을 실행해준다. GRUB 을 기본 부트 로더로 사용하고 있다. [ 다음] 을 누른다. 나) 네트워크를 설정한다. 네트워크 장치는 기본으로 DHCP 에 설정되어 있다. 고정 IP 주소를 설정하려면 [ 편집] 버튼을 클릭한 후 [DHCP 사용 환경으로 설정] 을 선택 해 제한 후 네트워크 정보를 입력하고 [ 확인] 을 누른다. 다) 호스트이름과 게이트웨이, DNS 주소를 입력하고 [ 다음] 을 누른다.
라) Time Zone 을 지정한다. 기본값인 [ 아시아/ 서울(Seoul)] 이 선택된 상태에서 [ 다음] 을 누른 다. 마) 리눅스는 다수의 사용자가 사용할 수 있는 멀티유저 시스템이다. 여러 유저 중 시스템의 관리자 역할을 하는 계정이 root 이다. 이곳에서는 최고의 권한을 가진 root의 패스워드를 지정 한다. 영숫자를 포함하여 지정하도록 한다. 패스워드를 지정한 후에는 [ 다음] 을 선택한다. 바) 설치할 패키지를 선택한다. 필요한 패키지만 선택하고자 한다면 [ 설치할 패키지 리스트를 직접 선택합니다.] 를 선택한 후 [ 다음] 을 누른다. 여기에서는 [ 전체설치] 를 하도록 한다. [ 다음] 을 누른다.
사) 설치 진행 메시지가 표시된다. [ 다음] 을 누른다. 5) 패키지 설치 가) 리눅스의 각 파티션을 포맷하고, 패키지들이 설치된다. Haansoft linux는 두 장의 CD로 구성되어있다. 설치도중 2번 CD로 교체하라는 메시지가 표시되면 CD 를 교체한 후 [ 확인] 을 누른다. 나) 화면 해상도 및 로그인 방식 설정 화면이 표시된다. 로그인 유형을 [ 그래픽 환경] 으로 선 택한 후 [ 다음] 을 누른다.
다) 리눅스 설치가 완료되었다. [ 재부팅] 버튼을 클릭하여 시스템을 재부팅한다. 라) 리눅스 서버가 리부팅 된 후 X 윈도우 로그인 화면이 표시된다. X 윈도우 로그인 화면에서 계정 ID와 패스워드를 입력하면 X 윈도우 화면을 확인 할 수 있고, [ 시스템] 아이콘 클릭 후 [ 종료] 를 실행하면 시스템이 종료된다.
3. 리눅스 설치 후 기본작업 가. 부팅과 로그인 1) 리눅스를 설치한 후 컴퓨터 전원을 키면 GRUB 부트로더가 제일 먼저 실행된다. GRUB 부 트로더가 기본 3 초 동안 <Enter> 입력을 대기하고 있다가, 입력이 없으면 자동으로 리눅스를 부팅한다. 2) 3 초 내에 <Enter> 를 입력하면 GRUB 초기화면으로 들어간다. 여러 개의 운영체제가 시스템에 설치된 경우 GRUB에 선택할 수 있는 운영체제 리스트들이 표 시되는데, 이때 방향키를 이용해 사용할 운영체제를 선택한 후 <Enter> 를 누른다. 3) 리눅스가 부팅되는 과정이다. 고, 각종 데몬(Daemon) 들을 구동시킨다. 리눅스는 부팅 됨과 동시에 커널이 시스템의 정보를 수집하
4) 부팅이 된 후 GUI(Graphic User Interface) 로그인 화면이 나타난다. 리눅스 시스템에 로그 인 하려면 [ 사용자 이름] 에 root, [ 패스워드] 에는 루트 사용자의 암호를 입력하고 <Enter> 를 누른다. 5) ID와 패스워드 인증 작업이 성공한 경우 X 윈도우 화면을 확인할 수 있다. 나. 리눅스 부팅 단계
다. 로그인 로그인(login) 이란 사용자가 시스템을 사용하기 위해 자신의 ID와 패스워드를 이용해 시스템의 사용권을 얻는 과정이다. 리눅스 시스템에 로그인할 수 있는 방법은 그래픽 모드와 텍스트 모드 두 가지가 있다. 로그 인 방식을 변경하는 방법에 대해 알아본다. 1) 패널의 [ 텍스트 에디터] 를 실행한 후 init 프로세서의 설정파일인 /etc/inittab 파일을 불러 온다. 다음 inittab 파일의 id:5:initdefault: 의 숫자 5를 3으로 변경하면 부팅 모드가 텍스트 모드로 변경된다. 2) 수정한 내용을 저장 한 후 시스템을 재시작하면 콘솔로 로그인 되는 화면을 확인할 수 있다. Haansoft Linux OS release 2006 Workstation : 배포판 정보 localhost login : 로그인할 사용자의 ID 를 입력한다. Password : 로그인 사용자의 패스워드를 입력한다. Last login : 마지막으로 로그인한 날짜와 위치가 표시된다. [root@localhost ~]# _ : 명령 실행 프롬프트. (root:#, 일반유저:$) 참고 : 가상콘솔 가상콘솔(Virtual Consol) 이란 하나의 컴퓨터에 가상의 터미널을 여러 개 사용하여 마치 모니 터가 여러 개 있는 것 같은 효과를 내는 것이다. 리눅스는 기본적으로 가상콘솔 6 개를 지원하고 있으며, 최대 63 개까지 설정할 수 있다. 콘솔 전환 방법은 <Alt>+<F1>~<Alt>+<F6> 과 같은 조합키를 이용하여 이동할 수 있다. 콘 솔에서 X윈도우를 실행하면 총 6 개의 윈도우(<Ctrl>+<Alt>+<F7>~<Ctrl>+<Alt>+<F12>) 를 구동시킬 수 있다. 라. 시스템 종료하기 리눅스 시스템은 정확하게 시스템 종료 명령을 실행해야한다. 리눅스는 시스템이 부팅 될 때 여러 가지 데몬 프로세스들이 함께 구동된다. 때문에 프로세스 정보를 기록하지 않은 상태로 시스템을 종료하면 다음 부팅 시에 fsck(file system check) 가 구동되고, 최악의 경우 정상적 인 부팅을 할 수 없게 된다. 그래픽 모드에서 리눅스 시스템을 종료하는 방법은 앞에서 살펴보았고, 콘솔 모드에서 리눅스
시스템을 종료하는 방법은 다음과 같다. 1) shutdown 명령 사용 명령형식 : shutdown [ 옵션] [ 시간] [ 경고 메시지] 옵션 : -r 리부팅 -h 시스템 정지 -c 실행중인 shutdown 명령 취소 시간 : now 지금 바로 실행한다. +m 지정한 m분 뒤에 실행 hh:mm 사용 예 : # shutdown -r now 시: 분 지정 # shutdown -h now # shutdown -h +5 2) halt shutdown -h now와 같은 의미로 halt 명령을 실행하면 시스템을 종료할 수 있다. # halt 3) init 0 /etc/inittab의 runlevel 값인 0 을 지정한 것과 같다. # init 0
4. KDE & GNOME 가. X 윈도우 개요 및 설정 1) X Window란 리눅스의 모체인 유닉스는 CUI(Command User Interface) 를 기본으로 명령어로만 작동시키는 명령어 기반 운영체제이다. 그러나, GUI(Graphic User Interface) 환경이 보급되고, 활성화되 면서 유닉스에서도 GUI 환경을 제공하고자 하는 노력이 생겨났다. 1984년 MIT 공대에서 X 윈도우가 개발되었고, 현재 사용되는 X11은 1987년에 만들어진 X의 11 번째 릴리즈 버전이다. 현재 리눅스에서 사용되는 X윈도우는 XFree86이며 XFree86 기반으로 구동되는 대표적인 윈도 우 관리자로는 GNOME과 KDE 가 있다. 콘솔에서 X 윈도우를 구동하고자 한다면 startx" 명령을 실행한다. 2) 기본 윈도우 관리자 변경 1 기본 윈도우 관리자를 변경하려면 X 윈도우가 구동된 상태에서 [Start]-[ 응용프로그램]-[ 액 세서리]-[ 터미널] 을 실행한 후"switchdesk 명령을 실행한다. 2 다음 사용할 데스크 탑을 선택한 후 [ 확인] 을 누른다. 3 X 윈도우를 종료한 후 startx" 명령을 다시 실행해 X 윈도우를 실행한다. 나.. GNOME GNOME은 GNU 프로젝트에서 개발한 윈도우 관리자로 GNU GPL 라이센스를 따르고 미국을 중심으로 개발되었다. http://www.gnome.org, http://www.gnome.or.kr 1) 바탕화면 가) 기본 아이콘
1 2 컴퓨터 : 디스크 장치들의 마운트 & 언마운트 작업을 수행할 수 있다. root 이 폴더 : Gnome 파일 관리자로 로그인 사용자의 홈디렉토리를 표시하고, 파일 및 디 렉토리를 관리할 수 있다. 3 휴지통 할 수 있다. : Gnome 데스크탑 화면에서 파일을 휴지통에 넣어두었다가 이후에 지우거나 복구 나 ) 팝업메뉴 1 폴더 만들기 : 바탕화면에 새로운 폴더를 생성한다. 생성된 폴더는 ~/Desktop 디렉토리에 생성된다. test 라는 이름의 폴더를 생성한 후 터미널에서 ~/Desktop 디렉토리를 확인해보자. 2 실행아이콘 만들기 : 바탕화면에 단축아이콘을 생성한다. 바탕화면에 Gnome 터미널(/usr/bin/gnome-terminal) 단축아이콘을 생성해보자. 3 문서만들기 : [ 문서만들기]-[ 빈파일] 을 실행하면 파일편집기(gediter) 로 편집이 가능한 아 스키텍스트 파일이 생성된다. 바탕화면에 sample.txt 파일을 생성하고, Sample File 이라는 문자열을 저장하여보자. 4 5 6 7 이름 순서로 정리 맞춤 유지 붙여넣기 바탕화면 바꾸기 배경이미지는 : 바탕화면 아이콘을 이름순으로 정렬시킨다. : 맞춤 유지를 선택하면 아이콘을 상하 자동 정렬한다. : 버퍼에 저장된 내용을 표시한다. : 바탕화면을 변경한다. /usr/share/background/images 디렉토리에 있다. 배경이미지를 변경하여 보자. 2) 메인메뉴 가 ) 응용 프로그램
1 [ 그래픽]-[K PDF] : Acrobat Reader와 비슷한 프로그램으로 PDF 파일을 볼 수 있다. 2 [ 그래픽]-[K 스냅샷] : 화면을 캡쳐할 수 있다. 3 [ 그래픽]-[Gimp] : 윈도우 포토샵과 비슷한 프로그램으로 레이어를 이용한 그래픽 이미지 편집이 가능하다. 4 [ 그래픽]-[ 이미지 뷰어] : 간단한 이미지 뷰어 프로그램이다. 5 [ 사운드& 비디오]-[CD 플레이어] : 오디오 CD 를 재생한다. 6 [ 사운드& 비디오]-[Xine] : 동영상, DVD 플레이어 7 [ 시스템 도구]-[K 사용자 관리] : 시스템에 계정을 추가/ 삭제/ 수정한다. 8 [ 시스템 도구]-[K 패키지 관리] : 리눅스 패키지를 관리한다. 9 [ 시스템 도구]-[ 네트워크 도구] : 네트워크 인터페이스 장치의 세부 정보 및 ping, netstat 등의 명령을 GUI 모드에서 실행할 수 있다. 10 [ 시스템 도구]-[ 시스템 감시] : 프로세스, 시스템 자원, 장치를 모니터 링 한다. 11 [ 액세서리]-[ 리눅스용 알집] : alz 확장자를 가진 압축파일의 압축을 해제한다. 12 [ 액세서리]-[ 터미널] : CUI 명령을 실행하는 터미널창을 표시한다. 13 [ 액세서리]-[ 텍스트 편집기] : 윈도우 메모장과 비슷한 문서편집기 14 [ 인터넷]-[gFTP] : FTP 클라이어트 프로그램 15 [ 인터넷]-[ 메신저] : kopete 프로그램으로 메신저를 사용할 수 있다. [ 인터넷]-[ 선더버드] : Mail Client 프로그램 [ 인터넷]-[ 파이어폭스] : 웹 브라우저 [ 프로그래밍]-[ 퀀타 플러스] - HTML 문서 편집기 나 ) 환경설정 1 [ 네트워크]-[ 네트워크] : 네트워크 환경을 설정한다. 2 [ 네트워크]-[ 서비스] : 리눅스 부팅 시 자동으로 실행할 서비스를 설정하거나 현재 구동중 인 프로세스 데몬을 관리한다. 3 [ 데스크탑 환경]-[ 날짜& 시간] : 리눅스 서버의 날짜/ 시간을 변경한다. 4 [ 데스크탑 환경]-[ 바탕화면] : 바탕화면 이미지를 변경한다. 5 [ 주변장치]-[ 디스플레이설정] : 화면에 보여지는 해상도 및 디바이스 장치를 수정한다. 6 [ 주변장치]-[ 사운드카드 검출] : 사운드 카드를 설정한다. 7 [ 주변장치]-[ 프린터 설정] : 프린터를 설정한다. 8 [ 추가환경설정]-[ 이동식 드라이브 및 미디어] : USB 디스크나 CD, DVD 를 어떻게 읽을 것인지 세부적인 설정을 한다. 9 [ 그놈제어판] : 시스템의 환경설정을 전체적으로 모아놓은 프로그램 10 [ 화면보호기] : 화면 보호기 설정 다 ) 네트워크 서버 윈도우의 [ 네트워크 환경] 과 같이 로컬 네트워크에 연결된 서버를 보여준다.
라 ) 파일 브라우저 리눅스 파일관리자로 윈도우 탐색기와 비슷하다. 마 ) 한소프트 업데이터 현재 설치된 프로그램의 최신 업데이트 정보를 확인 하거나, 패키지를 업데이트한다. 또한, 설 치되지 않은 패키지는 FTP 서버를 통해 설치할 수 있다. ypbind 라는 패키지를 삭제한 후 다 시 설치해보자. 바 ) 메뉴 편집 [Start] 버튼에서 오른쪽 마우스 버튼을 클릭한 후 [ 메뉴 편집] 을 실행하면 메뉴에 특정 프로 그램 단축 아이콘을 추가하거나, 불필요한 아이콘을 제거할 수 있다. 또한 [Start] 메뉴에 있는 각 단축 아이콘들은 바탕화면이나 패널로 복사하여 넣을 수 있다. 메뉴에 있는 터미널 아이콘을 패널에 더해보자. [Start]-[ 응용프로그램]-[ 액세서리]-[ 터미널] 아이콘에서 오른쪽 마우스 버튼을 클릭한 후 [ 실행 아이콘을 패널에 더하기] 를 선택한다. 3) 패널 가 ) 단축아이콘 단축아이콘은 관리자가 필요하면 언제든 추가/ 삭제할 수 있다. 각 아이콘에 오른쪽 마우스 버 튼을 클릭하여 아이콘의 모양이나 정보를 변경할 수 있다. 1 바탕화면 보기 : 아이콘을 클릭하면 바탕화면에서 구동중인 모든 프로그램이 비활성화 되 어 작업 창으로 내려간다. 2 파이어폭스 브라우저 : 모질라 프로젝트로 만들어진 웹 브라우저 3 선더버드 : 모질라 프로젝트로 만들어진 메일 클라이언트 프로그램 4 파일브라우저 : 리눅스 파일관리자 5 텍스트 편집기 : 문서편집기 나 ) 작업공간 작업공간은 기본 4 개로 구성되며, 작업공간에서 오른쪽 마우스 버튼을 클릭한 후 [ 기본설정] 을 실행하면 작업공간의 개수나 이름을 변경할 수 있다. 다 ) 퀵런쳐 1 hsupdater : 온라인 패키지 업데이트 프로그램. 2 3 다국어 입력표시기 네트워크 연결상태 4 볼륨 : 볼륨 조절기 : : 한글 또는 영어 입력 상태 표시 네트워크의 연결 상태와 인터페이스 정보 확인
다.. KDE KDE는 스웨덴의 트롤테크사에서 개발한 Qt 라이브러리(C++ 라이브러리) 를 이용해 만들어졌 다. http://www.kde.org http://www.kde.or.kr 1) 바탕화면 가 ) 기본 아이콘 1 CD 레코더 : CDROM Mount/Unmount 단축 아이콘. 2 3 시스템 : 윈도우의 내 컴퓨터와 비슷한 프로그램으로 저장장치 연결, 공유 네트워크 연결, 홈 디렉토리 폴더 관리등을 수행할 수 있다. 홈 : 파일 관리자로 로그인 사용자의 홈 디렉토리를 표시 나 ) 팝업메뉴 1 Konsole... : CUI 명령을 실행하는 터미널 창을 표시한다. 2 3 4 5 6 7 새로 만들기 : 바탕화면에 새로운 폴더, 텍스트파일, HTML 파일 및 링크 파일등을 생성한다. 생성된 폴더는 "~/kdedesktop" 디렉토리에 생성된다. 바탕화면에 콘솔(/usr/bin/konsole) 단축아이콘을 생성한 후 터미널에 서 ~/kdedesktop 디렉토리를 확인해보자. 명령실행 예를들어 : X 윈도우상에서 구동되는 간단한 명령을 입력하여 실행 switchdesk [ 명령실행] 을 이용해 실행시킨다. 명령을 실행할 때 터미널을 구동할 필요 없이 [ 명령실행] 을 클릭한 후 kedit" 명령을 입력해 실행해보고, ls 명령 을 실행해보시오. 실행취소 : Undo. 붙여넣기 Desktop 화면에서 이전에 수행했던 작업을 취소한다. : 버퍼에 저장되어 있는 내용을 표시한다. 아이콘 : 바탕화면의 아이콘을 정렬한다. 바탕화면 아이콘을 가로로 정렬시킨다. 창 : 실행되는 윈도우 창의 배치 상태를 선택한다. 8 데스크톱 새로고침 : Reload
9 10 11 12 데스크톱 설정 : K 데스크톱 관리자를 통해 바탕화면이미지, 화면 보호기, 화면의 해상도등을 설정한다. 사용자 전환 : 현재 로그인되어 있는 세션외 다른 세션(KDE나 Gnome) 을 구동시킨다. 여러 개의 세션이 실행된 경우 이동 키는 <Ctrl>+<Alt>+<F7>, <Ctrl>+<Alt>+<F8> 이다. 세션잠금 : 현재 화면을 잠그고 화면 보호기를 구동시킨다. 세션을 열기 위해서는 로그인 사용자의 패스워드를 입력해야 한다. 로그아웃 : 현재의 KDE 세션을 종료한다. X로 로그인 한 경우에는 [ 시스템 종료] 와 [ 시스템 재시작] 메뉴도 함께 표시된다. 나 ) 메인 메뉴 & 패널 [ 시작메뉴]-[ 응용프로그램]-[ 시스템도구]-[ 콘솔] 아이콘을 패널에 항목으로 추가한다. 바탕화면에 K 편집기(/usr/bin/kedit) 단축아이콘을 생성한 후 패널에 복사해본다.
5. 기본 명령어 가. 디렉토리 관리 명령 (1) 현재 작업 디렉토리 출력 (pwd) 및 작업 디렉토리 변경 (cd) pwd 명령은 현재 작업 중인 디렉토리 이름을 출력하고, cd 명령은 현재 작업 중인 디렉토리 를 변경한다. 명령형식 : pwd 명령형식 : cd [ 디렉토리명] (2) 디렉토리 내용 표시 - ls 명령형식: ls [ 옵션] [ 디렉토리 또는 파일명] 옵션: -l 파일정보를 모두 출력한다. -a 숨김파일을 포함한 모든 파일 및 디렉토리를 출력한다. -d 디렉토리 파일의 리스트만 출력한다. -R 현재 작업 디렉토리와 하위 디렉토리 모두를 출력한다. -i 파일의 inode 번호를 함께 출력한다.
drwxr-x-x 3 root root 4096 5월 25 10:24 Desktop d : 파일의 종류 rwxr-xr-x : 파일의 허용모드 3 : 링크 수 root : 파일의 소유자 root : 파일의 소유 그룹 4096 : 파일의 크기 5월 23 10:24 : 파일이 생성된 날짜 Desktop : 파일이름 파일의 종류 - 일반파일 d 디렉토리 c 문자 디바이스 파일 b 블럭 디바이스 파일 p 파이프 파일 l 심볼릭 링크 파일 s 소켓 파일 파일의 허용모드 r 읽기 가능 모드 w 쓰기 가능 모드 x 실행 가능 모드 - 파일에 대해 아무 것도 할 수 없다. 파일의 허용모드는 3 글자씩 그룹화하여 의미를 부여한다. user(owner) : 파일을 생성한 소유자에 대한 허용모드 group : 소유자가 포함된 그룹에 대한 허용모드 others : 소유자, 그룹을 제외한 다른 사용자에 대한 허용모드 (3) 디렉토리 생성 - mkdir mkdir 명령은 Make Directory 의 약자로, 새로운 디렉토리를 생성한다. 명령형식 : mkdir [ 옵션] [ 디렉토리명] 옵션 : -p : 존재하지 않는 부모 디렉토리를 생성한 후 하위 디렉토리도 함께 생성한다. (4) 디렉토리 삭제 - rmdir rmdir 명령은 Remove directory 의 약자로, 비어있는 디렉토리를 삭제한다. rmdir은 삭제하고자 하는 디렉토리가 비어 있을 경우에만 실행되므로, 디렉토리 삭제를 실행하기 전에 먼저 디렉 토리 내의 모든 파일과 하위 디렉토리를 먼저 삭제해야 한다.
명령형식 : rmdir [-p][-s] [ 디렉토리이름] 나. 파일 관리 명령 (1) 파일 복사 - cp cp 명령은 파일을 복사하고자 할 때 사용한다. 한 개 또는 복수개의 파일을 다른 파일 또는 디렉토리에 복사한다. 명령형식 : cp [ 옵션] 원본파일명 대상파일명 옵션 : -i 복사할 파일이 존재할 때 복사할 것인지 묻는다. -r 하위 디렉토리 및 파일들을 순차적으로 복사한다. -f 복사할 파일이 존재할 때 강제로 삭제하고 복사한다. -a 원본 파일의 속성, 링크 정보들도 복사한다. (2) 파일 이동 - mv mv 명령은 파일을 다른 디렉토리로 이동하거나, 파일 이름을 변경할 때 사용한다. 명령형식 : mv [ 옵션] 원본파일명 대상파일명 옵션: -i 대상 파일이 있는 경우 Overwrite 할지 묻는다.
(3) 파일 삭제 - rm 파일 또는 디렉토리를 삭제 할 때 사용한다. 명령형식 : rm [ 옵션] 파일명 옵션: -i 파일 삭제 전에 삭제할 것인지 묻는다. -f 삭제할 것이지 묻지 않고 강제로 삭제한다. -r 하위 디렉토리와 모든 파일을 삭제한다. (4) 파일 내용보기 - cat 지정한 파일을 순차적으로 읽어 들이고 표준 출력으로 출력한다 명령형식 : cat [-n] 파일명 -n 라인번호와 함께 출력한다.
(5) 화면 단위로 파일 내용보기 - more 파일의 내용을 페이지 단위로 출력한다. 명령형식 : more [+ 줄번호] 파일명 + 줄번호 출력을 시작할 줄 번호를 지정한다. 한 페이지가 넘는 파일 내용을 출력할 경우 화면 하단에 ----More---- 라는 메시지가 출 력된다. 이 상태에서 사용할 수 있는 명령은 다음과 같다. [Space Bar] 다음 페이지 출력 b 이전 페이지 출력 [Enter] 다음 줄 출력 / 문자열 찾고자 하는 문자열이 위치한 페이지 출력!<command> 리눅스 명령을 실행한다. q 종료 (6) 파일의 특정부분 보기 - head / tail 파일명의 첫 번째 10 라인만 출력한다 명령형식 : head [- 줄수] 파일명 tail [- 줄수] 파일명
-줄수 파일의 처음( 끝) 부터 지정한 줄 수까지 출력한다. 다. 검색 명령어 (1) 패턴 검색 - grep grep은 Global REgular expression & print의 약어로 지정하는 패턴과 일치하는 내용이 있으 면 표준 출력으로 출력하는 명령이다. 명령형식 : grep [ 옵션] 패턴 [ 대상파일] 옵션: -c 패턴과 일치하는 라인의 수만 출력한다. -i 패턴을 검색하는 동안 대/ 소문자를 구분하지 않는다. -l 패턴과 일치하는 라인을 가진 파일이름만 화면에 출력 -n 패턴과 일치하는 라인의 내용을 라인번호를 붙여서 출력 (2) 파일 검색 - find find 한다. 명령은 명시된 디렉토리 이하 모든 하위 디렉토리에서 다양한 옵션을 이용해 파일을 검색 명령형식 : find 경로 [ 옵션] 파일명 옵션 : -name -type 파일 이름을 검색 파일 타입 검색
-perm -exec 실행명령 파일 퍼미션 검색 {} \; 검색 후 명령 실행 (3) 파일 검색 - which / whereis which 명령은 PATH 에 설정된 디렉토리에서 명령어를 검색한다. whereis 명령은 검색 명령의 바이너리, 소스, 맨 페이지의 위치를 알려준다. 라. 디스크 관련 명령어 (1) 디스크 용량 확인 - df df 명령은 지정한 파일 또는 디렉토리가 존재하는 파티션의 디스크 공간 정보를 표시한다. 명령형식 : df [ 옵션] 파일이름 옵션: -a 생략된 0 블록 크기의 파일 시스템도 보여준다. -h 보기 쉬운 용량 단위로 표시한다. ( 예. 1G, 250M, 1K)
(2) 디스크 사용량 확인 - du du 명령은 지정한 파일 또는 디렉토리의 사용 공간을 보여준다. 파일이름이나 디렉토리 명을 생략했을 경우 현재 디렉토리를 기준으로 전체 파일과 디렉토리 용량을 표시한다. 표시되는 기본 단위는 1KB 이다. 명령형식 : du [ 옵션] 파일이름 옵션: -a 하위 디렉토리에 존재하는 모든 파일들의 정보를 보여준다. -h 보기 쉬운 용량 단위로 표시한다. ( 예. 1G, 250M, 1K) -s 하위 디렉토리를 포함하여 전체 사용량만 표시한다.
2 부 Linux 시스템 관리 이성미 내용목차 1. 2. 3. 4. 5. 6. 디렉토리 구조 및 파일의 종류 프로세스 관리 백업과 압축 패키지 관리 파일 시스템 관리 사용자 계정 관리 1. 디렉토리 구조 및 파일의 종류 가. 디렉토리 트리 리눅스를 설치하면 수많은 디렉토리와 파일들이 설치되는데, 그 파일들은 모두 용도와 성격에 따라 각각 다른 디렉토리에 저장된다. 시스템 관리자는 리눅스의 기본 디렉토리의 의미를 알 고, 어떤 파일들이 어느 디렉토리에 존재하는지 알고 있어야한다. 디렉토리 의 미 / Root 모든 파일 시스템의 최 상위 디렉토리. /bin Binarys 명령어 실행파일이 저장된 디렉토리 /boot Boot 부트 이미지가 저장된 디렉토리 /dev Device 디바이스 파일들이 저장된 디렉토리 /etc Etcetera 시스템 환경설정 파일이 저장된 디렉토리 /home Home 사용자의 기본 홈 디렉토리 /lib /lost+ fonund /misc Libraris Lost+found Miscellaneous 공유라이브러리 및 커널 모듈들이 저장된 디렉토리 fsck 가 참조할 손상된 파일시스템 정보가 저장된 디렉토리 아키텍쳐에 독립된 파일이 저장된 디렉토리 /mnt Mount 디바이스 마운트 포인트 디렉토리 /opt Operation 애드온 프로그램이 저장된 디렉토리 /proc Process 커널과 프로세스를 위한 가상파일시스템 디렉토리 /root Root home 슈퍼유저 root 계정의 홈 디렉토리 /sbin System binarys 시스템 명령어 디렉토리
/sys System 부팅시 커널에 로드된 하드웨어 장치의 세부 정보가 저장된 디렉토리 /tmp Temporary sticky bit. 임시 디렉토리 /usr user 각종 유틸리티 및 응용프로그램이 저장된 디렉토리 /var variable 가변 자료 디렉토리 나. 리눅스 파일의 종류 리눅스는 모든 장치를 파일이라는 단일 인터페이스로 관리한다. 리눅스는 윈도우에서 접할 수 있는 일반적인 파일이나 디렉토리부터 시작해서 링크, 디바이스 파일, 소켓, 파이프 등 다양한 종류의 파일이 존재한다. 이 모든 종류의 파일은 쓰이는 용도는 다르지만 구조는 동일하다. 1) 일반파일 리눅스에서 가장 많은 부분을 차지하는 것이 일반파일(Regular file) 이다. 일반 파일에는 음악, 그림, 텍스트 등 어떠한 형식의 데이터도 저장이 가능하다. 때문에 일반파일은 저장된 데이터 형식에 따라 파일의 형식이 정해진다. 2) 디렉토리 디렉토리(Directory) 는 파일의 이름과 i-node 를 연결(link) 하는 역할을 수행한다. 3) 심볼릭 링크 심볼릭 링크(Symbolic link) 는 윈도우의 단축아이콘과 비슷하다. 심볼릭 링크는 일반 파일과는 달리 자기 자신이 직접 데이터를 가지고 있지 않고, 실제 데이 터가 있는 파일의 위치 정보를 가진다. 때문에 심볼릭 링크 파일과 원본 파일은 하나의 데이 터 블록을 공유하지만, 서로 다른 i-node 를 가진다. 심볼릭 링크 파일의 크기는 원본 파일 경 로명의 글자 수이다. 4) 하드 링크 하드 링크(Hard link) 는 디렉토리에서 파일의 이름과 i-node 를 연결하는 그 자체이다. 하나의 i-node 에는 서로 다른 여러 개의 파일이름이 존재할 수 있고, i-node 하나에 몇 개의 파일이
름이 링크되었는지는 i-node 에 저장된 링크 카운트(link count) 를 통해 알 수 있다. 처음 파일을 생성하면 링크카운트는 항상 1 부터 시작하고, 하드링크를 만들 때마다 링크 카운 트는 증가한다. 5) 디바이스 파일 디바이스 파일(device file) 은 시스템의 하드웨어나 주변 기기를 나타내는 파일이다. ls 명령으 로 디바이스 파일의 크기를 보면 3, 0 이나 2, 0 과 같은 숫자 형태로 표시된다. 이것은 실제 디바이스 파일의 크기가 아니라 디바이스 파일이 어떤 종류인지를 나타내는 숫자와 위치 정보 이다. 디바이스 파일은 캐릭터 디바이스 파일과 블록 디바이스 파일 두 가지 종류로 분류한다. 캐릭 터 디바이스 파일은 바이트 단위로 데이터를 입출력하고, 블록 디바이스 파일은 한 블록 단위 로 데이터를 입출력한다. 캐릭터 디바이스 파일로는 터미널, 프린터 장치 등이 속하고, 블록 디바이스 파일은 디스크, 테이프 장치 등이 속한다.
2. 프로세스 관리 프로세스(Process) 란, 현재 실행중인 프로그램을 말한다. 프로세스 구조도 파일시스템 구조와 같이 계층적인 구조를 가지며, 부모와 자식 프로세스로 이루어진다. 가.. ps 현재 실행 중인 프로세스의 상태를 출력하는 명령이다. 아무런 옵션이 설정되지 않은 경우에 는 현재 사용 중인 단말기와 관련된 프로세스 정보만 출력한다. 명령형식 옵션: : ps [ 옵션] -l 긴 형식으로 출력 -u 프로세스를 실행한 사용자와 실행 시간을 표시 -a 다른 사용자들의 프로세스 현황 표시 -x 터미널 제어 없이 프로세스 현황 표시 -e 시스템 프로세스에 관한 정보를 출력 -f 프로세스 상태를 full list로 출력 UID : 프로세스를 실행한 사용자 ID PID : 프로세스 ID PPID : 부모 프로세스 C : 스케쥴링을 위한 프로세스 소모량 STIME : 명령어가 실행된 시간 TTY : 명령어가 구동된 터미널 TIME : 사용한 CPU 시간 CMD : 실행한 프로세스 이름 -aux 를 사용하면 다른 사용자들의 프로세스와 터미널에 독립적인 프로세스( 커널 프로세스) 들 을 UID 와 함께 출력한다.
USER : 프로세스를 실행한 사용자 ID PID : 프로세스 ID %CPU : 프로세스가 사용하고 있는 CPU 점유율 %MEM :프로세스가 사용하고 있는 메모리 점유율 VSZ : 프로세스가 사용하고 있는 가상 메모리를 byte 단위로 표시 RSS : 프로세스가 사용하는 메모리 size를 KB단위로 표시 STAT : 프로세스의 상태 S - Sleeping. W - swapped out. R - Runnable. D - uninterruptible sleep. T - Traced or stopped. Z - a defunct("zombie") process. START : 프로세스가 실행된 시간 TIME : 사용한 CPU 시간 CMD : 실행한 명령어 이름 참고 : 데몬 프로세스 데몬(Daemon) 이란, 커널상에서 백그라운드 모드로 실행되는 프로세스로, 커널에 상주해 있으 면서 클라이언트의 서비스 요청을 있을 때만 동작하는 프로세스이다. 데몬은 클라이언트의 요 청이 없는 경우 Sleep 상태에 있어 CPU 에는 부하를 주지 않지만, 시스템의 자원( 메모리) 을 상당량 차지한다. 때문에 불필요한 데몬이 구동되지 않도록 데몬을 관리하도록 한다. 특정 데 몬이 구동중인지 확인하는 명령은 다음과 같다. 나.. pstree ps 에 의해서 출력되는 프로세스 정보를 트리 형태로 나타낸다. 명령형식 : pstree [ 옵션]
옵션: -p PID 와 함께 표시한다. -u 특정 사용자의 프로세스만 표시한다. 다.. top 시스템 프로세스 상태를 실시간으로 화면에 보여주는 유틸리티로 CPU 사용률이 높은 순서로 출력된다. 화면의 갱신은 디폴트로 5 초마다 수행된다. top 실행 중 command mode로 되돌아 가려면 q 를 입력한다. 명령형식 : top [-d delay] -d delay 갱신될 초를 지정한다. 라.. kill / killall kill 은 프로세스를 재활성화(1. SIGHUP) 하거나 종료(15. SIGTERM) 또는 프로세스 강제 중단 (9. SIGKILL) 할 때 사용한다. kill 명령을 이용해 프로세스를 종료할 때는 PID 를 사용한다. killall 명령은 프로세스 이름을 이용해 프로세스를 kill 한다. 같은 이름의 프로세스가 여러 개 구동중인 경우 사용한다. 명령형식 : kill [ -l ] [ - 시그널번호 ] 프로세스ID killall 프로세스이름
3. 백업과 압축 백업(Backup) 이란 원래의 데이터가 소실되었을 때를 대비하여 복사해 두는 것을 말한다. 과거 에는 백업 장비로 테이프 장치를 많이 사용해 왔으나, 현재는 온라인을 이용한 백업센터나, 또 는 하드디스크를 이용해 백업을 많이 하고 있다. 가. 백업 명령 - tar tar(tape ARchive) 명령은 파일들의 속성을 원본 상태로 유지하면서 파일과 디렉토리를 하나 의 파일로 묶어준다. 인터넷에서 확장자.tar를 가지는 파일은 tar 명령으로 아카이브된 파일들 이다. 명령형식 : tar [ 옵션 ] 아카이브파일이름 디렉토리/ 파일 옵션: c x r t v u z j Create. extract. Replace. Table. Verbose. Update. 아카이브 생성 아카이브로부터 파일을 추출 아카이브 된 파일에 새로 추가 목차 테이블보기 tar+gunzip. gzip 상세한 정보 출력 최근 파일을 아카이브 명령으로 압축 또는 압축해제 tar+bunzip2. bunzip2로 압축 또는 압축해제 나. 압축 프로그램 앞에서 다룬 tar 명령은 파일을 단순히 아카이브하기만 한다. 일반적으로 아카이브 된 파일은 압축 프로그램을 이용해 적은 용량으로 파일을 압축하여 보관한다. 1) gzip, gunzip 압축 프로그램으로 가장 일반화 된 프로그램이 gzip 이다. gzip 명령으로 압축을 하면 확장자가
.gz 인 압축파일이 생성되고, 압축된 파일은 gunzip 명령을 사용하여 압축 해제한다. gunzip은.gz 파일뿐만 아니라.zip 이나.Z 파일도 압축 해제할 수 있다. 압축 명령형식 : gzip [ 옵션] 파일명 옵션 : -1 압축시간을 단축하는 대신 압축률이 떨어진다. -9 압축률이 높은 대신 압축시간이 길어진다. -r 하위 디렉토리의 파일까지 압축한다 -d 압축해제 시 사용한다 압축해제 명령형식 : gunzip 압축파일명 또는 gzip -d 압축파일명 2) bz2, bunzip2 bzip2는 gzip 보다 더 높은 압축률을 가진다. bzip2 명령으로 파일을 압축하면, 입력 파일명 뒤 에.bz2 라는 확장자가 붙은 압축 파일이 만들어진다. bzip2로 압축된 파일은 bzip2 -d 또는 bunzip2 명령으로 압축 해제한다. 압축 명령형식 : bzip2 파일명 압축해제 명령형식 : bzip2 -d 압축파일명 또는 bunzip2 압축파일명 3) tar 명령과 압축 명령 함께 사용 : -z, -j tar 명령에서 -z 옵션을 사용하면 gzip 프로그램을 불러와 아카이브와 압축을 함께 수행한다. 마찬가지로 -j 옵션을 사용하면 bzip2 명령이 함께 수행된다.
4. 리눅스 패키지 관리 가. RPM 패키지의 개요 패키지(Package) 란 각 배포판에 맞춰서 프로그램을 컴파일하고 기본설정을 한 후 관련성 있는 파일들을 묶어놓은 것을 말한다. RPM(Redhat Package Manager) 은 패키지 형태로 만들어진 프로그램을 설치하고 삭제하는 등, 프로그램 관리를 쉽게 할 수 있게 해주는 관리도구이다. 리눅스 RPM 패키지는 RPM 패키지 파일의 구조는 다음과 같다. sendmail-8.13.6-1hs.i386.rpm http://rpmfind.net에서 검색하여 다운로드 받아 설치할 수 있다. 패키지이름 - 버전 - 릴리즈. 아키텍쳐.rpm 패키지이름과 버전 : 패키지이름과 버전은 rpm 으로 패키지 할 때 사용한 소스파일의 이름, 버전을 그대로 사용한다. 릴리즈 : 릴리즈(Release) 는 패키지를 제작자가 몇 번에 거쳐 갱신( 패키지) 했는지를 표시한 다. 1hs는 한소프트 리눅스에서 1 번 패키지 했다는 의미이다. 아키텍쳐 : 패키지가 설치될 수 있는 컴퓨터 아키텍쳐(Architecture) 를 말한다. RPM 패키지에 서 사용하는 아키텍쳐는 다음과 같다. sparc 썬 스팍 시스템 alpha 알파 시스템 ppc 파워 PC noarch 모든 아키텍쳐에 설치 src RPM 소스 i386 Intel X86 시스템 나. RPM 명령어 RPM 패키지 관리 도구를 실행하는 명령어는 rpm 이다. rpm 명령어와 여러 옵션을 사용해서 rpm 패키지를 설치하거나 삭제한다. 명령형식 : rpm [ 옵션] [RPM 패키지명] 옵션 : -i Install. 패키지를 설치한다. -U Upgrade. 이전 버전의 설정파일을 백업한 후 설치한다. -e Erase. 설치된 패키지를 삭제한다. -q Query. 패키지 질의. 아래 하위 옵션과 함께 사용한다. -a All. 설치된 모든 패키지 리스트 출력 -i Information. 패키지의 세부 정보 출력 -l List. 패키지에 포함된 파일리스트 출력 -f File. 특정 파일이 속한 패키지 목록 출력 -v Verbose. 설치 진행 과정을 좀더 자세히 보여준다. -h Hash. 설치 진행 과정을 # 으로 보여준다. --nodeps --force 의존성을 무시하고 설치한다. 강제로 패키지를 설치한다.
다. rpm 패키지 설치 RPM 패키지를 설치 할 때에는 -Uvh" 옵션이나 -ivh" 옵션을 사용한다. 일반적으로는 -Uvh" 를 더 많이 사용한다. 패키지를 설치할 때 의존성(Dependency) 에러가 발생할 경우가 있다. 이때는 의존성에 대한 문제를 해결(Recommend. 보통은 해당 패키지가 실행되는 데 필요한 라이브러리를 추가 설치 한다) 하거나 --nodeps 옵션을 사용하여 Dependency 를 무시하고 설치한다. # rpm -Uvh 패키지_ 파일 # rpm -ivh 패키지_ 파일 1 먼저 패키지를 설치하기 전에 설치 유무를 확인한다. 2 http://rpmfind.net 에 접속한 후 패키지를 다운로드 받는다. 3 rpm 명령을 실행해 패키지를 설치한다. 라. 패키지 질의 패키지가 설치되어 있는지 확인한다. : rpm -qa grep 패키지이름 설치된 패키지의 정보를 확인한다. : rpm -qi 패키지이름 패키지가 포함하는 파일리스트를 확인한다. : rpm -ql 패키지이름 파일이 어느 패키지에 속해있는지 확인한다. : rpm -qf 파일명
마. rpm 패키지 삭제 패키지를 삭제할 때는 -e 옵션을 사용한다. 패키지를 삭제할 때도 의존성 에러가 발생할 수 있다. 삭제시 발생하는 의존성 에러는 현재 삭제하려는 패키지가 다른 패키지와 연관되어 있는 경우이다. 의존성을 무시하고 삭제할 때는 --nodeps 옵션을 사용한다. # rpm -e 패키지이름
5. 파일 시스템 관리 가. 파일시스템 개요 파일시스템(File System) 이란 대용량 저장 장치에 저장되는 파일을 관리하는 방법이다. 운영체 제마다 각각 고유의 파일시스템을 가지고 파일을 관리한다. 리눅스 시스템에서는 ext3 파일시스템을 기본 파일시스템으로 사용한다. ext3는 ext2 파일 시 스템의 단점을 보완한 데이터의 무결성과 완전한 복구기능을 지원하는 파일 시스템이다. 리눅스 파일시스템은 부트 블록, 수퍼 블록, inode 블록, 데이터블록으로 구성된다. 디스크 레이블 부트 블럭 수퍼 블럭 i-node 테이블 파티션 1 파티션 2 데이터 블럭 i-node 테이블 데이터 블럭 디스크레이블 : 디스크의 첫 번째 섹터(0 번섹터) 디스크에 대한 섹터의 크기 트랙당 섹터 수, 실린더당 트랙수, 전체 실린더 개수 파티션 정보 등이 기록됨 부트 블록 : 부팅에 필요한 정보를 저장하고 있는 디스크영역이다. 수퍼 블록 : 파일시스템 전체에 대한 정보를 저장 전체 파일시스템의 크기 i-node의 개수와 현재 사용 가능한 i-node 정보 전체 데이터 블록의 크기 사용 가능한 블록에 대한 정보 등이 기록됨 i-node 블록 : 데이터블록에 저장된 파일에 대한 정보를 저장 데이터 블록 : 실제 데이터가 저장되는 영역이다. 나. 하드디스크 파티션 설정 - fdisk 하드디스크의 파티션을 생성하는 명령은 fdisk 이다. 명령형식 장치파일명 : fdisk [ 장치파일명] : hda, hdb, sda, sdb 와 같은 하드디스크 장치 1 fdisk를 실행하면 Command (m for help) : 와 같은 프롬프트가 표시된다. 이곳에는 fdisk 에서 사용할 수 있는 명령어만 입력 가능하다. fdisk 프롬프트에서 사용가능한 명령어 리스트를 확인하려면 m 을 입력한다.
2 p 를 입력하면 현재 설정되어 있는 파티션 정보를 확인 할 수 있다. 전체 디스크 용량 1305 실린더 중 hda1는 1~892 까지, hda2는 893~925 까지, hda3은 926~989까지 사용 중임을 확인할 수 있다. 3 새로운 파티션을 생성하려면 "n" 을 입력한다. 파티션 종류 : primary partition" 와 "Extended" 중 선택할 수 있다. 파티션 크기 : 파티션 용량은 바이트(+size), MB(+sizeM), KB(+sizeK) 와 실린더 단위로 지정 가능하 다. 4 할당된 파티션 정보를 p" 명령을 이용해 다시 확인해본다. /dev/hda4 라는 파티션이 생성되었음을 확인할 수 있다.
5 변경된 파티션 정보를 저장하려면 w" 를 입력한다. 6 파티션을 추가한 경우 새로운 파티션이 커널에 인식되도록 시스템을 리부팅 해야 한다. # reboot 다. 파일 시스템 생성 - mkfs 파일시스템 생성은 mkfs 명령을 사용한다. 명령형식 : mkfs [-t 파일시스템유형] [ 장치파일명] 파일시스템 유형 : msdos, vfat, ntfs, ext2, ext3 등 앞에서 생성한 hda4 파티션에 ext3 파일시스템을 생성해본다.
플로피디스크는 ext2나 msdos 형식의 파일시스템만 생성할 수 있다. 라. 파일시스템 마운트 - mount 마운트(Mount) 란 하드디스크, 플로피, CDROM과 같은 디스크의 내용을 디렉토리에 연결하여 디스크에 내용을 기록하거나, 읽을 수 있도록 설정하는 것이다. 명령형식 : mount [-t 파일시스템타입] [ 장치파일명] [ 마운트_ 디렉토리] umount [ 장치파일명 또는 마운트_ 디렉토리] 1) 마운트 정보 확인 mount 명령만 입력하면 현재 마운트 설정된 장치정보를 보여준다. mount 정보는 /etc/mtap 파일에 저장되어 있다. 2) 하드디스크 마운트 앞에서 생성한 hda4 번 파티션을 /backup 디렉토리로 마운트한다. 마운트 작업 수행후 df 명령으로 확인해보고, 언마운트 명령도 실행한다.
3) 플로피 디스크 마운트 플로피 디스크는 ext2 나 msdos 파일시스템으로 마운트한다. 4) CD-ROM 마운트 CDROM 장치는 iso9660 파일시스템으로 마운트한다.
5) MS 윈도우 파일 시스템 마운트 MS 윈도우는 ntfs나 vfat 파일시스템으로 마운트한다. # mount -t vfat 윈도우디스크_ 장치명 /mount_dir # mount -t ntfs 윈도우디스크_ 장치명 /mount_dir 마. 파일시스템 자동 마운트 - /etc/fstab /etc/fstab은 File System Table 파일로 시스템 부팅 때나 종료 시 읽혀져 설정된 내용에 따라 파일시스템을 마운트하거나 언마운트한다. 각 필드는 디바이스명, 마운트 디렉토리, 파일시스템 종류, 옵션, 덤프, 파일시스템 점검여부 로 구성되어 있다. 디바이스명 : 파일시스템 상의 블록 디바이스 장치 명이다. 마운트 디렉토리 : 파일시스템을 연결한 루트 디렉토리 명이다. 파일시스템 종류 : 디바이스가 마운트 될 때 사용할 파일시스템이다. 옵션 : 마운트 할 때 적용할 옵션을 명시한다. 여러 개의 조건은 컴마(, ) 를 사용하여 구분 한다. dump : /sbin/dump 명령을 이용해 파일 시스템을 백업할 것인지 설정한다. 1 값을 설정 한 경우 파일 시스템을 백업하고, 0 또는 아무 표시가 없는 경우는 부팅 시 백업하지 않는다. fsck : fsck 는 리눅스 파일시스템 점검 여부를 가리키는 숫자로 1인 경우 부팅 시 파일시 스템에 이상이 발견되면 제일먼저 파일 시스템을 점검하고, 2인 경우는 1이 설정된 디바이 스의 파일 시스템 점검이 끝나면 다음으로 수행한다. fsck 값이 0인 경우에는 파일시스템 점검을 하지 않는데, 보통 ext3 형식이 아닌 디바이스에는 0 을 지정한다. 바. 파일시스템 점검 비정상적인 시스템종료( 하드웨어 오류, 소프트웨어 오류, 전원 오류 등) 에 의해 실행중인 프로 세스가 손상된 경우 다. fsck(file system check) 명령으로 파일시스템의 상태를 점검하고 복구한 대부분의 관리자들은 시스템 구동 시 파일시스템이 점검/ 복구되도록 설정해 두고 있지만 자동 적으로 결함이 복구되지 못하는 경우 시스템 부팅 완료 후 관리자가 수동으로 주어야 한다. fsck을 수행해 손상된 파일시스템은 마운트 된 상태에서 점검하는 경우 더 큰 손상을 입힐 수 있으므로 마운 트하지 않은 상태에서 명령을 실행해야 한다.
명령형식 : fsck [ 옵션] 파일시스템 리스트 옵션 : -t 파일시스템 타입을 지정 -a 발견되는 모든 에러사항을 자동으로 복구하도록 지시 -y ext2 파일시스템 점검 시 모든 질문에 대한 응답은 yes fsck가 발견할 수 있는 문제점 - 여러 개의 i-node에 속하는 하나의 블록 - 사용하지 않지만 사용 중으로 나타나는 블록 - 사용 중이지만 사용하지 않는 것으로 나타나는 블록 - i-node의 링크수의 불일치 - 사용 중인 i-node이지만 어느 디렉토리에도 할당되지 않은 i-node
6. 사용자 계정 관리 가. 사용자 정보 파일 1) /etc/passwd /etc/passwd 파일은 시스템에 존재하는 모든 계정에 대한 정보를 포함하고 있으며, 이용해 각 계정은 로그인을 수행할 수 있다. 이 정보를 필드1 : 사용자 계정이름 필드2 : 암호화된 패스워드. shadow 패스워드를 사용하면 실제 암호화된 패스워드는 /etc/shadow 파일에 저장되고, 이곳에는 x 만 남는다. 필드3 : 사용자의 UID. /etc/login.defs 파일에 의해 일반 사용자의 UID 는 500 부터 시작한다. root 계정은 0 번을 가진다. 필드4 : 사용자의 GID. 필드5 : 계정 사용자의 이름 정보 필드6 : 계정 사용자의 홈 디렉토리 필드7 : 계정 사용자의 로그인 쉘 2) /etc/shadow /etc/shadow 파일은 계정사용자들의 패스워드 정보를 포함하고 있으며, root와 같은 시스템 관리자만 내용을 확인하거나 수정할 수 있다. 필드1 : 사용자의 Login ID 필드2 : 암호화된 패스워드. (!! 또는 * 인 경우는 로그인 불가능) 필드3 : last day. 마지막으로 password 를 변경한 날수(1970/1/1 기준) 필드4 : Minimum day. 패스워드를 변경할 수 없는 날수 필드5 : Maximum day. 현재 password 를 사용할 수 있는 날수. Maximum day가 지나도 패스워드를 변경하지 않고 로그인을 시도하면, 로그인시 새로운 패스워드 설정 메시지가 표시되며 강제로 패스워드를 변경하도록 한다. 필드6 : Warning day. 패스워드 변경 경고기간. 현재 패스워드가 만료 되기 전에 변경할 것을 경고하는 날수. 필드7 : Inactive day. 패스워드가 만료된 후 로그인 거부되는 기간.
Maximum day + Inactive day 이후 로그인을 시도하면 패스워드가 만료되었다는 메시지를 출력하고 로그인에 실패한다. 필드8 : Expire day. 계정 유효기간. 계정이 사용 불가능하게 되는 날수. 유효기간 이후에 로그인을 시도하면 패스워드가 만료되었다는 메시지를 출력하고 로그인에 실패한다. 3) /etc/group /etc/group 파일은 현재 시스템에 정의되어 있는 모든 그룹의 정보를 저장하는 파일이다. 필드1 : 그룹이름 필드2 : 암호화된 그룹 패스워드. 필드3 : GID 필드4 : 사용자 목록. 해당 그룹을 보조그룹으로 가지는 사용자 목록 나. 계정 생성 - useradd 사용자 계정은 useradd 명령을 사용하여 추가한다. 명령형식 : useradd [ 옵션] 계정ID 옵션 : -c comment 사용자 이름 또는 정보 -d home_dir 사용자 계정 홈 디렉토리 -e expire_date 사용자 계정 유효기간 -f inactive_day 비활성 기간. -g initial_group 기본그룹. -G group[,...] 다중그룹. -s shell 로그인 기본 쉘 -u uid 사용자 계정 uid 계정을 생성한 후에는 passwd 명령을 이용해 로그인 패스워드를 설정한다. 리눅스 시스템에 서는 패스워드가 설정되지 않은 계정은 로그인할 수 없다. passwd 명령을 단독으로 사용했을 경우 로그인 사용자의 패스워드를 변경할 수 있다. 다른 계정의 패스워드를 변경하는 것은 시 스템 관리자인 명령형식 root 만 가능하다. : passwd [ 계정ID] smlee 계정을 생성한 후 /etc/passwd 파일과 /etc/shadow 파일의 내용을 확인해본다.
다. 계정 정보 설정파일 1) /etc/default/useradd 사용자의 계정을 추가할 때 사용되는 정보는 /etc/default/useradd 파일에 저장되어 있다. GROUP=100이라는 행은 private group( 사용자 ID 와 같은 이름을 가지는 그룹) 을 가지지 않 는 사용자에게 설정되는 GID 이다. 이 값은 private group 이 생기지 않도록 -n" 옵션을 사용 할 때 적용된다. GID 100의 그룹이름은 users 이다. 2) /etc/login.defs Shadow 패스워드를 사용하고 있다면 사용자 계정을 생성할 때 일이 사용된다. /etc/login.defs 라는 설정 파
라. 계정 변경 - usermod usermod 명령은 기존 사용자 계정의 이름이나 홈 디렉토리, 기본셸 등을 변경할 때 사용한다. 명령형식 : usermod [ 옵션] 계정ID -u uid 사용자 계정 uid 마. 계정 삭제 - userdel 명령형식 : userdel [-r] 계정ID -r 사용자의 홈디렉토리, 메일사서함도 함께 삭제한다. 바. 그룹 관리 그룹(Group) 이란 관련 있는 사용자 계정을 동일한 권한으로 묶어두는 것을 말한다. 그룹 생성 명령형식 : groupadd [ 옵션] 그룹이름 그룹 변경 명령형식 : groupmod [ 옵션] 그룹이름 그룹 삭제 명령형식 : groupdel 그룹이름 1 family라는 그룹을 생성한 후 family 그룹에 속하는 계정 mom과 fa 를 생성한다.
2 family그룹을 myfamily 로 수정하고, GID도 800 으로 수정한다. 3 family 그룹을 삭제한다.
3부 네트워크 관리 이성미 내용목차 1. TCP/IP 프로토콜 2. Network 설정 및 관리 3. 로그파일 관리 1. TCP/IP 프로토콜 TCP/IP 는 인터넷에 연결된 시스템 사이에서 데이터를 교환하는데 사용되는 프로토콜이다. 인 터넷에서 사용하는 TCP/IP 네트워크는 물리 계층부터 응용 계층까지 다섯 개의 계층으로 구성 된다. 가.. TCP/IP 5 Model TCP/IP 네트워크는 Physical Layer부터 Application Layer까지 5 개의 계층으로 구성된다. 1) Application Layer 응용 계층의 프로토콜들은 사용자가 사용하는 응용 프로그램들이 사용하는 프로토콜이다. 2) Transport Layer 통신하는 두 호스트 사이의 데이터의 전송을 위한 통로를 제공한다.
- TCP TCP 는 신뢰성 있는 서비스를 제공하기 위한 트랜스포트 계층의 프로토콜로, 전송되는 데이터 를 적당한 크기의 패킷으로 나누고, 각 패킷에 일련번호를 부여하여 전송한다. 수신하는 호스 트에서는 패킷의 성공적인 수신 여부를 전송 측 호스트에 알려준다. 데이터의 전송 도중 에러 가 발생하거나, 데이터가 손실된 경우 해당 패킷을 재 전송하는 방법을 이용하여 두 시스템 사이에 신뢰성 있는 데이터 전송을 보장한다. - UDP UDP 는 데이터그램 서비스를 제공하는 프로토콜로, 상위 계층에서 전달된 데이터를 패킷으로 나누어 전송하지만, TCP와는 달리 수신 측에서 호스트가 패킷의 도착 여부를 송신 호스트에 알려주지 않으므로 전송의 신뢰성이 제공되지 않는다. 3) Internet Layer 네트워크에서 패킷 전송에 필요한 여러 가지 사항들을 규정한다. 인터넷 계층 프로토콜에는 IP(Internet Protocol), ICMP(Internet Control Message Protocol), IGMP(Internet Group Management Protocol) 등이 있다. 일반적인 패킷 교환에서는 IP 가 사용되고, ICMP, IGMP는 예외 상황 처리 등에 사용되는 프로토콜이다. 인터넷에 접속된 모든 호스트에게 할당된 IP 주 소를 이용하여 데이터가 최종 목적지까지 도달하기 위한 경로(routing) 를 결정한다. - IP(Internet Protocol) IP는 TCP/IP 5 Model 에서 가장 중요한 프로토콜로 네트워크의 호스트를 관리하고, 전송되는 패킷의 크기가 네트워크 미디어보다 커서 전송되지 않을 때 패킷을 조각으로 나누는 역할을 수행한다. - ICMP(Internet Control Message Protocol) ICMP는 전송되는 도중에 생기는 네트워크의 상태를 감시하고 에러가 발생했을 경우 그것을 알려주는 역할을 수행한다. 데이터그램 전송 중에 생기는 오류는 대개 중간 라우터에서 감지 된다. 예를 들어 데이터그램이 목적지를 찾아가는 동안 TTL 매개변수가 만료된 경우 Time Exceeded 메시지를 송신자에게 보내 문제 발생을 알리거나, 워크를 찾지 못한 경우 목적지 호스트가 속해있는 네트 Destination Unreachable 메시지를 송신자에게 전달한다. - ARP(Address Resolution Protocol) ARP는 개념적으로 Datalink Layter와 Network Layer 사이에 존재하며 IP 주소(32bit) 를 Ethernet 주소(48bit) 로 매핑시키는 역할을 수행한다. ARP는 인터넷 계층에서 얻은 목적지 호스트의 IP 용되며 주소에 대한 이더넷 주소를 얻기 위하여 사 ARP 프로토콜의 패킷은 이더넷 프레임으로 캡슐화되어 처리된다. - RARP(Reverse Address Resolution Protocol) 디스크를 가지고 있지 않은 호스트가 자신의 IP 주소를 서버로부터 얻어내기 위해서는 RARP 라는 프로토콜을 사용해야 한다. RARP는 ARP 프로토콜로부터 적용된 것이고 ARP의 형식을 같이 사용한다. ARP 메시지와 같이 RARP 메시지는 네트워크 프레임의 데이터부분에 캡슐화
되어 한 호스트에서 다른 호스트로 전송한다. 4) Network Interface Layer 물리적 링크로 직접 접속된 시스템 사이의 데이터 전송을 위한 약속이다. 5) Physical Layer 실제 데이터가 전송될 전송 선로와 전송되는 신호의 형태 그리고 컴퓨터를 통신망에 접속하는 데 필요한 물리적인 장비에 대한 규정이다.( 케이블, 커넥터, 사용 전압 등에 대한 규약) 나. IP 주소 인터넷에서 사용되는 TCP/IP 프로토콜은 데이터를 패킷 단위로 전송한다. 패킷이 상대방 컴퓨 터에 도달하기 위해서는 패킷 내부에 도착지점 정보가 포함되어 있어야 하는데, 이 도착지점 정보를 IP 주소라고 한다. IP 주소는 총 32비트 크기를 8비트 단위로 나누어서 4개의 숫자로 구성한 후 각 숫자는 점(dot) 으로 구분한다. IP 주소는 A, B, C, D, E 다섯 개의 주소 체계로 구분하여 사용한다. A class IP 주소의 첫 번째 바이트의 최 상위 비트가 0 으로 설정된다. 네트워크 ID는 1 126 사이로 결정되고(0과 127 은 사용되지 않는다), 하나의 네트워크 ID를 할당받은 기관에서 사용가능한 호스트 ID는 0.0.1 255.255.254 이다. B class 최 상위 두 비트가 10 으로 설정되고, 네트워크 ID는 128.0 191.255, 호스트 ID는 0.1 255.254 이다. C class 최 상위 세 비트가 110 으로 설정되고, 네트워크 ID는 192.0.0 223.255.255, 호스트 ID는 1 254 이다.
D class 최 상위 네 비트가 1110 으로 설정되고, 멀티캐스팅 목적으로 사용된다. 224.0.0.0 239.255.255.255 사이의 주소가 D 클래스 영역이다. E class 240.0.0.0 254.255.255.255 사이의 주소 실험 목적으로 할당된 주소 영역이다. 참고 : 예약된 IP 주소 127.0.0.1 : local loopback. 0.0.0.0 : 아직 IP 주소를 할당 받지 못했을 때 사용되는 주소 네트워크 주소 : 호스트 ID 값이 모두 0인 주소 브로드케스트 주소 : 호스트 ID 값이 모두 1인 주소 사설 IP 주소 : LAN의 내부 망에서만 사용하는 주소 A 클래스 범위 : 10.0.0.0 10.255.255.255 B 클래스 범위 : 172.16.0.0 172.31.255.255 C 클래스 범위 : 192.168.0.0 192.168.255.255 다. MAC 주소 이더넷 상에 통신 노드를 구별하기 위해서는 노드에서 사용하는 이더넷 카드 사이에 적당한 주소체계가 있어야 한다. 이를 위해서 이더넷 카드에 카드만의 고유번호를 지정해서 사용하는 데 이것을 MAC(Medium Access Control) 주소라 한다. MAC 주소는 48bit로 12개의 16 진수로 표현하고, 각 숫자는 콜론( : ) 으로 구분한다. 콜론으로 구분된 12개의 숫자 중 앞의 6 개 숫자는 제조사의 고유번호이고, 뒤의 6개 숫자는 제조사에서 각 인터페이스를 구분하기 위해 사용하는 시리얼 번호이다. 00:90:27:55:1c:1d Vender ID(Intel) : 00:90:27 Serial Number : 55:1c:1d
2. Network 설정 및 관리 가. 이더넷 카드 인식시키기 일반적으로 랜 카드는 리눅스 설치 시 자동으로 인식되어 커널에 모듈 형태로 탑제된다. 그러나, 리눅스 설치 시 인식되지 않은 랜 카드도 있는데, 랜 카드가 인식되지 않은 경우 다음과 같은 방법을 이용해 인식시킨다. 1) 커널 모듈 이름 알기 사용하고 있는 랜카드의 종류는 누구나 쉽게 알 수 있지만, 이 랜카드가 리눅스에서는 어떤 이름의 모듈로 커널에 올라가야 하는지 아는 것은 쉽지 않다. 커널에 올라가는 모듈이름은 랜 카드 이름과는 별도로 존재하기 때문이다. 특정 랜카드가 어떤 이름의 모듈로 올라가야 하는 지 알고자 한다면 커널 컴파일 과정에 들어가서 확인한다. 1 /usr/src/linux( 한소프트리눅스는 make xconfig 명령을 실행한다. /usr/src/kernel/2.6.14-56hs-i686/) 디렉토리로 이동한 후 2 qconf 프로그램이 실행된 화면 왼쪽 메뉴에서 [Network Device Support] 를 선택한 후 오 른쪽 상단 화면에서 장착된 랜카드 종류를 선택한다. 다음 오른쪽 하단 화면에 도움말을 확인 할 수 있는데, 이 도움말에 커널 모듈 이름이 명시되어 있다. 2) 커널 모듈 올리기 커널 모듈 이름을 알았다면, insmod 나 modprobe 명령을 이용해 모듈을커널에 올린다. 커널에 탑제된 모듈리스트를 표시 - lsmod
커널에 모듈 올리기 - insmod, modprobe 커널에서 모듈 삭제하기 - rmmod 1 먼저 LAN 카드에 관한 모듈이 커널에 올라갔는지 확인한다. 만약 있지 않다면 LAN 카드가 인식되지 않은 것이다. # lsmod LAN 카드 모듈이 올라가 2 다음 modprobe 명령을 이용해 모듈을 커널에 올려준다. # modprobe pcnet32 3 네트워크 데몬을 구동시킨다. # /etc/rc.d/init.d/network restart 4 사용할 드라이버 모듈을 올렸다면 /etc/modprobe.conf 파일을 확인한다. modprobe.conf 파 일에 등록된 모듈들은 # cat /etc/modprobe.conf alias eth0 pcnet32 alias 설정에 따라 리눅스 부팅 시 커널에 적제된다.
나. 네트워크 설정 1 [ 시작]-[ 환경설정]-[ 네트워크]-[ 네트워크] 를 실행한다. 2 [ 장치] 탭의 이더넷 장치를 더블 클릭하면 네트워크 정보를 설정하거나 변경할 수 있다. 3 [DNS] 탭을 선택한 후 DNS 서버의 정보를 설정하거나 수정한다. 4 변경된 네트워크 정보는 반드시 [ 파일]-[ 저장] 을 실행해 저장한 후 네트워크 데몬을 재 시 작한다.
다. 네트워크 설정 파일 1) /etc/hosts 호스트이름과 호스트의 IP 주소를 저장하는 데이터 파일이다. 자주 접속하는 호스트의 이름이 나 도메인명과 IP 주소를 등록하면 좀더 빠른 접속을 지원할 수 있다. 파일의 구성은 IP 주 소, 도메인 명, 별명들을 여러 개 나열한다. /etc/hosts 파일에 본인과 이웃하는 호스트 컴퓨터의 IP 정보를 추가한 후 별명을 이용해 ping 명령을 실행해본다. 2) /etc/sysconfig/network 네트워크에 대한 기본정보를 가지고 있는 파일로, 도메인이름, 호스트이름, 게이트웨이 주소, 디바이스 등에 대한 정보를 가진다. NETWORKING : 네트워크 구동여부를 표시한다. HOSTNAME : 호스트 이름이 표시된다. 3) /etc/sysconfig/network-scripts/ifcfg-eth0 각각의 네트워크 인터페이스 카드에 대한 설정값을 저장하는 파일로 디바이스 장치명, IP 주소, 네트워크 마스크, 네트워크주소, 시스템 부팅 시 디바이스 구동여부 등에 대한 정보가 저장된 다. 이 파일의 정보가 변경되면 인터페이스를 재가동해 주어야 한다.
DEVICE : 네트워크 카드의 디바이스 이름을 지정한다. BOOTPROTO : 네트워크장치가 사용하는 프로토콜을 명시한다. HWADDR : 이더넷 카드의 MAC 주소를 명시한다. ONBOOT : 부팅 시 네트워크를 자동으로 구동시킬 것인지 지정한다. TYPE : 네트워크 카드의 종류를 명시한다. USERCTL : 일반 사용자가 eth0를 Up/Down 할수 있는 지 명시한다. NETMASK : 사용하는 netmask 값을 지정한다. IPADDR : 사용하는 IP 주소를 지정한다. NETWORK : 네트워크 주소를 지정한다. GATEWAY : 기본 게이트웨이 IP 주소가 지정된다. 4) /etc/resolv.conf DNS 서버의 IP 주소를 설정하는 파일이다. 최대 3개의 DNS 서버를 설정할 수 있다. 보통 자신 이 속한 도메인을 관리하는 네임서버를 첫줄에 설정한다. 두 번째와 세 번째는 잘 알려진 코 넷이나 천리안 등의 네임서버를 설정해 준다. 이렇게 설정해두면 첫 번째 네임서버에서 IP를 구하지 못하면 두 번째 설정된 네임서버로 resolving 작업을 한다. search : 검색할 도메인 네임서버를 명시한다. nameserver : nameserver의 IP 주소를 명시한다. 5) /etc/host.conf 네임서버 매핑시 /etc/hosts 파일을 먼저 참조할지, DNS 서버의 설정을 먼저 참조할지 순서를 지정한다. order : /etc/hsots 파일과 bind 중 어떤 설정을 먼저 참조할 것인지 순서를 정한다. 6) /etc/services 각 서비스들이 어떤 프로토콜의 몇 번 포트를 사용할 것인가를 설정하는 파일이다. 각 서비스 에 부여된 번호를 포트 번호라고 부르며, TCP/IP 프로토콜에서는 TCP와 UDP가 이 포트번호 를 이용하여 출발지와 최종 목적지의 서비스를 구별하는데 사용하고 있다. 포트번호는 16비트 로 할당되며 이론적으로는 65,535 개의 서비스 할당이 가능하다. 1 1023 : 시스템 예약 포트번호이다. 100번 이하의 포트번호는 telnet, ftp등과 같은 아주 잘 알려진 서비스 1024 5000 : 시스템이 할당한다. 5001 : 사용자가 지정 가능한 포트번호이다.
라. 네트워크 명령 1) 네트워크 인터페이스 - ifconfig ifconfig 명령은 네트워크 인터페이스를 설정하는 프로그램으로, 거나 인터페이스를 UP/DOWN 할 때 사용한다. 인터페이스의 상태를 확인하 1 현재 사용 가능한 모든 네트워크 인터페이스 정보를 확인한다. eth0 : 첫 번째 Ethernet 카드의 정보를 출력 lo : localhost. loopback 에 대한 정보를 출력 2 eth0 에 대한 인터페이스를 중지시킨다. 3 eth0 에 대한 인터페이스를 다시 가동시킨다.
2) 시스템의 네트워크 연결 상태 표시 - netstat 로컬 시스템의 모든 네트워크 연결 상태를 표시하는 프로그램으로, 와 소켓에 대한 정보를 보여준다. 현재 연결되어 있는 모든 포트 명령형식 옵션 : : netstat [ 옵션] -a 모든 소켓의 정보를 보여준다. -c 매 초마다 정보를 갱신하여 연결 상태를 지속적으로 보여준다. -t tcp 소켓에 대한 정보만 보여준다. netstat 명령을 실행하면 Active Internet connections 정보와 Active UNIX domainsockets 정 보를 확인할 수 있다. 3) 라우팅 기능 제어 - route 라우팅은 인터넷상의 수많은 라우팅 경로 중 최적의 경로를 선택하여 패킷을 전달해주는 일련 의 작업이다. 명령형식 : route [add delete] [default gw 게이트웨이주소 ] [ 이더넷_ 장치명] [add delete] 라우팅 정보를 추가하거나 삭제한다. [default gw] 디폴트 게이트웨이를 추가하거나 삭제한다. 기본 게이트웨이 라우팅 테이블 정보를 제거한 후 다시 추가해본다.
4) 라우팅 경로 추적 - traceroute traceroute 는 목적지 호스트까지 도달하는데 거치는 라우터를 출력한다. 보통 네트워크 라우팅 에 문제가 있을 경우 그 위치를 파악하기 위해 사용하며 경유하는 라우터가 ICMP TIME_EXCEEDED 요청에 응답하게 함으로써 두 호스트간의 경로 상황을 출력한다. kornet.net 서버까지 도달하는데 거치는 라우터를 표시한다. 5) 네트워크 연결 확인 - ping ping은 원격지 컴퓨터로 TCP/IP 연결이 가능한지 알아보는데 사용한다. ping은 ICMP echo request 패킷을 원격지 호스트에 보내고, 원격지 호스트에서는 요청에 대 한 응답으로 ICMP echo reply 패킷을 호스트에게 보낸다. ping은 패킷의 왕복시간을 산출하 여 표시한다. 명령형식 : ping [-c 횟수] [-s 패킷_ 크기] 호스트주소 1 kornet.net 에 지속적으로 패킷를 보낸다. 종료는 [Ctrl]-[c] 이다. 2 -c 옵션을 사용해 패킷을 3 개만 보낸다.
3 ping 요청에 응답하지 않도록 설정하려면 /proc/sys/net/ipv4/ icmp_echo_ignore_all 1 값을 설정한다. 파일에 6) arp 테이블 확인 - arp arp 명령은 ARP 테이블의 내용을 표시한다. ARP 테이블에는 현재의 호스트에 접속을 시도했 거나, 현재의 호스트가 접속을 시도한 네트워크 내 호스트들의 MAC 주소가 들어있다. arp 명 령은 ARP 테이블을 관리하는데도 사용된다. 명령형식 : arp [ 옵션] [ 호스트이름 또는 MAC 주소] -a : 테이블내의 모든 ARP 테이블 내용을 보여준다. -d 호스트이름 : ARP 테이블에서 해당 항목을 제거한다. -s 호스트이름 이더넷_ 주소 : ARP 테이블에 새로운 항목을 추가한다. 1 ARP 테이블을 확인한다. 2 arp 테이블에 저장된 MAC 주소를 삭제한 후 다시 arp 테이블에 기록해본다. 일반적으로 arp 테이블에 저장된 MAC 주소는 접속을 요청한 경우 20 분, 요청 받은 경우 5분정도 보관된 다.
7) DNS 조회 - nslookup nslookup 은 도메인 네임에 대한 질의를 수행하는 명령으로, 이 사용한다. 네임서버의 문제 해결을 위해 많 1 kornet.net 의 도메인 주소를 찾아 확인한다. 2 리버스 도메인을 검색한다. 3 대화형 모드로 도메인 서비스를 요청한다.
3. 로그파일 관리 가. 로그 파일의 개요 인터넷 서비스를 지원하는 시스템은 언제, 어디서, 누가, 무슨 자원을 이용했는지에 대한 정보 를 기록하는데, 이러한 정보를 로그(Log) 라 한다. 로그 파일에서 확인해야 할 사항은 다음과 같다. 짧거나 불완전한 기록 이상한 시간표시를 가진 기록이나 없어진 기록 잘못된 허가권이나 소유권을 가진 기록 재 부팅이나 서비스 재 시작에 대한 기록 su 사용기록과 이상한 곳으로부터의 접속 기록 나. 로그파일의 종류 리눅스는 기본 시스템 로그 파일부터 응용프로그램이나 보안 유틸리티, 서버데몬 로그까지 어 떤 프로그램을 설치했고, 어떤 서비스를 구동하느냐에 따라 로그 파일의 종류가 다양하다. 많이 사용하는 로그파일을 정리하면 다음과 같다. 로그 로그 파일명 로그 발생 프로그램 시스템로그 /var/log/messages syslogd 콘솔로그 /dev/console Kernel 보안로그 /var/log/secure inetd 메일로그 /var/log/maillog sendmail, poper 부트로그 /var/log/boot.log kernel 부트로그 /var/log/dmesg kernel 크론로그 /var/log/cron crond FTP 로그 /var/log/xferlog ftpd 웹로그 access_log, error_log httpd 네임서버로그 /var/log/named.log named 1) syslogd syslogd 는 리눅스에 관련된 대부분의 로그 파일을 관리하고 설정하는 데몬이다. syslogd의 환 경 설정 파일은 /etc/syslog.conf 이다.
syslog.conf 파일은 선택자 필드와 액션 필드로 구성된다. 메시지 종류 (facility) 선택자 (Selector) 메시지 우선순위 (priority) 액션 (Action) 로그파일명 Kern * /dev/console 커널(kern) 에서 발생되는 모든 메시지(*) 는 콘솔(/dev/consol) 로 출력한다. 가 ) 메시지 종류 (facility) auth authpriv 사용자 인증에 관한 메시지 보안 및 승인에 관한 메시지 cron daemon cron/atd telnet/ftp 메시지 메시지 mail kern lpr news uucp 메일 메시지 커널 메시지 프린터 메시지 뉴스 메시지 UUCP 시스템 메시지
나 ) 메시지 우선순위 (priority) emerg alert crit warning err notice info debug 매우 위험한 상황 즉각 조치를 취해야하는 상황 급하지는 않으나 치명적인 시스템 문제 발생 상황 주의를 요하는 메시지 에러가 발생되었을 경우 에러가 아닌 알림에 관한 메시지 단순한 프로그램에 대한 정보 메시지 프로그램 실행시 발생되는 오류 발생시 다 ) 액션필드 액션필드에는 선택자 필드에서 발생한 메시지가 저장될 파일이름이나 콘솔을 명시한다. 2) /var/log/message /var/log/message에는 시스템 데몬이 어떤 이유로 어떤 사용자에 의해 요청되고 실행되었는지 기록된다. 언제 어디서 접속 요청이 들어왔고, 인증이 제대로 되었는지 몇 번 실패했는지, sudo 같은 명령을 어떤 용도로 사용했는지 등에 대한 전반적인 로그 정보가 모두 기록된다. /var/log/message는 syslogd 데몬에 의해서 생성된다. 3) /var/log/secure 보안에 관한 로그파일로 접근이 제한된 서비스에 대한 접근 기록이나, 한 기록이 남는다. 로그인 실패사항에 대 4) /var/log/dmesg /var/log/boot.log dmesg 파일에는 커널이 부팅되면서 하드웨어를 검색하는 메시지들이 저장된다. 스템 정보를 검사할 때 사용하는데, /bin/dmesg 명령을 통해 확인한다. 이 파일은 시
boot.log 파일에는 시스템 부팅시 실행된 데몬들의 상태정보가 기록된다. 제대로 부팅이 되었는지 확인하려면 이 파일을 살펴보면 된다. # dmesg # cat /var/log/boot.log 각 시스템 데몬들이 5) lastlog lastlog 는 명령어로 사용된다. 시된다. # lastlog 시스템에 계정을 할당받은 사용자들의 마지막 로그인 정보가 표 6) /var/log/cron cron 이란 시스템 내부에서 주기적으로 어떤 작업을 반복 수행하는 것이다. cron은 백그라운드 상태에서 구동되기 때문에 혹, 알 수 없는 프로그램이 구동중이지 않은지 주기적으로 살펴보 아야한다. 7) /var/log/maillog SMTP 를 통해 송수신된 메시지 정보가 기록된다. # cat /var/log/maillog 8) /var/log/xferlog FTP 서버 데몬에 의해 기록되며, 파일의 송수신 정보가 기록된다. # cat /var/log/xferlog
다.. logrotate 로그 파일은 일정 주기로 정리할 필요가 있다. 그렇지 않다면 어느 순간 로그 파일이 파일 시 스템을 모두 차지하는 상황이 발생할 수 있다. 리눅스에는 logrotate라는 프로그램을 이용하여 주기적으로 로그 파일을 백업하고 일정 기간이 지나면 로그 파일을 삭제 정리한다. logrotate는 로그파일을 일정한 간격을 두고 old 로그 파일을 다른 이름으로 바꾼 후 새로운 로그 파일을 생성해주고, old 로그 파일을 압축하여 일, 주, 월 단위로 보관한 후 일정 기간이 지난 파일을 삭제한다. 기본 logrotate 설정파일은 /etc/logrotate.conf 라는 이름으로 존재하고, 프로그램별 순환정보 는 /etc/logrotate.d 디렉토리에 별도로 존재한다.