인프라 · 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 명령입니다.
서버 배포·운영의 거의 모든 작업이 이 기본기 위에 쌓입니다.