[인프런] Docker와 최신 서버 기술 2

타키탸키·2022년 6월 28일
0

서버

목록 보기
2/3
post-thumbnail
  • 리눅스와 파일
    • 모든 것은 파일
    • c 드라이브가 아닌 루트 디렉토리(/)
      • 전체 파일의 상위 디렉토리
    • 운영체제와 사용자 간의 인터페이스
    • bash(Bourne-Again Shell): 디폴트
    • sh(Bourne Shell)
  • 리눅스는 다중 사용자 운영체제
    • 로그인 필요
    • root
      • super 관리자
      • windows와 다르게 super 관리자로 사용하지 않는다
    • sudo
      • 관리자로 로그인 하지 않아도 root 권한 사용 가능
  • 패키지
    • 여러 프로그램의 조합
    • sudo apt-get update
      • 수시로 바뀌는 패키지 속 프로그램들 갱신
      • 최신 정보 저장
  • ls -al
    • 숨긴 파일까지 볼 수 있다
      • 파일명 앞 .
  • 모두에게 모든 사용 권한 부여
    • chmode -R 777 directory

  • 표준 입출력(stream)
    • command로 실행되는 프로세스의 세 가지 스트림
      • 표준 입력 스트림(stdin): 명령어
      • 표준 출력 스트림(stdout): 화면 출력
      • 오류 출력 스트림(stderr): 화면 출력
    • 모든 스트림은 일반적인 plain text
      • console에 출력
    • 스트림 = 물 줄기
      • 물 줄기를 어디로 흘려 보내냐가 관건
  • 리다이렉션
    • 표준 스트림의 흐름을 바꾸는 것
    • 기호: >, <
    • 주로 명령어 표준 출력을 화면이 아닌 파일에 쓸 때 활용
    • 기호를 두 번 쓰면 이어 적기
ls -al > test.txt
cat test.txt

// 명령어의 결과가 파일에 저장되어 출력된다
  • 파이프
    • 두 프로세스 사이에서 한 프로세스의 출력 스트림을 또 다른 프로세스의 입력 스트림으로 사용하는 것
    • 주로 ps aux | grep bash로 사용
      • 실행 프로그램 중 bash 키워드가 있는 라인만 출력
ls -al | grep bash

// ls -al의 결과가 grep의 인자로 사용됨
// ls -al의 결과 중 bash라는 키워드를 가진 라인만 출력
  • grep
    • 검색 명령어

  • 프로세스
    • C와 같은 언어는 컴파일 과정을 통해 실행 파일 생성
      • 바이너리로 이루어진 실행 파일
      • 메모리에 바이너리의 일부를 넣고 운영체제가 정의한 포맷에 따라 프로그램 실행
    • 유닉스 철학
      • 여러 프로그램이 서로 유기적으로 각자의 일을 수행하면서 전체 시스템이 동작하도록 하는 모델
      • ex:) 파이프
    • foreground process
      • 실행된 프로세스가 종료될 때까지 사용자가 다른 입력을 하지 못하는 프로세스
      • 일반적인 프로세스
      • ctrl+c: 작업 중단
    • background process
      • 시간이 오래 걸리는 프로세스에 사용
      • 명령어 뒤에 & 붙이기
      • 프로세스가 실행하는 도중에도 다른 프로세스 실행 가능
      • [1] 57: 작업 번호와 pid(process ID)
  • ps
    • 프로세스 상태 확인
    • aux
      • a: 모든 사용자의 프로세스 출력
      • u: 프로세스 소유자에 대한 상세 정보 출력
      • x: 데몬 프로세스(사용자 모르게 실행되고 있는 시스템 관리용 프로세스) 확인용
    • 주로 pid 확인을 위한 명령어
      • 원치 않은 프로세스를 종료하기 위해 사용
    • 명령어도 일종의 프로세스이므로 목록에 등장
  • kill -9
    • 프로세스 강제 종료

  • cp A B
    • A를 B에 복사
    • 각각 물리적으로 저장됨
    • 없는 파일명 입력하면 기존 파일 복사한 새로운 파일 생성
  • cp -rf * 디렉토리명
    • 디렉토리 통째로 복사
  • 하드 링크
    • ln A B
    • A와 B는 동일한 파일을 가리키므로 A 파일의 용량이 변하면 B 파일의 용량이 함께 변한다
  • 소프트(심볼릭) 링크
    • 바로가기
    • ln -s A B
    • 실제 실행 파일에 연결하는 역할
    • ls -al로 확인 시, 기존 파일보다 용량도 적고 권한 설정도 다르다
    • 기존 파일을 가리키는 화살표 기호가 표시된다
    • 마찬가지로 기존 파일 변경 시, 파일 내용 함께 변경
    • 기존 파일 삭제 시, 함께 삭제

  • 배포판
    • 커널 + 쉘 + 다양한 프로그램
  • ubuntu 배포판
    • 데비안 배포판 기반
    • apt 프로그램을 이용해서 sw 설치 및 업데이트를 간편하게 한 패키지
      • RedHat 계열(CentOs, Fedora)의 경우, RPM 패키징 시스템 사용
    • 데스크탑, 서버, lts 패키지
  • ubuntu 패키지 인덱스 정보
    • 패키지의 위치 정보를 리스트로 가지고 있다가 각 위치에 접속할 수 있도록 한다
    • sudo apt-get update
    • sudo apt-get upgrade은 조심할 것
      • 안정성이 떨어지는 최신 버전으로 업그레이드 될 위험성
  • apt-get remove
    • 패키지 삭제
    • --purge remove
      • 설정 파일까지 삭제

  • VIM 에디터
    • 리눅스 환경에서 파일 수정 시 필요
    • 마우스 없이 키보드로만 사용
  • vim 네 가지 모드와 기본 사용법
    • 일반 모드
    • 명령 모드: :
    • 입력(편집) 모드: i
    • visual 모드
    • esc 후, :wq로 저장
    • x 누르면 erase
    • !q: 저장하지 않고 종료
profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글