본문 바로가기
Cloud Solutions Architect

2일차 실무 기초 (2) - CentOS7, Vbox, 가상 시스템 내보내기, 스냅숏, 리눅스 명령어

by 콛웅이 2023. 3. 15.

1. 나눔 고딕 코딩 설치

파일 다운: https://github.com/naver/nanumfont 

 

GitHub - naver/nanumfont

Contribute to naver/nanumfont development by creating an account on GitHub.

github.com

 

NanumGothicCoding-2.5.zip 파일을 다운로드한 후 압축 해제를 한다.

 

 

압축 해제한 파일 내에 글꼴 파일 2개를 선택해 오른쪽 마우스 버튼을 클릭해 설치를 클릭한다.

 

 

2. CentOS 경량 데스크톱 (X-windows) 설치

2-1. CentOS를 cmd에 연결

 

CentOS에 root로 로그인을 하여 명령어 ip a를 입력한다. ip 주소가 출력되는 것을 확인한다.

 

 

 

ssh를 사용하여 root@ip 주소를 입력하여 cmd에 연결한다.

 

 

2-2. CentOS7 커널 업데이트

yum -y install yum-plugin-fastestmirror
yum install epel-release -y
yum update -y
yum install kernel-devel kernel-headers -y
yum install -y install gcc make linux-headers-$(uname -r) dkms
reboot

 

2-3. CentOS 7 xfce 데스크톱 설치

yum groupinstall "X Window System" Xfce -y
systemctl set-default graphical.target
rm -rf /etc/systemd/system/default.target
ln -s '/usr/lib/systemd/system/graphical.target' '/etc/systemd/system/default.target'
yum install -y unzip wget

 

2-4. CentOS7 구글 크롬 설치

vi /etc/yum.repos.d/google-chrome.repo

 

 

vi 파일에서 i를 입력하면 INSERT 모드가 된다.

아래 내용을 복사하여 붙여 넣기 한다.

[google-chrome] 
name=google-chrome 
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1 
gpgcheck=1 
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

insert 모드를 해제하려면 esc를 입력한다.

 

 

 

저장하고 끝내기 위해서 :wq! 를 입력한다. (저장하지 않고 종료하기 위해서는 :q! 를 입력한다.)

이후 명령어를 입력한다.

yum install google-chrome-stable -y
vi /opt/google/chrome/google-chrome

 

마지막 줄로 내려와서 내용을 다음과 같이 수정한다.

i를 입력해 insert모드로 한 후 수정한다.

exec -a "$0" "$HERE/chrome" "$@" --no-sandbox --user-data-dir

esc를 입력해 insert모드를 해제하고 :wq! 를 입력해 저장하고 끝낸다.

 

/usr/bin/google-chrome

 

2-5. 한글 나눔 글꼴 설치

mkdir /usr/share/fonts/nanumfont && cd $_
wget http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip
unzip NanumFont_TTF_ALL.zip
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y perl gcc dkms kernel-devel kernel-headers make bzip2

 

2-6. 설치 후 reboot

reboot를 입력하여 재부팅한다.

reboot 한 후의 centOS는 다음과 같다.

 

설정한 Username (root)와 비밀번호를 입력한다.

 

 

 

3. Vbox 설치

ssh를 사용하여 root@ip 주소를 입력하여 cmd에 연결하고 패스워드를 입력한다.

 

아래 명령어를 입력하여 설치한다. 

yum install -y make kernel-devel gcc perl bzip2
yum update kernel*

 

CD/DVD 드라이브의 내용을 마운트 한다.

mount /dev/sr0 /mnt

 

하지만 마운트 하는데 오류가 발생한다.

 

오류를 해결하기 위해 다음과 같이 실행한다.

CentOS7 설정에서 저장소에 다음과 같이 디스크 파일을 선택한다.

 

 

Program files -> Oracle -> VirtualBox에 VBoxGuestAdditions 디스크 이미지를 선택한다.

 

 

선택된 디스크 파일을 확인한다.

 

 

다시 명령어를 실행하면 마운트가 정상적으로 실행된다.

 

 

마운트 됐는지 df -h로 확인한다.

 

mnt 폴더로 가서 다음을 확인한다.

 

CentOS7에 가서 장치 -> 클립보드 공유 -> 양방향을 선택한다.

 

장치 -> 드래그 앤 드롭 -> 양방향을 선택한다.

 

 

마운트를 한 후 poweroff로 전원을 끈다.

 

4. 가상 시스템 내보내기

Oracle VM VirtualBox 관리자로 이동해서 파일 -> 가상 시스템 내보내기를 클릭한다.

 

 

D드라이브에 vbox_ova라는 폴더를 생성한다.

 

 

파일 위치를 다음과 같이 지정해 주고 다음을 클릭한다.

 

 

내보낼 가상 머신을 선택하고 다음을 클릭한다.

 

 

설정할 가상 시스템을 설정하여 내보내기를 클릭한다.

 

 

vbox_ova 폴더 안에 CentOS7.ova 파일이 생성된 것을 확인할 수 있다. 

 

 

5. 스냅숏 찍기

  • 스냅숏(SnapShot)이란 시스템의 상태나 데이터의 특정 시점을 복사하여 보관하는 것이다.
  • 스냅숏을 취하면 특정 시점의 파일 시스템 상태를 보존하여 이전 상태로 롤백할 수 있다.
  • 전체 복사본이 아닌 차이점만 저장하므로 시스템 성능에 부담을 주지 않으면서 데이터를 보관할 수 있다.

 

스냅숏을 실행한다.

 

 

스냅숏을 이름을 설정하고 확인을 클릭한다.

 

 

설정한 스냅숏을 확인할 수 있다.

 

 

6. 리눅스 명령어 실행

VirtualBox 관리자를 실행에 CentOS7을 실행하기 위해 시작을 클릭한다.

 

 

6.1 리눅스 기본 명령어 (CLI 구문)

터미널에 명령어들을 입력한다.

 

mkdir dir{A,B,C}

 

- mkdir은 디렉터리를 생성하는 명령어이다.

- 디렉터리 dir A, dir B, dir C를 생성한다. 

 

touch dir{A,B,C}/file{X,Y,Z}

- touch는 파일을 생성하는 명령어이다.

- dir A 안에 file X, file Y, file Z를 생성한다. dir B, dir C도 마찬가지이다.

 

touch file{A,B,C,D}

- file A, file B, file C, file D를 생성한다.

 

ls -F ./ dirA dirB dirC

- ls는 디렉터리 내부에 파일 및 디렉터리를 출력한다. -F 옵션을 추가해 디렉터리의 파일과 목록을 출력한다.

- 현재 디렉터리 (./)와 dirA, dirB, dirC 내용을 출력한다.

- 파란색은 디렉터리, 하얀색은 파일이다.

 

uname : 현재 운영체제의 정보를 출력한다.

uname 옵션

  • uname -a : 시스템의 모든 정보를 출력한다.
  • uname -s : 커널 이름을 출력한다.
  • uname -r : 커널의 버전을 출력한다.
  • uname -s -r : 커널 이름과 커널 버전을 한 칸 띄어서 출력한다.
  • uname -sr : uname -s -r과 같다.

 

출력 화면

 

date : 날짜 출력

cal : 현재 날짜에 해당하는 달력을 출력

 

cal month(숫자) year(숫자) : 입력한 연도의 월의 달력을 출력한다

 

ls -l : 디렉터리의 파일 및 폴더의 정보를 출력한다.

출력 정보는 파일의 종류 및 권한, 링크 수, 소유자의 이름, 소유한 그룹의 이름, 크기, 수정 시간, 이름 순서로 나타낸다.

참고로 /etc/hosts는 호스트 이름과 IP 주소를 매핑하는 데 사용되는 파일이다.

 

 

명령어 중간에 세미콜론(;)을 붙이면 개행으로 출력된다.

 

man uname

- man 명령어는 명령어의 매뉴얼을 보여준다.

- 위 명령어는 uname의 매뉴얼을 보여준다.

 

 

6.2 디렉터리 작업

ls -ld dirA

- ls -ld는 현재 디렉터리의 정보를 자세하게 출력하는 명령어이다.

- 출력되는 내용은 ls -l과 같다.

 

 

ls -R dirA

- ls -R은 디렉터리의 하위 목록을 출력한다.

 

 

ls -F /bin/uname

- ls -F는 파일과 디렉터리의 종류를 출력한다.

 

- "*"은 실행 가능한 파일임을 나타낸다.

 

file dirA
file /var/log/maillog
file /bin/uname

- file 명령어는 파일 유형을 식별하는 데 사용한다.

 

 

cd dirA
cd ../dirB
cd /root/dirA
cd ~

- cd 명령어는 디렉터리를 변경하는 데 사용한다.

- cd dirA : dirA 디렉터리로 변경

- cd.. : 상위 디렉터리로 변경

- cd ~ : root 디렉터리로 변경

- cd /root/dirA : root 디렉터리로 변경 후 dirA 디렉터리로 변경

 

pwd

- pwd는 현재 경로를 출력한다.

 

 

 

6.3 파일 작업

cat /etc/hosts

- cat : 파일의 내용을 출력하는 명령어이다.

 

 

echo -e "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15" > numbers

- echo는 문자열을 출력하는 명령어이다.

- -e 옵션을 붙이면 출력하는 문자열에 이스케이프 문자열이 있어 이를 해석하기 위해 사용된다.

- \n은 줄 바꿈 문자이다.

-> numbers는 numbers 파일에 문자열을 쓴다는 의미이다.

- 따라서 위 명령어는 1부터 15까지 새 줄로 구분되어 numbers 파일에 쓰인다.

 

cat numbers

numbers 파일을 출력하면 다음과 같다.

 

 

head numbers
head -5 numbers  # number 파일에 윗부분에서 5줄까지 출력
tail -3 numbers  # number 파일에 뒷부분에서 3줄까지 출력

- head는 파일의 앞부분에 지정한 줄 만큼 출력하는 명령어이다.

- tail은 파일의 뒷부분에 지정한 줄 만큼 출력하는 명령어이다.

- head와 tail의 default는 10줄이다.

 

 

wc /etc/ssh/sshd_config
wc -l /etc/ssh/sshd_config  # 파일의 행 수를 출력

- wc는 파일의 행, 단어, 문자수를 출력하는 명령어이다.

- 옵션에 따라 -l, -w, -c가 있는데 각각 행, 단어, 문자수를 출력한다.

 

 

7. 기타 알면 좋은 사항

- ctrl + shift + v : 붙여넣기

- ctrl + c : sleep으로 갇혔을 때 해제

- ctrl + u : 전체 지우기

- ctrl + w : 워드 단위로 지우기