Linux 개념과 명령어 정리
1. 리눅스란?
- 유닉스(Unix)를 기반으로 한 오픈 소스 운영체제(OS)
- 운영체제 : 사용자가 컴퓨터를 쉽게 사용할 수 있게 하는 소프트웨어
- 리눅스, 윈도우, 맥OS 등의 운영체제가 있다.
- 컴퓨터 역사상 가장 많은 참여자가 관여하고 있는 오픈소스로 누구나 개발에 참여하고 코드를 볼 수 있는 프로젝트
2. ✅ 리눅스의 핵심 특징
특징 |
설명 |
오픈 소스 |
누구나 소스 코드를 열람, 수정, 배포 가능 |
유닉스 계열 |
유닉스와 호환되는 구조로 설계되어 신뢰성과 안정성 보장 |
멀티유저 |
여러 사용자가 동시에 하나의 시스템에 접근 가능 |
멀티태스킹 |
여러 개의 task(작업)를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있는 기능 |
CLI 중심 |
명령줄 기반 환경(Bash shell 등)에서 작업 수행 |
높은 보안성 |
사용자 권한 분리와 방대한 커뮤니티 지원으로 빠른 보안 패치 제공 |
3. 🧱 리눅스 구조

(1) 프로그램(터미널)
- 사용자가 사용하는 소프트웨어
- 리눅스 시스템에는 다양한 응용 프로그램이 포함되어 있으며, 텍스트 편집기, 개발 도구 등이 있음
- 터미널은 사용자가 시스템과 상호작용하기 위한 인터페이스
- 사용자가 입력한 명령어를 시스템에 전달하고, 시스템의 출력을 사용자에게 보여주는 역할
- 즉, 사용자와 시스템 사이의 커뮤니케이션 창구 역할을 수행
(2) 셸
- 사용자와 운영체제 간의 인터페이스로, 명령어 해석기
- 터미널을 통해 입력된 명령어를 해석하여 커널에게 전달하는 역할을 수행
- 운영체제에서 사용되는 언어와 사용자가 사용하는 언어는 다르기 때문에 사용자가 입력한 명령어를 커널이 이해할 수 있는 형태로 변환하고, 실행 결과를 다시 사용자에게 표시함
대표적인 셸의 종류:
- sh(Bourne Shell) : 유닉스 시스템에서 가장 초기에 사용된 셸. 간단한 스크립팅과 명령어 실행 기능을 제공
- bash(Bourne Again Shell) : sh의 확장 버전. 리눅스와 맥OS에서 가장 널리 사용되는 셸. 사용자 친화적인 기능과 스크립팅 기능이 강화되어 있음
- zsh : bash의 기능을 포함하면서 사용자 편의성을 더욱 고려한 셸. 맞춤법 검사, 강력한 플러그인 및 테마 지원으로 많은 사용자에게 사랑받고 있음
(3) 커널
- 운영체제의 핵심
- 프로세스, 메모리, 파일, 장치 등 시스템의 모든 하드웨어와 소프트웨어 리소스 즉, 컴퓨터의 모든 자원을 관리함
- 프로세스 관리, 메모리 관리, 장치 드라이버들과의 통신, 시스템 호출 등의 기본적인 시스템 서비스를 제공
- 사용자 또는 프로그램이 요청한 작업을 하드웨어가 수행할 수 있도록 지시함
4. 🐧 리눅스 배포판(Distro)
- 리눅스는 다양한 배포판(Distribution)으로 제공됨
배포판 |
특징 |
Ubuntu |
데스크탑과 서버 모두에 인기, 사용자 친화적 |
CentOS / Rocky / AlmaLinux |
RHEL 계열로 서버 환경에 최적 |
Debian |
안정성과 호환성이 뛰어나 서버용으로 많이 사용 |
Arch Linux |
고급 사용자용, 커스터마이징에 강함 |
Kali Linux |
보안 테스트 및 해킹 실습에 특화 |
5. 리눅스 명령어
📁 (1) 파일 및 디렉토리 관련 명령어
명령어 |
설명 |
ls |
현재 디렉토리 내용 보기 (ls -l, ls -a) |
cd |
디렉토리 이동 (cd /home, cd ..) |
pwd |
현재 디렉토리 경로 출력 |
mkdir |
디렉토리 생성 (mkdir newdir) |
rm |
파일/디렉토리 삭제 (rm file.txt, rm -r dir) |
cp |
파일 복사 (cp a.txt b.txt) |
mv |
파일 이동 또는 이름 변경 (mv old.txt new.txt) |
touch |
빈 파일 생성 (touch file.txt) |
find |
파일 검색 (find . -name “test.txt”) |
tree |
폴더 구조 트리 형태로 출력 (sudo apt install tree) |
📄 (2) 파일 내용 확인 및 편집
명령어 |
설명 |
cat |
파일 내용 전체 출력 |
more, less |
긴 파일 페이지 단위로 출력 (less file.txt) |
head, tail |
처음 또는 마지막 몇 줄 보기 (head -n 10 file.txt) |
nano, vim, vi |
터미널 기반 텍스트 편집기 |
🔧 (3) 시스템 정보 및 관리
명령어 |
설명 |
uname -a |
커널/시스템 정보 확인 |
top, htop |
실시간 시스템 상태 (메모리, CPU 등) |
free -h |
메모리 사용량 확인 |
df -h |
디스크 사용량 확인 |
*du -sh ** |
디렉토리별 용량 확인 |
uptime |
시스템 작동 시간 및 부하 확인 |
whoami |
현재 사용자 이름 출력 |
id |
사용자 ID, 그룹 정보 확인 |
🧍 (4) 사용자/권한 관련
명령어 |
설명 |
sudo |
관리자 권한으로 명령 실행 (sudo apt update) |
chmod |
권한 변경 (chmod +x script.sh) |
chown |
소유자 변경 (chown user:group file) |
adduser, userdel |
사용자 추가 / 삭제 |
passwd |
비밀번호 변경 |
📦 (5) 패키지 관리
Ubuntu / Debian (APT 기반)
명령어 |
설명 |
sudo apt update |
패키지 목록 최신화 |
sudo apt upgrade |
설치된 패키지 업그레이드 |
**sudo apt install <패키지명>**패키지명> |
패키지 설치 |
**sudo apt remove <패키지명>**패키지명> |
패키지 제거 |
CentOS / RHEL (YUM 기반)
명령어 |
설명 |
sudo yum install |
패키지 설치 |
sudo yum update |
패키지 업데이트 |
🌐 (6) 네트워크
명령어 |
설명 |
ping 주소 |
연결 확인 (ping google.com) |
ifconfig, ip a |
IP, 네트워크 인터페이스 확인 |
netstat -tuln |
포트 열림 상태 확인 |
curl, wget |
웹 요청 / 파일 다운로드 |
🔁 (7) 기타 유용한 명령어
명령어 |
설명 |
history |
실행한 명령어 기록 보기 |
alias |
별칭 설정 (alias ll=’ls -alF’) |
crontab -e |
주기적 작업 자동 실행 설정 |
**man <명령어>**명령어> |
명령어 매뉴얼 보기 (man ls) |
IT 카테고리 내 다른 글 보러가기
댓글 남기기