리눅스의 개요
- 리눅스란?
- 멀티 유저, 멀티 태스킹 지원
- UNIX와 유사
- 리누스 토발스에 의해 개발된 공개OS
- 독점/배타X, 프리 소프트웨어
- GNU라이센스 => 누구에게나 자유롭게 배포
- GNU 프로젝트
- 프로그램 복제/공유 자유
- 개작 자유
- 개작 후 배포 자유
- 리눅스의 역사
- 1969 - UNIX 개발(어셈블리어)
- 1971 - C언어로 UNIX 재작성
- 1985 - GNU 선언문 발표
- 1991 - 리눅스 커널 완성
- 리눅스의 특징
- 완벽한 멀티 유저, 멀티 태스킹 OS
- CLI, GUI 지원
- 오픈 소스
- 여러 종류의 파일 시스템 지원 (FAT, FAT3, NTFS, NFS, xfs)
- 쉘 제공 : 대화형 사용자 인터페이스
- HW 효과적 사용 : 메모리 적게 차지
- 인터넷의 모든 기능 지원
- 가술 지원 어려움
- 배포판
- 전체 시스템을 구성하는 SW패키지 형태
- 데비안 리눅스
- GNU 공식 후원
- 제품
- 우분투 : 사용자 편의성 중점
- 민트
- 레드햇 리눅스
- 알기 쉬운 인스톨러, 관리도구 사용
- RPM(Redhat Package Manager) 지원
- 제품
- 페트라 : 래드햇 후원, 기술 지향, 짧은 간격으로 업데이트
- CentOS : 래드햇 엔터프라이즈 리눅스 배포판, 기업용 서버로 많이 사용, 기술지원X
- 리눅스의 구조
- HW
- cpu, gpu, ram 등의 하드웨어
- 커널
- 가장 핵심적인 연산이 이루어지는 곳
- 하드웨어 제어
- 프로세스/메모리/파일 관리
- 프로그램과 HW사이의 관리자
- 쉘
- 명령어를 해석하여 커널에 저장
- 대화형 사용자 인터페이스
- 명령어 이해&실행
- 종류
- 본쉘(bash)
- C쉘(csh)
- 콘쉘(ksh)
- 커널 -> 쉘 (작업 지시)
- 커널 <- 쉘 (결과 전송)
- HW
파티션
- 파티션의 개념
- 물리적인 볼륨을 여러 개의 조각으로 나누는 것
- 하나의 디스크를 여러 개의 파티션으로 나누면 다른 드라이브로 인식
- 장점
- 파티션은 트랙 단위로 구성 => 같은 파티션에서 탐색시 헤더 이동 거리 단축
- 논리적으로 분리 => 특정 파티션 장애 시 다른 파티션은 안전
- 단점
- 초기에 설정된 파티션을 이용해야 하기 때문에 잔여 용량이 차이가 날 수 있음
- 수정하기 위해서는 시스템 정지 필요
- 초기에 설정된 파티션을 이용해야 하기 때문에 잔여 용량이 차이가 날 수 있음
- 파티션의 종류
- 주(primary) 파티션 : 최대 4개까지 설정 가능, 주로 os설치
- 확장 파티션 : 하나의 영역을 다시 여러 개로 분할 가능
- 마운트 포인트 별 저장 내용
- / : 루트 파티션
- /boot : 부팅 커널 저장
- /backup : 백업 데이터 저장, 디스크가 1개만 있다면 50%정도 백업으로 할당 권장
- /home : 사용자 데이터 저장
- /var : 사용자 log 저장
- swap
- 메모리 부족 or 오랫동안 사용하지 않는 메모리에 로드된 프로그램 저장 시 사용
- swap을 할당하지 않으면 메모리 부족 시 시스템 장애 발생
- 디렉토리 종류&특징
- 디렉토리 : 피일 저장소, 최상위 디렉토리를 기준으로 하위 디렉토리가 있는 트리 구조
- 디렉토리 별 저장 내용
- / : 최상위(루트), 특수한 목적의 파티션을 나눈 후 남은 공간을 루트 파티션에 할당(최소 5GB)
- /boot : 부팅 시 필요한 커널 이미지, 부팅 정보 파일 저장
- /proc : 커널 기능 제어, 현재 실행 중인 프로제스와 사용 중인 장치 정보 저장
- /lib : 동적 라이브러리 저장
- 동적 라이브러리 : 프로그램 실행할 때 가져와 사용
- /bin : 기본적인 명령어 저장
- /dev : 시스템 디바이스 파일 저장
- /etc : 시스템 환경 설정 파일 저장
- /root : 관리자용 홈 디렉토리
- /usr : 사용자 디렉토리(사용자 데이터, 앱 저장)
- /home : 사용자 계정의 홈 디렉토리 위치
- /var : 가변 자료 저장(로그, 메일 저장)
- /tmp : 임시 파일 저장, 모든 사용자에 대해 RW 허용
- /backup : 데이터 백업용
- /sbin : 시스템 관리 관련 명령어 저장
명령어
- date
- 서버 시간 확인 & 설정
- 부팅 시 CMOS에서 정보 가져옴
- 재설정 시
date MMDDhhmmYY
형식 사용 - 옵션
- -u 세계 표준 시간 출력
- –help 도움말
- –version 버전 정보
- who
- 현재 접속 중인 사용자 확인
- 로그인명, 터미널, 로그인 시간 출력
- 옵션
- -H 각 열 위에 헤더 표시
- -q 로그인한 사람 + 로그인한 사람 수 출력
- -m who am i와 동치, 현재 로그인한 사용자의 id 출력
- cal
- 그레고리력 기준 달력 출력
cal [옵션] [[month]year]
- 옵션
- -3 이전 달, 다음 달 모두 출력
- -m 월요일을 기준으로 출력
- -j Julian 형식 출력(1~365)
- -y 그 해의 전체 달력 출력
- man
- 도움말 제공
- /usr/share/man에 저장되어 있음
- 구성
- name
- synopsis
- option
- parameter, environment
- ls
- 특정 디렉토리의 파일 리스트 왁인
- 옵션
- -a 모든 파일 출력
- -l 세부 정보 제공
- -R 하위 디렉토리도 표시
- pwd
- 현재 위치 출력(절대 경로)
- cd
- 작업 디렉토리 변경
- cat
- 파일 내용 출력
- 옵션
- -b 줄 번호 표시(빈 행 제외)
- -n 줄 번호 표시(빈 행 포함)
- -s 연속된 빈 행을 한 행으로 출력
- 사용법
- cat > 파일명 : 내용 쓰고 ctrl+D로 종료(파일 새로 생성)
- cat 파일명 : 내용 출력
- cat 파일1 > 파일2 : 파일1의 내용을 파일2에 덮어씌움
- cat » 파일명 : 내용 쓰고 ctrl+D로 종료(이어 쓰기)
- cat 파일1 » 파일2 : 파일1의 내용을 파일2에 추가
- mkdir
- 디렉토리 생성
- 옵션
- -p 하위 디렉토리 동시 생성
- -m 접근 권한 설정
- rmdir
- 디렉토리 삭제
- 파일이 들어있는 디렉토리 삭제 시 rm -r 사용
- cp
- 파일&디렉토리 복사
- 옵션
- -a 속성, 링크 정보 유지
- -b 백업본 만들고 복사
- -f 강제 덮어쓰기
- -i 덮어쓰기 전에 복사 여부 확인
- -p 원본 파일의 소유주, 그룹, 권한, 시간 정보 복사
- -r -R 하위 디렉토리와 파일 복사
- rm
- 파일, 디렉토리 삭제
- 옵션
- -i 삭제 전 삭제 여부 확인
- -f 강제 삭제
- -r -R 파일이면 삭제, 디렉토리면 모두 삭제
- -v 삭제 시 정보 출력
- mv
- 파일 이름 변경, 파일 이동
mv [옵션] [원본 파일명] [변경 파일명]
mv [옵션] [원본1] [원본2] ... [이동 디렉토리]
- 옵션
- -i 덮어쓰기 여부 확인
- -f 강제 덮어쓰기
- touch
- 크기가 0인 새 파일 생성 or 수정 시간 변경
- 옵션
- -t 시간 설정
- -r 동기화