인프라 · Linux

Linux

우리가 만든 서버 앱이 실제로 도는 곳은 대부분 Linux 서버이고, 컨테이너 안도 보통 Linux입니다. 그래서 터미널에서 파일·권한·프로세스·네트워크를 다루는 기본기는 배포와 운영의 바탕이 됩니다.

한 줄로

Linux? 는 서버에서 가장 널리 쓰는 운영체제(OS)입니다. 화면(GUI) 없이 명령줄(터미널)로 다루는 경우가 많고, Docker? 컨테이너와 Kubernetes? 도 결국 이 위에서 돕니다.

Linux 명령줄은 "서버의 운전대". 평소엔 자동화 도구가 대신 운전하지만, 문제가 생겨 직접 들어가 봐야 할 때 운전대를 잡을 줄 알아야 합니다.
왜 / 어디에 쓰나
  • 배포·운영 — 서버에 접속해 앱을 띄우고, 설정 파일을 고치고, 상태를 확인
  • 로그 확인·장애 분석 — 로그 파일을 뒤져 무슨 일이 났는지 추적
  • 컨테이너 내부 조사 — 컨테이너 안으로 들어가 파일·프로세스를 직접 점검
  • 권한·보안 — 누가 어떤 파일을 읽고 쓸 수 있는지 권한으로 통제

핵심 개념

개념설명
파일 시스템모든 것이 / 부터 시작하는 트리 구조. 디렉터리·파일로 구성.
권한(Permission)파일마다 소유자/그룹/기타에게 읽기(r)·쓰기(w)·실행(x) 권한을 부여.
프로세스(Process)지금 실행 중인 프로그램. 각자 고유 번호(PID)를 가짐.
파이프 / 리다이렉션| 로 한 명령의 출력을 다음 명령 입력으로, > 로 파일에 저장.

핵심 명령

# 파일/디렉터리 둘러보기
pwd                 # 현재 위치
ls -al              # 숨김 파일까지 자세히 목록
cd /var/log         # 디렉터리 이동
cat app.log         # 파일 내용 출력

# 검색 / 로그 보기
grep -i "error" app.log    # 파일에서 'error' 줄 찾기 (대소문자 무시)
tail -f app.log            # 로그 끝을 실시간으로 따라가기
find . -name "*.yaml"      # 이름으로 파일 찾기

# 권한 / 소유자
chmod 644 config.yml       # 읽기/쓰기 권한 설정
chmod +x run.sh            # 실행 권한 추가
chown user:group file.txt  # 소유자·그룹 변경

# 프로세스
ps aux                     # 실행 중인 프로세스 목록
ps aux | grep java         # java 프로세스만 골라 보기
kill -9 <PID>              # 특정 프로세스 강제 종료

파이프로 명령 잇기

| 로 명령을 연결하면 작은 도구를 조합해 원하는 결과를 만들 수 있습니다.

# 로그에서 error 줄 개수 세기
grep "error" app.log | wc -l

# 디스크 사용량 큰 순으로 정렬
du -sh * | sort -h
배포·컨테이너와의 관계

Docker 이미지의 베이스는 보통 Linux이고, docker exec -it ... bash 로 들어가면 거기서 쓰는 명령이 바로 위의 Linux 명령입니다. 서버 배포·운영의 거의 모든 작업이 이 기본기 위에 쌓입니다.

다음 단계

  • 이 OS 위에서 앱을 컨테이너로 포장 → Docker
  • 코드 변경을 기록·협업 → Git