리눅스 기초 정리
Intro
안녕하세요 오유민 사원입니다. 리눅스 서버에 프로젝트 배포 멘토링을 하면서 리눅스의 기초에 대해 공부한 내용을 정리하였습니다.
Linux 기초
목차
- 리눅스 운영체제
- 리눅스 기본 명령어
리눅스 운영체제
운영체제란 사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스로, 커널과 시스템 프로그램으로 구성되어있다.
운영체제는 사용자 영역과 커널영역으로 나뉘어 사용자가 응용프로그램을 이용하기위한 공간, 자원을 관리하는 공간으로 사용한다.
커널 은 운영체제의 핵심으로 메모리 관리, 디바이스 관리, 프로세스 관리, 시스템 콜 등의 자원관리를 담당한다.
- 메모리 관리
시스템이 가지고 있는 물리적 메모리보다 더 많이 프로그램에 할당할 수 있도록 가상 메모리 사용한다.
이때, 가상 메모리 영역을 스왑 영역이라 하는데, 메모리의 프로그램을 보조 기억장치로 보내는 것을 스왑아웃 메모리에 다시 가져오는 것은 __스왑인__이라 한다. - 디바이스 관리
하드웨어의 입출력을 관리하기 위해 입출력 요청 검증, 입출력 요청 작업의 스케줄링, 입출력 제어기 관리, 인터럽트 요청 및 처리의 기능을 수행한다.
- 프로세스 관리
프로세스 스케줄러를 이용하여 하나의 CPU를 여러 프로세스가 이용할 수 있도록 각 프로세스에 pid(프로세스 id)를 부여하여 제어한다.
>* 프로세스 : 실행중인 프로그램(구성 = 프로그램에 필요한 데이터 + 자원 + 스레드) >* 스레드 : 프로세스 내에서 실행되는 흐름의 단위 - 시스템콜
시스템콜은 커널이 제공하는 서비스(프로세스/파일 생성/삭제, 값 확인, 지정 등)를 프로그램의 요청에 따라 수행하는 방법이다.
전체적으로 사용자가 물리적 하드웨어에 접근하고 사용할 수 있도록 커널이 관리한다.
리눅스의 특징
- 소스코드가 공개 된 자유 소프트웨어로 오픈소스 개발이 쉽다.
- 다중 사용자, 멀티태스킹, 다중 스레드를 지원한다.
여러 사람이 하나의 리눅스 시스템에 접속하여 다수의 프로그램을 동시실행이 가능하다.
리눅스의 디렉토리 구성
root
|—— /bin 기본 커맨드를 저장(cat, chmod, chown 등) -> 모든 계정
|—— /boot 운영체제 시작에 필요한 파일
|—— /dev 하드디스크, 키보드, 디바이스 파일을 저장(core파일은 비정상적으로 종료되었을 때 프로그램의 상태를 기록)
|—— /etc 설정 파일(apt-get으로 설치시 기본 설치 디렉토리)
|—— /home 사용자 홈 디렉토리(계정 추가 시)
|—— /lib 공유 라이브러리
|—— /mnt 마운트 포인트용 디렉토리(마운트: 윈도우는 자동 pnp를 지원하나 리눅스는 직접 다른 디스크나 장치를 연결하는 작업이 필요)
|—— /media CD/DVD-ROM용 마운트 포인트
|—— /opt 기본 이외에 추가적인 소프트웨어 설치
|—— /proc 커널이나 프로세스 정보가 저장(저장된 숫자 = pid)
|—— /root root(시스템 관리자=슈퍼유저)용 디렉토리
|—— /sbin 시스템관리용 커맨드(reboot, ifconfig 등) -> root 권한
|—— /srv 서비스 디렉토리(ftp, cvs 등 시스템에서 얻은 데이터 저장)
|—— /tmp 프로그램을 설치할 때 임시저장되는 디렉토리 ->누구나 읽고, 쓰고, 실행할 수 있으므로 보안 유의
|—— /usr 프로그램, 커널 소스 저장(/usr/local은 시스템관리자가 어플리케이션을 설치하는 디렉토리)
|—— /var 로그 등 가변적인 파일(시스템이 가동되면서 변화하는 파일)
#
리눅스 기본 명령어
pwd : 현재 디렉토리
ls : 현재 디렉토리의 파일/폴더(-al : 숨겨진 폴더/파일까지)
cp 복사할 파일/폴더 복사본 저장이름 : 폴더/파일복사(폴더는 -r 옵션)
mv 옮길파일/폴더 이동시킬 경로 : 폴더/파일 이동
mkdir 생성할 디렉토리명 : 디렉토리 생성
rm 삭제할 파일/디렉토리(-r 옵션 필수, -rf 는 하위디렉토리까지 모두 삭제) : 파일/폴더 삭제
touch 파일명 : 파일이 없으면 빈 생성
cat 파일명 : 파일 내용 단순 출력 cat 파일명 파일명 > 생성파일명 : 두 파일내용을 붙여서 파일 생성
cat 파일명 » 생성파일명 : 결과값을 파일에 저장
head -n 파일명 : 상위 n줄 만큼 보여줌(-F 옵션: 파일내용을 계속 띄워두고 업데이트 된 내용을 갱신)
tail -n 파일명 : 하위 -n줄 만큼 보여줌
find 검색 경로 -name ‘파일명/.확장자명’ : 검색경로 내의 파일명/확장자명을 가진 파일 검색
find 검색 경로 -type d/f : 디렉토리만/파일만 검색
chmod 부여할 권한 파일명 : 사용권한 부여
chown 소유권자:그룹 소유권변경할 파일명 : 파일의 소유권자와 그룹을 변경(-R : 하위 경로의 소유자와 그룹 모두 변경)
more 옵션 > 스페이스바 : 다음 페이지 >* 엔터 : 다음 줄 >* v : vi편집기로 전환 >* b : 이전 페이지 >* q : 나가기
tar cvf 파일명.tar : tar로 된 파일 압축
tar xvf 파일명.tar : tar로 된 파일 압축풀기
less 파일명 : 파일 보기
vi 파일명 : 파일이 없으면 새 파일을 생성한 후 편집기 열기(-b 옵션: 바이너리 모드로 열기)
vi 옵션 >* 쓰기 : i 커서위치에 쓰기, a 커서 다음위치에 쓰기, A 줄 맨뒤에 쓰기
>* 이동 : w 다음단어 첫글자로 이동, W 공백기준 다음단어 첫글자로 이동, b 단어 첫글자의 이전, B 공백기준 이전, gg 문서 맨앞으로 이동, G 문서 맨아래로 이동
>* 편집 : dd 현재 줄 자르기, yy 현재 줄 복사, p 붙여넣기, cc 잘라내기
ln -s 원본파일 심볼릭링크이름 : 바로가기같은 기능
ps : 사용자와 관련된 프로세스 출력
ps -e : 커널 프로세스를 제외한 모든 프로세스 출력
ps -f : + UID, PID, PPID(부모프로세스 id) 등을 함께 출력
ps -ef | grep ‘포르세스명’ : 해당 프로세스만 필터링하여 출력
Leave a comment