Fairy ' s

[09. March] 리눅스 #1 / TIL 본문

Devops Bootcamp

[09. March] 리눅스 #1 / TIL

berafairy 2023. 3. 9. 22:08

 

세계 상위 100만대 서버 중 96.3%는 리눅스에서 실행된다. 서버 시장에서 리눅스를 선택한 이유는 무엇일까 ?

 


리눅스

  • 리눅스를 많이 사용하는 이유
    - 오픈소스 : 제품을 별도의 비용 없이 사용할 수 있고, 공개 된 소스 코드들이 존재한다.
    - 보안성 : 오픈소스라고 하면 보안에 취약할 것이라고 생각할 수 있지만, 오히려 투명하게 공개되어 있기 때문에 다양한 취약점을 빠르게 파악할 수 있다.
    - 안정성 : *업 타임이 기타 OS보다 월등히 길다. 때문에 장시간 동안 안정적으로 작동하기 때문에 중요한 데이터 및 애플리케이션을 안전하게 보호할 수 있다. 따라서, 높은 가용성을 요구하는 서비스의 경우 리눅스의 사용이 적합하다.
    - 이식성 : 다양한 하드웨어와 소프트웨어 환경에서에서 작동이 가능하다. 따라서 서버 운영 중 다양한 요구사항에 대응할 수 있다.

서비스를 작동하는 OS가 리눅스이기 때문에 리눅스 사용법 및 관리 지식은 DevOps 및 클라우드에서 가장 기초가 되는 소양이다. 

* 업 타임 (uptime) : 최초 부팅 후 시스템이 계속 켜져 있는 시간

  • 리눅스의 종류
    - 데비안 (Debian) : 초창기 리눅스 배포판. 별도의 패키지 관리 도구(apt, dpkg)를 이용해 패키지 업데이트나 의존성 및 보안 관련 업데이트를 자동으로 수행한다. 패키지 관리가 편하다.
    - 우분투 (Ubuntu) : 데비안 리눅스를 기반으로 제작됨. 초보자들도 설치와 사용이 쉽기 때문에 리눅스 입문용으로 공부하는데에 적합하다. apt를 이용한 패키지 관리 기법과 웹 서버, 개인용 서버, 클라우드 컴퓨팅, 엔터프라이즈 서버 등 다양한 형태를 지원하고 있어 강력한 배포판 중 하나이다.
    - 레드햇 (RedHat) : 유료임에도 높은 국내시장 점유율로 운영자들이 기업용 서버OS로 가장 선호하는 리눅스. GUI를 제공하며 초보자도 쉽게 설치 및 관리 할 수 있다. 레드햇은 안정성 때문에 신기술/신기능 적용을 보수적으로 적용한다. 
    - 센트OS (CentOS) : 레드햇의 무료 버전. 안정적인 레드햇의 기술을 그대로 사용할 수 있다. 하지만 레드햇의 기술지원을 받을 수 있는 것은 아니며, 문제가 생겼을 경우 커뮤니티 단위로 지원을 해결해야 한다.

 


CLI (Command-Line Interface)

 CLI는 명령어를 입력해 컴퓨터를 조작하는 방식이다. CLI는 GUI와 같은 기능을 담당하지만, 대부분의 PC에서는 GUI(Graphic User Interface / 사용자가 화면을 통해 컴퓨터와 소통하는 방식)를 적용하고 있다. 우리는 GUI에 익숙해져 있지만, 폴더를 만드는 작업에서부터 GUI와 CLI의 번거로움의 차이가 명확하다.

  • 수백개의 폴더를 만들 때 GUI보다 CLI에서 작업하는 것이 월등히 빠를 것이고, 자동화하기도 쉽다.
  • 리눅스 터미널은 키보드 입력과 모니터 출력으로 모든 작업을 할 수 있다.
  • 현재도 매우 효율적인 방법이기 때문에 많은 개발자가 이 방법을 통해 컴퓨터와 소통하고, 대부분의 서버 컴퓨터는 무료로 이용할 수 있는 리눅스 운영체제가 설치되어 있다.
  • 개발자가 되기를 원하는 사람이라면, CLI 사용법은 반드시 학습해야 할 내용이다.

 

기본 명령어

pwd 현재 위치(폴더 경로) 확인하기
mkdir ~ 새로운 폴더 생성하기
ls ~ 특정 폴더에 포함된 파일이나 폴더 확인하기
cd ~ 폴더에 진입하기
touch ~ 파일 생성하기
cat ~ 파일의 내용을 터미널에 출력하기
vim ~ / nano ~ 파일 편집기 실행하기
rm ~ 폴더나 파일 삭제하기
mv ~ 폴더나 파일 이름을 변경, 또는 위치 변경하기
cp ~ 폴더나 파일 복사하기
(vim 사용 시) esc  =>  :wq! txt 파일 저장 후 빠져나오기

* 프롬프트 (prompt) : 사용자가 명령어를 입력하고 실행할 수 있도록 하는 곳. 터미널 창에 존재하는 $ 표시는 프롬프트를 의미한다.
* 터미널 (terminal) : 리눅스 OS에 사용되는 커맨드 라인 인터페이스
* 우분투 복사 : ctrl + shift + c / 붙여넣기 : ctrl + shift + v

 

nano 실행 

nano 실행 화면

  • 상단 GNU nano 6.2   hello.js : 파일 이름 안내
  • 중단 빈 부분 : 파일 편집 화면
  • 하단 단축키 ^(문자) 는 ctrl + (키) 조합을 의미한다.

 


경로

  • 절대 경로
    - 기준점(' / ' = 루트 폴더)으로부터 절대적인 위치를 나타내며, 명령어 pwd로 확인할 수 있다.
    - ex ≫/home/[username]/helloworld/ 
  • 상대 경로
    - 현재 위치로부터 상대적인 위치를 나타낸다.
    - 절대 경로와는 다르게 기준점이 현재 위치이다.
    - 현재 위치한 폴더는 점( . )으로 표현, 상위 폴더는 두 개의 점( .. )으로 표현한다.
    - 현재 폴더 아래의 helloworld 폴더로 진입하는 명령 : ./hi

 


패키지 매니저

  • 패키지의 설치, 변경, 삭제 등 관리를 편하게 해주는 도구
  • 패키지 : 하나의 프로그램이 정상적으로 설치되고 동작하기 위한 모든 파일이 압축되어 있다.
    - 패키지 구성 요소 : 프로그램 파일 / 설치 파일 / 설명서 / 정보 파일
  • 패키지 매니저를 사용하지 않고 프로그램을 독립적으로 설치하게 되면, 각각의 프로그램이 저장된 위치를 모두 알아야 한다.
  • 스마트폰으로 비유하면, 앱 스토어와 역할이 비슷하다.
apt update 패키지의 업데이트 여부 확인
apt list --upgradable 업데이트가 필요한 파일 조회
apt upgrade 프로그램 업그레이드
apt --only-upgrade install 패키지명 특정 패키지만 업그레이드
apt show 프로그램의 정보 확인
apt install 패키지명 프로그램 설치
apt list --installed 설치된 프로그램 목록 보기
apt remove 프로그램 삭제
apt search 패키지 검색
sudo apt install 패키지명 관리자 권한을 사용하여 패키지 설치

 

* wget 이라는 패키지 파일은 URL을 통해 파일을 다운로드 받는 프로그램이다.

Comments