본문 바로가기
Major Review (학부)/Linux OS

01. 리눅스 기초

by 삼준 2023. 10. 25.
반응형

* 리눅스(Linux)

1991년 8월 26일 핀란드의 리누스 베네딕트 토발즈(Linus Benedict Torvalds)가 미닉스라는 교육용 OS를 참조하여 개발한 OS.

오픈소스이므로 비용이 없고, GUI가 없어 리소스 소모가 적다는게 큰 강점임.

서버용 운영체제로 많이 사용됨.

다양한 배포판이 있고, Ubuntu, CentOS 등이 유명함. ( 배포판 = 리눅스 커널 + 각종 컴포넌트(윈도우 시스템, 서비스 데몬, 패킺 매니저, 응용 프로그램 등) )

 

* 파일 & 디렉토리(Directory)

리눅스는 모든 것을 파일로 관리함.

 

- 파일 종류

일반 파일 : 텍스트 파일, 실행 파일, 이미지 파일 등 주로 데이터를 저장.

디렉토리(Directory) : 해당 디렉토리에 저장된 파일이나 하위 디렉토리에 대한 정보를 저장.

심볼릭 링크 : 원본 파일을 다른 파일명으로 지정한 것. (윈도우의 바로가기와 유사함.)

장치 파일 : 하드디스크나 키보드 같은 각종 장치(하드웨어)들도 파일로 취급함.

 

- file 명령어

파일의 종류를 알아보는 명령어임.

"file 파일명" 입력시 어떠한 파일인지 출력됨.

 

- 디렉토리 계층 구조

최상위에는 루트(root) 디렉토리가 존재하며, "/"로 표시.

그 아래에 bin, etc, usr, home, boot, dev 등이 잇음.

계층적으로 위에 있는 디렉토리를 상위 디렉토리(또는 부모 디렉토리)라고 하며, 아래에 있는 디렉토리를 하위 디렉토리(또는 자식 디렉토리) 라고 함.

 

- 디렉토리 주요 기능

dev : 장치 파일이 담겨있음.

home : 사용자 홈 디렉토리가 생성됨.

media : 외부 장치(DVD/CD, USB 등)를 연결함. (= 마운트)

opt : 추가 패키지가 설치됨.

root : root 계정의 홈 디렉토리. 루트(/) 디렉토리와는 다름.

sys : 리눅스 커널과 관련된 파일이 있음.

usr : 기본 실행 파일, 라이브러리, 헤더 파일 등이 있음. (Unix System Resource의 약자.)

boot : 부팅에 필요한 커널 파일이 있음.

etc : 리눅스 설정을 위한 파일이 있음.

lost+found : 파일 시스템에 문제가 발생해 복구할 경우, 문제가 되는 파일이 저장됨. 보통은 비어있음.

mnt : 파일 시스템을 임시로 마운트함.

proc : 프로세스 정보 등 커널 관련 정보가 저장됨.

run : 실행 중인 서비스와 관련된 파일이 저장됨.

srv : FTP나 Web 등 시스템에서 제공하는 서비스의 데이터가 저장됨.

tmp : 시스템 사용 중에 발생하는 임시 데이터가 저장됨. 종료 시 모두 삭제됨.

var : 시스템 운영 중 발생하는 데이터나 로그 등 내용이 자주 바뀌는 파일이 저장됨.

 

- 디렉토리 경로

ㄴ 절대 경로(Absolute Path)

루트(/)로 시작함.

루트부터 시작해 특정 파일이나 디렉토리까지 이르는 중간의 모든 디렉토리 이름을 표시함.

특정 위치를 가르키는 절대 경로명은 항상 동일함.

ㄴ 상대 경로(Relative Path)

루트(/) 이외의 문자로 시작함.

현재 디렉토리를 기준으로 서브 디렉토리로 내려가면 서브 디렉토리명으로 시작함.

상위 디렉토리로 올라가면 마침표 두개(..)로 시작함.

특정 위치를 가르키는 상대 경로명은 현재 디렉토리가 어디냐에 따라 달라짐.

 

- 파일, 디렉토리 이름의 규칙

이름엔 슬래시(/)가 들어갈 수 없음. 경로명 구분자로 사용되기 때문.

알파벳, 숫자, 하이픈(-), 언더스코어(_), 마침표(.)를 사용 가능함.

대소문자를 구분해 다른 문자로 취급함.

마침표(.)로 시작하는 파일은 숨김 파일로 간주함.

파일 이름에는 널 문자(\0)를 사용하지 않음.

 

- 관련 명령어

※ 옵션은 전부 기재하지 않고 필자가 사용해본 것 + 알아두면 좋은 것 위주로만 작성함.

pwd : print working directory, 현재 디렉토리 위치 출력.

 

cd [디렉토리] : change directory, 지정한 디렉토리로 이동함. cd 뒤에 아무것도 안 적으면 홈으로 이동함.

 

ls [옵션] [디렉토리] : 디렉토리 내용 출력.

ㄴ 주 옵션 : -a (숨김파일 포함 출력), -l (파일 상세 정보 출력) 

 

mkdir [옵션] [디렉토리] : 디렉토리 생성. 한 번에 여러개 생성도 가능.

ㄴ 옵션 : -p (하위 디렉토리를 계층적으로 생성할 떄 중간 디렉토리가 없으면 자동으로 생성)

 

rmdir [옵션] [디렉토리] : 디렉토리 삭제. 빈 디렉토리가 아니면 삭제 불가.

ㄴ 옵션 : -p (디렉토리 삭제 후 해당 디렉토리의 부모 디렉토리가 빈 디렉토리라면 부모도 자동으로 삭제)

 

cat [옵션] [파일] : 파일 내용 출력.

ㄴ 옵션 : -n (행 번호 붙여서 출력)

 

more [옵션] [파일] : 파일 내용을 화면 단위로 출력. 출력 시 스페이스바를 누르면 다음 화면으로 넘어가고, 엔터를 누르면 한 행씩 넘어감. 

ㄴ 옵션 : + 행 번호 (출력을 시작할 행 번호 지정)

 

less [파일] : 파일 내용을 화면 단위로 출력. more과 다르게 읽다가 다시 위로 올라갈 수 있음. k를 누르면 위로 한줄 올라감.

 

tail [옵션] [파일] : 파일 뒷부분의 몇 행(기본 10행)을 출력.

ㄴ 옵션 : +행 번호 (지정한 행부터 끝까지 출력), -숫자(화면에 출력할 행 수 지정)

 

cp [옵션] [파일1(디렉토리1)] [파일2(디렉토리2)] .. : 파일1을 파일2라는 이름으로 복사됨. 파일2가 디렉토리인 경우 해당 디렉토리에 복사됨. 인자가 더 많아질 경우 마지막 인자로 명령을 수행함.

ㄴ 옵션 : -i (이미 있는 파일인 경우 덮어쓸지 질문), -r (디렉토리 복사)

 

mv [옵션] [파일1(디렉토리1)] [파일2(디렉토리2)] : 파일1을 파일2로 이동 또는 이름 변경함.

ㄴ 옵션 : -i (이미 있는 파일인 경우 덮어쓸지 질문)

 

rm [옵션] [파일(디렉토리)] : 파일 삭제

ㄴ 옵션 : -i (질문 후 삭제), -r (디렉토리 삭제)

 

ln [옵션] [원본 파일] [링크 파일] : 파일 링크를 생성함(= 새로운 이름 붙이기). 옵션이 없으면 하드 링크임. 하드 링크와 심볼릭 링크 차이는 게시물 하단 참고.

ㄴ 옵션 : -s (심볼릭 링크 생성)

 

touch [옵션] [파일] : 빈 파일 생성.

ㄴ 옵션 : -a (접근 시간 변경), -m (수정 시간 변경), -t (시간 지정 [[CC]YY]MMDDhhmm[.ss] )

 

grep [옵션] [패턴] [파일] : 패턴이 포함된 행을 찾음.

ㄴ 옵션 : -i (대소문자 구분 없이 찾음), -i (패턴이 포함된 파일명 출력), -n (행 번호 출력)

 

find [경로] [조건] [동작] : 지정한 위치에서 조건에 맞는 파일을 찾음. 

ㄴ 조건 : -name (파일명으로 검색), -type (파일 종류로 검색), -user (사용자 소유 파일 검색), -perm (권한 검색)

ㄴ 동작 : -exec 명령 {}\; (명령 실행), -ok 명령 {}\; (질문 후 명령 실행), -print (검색된 파일 절대 경로명 출력), -ls (검색 결과 목록 형식으로 출력)

 

whereis [옵션] [파일] : 지정된 경로에서 명령어의 바이너리 파일이나 매뉴얼 파일의 위치를 찾음.

ㄴ 옵션 : -b (바이너리 파일만 검색), -m (매뉴얼 파일만 검색), -s (소스 파일만 검색)

 

which [명령] : 명령 파일의 위치를 찾앗 경로나 앨리어스 출력.

 

- 리눅스 파일 구성

: 파일명 + inode + 데이터 블록

ls -i 를 이용하면 파일의 inode 번호를 검색 가능함.

 

- 하드 링크 vs 심볼릭 링크

하드링크는 원본 파일과 이름만 다른 같은 파일임. (inode 번호가 같음.)

심볼릭 링크는 파일 종류가 l로 표시되고 파일명 뒤에 원본 파일의 이름이 표시됨. 또한 inode 번호가 원본 파일과 다름. 즉, 원본 파일과 심볼릭 링크 파일은 별개의 파일임.

 

* 리눅스 문서 편집기

행 단위 편집기 : ed, ex, sed

화면 단위 편집기 : vi, emacs

GUI 편집기 : gedit

 

- vi, vim 사용법

※ 참고 ※ vim 은 vi improved 의 약자로, vi와 본질적인 차이가 없음.

 

ㄴ 모드

vim은 명령 모드, 입력 모드, 비주얼 모드, 마지막 행 모드가 존재함. 다른 모드는 몰라도 크게 문제 없음.

  • 명령 모드 : 파일이 처음 열렸을 때의 모드. 다른 모드에서 ESC를 눌러 진입함.
  • 입력 모드 : 파일에 글자를 입력 및 수정 가능한 모드. 일반 모드에서 i를 눌러 진입함.
  • 비주얼 모드 : 마우스로 드래그하듯이 텍스트를 선택하는 모드. 일반 모드에서 v를 눌러 진입함.
  • 마지막 행 모드 : 저장, 종료 등의 명령을 수행하는 모드. 일반 모드에서 :를 눌러 진입함.

ㄴ 실행

vi(또는 vim) [파일명] : 파일을 vim 편집기에서 염.

 

ㄴ 종료

마지막 행 모드에서

q 입력 시 종료.

wq 입력 시 저장하고 종료.

 

위 내용만 알아도 사용엔 문제가 없음.

다만 더 편하게 편집을 하려면 추가적인 명령키를 알아두는게 좋고, 인터넷에 검색하면 쉽게 찾을 수 있음.

반응형

'Major Review (학부) > Linux OS' 카테고리의 다른 글

03. 리눅스 활용  (1) 2023.10.25
02. 리눅스 이해(2)  (0) 2023.10.25
02. 리눅스 이해(1)  (0) 2023.10.25

댓글