Contents
(Linux)리눅스 입문
   2022년07월18일     4분정도면 다 읽어요     - Comments

[카카오 클라우드 스쿨] 리눅스 파트 시작! 기초부터 다져 보자. 디렉터리 등에 대해 알아 보자

LINUX(1) - 리눅스 입문, 디렉터리

클라우드 엔지니어의 리눅스 입문

클라우드 엔지니어가 다루어야 할 리눅스 지식!

  • KVM 가상화
    • 데이터센터 구축 시나리오 (서비스 제공을 위한 인프라 만들기)
    • Docker: PAAS, SAAS


  • 예시
  • WORDPRESS보다 복잡한, Xpress Engine(웹사이트 제작 코드 제공 환경) 즉시 제공 가능
  • 사용자가 클라우드 환경에 접속하여 자신에게 필요한 MARIADB 10.3을 요청하게 되면?
    • root 패스워드 -> 컨테이너로 mariaDB를 제공(10초 정도 만에)
    • 접속 주소를 제공 -> 그 주소를 통해 LOCAL에서 접속 -> MARIADB에 즉시 접속 가능


  • 다음 Linux 운영체제를 모두 사용해 볼 예정!
    • Linux: CentOS7(가상화, OpenStack)
    • Ubuntu 18.04 LTS, 20.04 LTS (도커/쿠버네티스)



리눅스의 파일 시스템

  • 리눅스의 파일시스템은 Tree 형태를 가짐
  • 루트 파일 시스템(/): 최상위 디렉터리
    • 그 밑에: root, etc, var, home, usr..


  • root: root 사용자의 홈 디렉터리
  • home: 일반 사용자들의 홈 디렉터리
  • etc: 구성 파일들이 존재하는 디렉터리 (config)
    • OS(kernel) > 실행 파일 > 구성 파일(서비스의 포트, 경로 등등) > 서비스는 구성 파일을 바탕으로 실행됨
  • var: 시스템 내에서 실시간으로 만들어 지는 Log 와 같은 파일들이 저장됨
  • usr: 주로 실행 파일들이 존재함
  • boot: 부팅을 위한 커널이 존재하는 공간
    • 지워버릴 경우 부팅에 심각한 문제가 발생할 것


  • CD를 활용하여 경로 이동하기
  • 리눅스는 Tree 형태이므로 다른 디렉터리로 직접 이동하는 것은 불가능함
  • 반드시 Tree를 따라 이동해야 함

  • 이동 방법
    • 절대경로
      • 일반적으로 /(루트파일시스템) 부터 시작하여 최종 목적지까지의 디렉터리를 순차적으로 작성함
      • 현재 사용자의 위치와 관계 없이 어느 위치에서든 동일한 경로로 이동할 수 있다
    • 상대경로
      • 주로 . 및 ..을 이용하여 경로를 작성한다
      • 현재 사용자의 위치에 따라 이동하는 경로가 달라짐
      • ./지금위치 ../상단위치 /하단위치




알아두어야 할 파일과 디렉터리

1 . usr 폴더

  • 각종 실행 파일이 저장되며, 명령어가 저장되는 공간임 (PATH에 등록되어 있다)
  • 실행 파일에 두면 호출하기만 하면 명령어처럼 활용할 수 있게 됨
  • ex) /usr/bin/zip -> 압축 실행 파일
    • path 변수에 zip이 있기 떄문에 zip 만 입력해도 압축 파일 해제를 실행할 수 있다


  • 다음을 생성하고
```shell
! /bin/bash

echo "hello"
  • usr 폴더로 이동시킨 뒤 실행하면, 풀 경로로 입력 안해도 됨!
[root@localhost ~]# vi hello
[root@localhost ~]# chmod +x
[root@localhost ~]# chmod +x hello
[root@localhost ~]# /bin/bash hello
hello

실행 폴더로 옮기면 PATH에 등록됨
[root@localhost ~]# mv hello /usr/bin
[root@localhost ~]# hello
hello

사실 아래처럼 바로 실행할 수 있는 것은 bash가 실행 파일로 PATH에 저장되어 있어서임
[root@localhost ~]# ./hello
hello


2 . /etc/hosts 파일

  • PC나 서버는 도메인 이름을 입력헀을 경우 다음을 수행함
    1. 캐시 검색
    2. /etc/hosts 파일 검색
    3. DNS 서버에서 쿼리함
  • 이 때 hsots 파일을 살펴 보면
[root@localhost ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
  • hosts를 다음과 같이 변경하면
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
211.183.3.1 myhome
  • myhome 에 핑을 전달 가능함(PATH에 IP를 등록해 둠)
[root@localhost ~]# vi /etc/hosts
[root@localhost ~]# ping -c 3 myhome
PING myhome (211.183.3.1) 56(84) bytes of data.
64 bytes from myhome (211.183.3.1): icmp_seq=1 ttl=128 time=1.04 ms
64 bytes from myhome (211.183.3.1): icmp_seq=2 ttl=128 time=0.638 ms
64 bytes from myhome (211.183.3.1): icmp_seq=3 ttl=128 time=0.540 ms


3 . /etc/hostname

  • 서버의 이름을 정의하는 파일

[root@localhost ~]# 가 의미하는 것

  • root: 현재 사용자
  • localhost: 서버의 이름
  • ~ : 현재 위치가 root의 홈 디렉터리라는 것을 의미 (/root)
[root@localhost ~]# cat /etc/hostname
localhost.localdomain

[root@localhost ~]# hostnamectl set-hostname websrv          파일 수정
[root@localhost ~]# cat /etc/hostname
websrv
[root@localhost ~]# su                                      ROOT 사용자로 재로그인
[root@websrv ~]#
  • DataCenter 에서는 /etc/hostname에 DataCenter 내의 서버들의 이름과 IP를 등록해 둔다
  • 하지만 서버가 너무 많을 경우, DC 내에 사설 DNS를 구축하여 사용할 수 있다
    • (srv1.mycompany.pri, srv2.mycompany.pri ..)


4 . /etc/sysconfig/network-scripts/

  • 여기서 IP를 설정을 수정할 수 있다
[root@websrv ~]# cd /etc/sysconfig/network-scripts/
[root@websrv network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@websrv network-scripts]# ls
ifcfg-ens32  ifdown-isdn      ifup          ifup-plip      ifup-tunnel
ifcfg-lo     ifdown-post      ifup-aliases  ifup-plusb     ifup-wireless
ifdown       ifdown-ppp       ifup-bnep     ifup-post      init.ipv6-global
ifdown-bnep  ifdown-routes    ifup-eth      ifup-ppp       network-functions
ifdown-eth   ifdown-sit       ifup-ib       ifup-routes    network-functions-ipv6
ifdown-ib    ifdown-Team      ifup-ippp     ifup-sit
ifdown-ippp  ifdown-TeamPort  ifup-ipv6     ifup-Team
ifdown-ipv6  ifdown-tunnel    ifup-isdn     ifup-TeamPort
[root@websrv network-scripts]# vi ifconfig-ens32

  • GUI 환경에서 애플리케이션을 이용한 IP변경, Wireless 연결 등은 Network Manager를 이용한다
  • 만약 GUI가 아닌, 파일을 직접 변경하면 바로 적용되지 않으며, 반드시 서비스를 수동으로 갱신시켜줘야 한다
  • 장점: 수정하고 나서, 갱신 전까지 기존의 네트워크를 계속 사용할 수 있다

    • 파일 변경 후, 서비스를 갱신해야 서비스가 설정 파일을 읽어들이고, 이를 서비스 환경에 반영하게 된다