안녕하세요. 새내기 개발자입니다. 공부하면서 정리하는 글로 틀린 부분은 언제나 댓글로 환영입니다!
리눅스는 강력한 커맨드라인 인터페이스(CLI)를 제공하며, 다양한 작업을 효율적으로 수행할 수 있습니다. 이 글에서는 리눅스를 처음 접하는 사용자부터 실무에서 활용하는 개발자까지 유용하게 사용할 수 있는 기본적인 리눅스 명령어들을 정리해 보겠습니다.
1. 시스템 정보 확인 명령어
1.1 현재 로그인된 사용자 확인
whoami
현재 로그인한 사용자의 계정을 출력합니다.
1.2 시스템 정보 확인
uname -a
운영체제, 커널 버전 등의 시스템 정보를 출력합니다.
1.3 CPU 및 메모리 사용량 확인
top
실시간으로 CPU와 메모리 사용량을 모니터링할 수 있습니다. 종료하려면 q를 누릅니다.
htop
보다 직관적인 인터페이스를 제공하는 htop을 사용하려면 먼저 설치해야 합니다.
free -h
시스템의 메모리 사용량을 사람이 읽기 쉬운 단위로 출력합니다.
1.4 디스크 용량 확인
df -h
마운트된 파일 시스템의 디스크 사용량을 사람이 읽기 쉬운 형식으로 출력합니다.
du -sh *
현재 디렉토리 내 파일 및 폴더의 크기를 합산하여 출력합니다.
2. 파일 및 디렉토리 관련 명령어
2.1 현재 디렉토리 확인
pwd
현재 작업 중인 디렉토리의 경로를 출력합니다.
2.2 디렉토리 목록 확인
ls -l
디렉토리 내 파일 목록을 자세한 정보와 함께 출력합니다.
ls -lh
파일 크기를 사람이 읽기 쉬운 형식으로 출력합니다.
ls -la
숨김 파일(.으로 시작하는 파일)까지 포함하여 출력합니다.
2.3 디렉토리 이동
cd /path/to/directory
지정한 디렉토리로 이동합니다.
cd ..
상위 디렉토리로 이동합니다.
cd ~
사용자의 홈 디렉토리로 이동합니다.
2.4 디렉토리 생성 및 삭제
mkdir my_directory
my_directory라는 새로운 디렉토리를 생성합니다.
rmdir my_directory
비어 있는 my_directory 디렉토리를 삭제합니다.
rm -r my_directory
디렉토리 및 내부 파일까지 모두 삭제합니다.
2.5 파일 생성 및 삭제
touch myfile.txt
빈 파일 myfile.txt를 생성합니다.
rm myfile.txt
파일을 삭제합니다.
rm -rf my_directory
강제(-f) 및 재귀(-r) 삭제 옵션을 사용하여 디렉토리와 그 내용을 삭제합니다.
3. 파일 내용 확인 및 편집
3.1 파일 내용 출력
cat filename
파일의 내용을 출력합니다.
less filename
파일 내용을 페이지 단위로 출력하며, q를 눌러 종료할 수 있습니다.
head -n 10 filename
파일의 처음 10줄을 출력합니다.
tail -n 10 filename
파일의 마지막 10줄을 출력합니다.
tail -f filename
파일이 변경될 때마다 실시간으로 내용을 확인할 수 있습니다. (로그 파일 모니터링에 유용)
3.2 파일 검색
grep "search_word" filename
grep -r "search_word" /path
3.3 파일 편집 (nano, vi, vim)
nano filename
간단한 텍스트 편집기 nano를 사용하여 파일을 수정합니다.
vi filename
강력한 텍스트 편집기 vi를 사용하여 파일을 수정합니다. (명령 모드에서 i를 눌러 입력 모드로 전환)
4. 사용자 및 권한 관리
4.1 현재 로그인한 사용자 확인
who
현재 로그인한 사용자 목록을 출력합니다.
4.2 사용자 목록 확인
cat /etc/passwd
시스템에 등록된 사용자 목록을 출력합니다.
4.3 파일 권한 확인
ls -l filename
파일의 소유자, 그룹, 권한을 확인할 수 있습니다.
4.4 파일 권한 변경
chmod 755 filename
파일의 권한을 변경합니다.
chown user:group filename
파일의 소유자를 변경합니다.
5. 프로세스 및 네트워크 관리
5.1 프로세스 확인
ps aux
현재 실행 중인 모든 프로세스를 확인합니다.
kill <PID>
지정한 PID(프로세스 ID)를 가진 프로세스를 종료합니다.
kill -9 <PID>
강제 종료 옵션을 사용하여 프로세스를 종료합니다.
pkill process_name
지정한 프로세스 이름과 일치하는 모든 프로세스를 종료합니다.
5.2 네트워크 설정 확인
ifconfig
네트워크 인터페이스 정보를 확인합니다. (ip a 명령어도 동일한 역할 수행)
ping google.com
네트워크 연결 상태를 확인합니다.
netstat -tulnp
현재 열린 포트 및 네트워크 연결 상태를 확인합니다.
6. 패키지 관리
6.1 Ubuntu/Debian 계열
apt update
apt upgrade
apt install package_name
apt remove package_name
6.2 CentOS/RHEL 계열
yum update
yum install package_name
yum remove package_name
7. 로그 및 시스템 관리
7.1 시스템 로그 확인
journalctl -xe
시스템 로그를 확인할 수 있습니다.
dmesg | tail -n 20
최근 커널 메시지를 확인할 수 있습니다.
7.2 시스템 종료 및 재부팅
shutdown -h now
즉시 시스템을 종료합니다.
reboot
시스템을 재부팅합니다.
마무리
위에서 소개한 리눅스 명령어들은 기본적으로 시스템을 다룰 때 꼭 필요한 명령어들입니다. 이를 익히면 리눅스 환경에서 보다 효율적으로 작업할 수 있으며, 서버 관리 및 개발 환경 구성에도 유용하게 사용할 수 있습니다.
이 외에도 더 많은 명령어들이 있으니, 자주 사용하면서 익숙해지는 것이 중요합니다!
'ETC' 카테고리의 다른 글
WAS와 WEB의 차이점과 역할 정리 (1) | 2025.02.16 |
---|---|
CI/CD란? 지속적 통합 및 지속적 배포의 모든 것 (1) | 2025.02.08 |
개발자 이력서 작성 가이드: 필수 항목과 효과적인 작성법 (1) | 2025.02.07 |
사용자 역할(Role)과 권한(Permission)의 차이점 (0) | 2025.02.06 |
초급 개발자를 위한 필수 개발 지식과 학습 방법 (0) | 2025.02.04 |