본문 바로가기
OS/Linux

리눅스(Linux) 공부 시작하기

by HJ0216 2023. 1. 14.

이 글은 양주종의 코딩스쿨 리눅스(Linux) 공부 시작하기를 수강하며 정리한 글입니다.

 

리눅스 마스코트, 턱스(Tux)

 

1강 리눅스(Linux)

 

인터넷에서 웹 페이지를 보려고 할 때, Web Server Computer로부터 웹 페이지 자료를 얻어음

Web Server Computer가 작동하기 위해서는 운영체제(OS)가 설치되어있어야 하며, 이러한 OS로는 Linux, Unix, Windows Server 등이 있음

OS가 제공하는 기능은 Web 서비스 외에도 Mail, Chatting, FTP(파일 송수신) 서비스 등이 있음

Server Computer를 작동시키는 OS를 Network Operating System(네트워크 운영 체제)라고 함

서비스 요청자(Client)의 OS: Client Operating System

서비스 제공자(Server)의 OS: Network Operating System

 

 

 


2강 리눅스 공부 순서

 

1. 일반 사용자로서 기초 사용법: File, Editor, 기초 명령어, Shell 공부

2. 관리자(root)로서 Linux 설치, Process, Package, 일반 사용자 관리 공부

3. 각종 서비스: Web, Mail, DNS*, FTP** 공부

 * DNS: Domain Name System, 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP 주소로 해석해주는 TCP/IP 네트워크 서비스

 ** FTP: File Transfer Protocol, 인터넷 상에서 파일을 전달하는데 사용되는 방법이나 프로그램

4. 보안: Log* 공부

 * Log: 기록, 컴퓨터의 처리 내용이나 이용 상황을 시간의 흐름에 따라 기록한 것

5. 프로그래밍: gcc, make, shell 등 공부

 

 

 


3강 리눅스 역사

 

OS: Unix 개발 -> Unix를 지원하기 위해 C언어 개발 -> C언어 기반으로 Unix update

학습용 Unix, Minix를 기반으로 Kernel*이 개발됨

 * Kernel: Unix에서 기본 기능을 실행하는 부분을 가리키는 용어로 응용 프로그램이나 주변 장치가 올바르게 작동하도록 통제하고 디스크나 메모리 등의 자원을 배분하거나 응용 프로그램의 실행 등을 처리함

GNU project(프리 소프트웨어의 작성과 보급을 위한 프로젝트) + Minix 기반 Kernel -> Linux 개발

 

 * Linux로 알아보는 Open Program과 Open Source 차이

Open program: 무료로 다운로드 받아서 사용할 수 있지만 프로그램에 대한 Source Code는 볼 수 없음

Open Source: 프로그램에 대한 Source Code를 볼 수 있음

-> Open Source를 기반으로 새로운 프로그램을 만들어서 상업용으로 판매 시, Open Source 사용에 대한 허가를 요하는 조항을 붙일 수 있으며, Linux도 동일한 방식으로 운영됨

 

 

 


4강 리눅스 배포판

 

Redhat -> Fedora(Enterprise 용) -> CentOS(For Free)

Debian -> Ubuntu

 

 

 


5강 일반사용자/관리자

명령 프롬프트 창: 일반사용자($), 관리자(#)

 

 

 


6강 리눅스 명령어 형식

 

명령어가 많으므로 도움말을 참조하여 Linux 사용

man 명령어: 도움말

명령어 --help: 도움말

info 명령어: 도움말

q: 도움말에서 빠져 나오기

 

명령어 예: ls [option*] [directory or file] ([]: 생략 가능)

* option은 대부분 중간에 위치하지만, 종류에 따라 끝에 위치할 수도 있음

ls : 'List'의 줄임말로 파일과 디렉토리 목록을 출력, ls.과 동일

ls . : .은 현재 Directory(Folder) 목록 보기

ls .. : ..은 상위 Directory 목록 보기 

ls /: /는 최상위 Directory 목록 보기

 

명령어 예: cp [option] [source] [target]

 

 

 


7강 리눅스 파일 다루기

 

1. 생성

 - mkdir: Directory 생성

 - vi: vi + enter: 이름없는 파일 생성

 - cat: cat > aa "내용 입력" + ^D: aa 파일이 없을 경우, aa 파일을 생성하고 입력된 내용 저장(aa 파일이 있을 경우, 덮어씌워짐)

 - touch: touch a:  a 파일이 없을 경우, 사이즈가 0인 빈 a 파일 생성(a 파일이 있을 경우, a 파일의 시간을 현재 시간으로 변경)

 

2. 복사

 - cp: cp a ../: a를 상위 Directory에 복사

 

3. 삭제

 - rm: rm -r: Directory 삭제(rmdir과 동일한 기능으로 많이 사용됨)

 

4. 이동

 - mv: mv [복사할 파일/디렉토리 이름] [이동 위치]

 

5. 이름 바꾸기

- mv: mv [복사할 파일/디렉토리 이름] [바꿀 이름]

- rename* [변경 전 파일명] [변경 후 파일명] [대상 파일]

* rename: 잘 사용되지 않으며 rename 대신 move 사용

 

Linux 명령어 참조 블로그: [Linux] 기본 명령어

 

 

 


8강 리눅스 파일 분류

 

파일

 1.일반 파일

  1.1. txt 파일

  1.2. binary 파일: 컴퓨터가 이해할 수 있는 파일, 컴파일* 과정을 거친 파일

  (컴파일: Compile, 인간이 구분하기 쉬운 언어인 고급 언어로 작성된 프로그램을 기계어로 변역하는 것)

 2. 특수 파일

  2.1. Directory 파일 (⚠️ 디렉토리는 파일의 하위 개념)

  2.2. 장치 파일

   2.2.1. block device 파일: HDD, CD-ROM 등 블록이나 섹터 단위로 데이터를 전송하는 디바이스

   2.2.2. character divice 파일: 키보드, 마우스 등 입출력 장치로 바이트 단위로 데이터를 전송하는 디바이스

   2.2.3. link 파일

   2.2.3.1. hard link: reference variable

   2.2.3.2. soft link(sybolic link): pointer variable, 바로가기 아이콘

 

Link FIle의 예:

cp a b

(a) (b): cp 명령어를 통해 공간 b가 새롭게 생성

ln a c

(a, c): ln 명령어를 통해 공간 a에 c라는 이름을 추가적으로 부여(공간 생성 X), Hard Link

ln -s(s 옵션 추가) a d

(d) -> (a): 공간 d가 공간 a를 가르킴(공간 a의 위치 정보를 갖고 있음), Soft Link