linux shell스크립트 기초

이번 장에서는 시스템 관리자라면 반드시 알아야 될 쉘 스크립트에 대해서 알아볼까 한다.
쉘 스크립트를 잘 활용하면 단순 반복적인 작업을 손쉽게 할 수 있다.
리눅스의 기본 쉘인 Bash 쉘을 기본으로 하여 설명을 진행할 것이며 csh,tcsh 등등의 다른 쉘은
거의 비슷한 구조을 가지고 있으므로 나중에 따로 공부해 보기 바란다.

 

환경 변수

먼저 기본 쉘 환경 변수에 대해서 알아보도록 하자. 현재 시스템에 로그인 한 상태에서 printenv 명령으로 확인해 볼 수 있다.
기본적으로 bash쉘은 /etc/profile,/etc/bashrc 파일에 시스템 전체 유저에 대한 설정이 들어있다.
각 유저는 본인의 홈디렉토리/.bashrc 나 .bash_profile 파일을 이용해서 개별적인 설정이 가능하다.
시스템 마다 약간씩 차이가 있을 것이다.

아래는 필자의 시스템에서 printenv 명령으로 살펴본 환경변수이다.

[stone@mail ~]$ printenv 
HOSTNAME=mail.nuxinfo.net
SHELL=/bin/bash
TERM=linux
HISTSIZE=1000
SVN_EDITOR=/usr/bin/vim
USER=stone
LS_COLORS=no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01
MAIL=/var/spool/mail/stone
PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/mysql/bin:/home/stone/bin
INPUTRC=/etc/inputrc
PWD=/home/stone
LANG=en_US
SHLVL=1
HOME=/home/stone
LOGNAME=stone
CVS_RSH=ssh
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/usr/bin/printenv
[stone@mail ~]$ 

 

변수 추가

쉘 스크립트에서 사용하는 변수를 추가하는 방법은 아래와 같다.

변수=변수값(변수와 변수값을 연결해주는 = 사이에는 절대로 공백이 있으면 안된다.)
ex)
EDITOR=/usr/bin/vim

즉 여러분이 원하는 변수는 쉘 프롬프트 상태에서 입력하면 바로 인식이 가능하다.
아래 예제를 보도록 하자.

[root@mail ~]# my_name="Kim Gyeong Min"
[root@mail ~]# echo $my_name
Kim Gyeong Min
[root@mail ~]#

설명을 하자면 my_name 이라는 변수에 Kim Gyeong Min 이라는 문자열을 추가했으며
echo 라는 명령어로 my_name 이라는 변수를 출력해 본 것이다.
변수를 호출할때는 반드시 $ 을 붙여주어야 한다.
로그아웃 할때까지는 저 변수는 계속 적용이 될 것이다. 하지만 로그아웃을 하는 순간 저 변수는 더이상 소용이 없게 된다.
따라서 항상 변수를 사용하고자 한다면 여러분의 홈디렉토리에 .bashrc 나 .bash_profile 에 추가해줘야 한다. 그러면 언제라도 사용이 가능하다.

기본적인 쉘 스크립트 이해하기

아래는 본인의 홈디렉토리에 test 디렉토리를 만드는 쉘 스크립트의 예제이다.
아래와 같은 내용으로 test.sh 파일을 생성해 보도록 하자.
vi test.sh
#!/bin/sh 또는 #!/bin/bash
mkdir $HOME/test

첫 라인에 있는 #!/bin/sh 또는 #!/bin/bash 는 아래에 나오는 스크립트를 /bin/sh 쉘이나 /bin/bash 쉘에서 해석하라는 이야기 이다.
참고로 기타 시스템에 설치된 여러가지 스크립트 언어도 사용이 가능하다.

#!/usr/bin/perl
#!/usr/bin/python
#!/usr/bin/php

 

쉘 스크립트를 실행하는 방법은 파일에 실행권한을 주는 방법과 쉘프롬프트에서 sh 파일명 형태로
직접 실행할 쉘을 명시해주는 방법이 있다.
실행 권한 주기

chmod 700 test.sh
./test.sh

./ 를 넣어주는 이유는 test.sh 파일은 PATH에 없기 때문에 현재 디렉토리라고 정확히 명시해주기 위해서이다.

쉘 프롬프트상에서 바로 실행하기

sh test.sh

 

이처럼 쉘 스크립트는 항상 똑같은 작업을 해야되는 경우 간단하게 스크립트를 실행함으로써 간편하게 작업을 할 수 있도록 도와준다.
기본적인 구조를 알았다면 다음장에서는 실제로 스크립트를 작성하는 방법에 대해서 알아보도록 하자.

linux LVM

LVM(Logical Volume Manager)
LVM이란 디스크 파티션이나 디스크 자체를 볼륨 그룹으로 만들고 그 위에 Logical 파티션을 생성해서
사용하도록 해주는 프로그램이다.
복잡하게 들릴지 모르겠지만 아래와 같은 상황이 발생했을 경우를 생각해 보도록 하자.
여러분의 리눅스 시스템이 /home 파티션을 10G로 할당을 했다. 그런데 유저들이 늘어나고 디스크 사용량이 많아져서 10G 로는 부족한 상황이 되었다.
이런 경우 여러분은 좀더 여유가 있는 디스크를 추가로 증설을 할 것을 고려할 것이다.
물론 디스크 추가를 위해서 시스템을 셧다운 시켜야 될 것이다.
LVM으로 시스템을 구축하면 이러한 경우 시스템을 셧다운 하지 않고서도 여러분은 /home 파티션을 쉽게 늘려줄 수가 있다.
LVM은 디스크나 파티션을 하나의 가상 디스크로 만들어서 디스크를 관리하는 시스템이다 라고 이해를 하면 된다.

 

앞장에서 배운 RAID과 데이터의 안정성에 기반을 두고 있다면 LVM은 디스크 관리의 효율성에 기반을 두고 있다고 보면 되겠다.
효과적인 디스크 관리를 원한다면 LVM을 사용해 보도록 하자.

 

먼저 아래의 그림을 보도록 하자.

lvm.jpg


용어 설명.

PV Physical Volume 으로 파티션 또는 디스크를 의미한다.
VG Volume Group으로 PV을 그룹화 한것이다.
LV Logical Volume으로 볼륨그룹(VG)에 가상의 파티션을 이야기한다.

LVM 생성

PV 생성하기

PV는 파티션이나 디스크 자체가 될 수 있다. 파티션을 PV로 만들기 위해서는 파티션 타입을 8e(Linux LVM)으로 설정해 주면 되겠다.
아래의 예를 보도록 하자.
/dev/sdb 에 각각 2G,1G 의 LVM 파티션을 설정하는 과정이다.

[root@linuxstudy ~]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
Command (m for help): n 
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-783, default 1): 
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-783, default 783): +2000M
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         244     1959898+  8e  Linux LVM
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
2
Invalid partition number for type `2'
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (245-783, default 245): 
Using default value 245
Last cylinder or +size or +sizeM or +sizeK (245-783, default 783): +1000M

Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)

Command (m for help): p
Disk /dev/sdb: 6442 MB, 6442450944 bytes
255 heads, 63 sectors/track, 783 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         244     1959898+  8e  Linux LVM
/dev/sdb2             245         367      987997+  8e  Linux LVM

 

준비가 되었다면 이제 PV 을 생성해 보도록 하자.
pvcreate 라는 명령을 이용하면 되겠다.

[root@linuxstudy ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
[root@linuxstudy ~]# pvcreate /dev/sdb2
  Physical volume "/dev/sdb2" successfully created
[root@linuxstudy ~]# 

참고로 fdisk 과정을 거치지 않고 디스크를 통째로 사용도 가능하다..^^;

디스크를 통째로 PV로 만들기.

[root@linuxstudy ~]# pvcreate /dev/sdc
  Physical volume "/dev/sdc" successfully created
[root@linuxstudy ~]# 

 

생성된 PV를 보고 싶다면 pvdisplay 명령을 수행하면 된다.

[root@linuxstudy ~]# pvdisplay 
  "/dev/sdb1" is a new physical volume of "1.87 GB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               1.87 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               LIzfUV-g1dF-17ze-8xxC-DI8H-I96k-eR86wA
   
  "/dev/sdb2" is a new physical volume of "964.84 MB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name               
  PV Size               964.84 MB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               XbYFbH-3bzf-a0EL-Jt0c-B0Sn-32Sy-dh3eSS
   
  "/dev/sdc" is a new physical volume of "8.00 GB"
  --- NEW Physical volume ---
  PV Name               /dev/sdc
  VG Name               
  PV Size               8.00 GB
  Allocatable           NO
  PE Size (KByte)       0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               L7wDn7-Pi5t-RnM3-LX5R-cCJ1-j8H9-xDEjOV
   
[root@linuxstudy ~]# 

 

VG 생성

vgcreate.

vgcreate 볼륨그룹이름 PV PV PV ...

이제 앞에서 만든 PV들을 묶어서 하나의 볼륨그룹(VG)로 생성해 보도록 하겠다.
/dev/sdb1 파티션과 /dev/sdb2 파티션을 VG0 이라는 이름으로 생성하는 예제이다.

[root@linuxstudy ~]# vgcreate VG0 /dev/sdb1 /dev/sdb2
  Volume group "VG0" successfully created
[root@linuxstudy ~]# 

 

생성된 VG를 확인해 보도록 하자.

[root@linuxstudy ~]# vgdisplay 
  --- Volume group ---
  VG Name               VG0
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               2.81 GB
  PE Size               4.00 MB
  Total PE              719
  Alloc PE / Size       0 / 0   
  Free  PE / Size       719 / 2.81 GB
  VG UUID               Xyye0d-VZGJ-gFfX-KLhU-LSe4-KK6r-2HkGP1
   
[root@linuxstudy ~]# 

 

LV 생성

이제 볼륨그룹(VG)에 LV를 생성해 보도록 하자.
LV생성.

lvcreate -L 용량 -n LV이름 VG이름

만들어진 볼륨그룹에 가상의 파티션을 생성하는 과정이라고 이해하면 되겠다.

[root@linuxstudy ~]# lvcreate -L 1.5G -n lvm_home VG0
  Logical volume "lvm_home" created
[root@linuxstudy ~]# 

VG0 볼륨그룹에 lvm_home 이라는 LV를 생성했다.
이제 일반적인 파티션처럼 mkfs 명령으로 포맷을 하고 사용하면 된다.
생성된 장치는 보통 /dev/VG명/LV명 형태로 생성이 된다.

LV 포맷 및 마운트

[root@linuxstudy ~]# mkfs /dev/VG0/lvm_home 
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
[root@linuxstudy ~]# mount /dev/VG0/lvm_home /home

 

제대로 mount가 되었다면 아래와 같이 나올것이다.

/dev/mapper/VG0-lvm_home on /home type ext2 (rw)

 

이렇게 생성된 LV는 차후에 자유롭게 용량을 늘렸다가 줄였다가 할 수 있다.
자세한 사용법은 다음장에서 진행하도록 하겠다.

linux기초강좌

리눅스 설치하기

Contents

1 CentOS 설치 준비
2 CentOS 설치 하기
2.1 설치 CD를 이용한 리눅스 설치
2.1.1 설치 시작
2.1.2 CD 체크
2.1.3 환영 메시지
2.1.4 설치 언어 선택
2.1.5 키보드 선택
2.1.6 파티션 설정

 

 

앞에서 말했듯이 강좌는 CentOS기준으로 작성이 될 것이며 최대한 설명을 많이 하는 형태로 진행해 볼까 한다.

 

* 주의 사항

만약에 PC에 리눅스를 설치하고자 한다면 기존에 설치되어 있는 OS를 실수로 삭제할수 있기 때문에 주의를 기울여서 설치를 해야 한다.
또한 Windows OS가 이미 설치된 PC에 리눅스를 설치하고자 한다면 리눅스 설치를 위한 파티션이 남아 있어야 한다.

 

 

1 CentOS 설치 준비

먼저 [http]http://ftp.daum.net/centos/5/isos/i386/ 에서 CentOS-5.4-i386-bin-*.iso 파일들을 다운로드 받는다.
총 6장의 CD가 있으며 어떤 용도로 리눅스를 설치하느냐에 설치CD개수가 틀려진다.일단 1~3번 CD 정도만 준비하자.
혹시 DVD 레코더를 가지고 있다면 [http]http://ftp.jaist.ac.jp/pub/Linux/CentOS/5/isos/i386/ 에서 DVD 이미지를 받을 수 있다.
본인의 위치에 따라서 속도가 빠른 미러서버를 [http]http://www.centos.org/modules/tinycontent/index.php?id=15 에서 찾을 수 있을것이다.
파일을 받았다면 CD 레코딩 프로그램을 이용해서 CD를 제작하도록 하자. CD레코딩하는 과정은 생략하도록 한다.

2 CentOS 설치 하기

리눅스를 설치하는 방법은 아주 여러가지가 있다.
플로피 디스크를 이용한는 방법,CD를 이용하는 방법,네트워크를 이용하는 방법,USB를 이용하는 방법 등등 수많은 설치 방법이 있다.
예전에는 플로피 디스크를 이용해서 많이들 설치했지만 현재는 플로피 디스크는 사라져가는추세이므로
가장 보편적인 방법인 설치 CD를 이용하는 방법을 먼저 설명하도록 하겠다.
CentOS 5.4를 기준으로 하면 총6장의 CD가 필요하지만 귀찮다면 네트워크 설치용 CD이미지를 받아서
네트워크를 이용해서 설치할수도 있다.
우리나라처럼 네트워크 속도가 빠른 경우에는 ftp,http 등을 이용해서 설치해도 30분 정도면 설치가 가능하다.
또한 로컬 네트워크가 구성되어 있는 환경이라면 pxe 부팅을 통해서 아무 설치 매체 없이도 네트워크 부팅을 통해서 리눅스를 설치할 수 있다.
PXE(Pre-boot eXecution Environment)란 네트워크 인터페이스를 통해 컴퓨터를 부팅할 수 있게 해주는 환경이다.
요즘의 대부분의 PC나 서버는 네트워크 부팅(PXE)환경을 지원한다.
이런 경우 네트워크에 네트워크 설치를 위한 서버들이 준비가 되어 있어야 한다.
예전에 작성한 [http]http://wiki.nuxinfo.net/wiki.php/kickstart 에서
대략적인 과정을 살펴볼 수 있을 것이다.

2.1 설치 CD를 이용한 리눅스 설치

설치CD를 만들었다면 PC를 켜고 Bios 셋업에 들어가서 CD로 부팅하도록 해두고 설치CD를 넣고 부팅하도록 하자.
참고:각 메뉴들의 이동은 Tab키와 커서키로 이동하면 된다.
정상적으로 진행이 되었다면 아래와 같은 화면을 볼 수 있을 것이다.

2.1.1 설치 시작

install_1.jpg


화면을 잘 보면서 설치를 시작해 보도록 하자.
boot: 상태에서 단순히 Enter 키를 입력하면 GUI환경에서 설치를 진행하게 된다.
사양이 낮거나 그래픽 카드가 잡히지 않는 경우에는 설치를 하지 못하는 경우가 있으므로
필자는 Text 모드에서 설치를 진행할 것을 권장한다.
또한 앞으로 리눅스를 공부하기 시작하면 대부분의 작업들이 Text모드에서 진행이 될것이라서
약간은 생소할지도 모르지만 text환경에 익숙해져 보도록 하자.
아래쪽에 보이는 F1~5까지의 function 키는 특별한 경우에 사용하는 옵션들이다.
설치할때 드라이버들이 필요한 경우나 시스템이 깨져서 복구가 필요한 경우등 처음 리눅스를 설치하는 경우라면 그냥 linux text 입력해서 설치부터 진행해 보도록 하자.

2.1.2 CD 체크

install_2.jpg


설치CD를 자주 사용하다 보면 스크래치가 생겨서 정상적으로 설치가 안되는 경우나 잘못 만들어진
설치CD에 대해서 점검을 하는 부분이다. 시간이 약간 걸릴 수 있으므로 만들어진 CD가 정상이라고 생각하고 Skip하도록 하자.

2.1.3 환영 메시지

install_3.jpg


환영메시지..^^;

2.1.4 설치 언어 선택

install_4.jpg


설치를 진행할 동안 사용할 언어 선택이다.
리눅스에서 사용할 언어를 선택하는것이 아니다..^^;

2.1.5 키보드 선택

install_5.jpg


리눅스에서 사용할 키보드 타입을 선택한다.기본적으로 us 를 선택하도록 한다.

2.1.6 파티션 설정

install_6.jpg


설치 과정중에서 가장 중요한 부분이다. 바로 파티션을 설정하는 부분이다.
나중에도 설명을 더 하겠지만 유닉스 계열들의 시스템은 안정성과 보안 또는 관리를 위해서
파티션을 많이 나눠서 사용하는 편이다.
잘못된 파티션은 나중에 리눅스를 재설치하거나 비효율적으로 사용하게 되는 경우가 있다.
따라서 파티션 계획은 실제 서버를 구동할 때 아주 중요하다.
예를 들면 리스 서버처럼 많은 계정 사용자들에게 공간을 할당해줘야 되는 경우 /home 파티션이
많이 필요한데(사실 반드시 home 파티션이어야 할 필요는 없다..^^) /home 파티션을 작게 잡은 경우 다른 여유 공간에 사용자 계정을 생성해야 되고
그렇게 되면 이곳 저곳에 사용자 계정들이 나눠지게 되어 관리 측면에서 귀찮게 될것이다.

*설명

  1. 선택한 드라이브의 모든 파티션을 삭제하고 기본 layout 으로 파티션 설정(주의-이미 설치된 OS파티션도 모두 삭제한다)
  2. 선택한 드라이브의 리눅스 파티션을 삭제하고 기본 layout으로 파티션 설정
  3. 선택한 드라이브의 남은 공간을 이용해서 기본 layout으로 파티션 설정
  4. 사용자 선택

 

[참고]
리눅스의 하드 디스크 장치는 IDE 타입의 하드 디스크의 경우에 hdX,sata 타입 또는 scsi타입의 하드 디스크일 경우에 sdX 의 형태로 구분이 된다.(X는 알파벳a~z)
시스템의 첫번째 하드 디스크는 a, 두번째 하드 디스크라면 b 가 되는것이다.
가끔은 c0d0 의 형태들도 볼 수 있을 텐데 보통 HP서버의 경우에서 볼 수 있다.
간단히 설명하자면 controller 번호(채널),디스크 번호 이렇게 보면 된다.
대형 시스템은 디스크 컨트롤 채널이 아주 많고 많은 디스크들을 컨트롤 하게 된다.

 

리눅스 파티션에 대한 이해가 조금 필요하므로 사용자 선택을 해보도록 한다.

install_7.jpg

 

새 파티션을 만들어야 하므로 New 를 선택해보자

install_8.jpg

 

Mount Point: 마운트 란 나중에 알게 되겠지만 장치를 연결하는 과정을 이야기 한다.
유닉스 계열들의 장치들은 파일로 이뤄져 있고 그 장치를 사용하기 위해서는 반드시 mount 과정을 거쳐야 사용할 수 있다. 유닉스 계열의 시스템은 반드시 / 가 존재해야 하므로 / 를 입력하도록 하자.
File system type: 만들 파티션의 파일시스템을 정해준다. 보통 많이 사용하는 ext3로 하자.
Allwable Drives: 파티션을 만들 하드 디스크를 선택한다.
Size: 파티션 사이즈를 정해준다.
Fixed Size: Size 에서 정해준 크기로 파티션을 설정한다.
Fill maximum size of: Size 에서 정해준 크기의 최대값을 정해준다. 즉 Size 에서 1000M를 잡아두고 여기에서 1500M 를 잡았다면 1500M로 지정이 된다.
Fill all available space: 하드 디스크의 남은 공간을 모두 사용한다.
Force to be a primary partition: 강제로 primary 파티션으로 설정한다.
[참고]
리눅스에서는 기본적으로 4개의 primary 파티션을 생성할 수 있다.
4개 이상의 파티션이 필요한 경우에는 extended 파티션을 만들고 그 안에 logical 파티션을 생성해서 많은수의 파티션을 사용할 수 있다.
IDE타입이 하드 디스크의 경우에 63개까지 생성이 가능하며
SCSI 타입의 경우 11~17개 까지 생성이 가능하다고 되어 있다.

 

일단 처음으로 리눅스를 설치한다면 간단히 / 와 swap 파티션만 만들어서 사용하도록 하자.
필자의 경우 8G 하드 디스크 이므로 / 파티션에 7G swap파티션에 1G정도를 할당하겠다.
실제 리눅스 서버의 경우에는 용도에 많게 많이 파티션을 나누어서 사용한다.
 swap 파티션이란?
swap파티션은 시스템에 설치된 물리적인 메모리(흔히 말하는 램)보다 큰 어플리케이션을 구동할때
램처럼 사용할수 있도록 해주는 특별한 파티션이다. 따라서 모든 시스템에 swap파티션이 필요한것은 아니지만 만약을 위해서 반드시 swap파티션을 설정해 주는것이 좋다.
보통의 책에서는 메모리의 2배로 설정하라고 하고있지만 시스템의 용도에 따라서 아주 많이 잡아줘야 되는 경우도 있으니 참고 하기 바란다.

 

install_8.jpg

 

install_9.jpg


/ 파티션과 swap 파티션만 설정했다. 다 되었다면 OK 실행해서 다음으로 가도록 하자

install_10.jpg


부트로더 설치 할 것인지 물어보고 있다. 사용한다고 선택하자.
부트로더란 말그대로 OS를 부팅 시켜주는 역할을 하는 프로그램이다.
리눅스의 대표적인 부트로더인 grub 을 사용하도록 하자.

install_11.jpg


부트로더에 특별한 설정을 하고자 할 경우에 사용한다.
일단 아무것도 넣지 않고 넘어가도록 하자

[참고]
리눅스 서버에 키보드 마우스가 없는 경우에 serial 케이블을 이용해서 console 에 접근 할 수도 있다.
네트워크쪽에서 일하거나 일하는 모습을 본적이 있는 사람이라면 노트북 가지고 와서 장비와 연결해서 뭔가 작업하는 모습을 본적이 있을것이다. 그게 보통 serial 통신으로 시스템 콘솔에 접속하는 것이다.
아래는 grub에 serial 설정을 하는 경우이다.
title My Linux
  root (hd0,0)
  kernel /vmlinuz-2.6.31 ro root=/dev/hda6 console=tty0 console=ttyS0,9600n8
  initrd /initrd-2.6.31.img

 

install_12.jpg


Grub 에 패스둬드 설정을 하는 부분이다. grub의 경우에 부팅 하기전에 여러가지 설정을 변경하면서
부팅할수 있는 잇점이 있다. 위에서 GRUB 패스워드를 정해준다면 grub 부팅 설정을 변경하기 위해서는
패스워드를 입력해야만 수정이 가능하다.

install_13.jpg


기본적으로 부팅할 커널에 대한 설정이다. 부팅시 보여줄 이름과 부팅시킬 파티션에 대한 설정이다.
기본값으로 그냥 두도록 하자.

install_14.jpg


부트로더를 어디에 설치할것인지에 대한 설정이다. 특별한 경우를 제외하고는 MBR에 설치하도록 한다.

install_15.jpg


네트워크 인터페이스를 설정하는 곳이다. 리눅스 시스템이 사용할 IP address 및 gateway,subnetmask 를 설정할 수 있다.
잘 모른다면 일단 No 를 선택해서 설정하지 말기 바란다. 나중에 원하는대로 설정이 가능하다.

install_17.jpg


리눅스 시스템의 이름을 정해준다.

install_18.jpg


시스템 날짜를 설정한다.

install_19.jpg


root 사용자의 패스워드를 설정한다. 설정한 패스워드를 잊어먹지 않도록 주의하자.

install_20.jpg


리눅스의 용도에 맞게 선택하면 된다. 리눅스 시스템을 이해하기 위해서는 최소한으로만 일단 설치하도록 하자. 설치 시간도 아낄겸..^^;
Server 를 선택해서 설치해보도록 하자.

install_22.jpg


install 시작.

install_23.jpg


리눅스 패키지 설치.

install_24.jpg


설치 완료. 재부팅을 선택하면 이제 리눅스의 세계로 들어갈 것이다.^^;

 

리눅스 배워보기

필자가 리눅스를 배우고 다루면서 느낀 몇 가지 조언을 해보고자 한다.

흔히들 처음 리눅스 하면 배우기 어렵고 난해하다고 생각할지도 모르겠지만 필자가 보기에는 리눅스 만큼
쉽고 매력적인 OS는 아마 없지 않나 싶다.
리눅스를 한번도 다뤄본적이 없는가? 아니다 이미 당신은 리눅스를 사용하고 있을지도 모른다.
휴대폰,PDA,인터넷 공유기,방화벽,라우터 등등 수많은 시스템에 리눅스가 적재가 되어 있다.^^;

* 무작정 일단 해봐라.
실제로 경험만큼 좋은 스승은 없다고 하지 않았는가!
예전에 컴퓨터는 깡통이다라는 책이 기억이 난다. 그렇다 컴퓨터는 단순한 기계다. 그 기계는 우리에 의해서 동작한다. 일단 마음껏 이것저것 시도해 보도록 하자.
잘못된 명령으로 컴퓨터가 폭발하는 일은 절대로 없다..^^;
* 메뉴얼을 반드시 읽어보자.
유닉스 계열의 혹은 기타 모든 시스템은 각자의 매뉴얼들이 준비가 되어있다.
메뉴얼을 읽어보는 습관을 무조건 갖자. 우리 인간의 머리는 한계가 있다.
자주 쓰는 명령어도 가끔을 헷갈릴 경우가 많다.
항상 메뉴얼을 뒤적거려보는 습관을 들이도록 하자.
* 에러 메시지를 두려워 하지 말자.
리눅스를 공부하면서 수많은 에러들을 보게 될 것이다.
미리 겁부터 먹지 말자. 컴퓨터는 정확하고 인간은 실수를 하는 법이다.
잘못된 명령만이 오류를 발생시킨다.^^;
command not found – 간단하다. 명령을 찾을수 없단다. 정확히 명령을 내리던지 명령이 수행될 수있도록만 해주자. 더이상 에러는 없을 것이다.
No such file or directory – 파일이나 디렉토리를 못찾는 단다. 왜 못찾는지 한번 확인해보자.
이처럼 유닉스 계열의 시스템은 사용자와 대화를 나누려고 한다.
겁먹지 말고 시스템과 대화를 나눠보자..^^;

왜 리눅스를 사용하는가?

* 리눅스는 자유롭다
당신은 리눅스를 사용함에 있어서 어떠한 제약이 없다.
로열티를 지불하지도 라이센스 비용을 지불하지 않아도 된다.
* 다양한 플랫폼에서 동작한다
i386 기반에서만 동작하는 windows 계열들 sparc에서만 동작하는 solaris 등
특정 플랫폼에서만 동작하는 OS와는 달리 리눅스는 아주 다양한 플랫폼을 지원한다.
아래는 리눅스 커널소스에서 살펴본 arch 디렉토리다.
[root@server arch]# pwd /usr/src/linux/arch
[root@server arch]# ls
alpha avr32 cris h8300 m32r m68knommu parisc ppc sh sparc um x86 arm
blackfin frv ia64 m68k mips powerpc s390 sh64 sparc64 v850 xtensa
[root@server arch]#
생소한 cpu 들이 보이지 않는가?
이처럼 리눅스는 아주 다양한 플랫폼에서도 동작을 함으로써 많은 용도로 사용이 가능하다.

* 진정한 멀티 태스킹 시스템이다.
리눅스에서 동작하는 모든 프로그램은 개별적으로 동작을 한다.
시스템에 문제가 되는 프로세서만 간단히 제거하면 시스템은 아무 문제없는 상태로 되돌아 갈것이다. Windows xp를 사용하면서 잘쓰고 있던 워드 프로세서가 인터넷 익스플로러 때문에 먹통이 된 경험을 한적이 있는가? 안심해라 리눅스는 그럴 일이 거의 없다.

* 저사양의 시스템에서도 동작한다.
요즘은 배포판의 크기들이 커져서 꽤 많은 메모리를 요구를 하며 꽤많은 하드 디스크를 요구하지만
실제로는 여러분이 원한다면 구닥다리 486 PC 에서도 리눅스를 설치해서 사용할 있다.
심지어는 1M도 안되는 플로피 디스켓으로도 리눅스를 운영할 수 있다.
집에 쓸데없이 뒹굴고 있는 구닥다리 PC가 있다면 리눅스로 훌륭한 공유기를 만들수도 있다.^^;

어떤 배포판을 사용 할 것인가

현재 우리는 수많은 배포판을 사용할 수 있으며 당신은 당신이 마음에 드는 배포판을 선택해서 리눅스를 설치할 수 있다.
래드햇,수세,맨드레이크,칼데라,데비안,슬렉웨어,젠투,CentOS,우분투,안녕리눅스 등등 당신의 입맛에 맞는 OS를 선택할 수 있다.
배포판 별로 약간씩의 차이는 있지만 기본적인 구조들은 모두 같다고 봐도 된다.