리눅스 시작하기
Source: Dev.to
기본 지식
GNU – 리눅스의 전신이자 자유 오픈‑소스 유닉스‑계열 운영 체제.
커널 – 운영 체제의 핵심 부분으로, 소프트웨어와 하드웨어를 연결하고 CPU, 메모리, 주변 장치와 같은 자원을 관리한다. “리눅스”라는 용어는 전체 운영 체제를 가리키는 경우가 많지만, 실제로는 커널만을 의미한다.
리눅스란?
리눅스는 린우스 토르발스가 처음 만든 오픈‑소스 운영 체제 커널이다. 일상적인 사용에서는 “리눅스”가 리눅스 커널과 GNU 프로젝트의 도구, 라이브러리, 소프트웨어가 결합된 완전한 운영 체제를 의미한다.
리눅스 시스템 구조
리눅스 시스템은 세 개의 계층으로 나뉜다:
- 하드웨어 – 물리적 자원(CPU, 메모리, 장치 등).
- 리눅스 커널 – 하드웨어를 관리하고 소프트웨어와 하드웨어 간 통신을 가능하게 하는 핵심 구성 요소.
- 유저 스페이스 – 사용자가 애플리케이션 및 명령줄 인터페이스를 통해 시스템과 상호 작용하는 환경.
리눅스 배포판
배포판(디스트리뷰션)은 리눅스 커널에 특정 소프트웨어, 도구, 유틸리티, 라이브러리 및 애플리케이션을 묶어 바로 사용할 수 있는 운영 체제로 제공한다.
Debian
Debian은 완전히 자유·오픈‑소스 소프트웨어만으로 구성된 운영 체제이며, 커뮤니티에서 높은 평가를 받고 있다.
패키지 관리
Debian은 강력한 apt(Advanced Package Tool) 시스템을 사용하며, 방대한 사전 컴파일 패키지 저장소를 유지한다.
Red Hat Enterprise Linux (RHEL)
RHEL은 Red Hat이 개발한 상용 배포판으로, 장기적인 안정성, 보안 및 전문 지원을 목표로 한다.
패키지 관리
RHEL은 RPM(Red Hat Package Manager) 형식을 사용한다. 패키지 관리 도구로는 YUM(Yellowdog Updater, Modified)과 그 후속인 DNF(Dandified YUM)가 있다.
Ubuntu
Ubuntu는 Debian을 기반으로 한 대중적이며 초보자 친화적인 배포판이다.
패키지 관리
Ubuntu는 Debian의 패키지 관리 방식을 이어받아 apt 명령줄 유틸리티로 소프트웨어 설치·업데이트·제거를 수행한다.
Fedora
Fedora는 Red Hat이 후원하는 커뮤니티 주도 배포판으로, RHEL과 동일한 기반 위에 구축된다.
패키지 관리
Fedora는 RPM 형식을 사용하며, 강력하고 사용하기 쉬운 명령줄 도구 DNF로 소프트웨어를 관리한다.
셸
셸은 사용자가 입력한 명령을 받아 운영 체제에 전달하는 프로그램이다. “Terminal”이나 “Console”과 같은 그래픽 터미널은 단순히 셸 세션을 여는 역할을 한다.
Bash (Bourne Again Shell)
Bash는 대부분의 리눅스 배포판에서 기본 셸이다. ksh, zsh, tsch 등 다른 셸도 존재하지만, Bash를 숙달하면 탄탄한 기반을 마련할 수 있다.
터미널을 열면 보통 다음과 같은 프롬프트가 표시된다:
username@hostname:current_directory$
$는 셸이 명령을 받을 준비가 되었음을 나타내며, 실제로 $를 입력하지는 않는다.
예시
echo "I love Linux"
출력:
I love Linux

파일 시스템 기본
리눅스는 단일 루트 파일 시스템을 사용하므로 모든 것이 /에서 시작한다. C:와 같은 드라이브 문자 개념이 없으며, 모든 저장 장치는 동일한 디렉터리 트리 안에 마운트된다.
일반 디렉터리
/– 파일 시스템 루트/home– 사용자 홈 디렉터리/etc– 시스템 설정 파일/var– 가변 데이터(로그, 캐시, 스풀)/usr– 사용자 설치 소프트웨어와 라이브러리/bin및/sbin– 필수 시스템 바이너리
리눅스에서는 모든 것이 파일로 취급된다. 장치, 프로세스, 소켓도 파일이다.
경로
- 절대 경로 –
/에서 시작 (예:/home/user/projects). - 상대 경로 – 현재 디렉터리를 기준 (예:
projects/my-app).
유용한 탐색 명령
pwd # 현재 디렉터리 표시
ls # 파일 목록
cd # 디렉터리 이동
권한 및 사용자
리눅스는 보안이 내장된 다중 사용자 운영 체제이다. 모든 파일과 디렉터리는 소유자, 그룹, 그리고 권한 집합을 가진다.
ls -l로 권한을 확인할 수 있다:

- Root – 전체 접근 권한을 가진 슈퍼유저.
- 일반 사용자 – 제한된 권한을 가지며,
sudo를 사용해 권한이 필요한 명령을 실행할 수 있다.
권한은 리눅스의 핵심 개념이며, 서버가 기본적으로 안전한 이유 중 하나이다.
네트워킹 기본
리눅스는 네트워크를 검사·디버깅·상호 작용할 수 있는 강력한 내장 도구들을 제공한다. 이는 서버, 컨테이너, 클라우드 환경에서 필수적인 기술이다.
네트워크 개념
- IP 주소 – 네트워크 상의 머신을 식별한다.
- 포트 – 머신에서 실행 중인 서비스를 식별한다.
- 프로토콜 – 통신 규칙(예: HTTP, TCP, UDP).
일반 네트워킹 명령
ping "url.com"

curl "url.com"
