Linux 파일시스템과 주요 명령어
서버를 처음 만졌을 때 가장 당황스러웠던 건 GUI가 없다는 거다. 마우스로 뭔가를 클릭하던 습관을 버리고, 모든 걸 명령어로 처리해야 한다. 처음엔 불편하지만 익숙해지면 오히려 더 빠르다.
리눅스 파일시스템 구조
리눅스의 특징 중 하나는 “모든 것이 파일”이라는 점이다. 디스크, 네트워크 장치, 프로세스 정보까지 파일 형태로 관리한다.
주요 디렉토리:
| 디렉토리 | 설명 |
|---|---|
/ | 루트. 모든 경로의 출발점 |
/bin | 기본 실행 파일 (ls, cp, mv 등) |
/sbin | 시스템 관리 명령어 (root용) |
/etc | 설정 파일 모음 |
/var | 가변 데이터 (로그, 스풀, 데이터베이스) |
/tmp | 임시 파일 (재부팅 시 삭제) |
/home | 일반 사용자 홈 디렉토리 |
/root | root 사용자 홈 |
/proc | 프로세스 정보 (가상 파일시스템) |
/dev | 장치 파일 |
/usr | 사용자 설치 프로그램 |
/opt | 서드파티 소프트웨어 |
배포판마다 조금씩 차이가 있지만 큰 틀은 같다.
터미널 조작 팁
CentOS7 기준, 터미널에서 스크롤바가 없어도 화면을 넘길 수 있다.
스크롤 이동:
Shift + Page Up: 위로Shift + Page Down: 아래로
커서 조작:
Ctrl + K: 커서 오른쪽 문자 삭제 (버퍼 저장)Ctrl + U: 커서 왼쪽 문자 삭제 (버퍼 저장)Ctrl + Y: 버퍼 내용 붙여넣기
히스토리 동작 원리
~/.bash_history 파일은 로그인 시 RAM에 로드된다. 명령어를 실행하면 RAM의 히스토리 리스트에 먼저 쌓이고, 셸을 종료할 때 파일에 기록된다. 비정상 종료나 강제 종료 시에는 마지막 세션 명령어가 저장되지 않는다.
서버 관리 필수 명령어
로그 관리
서버 문제 해결의 90%는 로그 분석에서 시작한다. 리눅스는 텍스트 기반 로그 파일을 CLI에서 직접 읽어야 한다.
주요 로그 위치:
- 시스템 로그:
/var/log/messages - 보안 로그:
/var/log/secure - 애플리케이션:
/var/log/[앱이름]/
tail -f /var/log/messages # 실시간 모니터링
grep -r "ERROR" /var/log/* # 키워드 검색디스크 관리
디스크 부족은 피할 수 없는 이슈다. 특히 /var/log와 /tmp가 주범인 경우가 많다.
df -h # 파티션별 사용량
du -sh /* # 루트 기준 디렉토리 크기프로세스 모니터링
top # 실시간 모니터링
ps -ef | grep [프로세스명] # 특정 프로세스 확인
lsof -i :[포트번호] # 포트 점유 프로세스 확인
ps aux | grep 'Z' # 좀비 프로세스 찾기네트워크 설정
IP 설정 파일: /etc/sysconfig/network-scripts/ifcfg-[인터페이스명]
서버에서는 DHCP보다 고정 IP를 권장한다. 재부팅 후 IP가 바뀌면 서비스가 중단된다.
방화벽 설정 (CentOS7):
firewall-cmd --permanent --add-port=[포트]/tcp
firewall-cmd --reload보안 기본 설정
서버를 처음 세팅할 때 반드시 해야 할 것들:
- root 직접 접속 차단 (
/etc/ssh/sshd_config에서PermitRootLogin no) - sudo 권한 제한적 부여
- SSH 포트 변경
- 키 기반 인증 사용, 비밀번호 인증 비활성화
- 접속 IP 제한:
/etc/hosts.allow,/etc/hosts.deny
출처
- Linux 공식 문서
- Linux Foundation 교육 자료