Search
moon
sun

Unix 시스템 정리

저장장치 이름과 표준 디렉터리 구조

파티션(Partition)

•
하드디스크를 논리적으로 나눈 구역
•
각 파티션마다 파일 시스템 생성 가능
•
윈도우는 C:, D:처럼 드라이브로 표시
•
리눅스는 / 하나만 존재, 나머지 파티션은 특정 디렉터리에 마운트
•
예: /dev/sdb1 → /home에 마운트

저장 장치 이름 (Device Name)

리눅스는 모든 저장 장치를 파일처럼 /dev 안에 관리함.
장치 종류
이름 형태
예시
IDE 디스크
hd
/dev/hda, /dev/hdb
SCSI / SATA / NVMe 디스크
sd
/dev/sda, /dev/sdb1
CD/DVD
sr
/dev/sr0
•
디스크가 추가되면 a, b, c 순서로 할당
•
파티션은 숫자가 뒤에 붙음 (예: /dev/sda1)

리눅스 표준 디렉터리 구조

디렉터리
역할
/
루트 디렉터리, 모든 경로의 시작점
/bin, /sbin
기본 명령어 실행 파일 (/bin: user, /sbin: system)
/boot
부팅에 필요한 커널 파일 (vmlinuz 등)
/dev
디바이스 파일 (디스크, 장치 등)
/etc
시스템 설정 파일
/home
사용자 홈 디렉터리
/lib
시스템/프로그램 라이브러리
/media
USB 등 외부 저장장치 자동 마운트 위치
/proc
커널·프로세스 정보 (가상 파일 시스템)
/root
root 사용자 홈
/usr
사용자 프로그램 실행 파일 및 라이브러리
/var
로그, 메일, 스풀 등 가변 데이터 저장

셸 사용하기

•
명령어 해석기, 명령 행 인터페이스
•
사용자와 커널 사이에서 명령어 해석 및 처리
셸 기능
기능
설명
명령 해석
사용자가 입력한 명령어를 해석하고 실행
스크립트 실행
셸 스크립트를 이용한 반복 작업 자동화
환경 설정
환경 변수 및 셸 옵션 설정을 통한 작업 환경 구성
셸 종류
셸 종류
특징
Bash
가장 널리 사용되는 셸, 강력한 스크립팅 기능 제공 /bin/bash
Zsh
향상된 자동완성, 플러그인 지원
Fish
사용자 친화적 UI, 직관적인 사용성

셸 명령

구성 요소
설명
명령어
실행 프로그램 이름(who, date, ls, pwd 등)
옵션
명령의 동작 방식을 결정
인수
명령이 처리할 대상
$ {명령어} {옵션} {인수} 예: usermod -L kdhong
Bash
복사
셸 명령의 종류
종류
설명
알리어스(alias)
명령의 별칭
셸 예약어
do, while, case 등 예약된 단어
함수
셸 내부에서 정의하여 실행하는 함수
내장 명령(builtin)
셸 내부 명령 (cd, echo, pwd 등)
일반 명령(external)
실행 파일이 존재하는 명령, PATH에 위치하면 이름만으로 실행 가능
•
PATH에 현재 디렉터리(.)는 포함되지 않음
•
echo $PATH 를 이용한 검색 경로 확인 가능
alias / type / which / man 명령
명령
설명
예시
alias
단축 명령 생성
alias la='ls -A'
type
명령의 해석 방식 확인
type ls
which
PATH 기반 실행 파일 경로 표시
which rm
man
메뉴얼 페이지 확인
man passwd

명령의 연결

•
파이프(pipe)
◦
앞 명령의 출력을 다음 명령의 입력으로 전달
◦
| 사용
◦
ls -l | grep "txt"
•
리다이렉션
◦
< : 파일을 입력으로 사용
◦
> : 출력을 파일에 저장 (덮어쓰기)
◦
>>: 출력을 파일에 추가
•
명령 치환
◦
명령의 출력을 다른 명령의 인수로 사용
◦
$( ) 또는 백틱 ` ` 사용
◦
ls -l $(which passwd)
•
인용부호(quoting)
종류
의미
특징
작은따옴표(')
문자열 그대로 사용
특수문자 해석 X
큰따옴표(")
문자열 그룹화
$, `, \, ! 해석 O
백슬래시(\)
특수문자 해석 제거
특정 문자 escape
•
수식 변수 확장
◦
$(( )), $[ ]: 산술 확장
◦
$변수 : 변수 값 확장

파일과 디렉터리

파일 시스템 개요

•
운영체제가 디스크(파티션) 상에서 파일을 구성하는 방식
•
파일과 디렉터리 집합을 구조적으로 관리하는 체계
•
다양한 형태의 파일 시스템 존재
•
리눅스는 전체 파일 시스템을 하나의 트리 구조로 관리
•
루트(/) 하나만 존재하며 모든 경로는 / 아래에 구성됨

ls 명령

ls 기본 기능
•
파일·디렉터리 목록 표시
•
옵션에 따라 속성, 형태, 정렬방식 표시 가능
짧은 옵션
긴 옵션
기능
-a
--all
숨김 파일 포함 전체 표시
-d
--directory
디렉터리 자체 정보만 표시
-F
--classify
파일 종류를 식별 기호로 표시 (*, /, @ 등)
-l
--format=long
상세 정보(권한·소유자·크기·시간) 표시
-R
--recursive
하위 디렉터리까지 재귀적으로 표시
-S
--sort=size
파일 크기 기준 정렬
-t
--sort=time
시간 기준 정렬
파일 종류
종류
설명
정규 파일
텍스트, 실행 파일, 이미지 등 일반적 데이터 저장
디렉터리
파일·디렉터리 정보를 저장하는 특수 파일
심볼릭 링크
다른 파일을 가리키는 링크(Windows 바로가기 유사)
장치 파일
디스크, 터미널, CD-ROM 등 하드웨어 장치 표현
파이프/소켓 파일
프로세스 간 통신용 파일
주요 탐색 명령
명령
기능
file
파일의 종류 확인
pwd
현재 작업 디렉터리의 절대 경로 표시
cd
디렉터리 이동

파일과 디렉터리 관리

mkdir 명령
•
디렉터리 생성 명령
•
형식: mkdir [옵션] 디렉터리
옵션
의미
-p
필요한 경우 상위 디렉터리까지 생성
-m
디렉터리 생성 시 권한 지정
rmdir 명령
•
비어 있는 디렉터리 삭제
•
하위 디렉터리가 존재하면 삭제 불가
•
재귀 삭제는 rm 명령(rm -r) 사용
옵션
의미
-p
상위 디렉터리까지 연쇄적으로 삭제
cp 명령
•
파일/디렉터리 복사 명령
cp 명령 형태
형식
설명
cp file1 file2
파일 복사(기존 파일 덮어쓰기)
cp files dir
여러 파일을 지정 디렉터리에 복사
cp -r dir1 dir2
디렉터리 전체 복사(재귀)
mv 명령
•
파일/디렉터리 이름 변경
•
위치 이동
형식
설명
mv file1 file2
파일 이름 변경
mv dir1 dir2
디렉터리 이름 변경
mv files dir
여러 파일을 디렉터리로 이동
rm 명령
•
파일 또는 디렉터리 삭제
옵션
의미
-r
디렉터리 전체 삭제
-f
강제 삭제(확인 없음)
-i
삭제 시 사용자 확인 요청
파일 접근권한
기호
의미
r
읽기
w
쓰기
x
실행
권한 주체
주체
의미
u
소유자(user)
g
그룹(group)
o
기타(other)
디렉터리 접근권한
권한
의미
r
디렉터리의 파일 목록 보기
w
디렉터리 내 파일 생성·삭제
x
디렉터리 진입 또는 프로그램 실행
•
디렉터리를 정상적으로 사용하려면 rwx 권한 모두 필요
chmod 명령
값
의미
4
읽기(r)
2
쓰기(w)
1
실행(x)
•
예: 755 → rwxr-xr-x
기호 모드
형식
의미
[ugoa]
권한 대상
[+-=]
권한 추가/삭제/지정
[rwx]
권한 종류
예:
•
chmod u+x file
•
chmod u=rwx,g=rx,o=x file
umask 명령
•
기본 파일/디렉터리 권한 설정
•
기본 마스크에 의해 생성 시 권한이 제한됨
항목
설명
기본 umask 022
파일: 644, 디렉터리: 755 생성
옵션 -S
심볼릭 형태로 출력
chown 명령
•
파일/디렉터리 소유자/그룹 변경
•
root 권한 필요
형식
의미
chown 사용자 파일
소유자 변경
chown 사용자:그룹 파일
소유자·그룹 변경
-R
재귀 적용
ln 명령
종류
설명
하드 링크
동일 inode를 참조하는 또 다른 파일 이름
심볼릭 링크
원본 파일 경로를 가리키는 링크(바로가기 유사)
ln 명령 형식
형식
기능
ln 원본 대상
하드 링크 생성
ln -s 원본 대상
심볼릭 링크 생성

파일 내용 확인

more, less 명령
명령
설명
more
파일을 페이지 단위로 출력
less
more 확장판, 스크롤 및 검색 기능 지원
head / tail 명령
명령
기능
head -n
앞에서부터 n줄 출력
tail -n
뒤에서부터 n줄 출력
tail -f
파일 변경 실시간 출력(로그 모니터링)
cat 명령
기능
설명
파일 내용 출력
cat file
여러 파일 결합
cat f1 f2 > newfile
번호 포함 출력
cat -n file