리눅스 OS 종류
- Redhat(레드햇) : RPM 패키지 관리 시스템 사용 / yum 명령어를 통해 소프트웨어 업데이트 / 가격이 비쌈 / 배포판: CentOS, 페도라
- Debian(데비안) : APT 페키지 매니저 사용 / 다른 패키지와 의존성 확인 가능 / 어려움 / 배포판 : 우분투
- openSUSE(수세) : Yast 시스템 관리자 사용 / 저장소가 많지 않음 / 배포판 : 슬렉웨어 계열
리눅스의 장단점?
- 공개형 오픈소스 운영체제 (참고자료가 많음)
- 다중 사용자 및 다중 처리 시스템
- 가상 터미널 환경 지원 + 다양한 파일 시스템 지원
- Windows에 비해 다루기 어려움
- 문제 발생시 트러블 슈팅이 어려움
리눅스 기본 구성
- 사용자 프로그램 : 사용자가 웹 서버, DB 서버 ...을 이용해서 입력을 한다. (ex. 카카오톡, 네이버, 구글..)
- 쉘(shell) : 사용자의 명령을 커널에서 이해할 수 있도록 변환하여 전달(사용자 명령어 해석기)
- Kernal(커널) : 리눅스 운영체제의 핵심 / 시스템의 하드웨어를 제어 / 쉘과 프로그램을 통해 명령 수신(사용자X)
- 하드웨어 : 직접적인 입/출력 물리장치 (ex.CPU, 메모리, Disk) / 실제작업수행 / 커널이 제어(low-level이라서)

리눅스 디렉토리 특성
: 전체적인 tree 구조의 형태로 서로 다른 성격과 사용 권한 등에 따라 구분됨.
- / : 최상위 디렉토리, 모든 디렉토리들의 시작점 (root)
- /bin : 기본적인 명령어가 저장된 디렉토리 (bin 아래에 저장됨 + 새롭게 생성된 것들도)
- /boot : 부트로더(Boot Loader)가 존재하는 디렉토리 (부팅관련! / 부팅X? -> 여기에 문제있음)
- /dev : 시스템 디바이스 파일 저장하는 디렉토리 (하드디스크, CD-ROM, USB 등)
- /etc : 모든 설정 파일 존재 디렉토리 (제일 중요 + 기본적임)
- /lib : 커널 모듈파일과 라이브러리 파일 디렉토리
- /proc : 메모리상에 존재하는 가상 파일 시스템
- /usr : 프로그램 설치 디렉토리
- /var : 시스템 운용중 생성/삭제 되는 일시적인 데이터 관리 디렉토리 (전반적인 운영사항을 관리)
리눅스 명령어(Command)
- 엄격한 대, 소문자 구분
- 명령어의 옵션 사용 가능 -> 더 자세히 나옴 (ex. # ls : 목록보기 / # ls -a : 모든 목록 보여주기)
- 명령어 자동 입력 가능 (Tab 키) -> (# mk + Tab 키)
- 파이프라인( | )을 통해 다양한 형태로 조합되는 명령어 실행 가능 (직렬로 두개의 명령어 수행)
- 명령어에 대한 Man Page(백과사전)를 통해 명령어 도움말 지원 (# man [명령어] / 나갈때 q 누르기)
# date : 명령어(현재 시간과 날짜 출력)
- # date --date '2days ago' : 이틀 전의 날짜 출력 (#date: 명령어, --date: 옵션, '2days ago': 문자열)
- # date --date '3 months 1 day' : 3개월 하고 하루 지난 날짜를 출력
- # date --date '25 Dec' +%j : 올해 크리스마스 날짜를 출력
# mkdir [dir name] : 디렉토리 생성 (mkd + tab) --> ex) mkdir test
# cd [dir name] : 디렉토리로 이동 --> ex) cd test (하면 test 안으로 이동함)
# touch [file] : 파일 생성 --> ex) touch file
# ls : 디렉토리 내의 파일 목록 확인 --> ex) ls file
- # ls -a : 목록 자세히
- # ls -al : 숨김파일까지 더 자세히 보기
# vi file : 하고 들어가서 'i' 하고 입력 -> esc치고, ':wq' 하고 나오기 (vim file 이 더 편함)
# cat file : vi file 에 있는 내용 출력
# cp [원본 file1] [사용할 파일] -> 파일 복제
# rm [option] [file] -> 파일 영구 삭제
*cd ../../ : '../' 가 뒤로 가기임
*pwd: 현재 위치, './' : 현재 위치
# find [경로] [-name] [file name] --> ex) find ./ -name test.txt (현재 디렉토리 './'에 존재하는 '-name test.txt' 이른이 'test.txt' 인 파일을 찾음
# mv [file1] [directory] : 특정 파일 이동 --> ex) mv test.txt ../ ('test.txt' 파일을 한 단계 위로 이동)
#pwd: 현재 디렉토리 위치 표시
# history | grep mkdir : history 중 'mkdir'만 가져오기
# head : 1~10번째 라인까지 출력
# tail : 맨 끝부처 10번째 라인까지 출력
# more : 파일을 화면 단위로
# less : 파일 내용을 페이지 단위로
# su [user name] : 로그아웃 없이 임시로 다른 사용자의 UID, GID 환경을 사용
# sudo -i : 다른 사용자로 명령을 실행(root로 접속!)
# sudo useradd [user name] 도 가능 : root권한을 빌려와서 새로운 user를 생성 가능
# useradd [user name] : 일반 사용자 계정 생성
# passwd [user name] : 사용자의 패스워드 변경
# who : 누가 몇시에 다녀갔는지 표시
# whoami : '현재 사용자' 가 누군지 표시
# which : 환경변수 Path에 저장되어 있는 경로만을 검색하여 명령어 위치 확인
-> which ls : 어디 존재? (절대 경로)
#whereis : 경로상의 명령어 위치뿐만 아니라 소스, 메뉴얼 페이지 등이 있는 위치 확인 가능
# lsof(list open files) : 시스템에서 열린 파일 목록 확인, 사용하는 프로세스, 디바이스 정보, 파일 정보 등 상세한 정보 출력
# apt-get install lsof
리눅스 Package Manager
- Package : 시스템 환경에 맞춰 빌드한 실행 파일을 압축한 형태
- rpm(레드햇에서) : 리눅스에서 사용되는 패키지들을 설치, 제거(관리)를 도와주는 툴
- yum(레드햇에서) : 저장소에서 패티지 검색하고 다운로드하여 설치
- apt : ubuntu에서 사용되는 패키지 관리자
RPM 사용방법
- # rpm -ivh [패키지명.rpm] ( --h : 설치 진행 상황 출력) :i(설치), v(자세한 정보 출력), h(진행사항을 #표시로 보여줌)
- # rpm -qa ( --a : 설치된 패키지 목록 확인) :q(조회, query), a(모든 패키지)
- # rpm -Uvh [패키지명.rpm] : 업데이트 (U(upgrade), v(자세한 정보 출력), h(진행사항을 #표시로 보여줌)
- # rpm -e [패키지명.rpm] : 삭제(e(erase)
YUM 사용방법(그냥 직관적으로 나와있음)
- # yum install [패키지명] - # rpm -ivh
- # yum update (설치된 패키지 버전 업데이트) - # rpm -Uvh
- # yum update [패키지명] (특정 패키지 버전 업데이트) - # rpm -Uvh
- # yum remove [패키지명] (특정 패키지 삭제 / 의존성 패키지 포함) - # rpm -e
- # yum search [패키지명] - # rpm qa
APT 사용방법(ubuntu에서 사용)
- # apt-get install [패키지명]
- # apt-get install net-tools traceroute (설치된 패키지 버전 업데이트)
- # apt-get remove [패키지명] (특정 패키지 삭제 / 의존성 패키지 포함)
- # apt-get search [패키지명] ((현재는 없어짐.....,,,))
- # apt-get update [패키지명] (연결된 패키지 저장소 갱신)
리눅스 데몬(Daemon)
데몬 : 프로세스들을 관리하는 것들
- 리눅스 부팅 레벨 : 리눅스 시스템에서 '/etc/rc.d/sysinit/' 스크립트 파일이 실행되어 시스템 초기화 및 부팅 관리
- 런레벨 0~6번까지 존재 :
- 런레벨 5번(X11 -> 기본) : 우리는 보통 5번! (윈도우 GUI를 사용하는 다중 사용자 모드로 최근 배포되는 리눅스에서 기본값으로 사용됨.) (+GUI <->CLI(명령어만 입력가능 / 터미널만 나옴))
- 런레벨 6번(Reboot) : 다시시작 (기본값으로 설정 불가)
- 런레벨 3번(Full multiuser mode) : 일반적인 다중 사용자 모드
- 런레벨 0번(Halt) : 시스템 종료 (기본값으로 설정 불가)

클라이언트의 요청을 처리, 리눅스 시스템이 구동되는데 필요한 기능을 제공
사용자가 직접적으로 제어하지 않고, 백그라운드를 돌면서 여러 작업을 하는 프로그램
- sshd : 원격접속 (다른컴퓨터로)
- syslog : 시스템 로그 관리 (/bar밑에 저장)
- network : 네트워크 서비스
- iptables : 방화벽 (ex. 와이파이 방화벽)
- httpd : 웹서버 (ex.naver. google)
Daemon 백그라운드에서 실행모드
- Standalone 모드 : 데몬이 시작되면 계속 프로세스가 실행하고 있으므로 클라이언트의 요청에 즉각 응답 / 자원관리 필요(클라이언트의 서비스 요청이 빈번하기 때문에) / IO(input, output) 늘어나면 Disk 관리필요!(자원 관리 필요) / /etc/init.d 디렉토리에 스크립트 파일로 제어하여 시스템 파일로 제어하여 시스템 부팅시 바로 실행되도록 관리
- xinetd(extended internet Daemon) 모드 : 클라이언트가 서비스 요청을 가끔하는 데몬을 '/etc/xinetd.conf' 파일에서 관리 (ex.telnet : 원격)
'EWHA_2nd grade > 리눅스실습프로젝트' 카테고리의 다른 글
Chap3 - 리눅스에서 파일시스템 관리 (0) | 2025.04.16 |
---|