- Legacy : 전통적인 방식
- 운영 체제 또는 OS(Operation System)은 하드웨어 관리, 소프트웨어 실행 하기 위해, 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다.
- 최근에는 가상화 기술의 발전에 힘업어 실제 하드웨어가 아닌 하이퍼바이저(가상머신) 위에서 실행되기도 한다.
- 또, 입출력과 메모리 할당과 같은 하드웨어 기능의 경우, 운영 체제는 응용 프로그램과 컴퓨터 하드웨어 사이의 중재역할(커널, Kernel)을 한다.
- 현재는 Windows, MacOS X, Linux가 있고, 이 밖에 BSD. 유닉스 등의 PC용 OS도 존재한다.
- 운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, IO장치등의 자원들을 사용할 수 있도록 만들어 준다.
- 도한, 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영 체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보이는 효과를 낸다.
커널(kernel)
이란 OS에서 가장 중요한 프로그램 중 하나이며, 하드웨어 자원을 관리하는 관리자이다. 즉, 어떤 프로그램이 작동할 수 있도록 CPU, 메모리, 디스크 등 하드웨어 자원을 배분하는 것이 커널이다.
- 쉘(shell)이란 사람이 사용하는 명령어를 프로그램이 실행할 수 있도록 만들어주는 인터페이스이다.
- backup : ova 파일로 내보내기 (다른 머신으로 옮기기)
- snapshot : 타임머신 기능 (어느 한 시점을 찍고 돌아가는 복원 기능)
- ssh : Secure Shell (서버(
Phisical M. Virtual M
)에 접속하는 도구)- ip a : ip확인하는 명령어
- CentOS7Minimal에서 ip a한 ip와 CMD에서 ipconfig한 ip가 다르다. -> 통신이 불가- ssh root@10.0.2.15 -> 현재 불가
- DHCP : Dynamic Host Configuration Protocol (자동 IP할당)
- 복제한 VM이 MAC주소가 똑같아서 IP를 똑같이 부여해버린다.
- 그렇다면 복제한 VM의 MAC주소를 바꿔줘야 한다.
- 복제VM이 켜져있다면 poweroff한 후, VM설정에 들어가 네트워크 -> 고급 -> MAC주소 오른쪽 새로고침 누르기
- NIC : Network Interface Card (랜카드), 실제 랜카드
- vNIC : Virtual Network Interface Card(가상 랜카드)
- 공인IP가 없으면 인터넷의 통신이 되지 않는다.
- 통신사에서 내 공유기에 공인(외부) IP를 주고, 수수료를 먹는것이 인터넷 요금이다. (네이버에내 아이피
검색)
- 결국 각 집마다 IP가 하나 있는 것이고,
- 각 client는 공유기에서 사설 IP를 받아 사용하는 것이다.
- NAT는 공유기 안에서, 사설IP와 공인IP를 서로 전환하여 통신할 수 있도록 해주는 것이다.
- 포트
- 80, 22 등이 있다.- 포트 포워드 : 포워드(forward, 전달), 스위치, IP 공유기 를 통해 내 PC로 들어올 수 있도록 한다. 호스트포트를 열고, 거기로 오는 호스트Ip의 신호를 받아서 게스트포트를 열어주고 연결시켜준다.
- **IP통신에는,
출발지 IP번호
와목적지 IP번호
가 필수이다.- 공유기를 세팅하지 않으면, 안에서 밖으로 나갈 수 있지만(아웃 바운드), 처음부터 밖에서 들어보는 트래픽(인바운드)은 들어오지 못한다. 방화벽에 막히게 된다.(deny)
- 이를 송신 전용 게이트웨이라고 한다.**
- 호스트 ip (win10 ip)
- 게스트 ip (VM ip)
- 호스트 포트 : 22, 게스트 포트: 22
- known host 리스트 목록에 집어넣어진다. (알려진 호스트로 저장)
만약 안될 때,
- dir로 .ssh폴더 확인
- .ssh들어가서 dir로 known host 파일 있나 확인
- del known host로 삭제
- cd ../로 복귀후 다시 시도해보기
- 명령프롬프트에서
exit
로 나갈 수 있음- 옆 사람 VM에도 접속해보자
- adduuser '아이디'
- passwd '아이디' 이렇게 접속용 계정을 만들어 보자
- ssh '아이디'@ip주소 를 입력하면 로그인이 되는 것을 볼 수 있다.
- bridge : 외부 IP 사용가능
- NAT (같은 IP)
- NAT를 이용하면, 고정된 IP를 사용하여, VM을 복제하면 IP가 똑같아 문제가 될 수 있다. 따라서 Natnetwork를 사용해야 한다. 이것은 Virtualbox의 특징이다.
- Natnetwork(직접 만들 수 있음)
- Vbox 환경설정(전역)에 들어가서 네트워크 -> 네트워크 추가 -> 확인 누르면 된다.
- 각 VM 설정에 들어가 네트워크를 NATNetwork로 바꿔준다.
- 다른 곳에서는 자동으로 NatNetwork를 만들어주고 Nat를 하나로 통합하지만 Vbox에서는 특이하게 둘로 나뉘었다.
- host only(호스트 전용 어댑터)
- 내부네트워크(가상스위치)
- 하나의 호스트, 하나의 VM이 있을 때, 호스트 IP하나로 게스트 VM으로 들어갈 수 있었다.
- 만약 VM이 두개라면 어떻게 들어가야 하나?
포트포워드에 답이 있다.
포트를 서로 달리해서 다로 연결 해 준다
- 이때 Vbox의 모습이 도커 컨테이너이다.
- NATNetwork에서도 포트포워딩을 설정할 수 있다.
VM둘다 설정 네트워크에 들어가서 Host only로 바꿔준다.
인터넷 사용 불가능한 IP이다. 그러나 SSH로 접근은 가능하다.
호스트의 IP만 통신하는 네트워크이다. 호스트에서 ping을 보내면 반사가 온다.
- 이 IP는 외부와 통신하는 용도가 아닌, 자기 자신을 위한 IP.
루프백 IP
라고 한다.이 상태에서 인터넷을 사용하려면 LAN카드를 하나씩 추가하면 된다.
VM각 설정에 들어가서 네트워크 -> 어댑터2 -> NAT, NATNetwork를 추가한다.
VMware에서는 유료지만 1개의 랜카드로 둘다 사용할 수 있다.
포트포워딩을 진행해서, SSH연결을 통해 같은 네트워크 사람을 들어오게 할 수 있다. 그래서, 우리는 랜카드 2개로 SSH연결과 인터넷을 사용할 수 있게 되었다.
자동 IP주는 방법은 실무에서는 보안상의 이유는 사용되지 않는다.
- 매우 편하다.
- host only, NAT방법들은 노트북으로 설정했다, 집가서 인터넷을 바꿔도 똑같다. 그러나 브릿지는 다를 것이다.
- 브릿지는 인터넷, 호스트와 모두 통신할 수 있다.
- 먼저 각 VM에 네트워크 설정에서 어댑터2를 다 꺼주고,
ost Only
정을어댑터에 브릿지
설정으로 바꿔준다.- 랜카드 2개를 이용하는 방법이 가장 무난한 방법이고, 브릿지는 IP를 못받는 상황이 발생한다.
- 먼저 연결된 복제였던 VM을 지우고 새로 완전한 복제 VM을 만들어준다. 이름은 CentOS7XFCE로 한다.
- 기본 메모리를 4Gb, CPU 2개, 디스플레이 비디오 메모리를 최대로 스케일업해준다.
- 센토스 7 커널 업데이트
# 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
- yum : CentOS의 명령어
「YUM 이란 Yellowdog Updater Modified 의 약자로서 rpm 기반의 시스템을 위한 자동 업데이터 이자 패키지 설치/ 삭제 도구입니다. 또한 YUM은 자동적으로 의존성을 처리해 주며 rpm 패키지들을 안전하게 설치, 삭제 및 업데이트하기 위해 반드시 해야 할 일을 스스로 해결합니다.」
-솔직히 그냥 설치명령어다.-
출처: https://nowonbun.tistory.com/114 [명월 일지]- yum-plugin-fastestmirror : 가장 가까운 mirror 사이트를 찾는다.
- -y옵션 : 설치할때 묻지말고 설치
- update : 버전업의 업데이트 (기능, 보안 등)
- 이름에 kernel~~ 라고 들어간 것을 설치하게 되면 reboot으로 재부팅이 필요하다.
# 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
- rm : remove
- rm -rf : remove 폴더까지 다 지워버림
- unzip : zip해제
- yum install -y unzip wget : wget을 설치하고 압축해제 까지 진행한다.
# 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
- mkdir : 디렉토리 만들기
- wget :
- re
- Not listed?-> root로그인 해준 후, 터미널을 켠다.
- VM메뉴바에 장치를 누르고, 게스트 확장 CD 이미지 삽입을 눌러준다.
- 이후 아래 명령어 입력
#mount /dev/sr0 /mnt #cd /mnt #./VBoxLinuxAdditions.run #reboot
- 위 작업을 마치면 화면 크기를 조정할 때, 알아서 화면 사이즈 조정이 된다.
- VM메뉴바에 장치 -> 클립보드 공유 양방향, 장치 -> 드래그앤드롭 양방향 으로 설정하여 편안한 복붙을 즐기쟈
- VM (Ctrl + shift + c 혹은 마우스 오른쪽 버튼)
#yum install gedit -y
- 메모장 이다.
- mkdir dir{A, B, C}
- 각각 dirA, dirB, dirC 폴더가 만들어진다.- touch dir{A, B, C}/file{X, Y, Z}
- 각 dirA~C 폴더 안에 fileX, fileY, fileZ파일들이 생성된다.(폴더하나에 X~Z까지 생성)- touch file{A, B, C, D}
- fileA~D까지 만들어진다.
- ls -F ./ dirA dirB dirC
- 현재 폴더부터 dirA, dirB, dirC 폴더들에 모든 폴더 리스트를 다 보여준다.
- Command [option][Arguments]
- uname
- 운영체제의 이름
- -a 옵션으로 자세한 정보를 알 수 있다.
- date
- 날짜와 시간확인,
- 혹시 date가 틀어져있을 수도 있다.
- cal
- callender, 달력이 나온다.
- cal 2 2016 : 2016년 2월 달력을 보여라
- clear
- 화면 정리
여러가지 옵션
- uname -a
- (all일수도 있고 아닐수도 있음)
- 옵션은 명령마다 달라서 다 외울 수 없다.
- uname -s
- uname -r
- uname -s -r
- uname -sr
- -s -r처럼 따로, 혹은 -sr처럼 옵션을 줄 수 있다.
- ls : 현재 위치의 파일 리스트를 보여준다.
- ls -l : ls 명령어 + 파일별 세부 정보를 보여준다.- cd : Change Directory, 현재 위치에서 이동한다.
- ~ : 틸드라고 읽는다, home으로 가게 된다.
- / : cd에서 최상위 폴더를 말한다.
- 절대경로 (예: /var/log/samba/old)로 한번에 이동할 수 있다.
- uname; date : 이렇게 두가지 명령어를
;
세미콜론을 이용해 한번에 사용할 수 있다.- cal 5 2019; date; uname -a : 이렇게 볼 수 도 있다.
- sleep [sec] : sec(초)만큼 멈추게 된다. 실행에 대한 우선순위를 부여할때 사용한다.
- Ctrl+C : Terminates the command currently, 최근 실행 명령을 취소한다.
- Ctrl+D : Indicates end-of-file or exit
- mkdir : mk(make)dir(directory) 폴더 생성
- mkdir -p /test : 최상위 디렉토리 아래 test디렉토리 생성
- mkdir -p /test; cd /test; pwd : 최상위 test만들고 이동하고 현재위치 출력까지- pwd : 현재 작업 위치 확인
- cat > file1 : 파일에 내용 입력
- cat > file1 : 입력
hello, Linux
<Ctrl + D> : 파일의 끝 의미
cat file1 : file내용 확인 (cat < file1) 이렇게 볼 수도 있다.
# vi /etc/yum.repos.d/google-chrome.repo [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 # yum install google-chrome-stable -y # vi /opt/google/chrome/google-chrome exec -a "$0" "$HERE/chrome" "$@" --no-sandbox --user-data-dir # /usr/bin/google-chrome
- 이후 reboot 해준다.
- 위 방법은 원래 Vbox는 구글 크롬이 사용이 안되지만, Repository를 새로 생성하여, 구글 크롬을 설치하여 사용할 수 있도록 하는 방법이다.