5 분 소요


VirtualBOx Network 종류

  • 실제컴퓨터-HOST PC
  • 가상컴퓨터-GUEST PC

근거리 통신망을 빠져나가려면(WAN으로 나가려면) GATEWAY가 필요하다.

들어올 때는 router(라우터)를 통해서 내부 HOST PC를 연결해 준다.

하나의 HOST PC 안에서도 GUEST PC를 둘 수 있다.

HOST PC와도 통신이 가능해야 하고, 이 GUEST PC들도 외부(WAN)와 통신이 가능해야 한다.

img

NAT
내부의 GUEST PC간의 통신 안됨, GUEST PC가 WAN으로 나가는 것은 가능하나 들어오려면 포트포워딩이 필요하다.
GUEST PC가 HOST PC로의 통신 안됨, HOST PC가 GUEST PC에 접속하려면 포트포워딩을 해야한다.
(포트포워딩: 몇번 포트로 들어오면 어느 피시의 포트로 연결한다는 설정)

img

NAT Network
GUEST PC간의 연결이 가능하다. GUEST PC들이 하나의 네트워크를 구성한다.

img

Host Only Adapter
GUEST PC에서 외부로 통신할 방법이 없다.

img

Adapter Bridge
외부에서 직접 들어올 순 없다.

img

Internal Network
게스트 피시들만 연결이 가능하다.

img

일반적인 환경에서는 주로 Host Only Adapter와 NAT를 혼용해서 사용한다.(어댑터1, 2 두개 사용)

리눅스의 종류

  1. 레드헷(RedHat) 계열 센트OS(CentOS), 페도라(Fedora) 등

    RPM 기준: RPM(Red Hat Package Manager) 혹은 YUM((yello-dog updater modifier)

  2. 데비안(Debian) 계열 우분투(Ubuntu), 민트리눅스(Linux Mint) 등

    DEB 방식을 사용: DPKG(Debian Package Manager) 혹은 APT(Advanced Package Tools)

가상머신 생성과 리눅스 설치

VirtualBox 사용 CentOS 7 설치 환경설정-입력-가상머신 의 호스트 키 조합을 설정한다.

  • 가상머신 설정
    Skip Unattended Installation: 체크하지 않을 경우 제품키 요구한다.
    기본 메모리는 많을수록 좋지만 시스템 메모리 상활을 고려하여 선택한다.
    프로세서 수는 시스템의 논리적 프로세서의 수 이하로 설정하도록 한다.
  • CentOS 설치 설정
    소프트웨어 선택 - 개발 및 창조를 위한 워크스테이션
    추가 선택 - 추가 개발, 호환성 라이브러리, 개발용 툴, 시스템 관리 도구
  • 수동 파티션 설정
    (LVM: 소프트웨어 레벨에서 레이드를 묶어주는 시스템)
  • 마운트 지점 swap
    가상 메모리 (리눅스 시스템은 메모리에 공간이 있으면 가상메모리 사용하지 않는다.)

리눅스의 기본 파일시스템은 ext이다.

  • 네트워크 설정
    10.0.2.* : VirtualBox에서 제공하는 NAT 서버 주소
    도메인 네임 서비스: 도메인 주소를 IP주소로 변환해 준다.
    도메인 네임 서비스를 제공하는 서버 DNS(Domain Name Server)

로그인과 로그아웃

쉘(Sheel): 사용자가 입력한 명령을 머신이 실행할 수 있게 번역해주는 통역자이다. 로그인 시 쉘을 획득한다.

exit, logout, Ctrl+D: 로그아웃(쉘 종료)

프롬프트 - 쉘을 획득했음을 나타낸다.

$(커런시 심볼;Currency symbol) : 일반 권한

#(해시 심볼;Hash symbol) : 관리자 권환

사용자 권한 획득

sudo(system user do) 명령: 관리자 권한 실행

su : 특정 계정의 권한 획득

sudo su - : 이전 획득한 sheel에 root sheel을 추가 획득

‘su’ 또는 ‘su 계정’ 명령은 권한만 획득하고 ‘su -‘ 또는 ‘su - 계정’ 명령은 권한을 획득함과 동시에 사용자의 프로파일을 읽어 들여 사용자 환경변수를 재설정 함으로써 마치 해당 계정으로 로그인 한 것과 같은 환경을 제공한다.

모든 작업이 종료되고 나면 획득했던 권한을 해제해야 한다. (exit, logout 혹은 Ctrl+D)

~ : 현재 사용자의 홈 디렉토리 (홈 디렉토리의 파일을 참조해야 할 경우 사용한다.)

  • etc: 현재 디렉토리 하위의 etc (./ect) 와 같음
  • /etc: 절대경로(루트 디렉토리 하위의 etc)
  • ~/etc: 절대경로(홈 디렉토리 하위의 ect)

~[계정명] : 해당 계정의 홈 디렉토리

  • 관련 명령어
    whoami : 현재 획득권한을 확인
    who : 현재 시스템에 접속되어 있는 사용자 목록을 출력
    id 사용자 : 사용자 계정에 대한 정보 출력(사용자id, 소유그룹id, 소속그룹id 등)

:0은 xwindow의 연결을 나타낸다. (xwindow는 텍스트로 명령을 내리는 것이 아닌 gui로 출력)

pst/0은 0번 가상 콘솔을 나타낸다.


SSH 설치 및 운용

SSH(Secure Shell)은 네트워크의 다른 컴퓨터에 로그인 할 수 잇으며 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 프로그램이다.

SSH 설치

설치 여부 확인

yum list installed | grep openssh-server

실제 설치

yum install openssh-server

systemctl(시스템 컨트롤)

systemctl start sshdssh # ssh 데몬 구동
systemctl status sshd # 상태보기
systemctl enable sshd # 시스템 재부팅 시 서버 구동

Windows 시스템에서 ssh서버에 접속하고자 한다면 별도의 터미널 프로그램이 필요하다.

PuTTY 등 여러 프로그램이 있지만 teraterm이라는 ssh 클라이언트 프로그램을 사용한다. (default 포트는 22이다.)

파일 업로드는 scp를 이용하고 디렉토리는 불가능하여 압축을 하거나 해서 해야 한다.


시스템 종료 및 재부팅

shutdown 옵션 시간 [메시지]
옵션 설명
-t secs 다른 런레벨로 바뀌기 전에 경고 메시지와 kill 시그널 사이의 기다리는 시간 설정
-k 실질적으로 shutdown을 하지는 않고 모든 사용자에게 경고 메시지만 보냄
-r 재시작
-h 시스템 종료
-f 빠른 재시작
-c shutdown 취소
시간형식 설명
now 지금 즉시
10 10분 뒤에
13:00 13:00에

리눅스 시스템의 명령체계

Tab 두번 : 해당 문자로 시작하는 명령어 검색

Tab 한번 : 해당 객체가 하나일 경우 디렉토리 자동완성

  • 환경변수
    시스템을 운용하고 관리하기 위해 매크로화 시킨 값
    쉘이 운영체제를 사용하기 위해서 필요한 변수
$PATH
사용자가 명령을 실행할 때, 해당 명령에 대한 실행파일을 검색하고 실행할 때 사용되는 변수
등록된 경로는 ‘:’로 구분된다.

사용자 변수 지정은 변수 그대로 넣지만 변수를 참조 할 때는 $(커린시 심볼)을 붙여야 인식한다.

리눅스의 명령구성

명령 [옵션] [대상] # 옵션과 대상의 순서는 바뀔 수 있다

-l: 긴 형태로 출력(자세히) (--format=long과 같다)

-la: 모든 파일 (-l, -a 구분해서 명령할 수도 있음)

파일 복사 등과 같이 대상의 순서를 지켜줘야 하는 명령도 있음

Ctrl+l : clear와 같은 기능


리눅스 디렉토리 구성

최상위 디렉토리

  • dev: 물리적 장치 등을 파일화하여 관리
    1. 케릭터 타입 디바이스 : 데이터의 입출력만
    2. 블록 디바이스: 데이터를 저장
  • etc: 시스템 환경설정 파일 및 부팅과 관련된 여러가지 스트립트 파일, 시스템 운영에 매우 중요한 파일들이 존재하므로 임의로 삭제하거나 수정하면 안된다.
  • bin: 실행파일
  • sbin: 시스템 실행파일
  • home: 일반 사용자의 홈 디렉토리가 모여 있다.
  • proc: 프로세서와 시스템의 전반적인 정보가 저장
  • root: 시스템 관리자 계정의 홈 디렉토리
  • media, mnt 장치가 마운트되는 디렉토리(요즘은 media)
  • usr: 주로 응용프로그램이 들어감
  • var: log등 가변적인 파일
  • lost+found: 유실된 파일

man 페이지

man [섹션번호] 명령

명령에 대한 메뉴얼 + 설치된 언어의 함수들 설명 등

vi 편집기의 편집모드와 유사한 동작을 한다.(편집불가)

  • 숫자 , PgUp, PgDn : 페이지 이동

  • g : 첫 라인

  • 숫자+g : 숫자 라인으로

  • G(Shift + g) : 마지막 라인

  • /검색어 : 현재 커서 아래로 검색 n:다음, N(Shift + n):이전

  • ?(Shift + /)검색어 : 현재커서 위로 검색 n:다음, N(Shift + n):이전

  • q : 나가기

whereis를 사용하면 해당 파일의 위치와 메뉴얼의 종류, 위치를 확인할 수 있다.

passwd는 1, 5번 섹션이 존재 -> man 5 passwd

less : 파일 내용 보기 (메뉴얼이 less를 이용해 실행되므로 단축키를 그대로 사용 가능)


파일 및 디렉토리 관련 명령

Ctrl + c 강제종료

Ctrl + z 일시정지

디렉토리 및 파일의 목록출력

ls [섹션번호] 명령

절대경로

  • /: root
  • ~: 현재 유저의 홈 디렉토리
  • ~계정명: 계정 유저의 홈 디렉토리

상대경로

  • .: 현재 디렉토리
  • ..: 한단계 부모 디렉토리
short long 설명
-l –format=long 특정 포맷의 형태로 목록 출력
-i –inode 파일 및 디렉토리의 inode 값을 출력
-a –all 모든 파일 및 디렉토리를 출력
-R –recursive 하위 디렉토리가 포함한 파일 및 디렉토리 목록도 출력
-F —-classify 파일의 형식을 알리는 문자를 각 파일 및 디렉토리명 뒤에 추가
-i
inode값을 출력(inode: 블럭상의 위치, 파일 번호)
모든 파일과 디렉토리는 inode를 붙여 관리한다. 즉 파일명은 inode의 별칭이다.

디렉토리의 이동

  • pwd: 현재 디렉토리 출력

  • cd: 디렉토리 이동

윈도우 시스템에는 확장자, 폴더, 디렉토리가 있다.

posix에서는 ‘/etc/fstab’ 전체가 파일명, 즉 루트로 부터의 경로 전체가 파일명이다.

/etc/ssh 파일 일수도 디렉토리 일수도 있다. 파일도 파일, 디렉토리도 파일이라고 한다.

차이점은 파일은 DATA를 가지고 디렉토리는 파일 또는 디렉토리 목록을 가진다.

/etc/ssh/: 경로뒤에 /붙으면 디렉토리라고 쉘에게 명확히 알려준다.

파일의 복사

cp(copy)

cp [옵션] 복사원본 복사위치

소스가 여러게 올 수 있으나 마지막은 디렉토리여야 한다

옵션 설명
-a 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사. -dpR 옵션의 사용과 같으며 관리자 계정만이 사용가능
-b 동일한 파일이 존재 시 백업본(파일명~)을 생성
-f 동일한 파일이 존재 시 삭제 후 복사
-i 동일한 파일이 존재 시 덮어씌울 것인지 물음
-p 원본파일의 소유주, 그룹, 권한, 시간정보를 그대로 복사
-r 디렉토리 복사옵션 (디렉토리의 하위 디렉토리와 파일을 함께 복사)
-l 복사 원본이 파일인 경우, 하드 링크로 복사
-s 복사 원본이 파일인 경우, 심볼릭 링크로 복사
-u 동일한 파일이 존재 시 복사하고자 하는 파일과 비교하여 최신 파일인 경우 복사
-v 복사되는 과정을 보여줌
cp memo a/ # 이름을 지정하지 않으면 그대로 복사 (a가 디렉토리임을 명확히 함)
cp memo a/text # 이름이 지정되어 복사(text뒤에 /가 없으므로)
  • -l: (하드 링크) inode 데이터에 별칭을 하나더 붙인다.
  • -s: (심볼릭 링크) 실제 파일이 아니라 바로가기, 실제로는 ln명령을 쓴다.

파일 및 디렉토리의 이동

mv(move)

mv [옵션] 이동원본 이동위치

이름변경에도 사용

mv memo1 memo11 # memo11이라는 폴더가 없을 시 이름 변경
옵션 설명
-b 동일한 파일이 존재 시 백업본(파일명~)을 생성
-f 동일한 파일이 존재 시 삭제 후 이동
-i 동일한 파일이 존재 시 덮어씌울 것인지 물음
-u 동일한 파일이 존재 시 복사하고자 하는 파일과 비교하여 최신 파일인 경우 이동
-v 이동되는 과정을 보여줌
-S suffix 파일명 뒤에 꼬리말을 붙여서 이동

cat ~/.bashrc 를 보면 rm, cp, mv에 -i 옵션이 들어간다! 즉, -f가 들어가도 -i옵션이 우선된다. (root 계정이기에) 가능하면 위험하기에 주의

파일 및 디렉토리의 삭제

rm(remove)

rm [옵션] 삭제대상
옵션 설명
-f 강제로 삭제. 대상이 없는 경우 메시지 출력 안함
-i 삭제할 때마다 삭제할 것인지 물음
-r, -R 디렉토리 내부의 모든 내용 삭제
-v 삭제되는 과정을 보여줌

디렉토리의 생성 및 삭제

mkdir(make dir)

mkdir [옵션] 디렉토리명
옵션 설명
-p 경로상 디렉토리가 없으면 만들어서 생성

rmdir: 디렉토리가 비어야 디렉토리 삭제 가능

디렉토리 삭제 시 rm의 -d 또는 –directory 쓰자.

파일의 생성

touch 파일명
옵션 설명
-a 파일의 access time만 변경
-c 파일이 존재할 경우 새로 생성하지 않음
-d 시간을 지정
-m 파일의 modify time만 변경
-f file 현재 시간 대신 지정한 파일의 시간으로 변경
-t MMDDhhmm 현재 시간 대신 지정한 시간으로 변경

Reference

  • 이 포스트는 SeSAC 인공지능 SW 개발자 양성 과정 - 김기희 강사님의 강의내용을 정리한 것입니다.

태그:

카테고리:

업데이트:

댓글남기기