개발자로서 코드를 작성하는 환경은 윈도우나 맥일 수 있지만, 우리가 만든 서비스가 실제로 돌아가는 환경은 대부분 리눅스(Linux) 서버입니다. 특히 백엔드 개발자나 인프라에 관심 있는 분들이라면 리눅스 명령어 익히기는 선택이 아닌 필수죠.
오늘은 리눅스 환경에서 파일과 디렉터리를 다루고, 시스템을 관리할 때 가장 자주 사용되는 핵심 명령어들을 카테고리별로 정리해 보았습니다.
1. 파일 및 디렉터리 관리 (기초)
가장 먼저 터미널을 열고 내 위치를 파악하거나 파일을 옮기는 기초 명령어들입니다.
-
ls(List): 현재 위치의 파일 목록을 보여줍니다. -
ls -l: 상세 정보(권한, 소유자 등) 표시 -
ls -a: 숨겨진 파일까지 모두 표시 -
ls -lh: 파일 크기를 읽기 쉬운 단위(KB, MB)로 표시 -
cd(Change Directory): 디렉터리를 이동합니다. (cd ..은 상위 디렉터리 이동) -
pwd(Print Working Directory): 현재 내가 작업 중인 전체 경로를 출력합니다. -
mkdir(Make Directory): 새로운 폴더를 생성합니다. -
touch: 내용이 없는 빈 파일을 생성하거나, 기존 파일의 수정 시간을 갱신합니다. -
rm(Remove): 파일이나 디렉터리를 삭제합니다. (삭제 후 복구가 어려우니 주의하세요!) -
cp(Copy): 파일이나 디렉터리를 복사합니다. -
mv(Move): 파일을 이동시키거나 이름을 변경할 때 사용합니다.
2. 파일 내용 확인 및 편집
서버의 설정 파일이나 로그를 확인할 때 유용한 명령어들입니다.
텍스트 에디터
vi(또는 vim): 리눅스 표준 텍스트 에디터입니다. 명령 모드와 입력 모드를 구분하여 사용합니다.nano: 입문자가 사용하기 훨씬 직관적인 텍스트 에디터입니다.
내용 출력
-
cat: 파일의 전체 내용을 터미널에 쏟아냅니다. -
**
head/tail**: 파일의 앞부분이나 뒷부분 10줄을 기본으로 출력합니다. -
tail -f [파일명]옵션을 쓰면 실시간으로 추가되는 로그를 모니터링하기 좋습니다. -
**
more/less**: 파일 내용을 페이지 단위로 끊어서 보여줍니다.less가 더 기능이 많아 추천됩니다.
3. 권한 및 소유자 관리
리눅스는 보안이 매우 중요합니다. 파일에 누가 접근할 수 있는지 결정하는 핵심 명령어입니다.
# 파일 권한 변경 (예: 소유자에게 모든 권한 부여)
chmod 755 myfile.txt
# 파일 소유자 변경
chown user1 myfile.txt
# 파일 그룹 변경
chgrp group1 myfile.txt
Tip:
chmod 777은 모든 사용자에게 모든 권한을 주는 것이므로 실제 운영 환경에서는 보안상 지양해야 합니다.
4. 검색 및 텍스트 처리 (중급)
수많은 로그 파일 중에서 내가 원하는 정보만 딱 골라내고 싶을 때 사용합니다.
grep: 파일 내에서 특정 문자열을 검색합니다. (가장 많이 사용됩니다!)find: 파일 시스템 전체에서 파일명이나 크기 등으로 파일을 찾습니다.sed: 스트림 에디터로, 텍스트 파일의 내용을 명령어로 치환하거나 삭제할 수 있습니다.awk: 데이터를 열 단위로 분리하여 처리하는 강력한 텍스트 처리 도구입니다.
5. 시스템 리소스 및 관리
서버가 느려졌거나 디스크 용량이 부족할 때 확인해 보세요.
df -h: 디스크의 전체 용량과 남은 용량을 사람이 보기 편하게 표시합니다.du -sh: 특정 디렉터리가 차지하고 있는 용량을 확인합니다.passwd: 사용자 비밀번호를 변경합니다.- **
useradd/userdel**: 새로운 사용자를 추가하거나 기존 사용자를 삭제합니다.
마치며
리눅스 명령어는 처음에는 낯설게 느껴질 수 있지만, 익숙해지면 마우스를 쓰는 것보다 훨씬 빠르고 강력한 작업이 가능해집니다. 오늘 정리한 명령어들을 하나씩 터미널에 직접 쳐보면서 익혀보시는 건 어떨까요?
여러분의 서버 운영과 개발 환경 구축에 이 포스팅이 작은 도움이 되길 바랍니다! 🚀
Reference
