1.1 리눅스의 기초 - 리눅스의 시작
- 리눅스는 핀란드 헬싱키대학교 학생이었던 리누스 베네딕트 토르발스가 처음 개발함.
- 스마트폰 열풍의 주역인 안드로이드 운영체제 또한 리눅스 기반.
- 리눅스가 이렇게 큰 발전을 하게 된 데에는 GNU 프로젝트가 큰 역할을 하기도 함.
1.2 리눅스의 발전 과정
- 리누스가 개발했던 것은 리눅스 커널이였음.
- 리눅스 커널 : 프로세스 관리, 파일 시스템 관리, 메모리 관리 등
- 응용 프로그램 : 문서 편집기, 컴파일러, 웹 서버 등
- 리눅스 커널에 응용 프로그램을 제공하는 것이 바로 GNU 프로젝트임. 그래서 정확하게 표현하자면 ‘GNU/리눅스’라고 해야함.
1.3 GNU 프로젝트
- GNU 프로젝트는 자유 소프트웨어 운동의 중심인물인 리처듣 스톨먼에 의해 리눅스보다 더 이른 시점에 시작되었음.
- 유닉스와 호환되는 자유 소프트웨어를 개발하는 프로젝트인 GNU
- GNU는 소프트웨어 소유와 독점에 대한 반발에서 시작한 것으로 모든 소프트웨어를 자유롭게 사용하도록 하는 데 목적이 있음. (원래 유닉스 기반으로 자유롭게 소프트웨어 사용했었는데 어느 순간부터 소프트웨어 소유와 독점이 생겨나면서 제한이 되었나봄. 그거 그렇게 안되게 만드려는 프로젝트인 거 같음)
[참고용] GNU 프로젝트로 배포한 프로그램의 라이선스로 사용하기 위해 GPL이라는 자유 소프트웨어 라이선스를 1989년에 제정했음. GPL은 다음과 같은 다섯 가지 의무를 저작권의 한 부분으로 강제하고 있음.
- 컴퓨터 프로그램을 어떠한 목적으로든 사용할 수 있음. 다만 법으로 제한하는 행위는 불가
- 컴퓨터 프로그램 실행 복사본은 언제나 소스 코드와 함께 판매하거나 소스 코드를 무료로 배포해야함
- 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경할 수 있음.
- 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 반드시 공개 배포해야함
- 변경된 컴퓨터 프로그램 역시 반드시 똑같은 라이선스를 취해야 함. (GPL 라이선스를 적용해야함)
[참고용2] GPL은 버전 1, 버전 2, 버전 3가 나와있음.
- GPLv1 : 1989년 1월 발표, 프로그램을 배포할 때는 이해하기 쉬운 소스 코드를 같이 배포해야함
- GPLv2 : 1991년 6월 발표, GPL 라이선스 프로그램 배포하는 것을 막는 조건이 있다면 (특허 때문에 돈을 지불해야해서 소스 코드 공개 못하고 실행 프로그램만 배포하려 하면) 실행 프로그램 조차 배포할 수 없게 했음.
- GPLv3 : 2007년 6월 발표, 소프트웨어 특허에 대한 대처, 다른 라이선스와의 호환성, 디지털 저작권 관리에 관한 내용이 포함되어 있음.
(현재는 소스 코드 배포에 대해 조금 너그러워 진 느낌이였음!)
1.4 리눅스와 유닉스
- 리눅스는 유닉스 계열의 운영체제임.
( 걍 유닉스가 리눅스 부모다 요런 느낌으로 받아들이면 될 듯! ㅋㅋㅋ)
1.5 리눅스 배포판
- 리눅스 커널에 GNU 프로젝트의 여러 응용 프로그램을 적용하여 구성하는 것은 쉬운 작업이 아니었음. 이에 여러 회사와 커뮤니티의 일반 사용자들이 리눅스를 쉽게 사용할 수 있도록 리눅스 커널과 응용 프로그램으로 구성된 배포판을 제공하기 시작함.
- 마음만 먹는다면 누구든 리눅스 배포판을 만들 수 있음.
- 리눅스 배포판은 크게 레드햇 계열, 데비안 계열, 슬랙웨어 계열로 구분할 수 있음.
- 우분투는 데비안 계열, 페도라는 레드햇 계열임!
1.6 리눅스의 특징
1. 리눅스는 공개 소프트웨어이며 무료로 사용할 수 있음.
2. 유닉스와의 완벽한 호환성을 유지함.
- 리눅스가 유닉스와의 호환성을 염두에 두고 개발되었기 때문.
3. 서버용 운영체제로 많이 사용됨.
4. 편리한 GUI 환경을 제공함.
- 리눅스는 그놈(gnome)을 비롯한 다양한 그래픽 사용자 인터페이스 (GUI) 환경을 제공함
1.7 리눅스의 구조
- 리눅스는 커널, 셸, 응용 프로그램으로 구성되어 있음.
- 커널 : 리눅스의 핵심, 프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행.
- 셸 : 리눅스의 사용자 인터페이스로서 사용자와 커널 사이의 중간자 역할을 하는 프로그램, 셸은 사용자가 입력한 명령을 해석하여 커널에 넘겨줌. 그러면 커널이 명령의 수행 결과를 돌려주고 셸은 그거를 사용자가 이해할 수 있는 형태로 바꿔 출력해줌 (리눅스는 배시 셸이 디폴트)
- 응용 프로그램 : 각종 프로그래밍 개발 도구, 문서 편집 도구, 네트워크 관련 도구 등!
2.1 리눅스 실습 환경 구축 - 가상 머신
- 가상 머신은 PC에 설치되어 있는 운영체제(호스트 OS)에 가상의 머신(시스템)을 생성한 후 여기에 다른 운영체제(게스트 OS)를 설치할 수 있도록 해주는 응용 프로그램임.
(가상 머신이라는 응용 프로그램을 설치한 후 이 가상 머신에 새로운 운영체제를 설치하는 거!)
4.2 리눅스 명령 사용 - 프롬프트 기호와 홈 디렉터리
- 프롬프트는 사용자의 명령 입력을 기다리는 표시, 사용하는 셸에 따라 다르게 나타남.
- 배시 셸의 경우에는 기본적으로 $로 표시되고, 시스템 관리자의 경우 #로 표시됨.
- [user1@localhost ~] $ 여기서 user1은 사용자 이름, localhost는 호스트 이름으로 서버 자체를 의미함, ~는 user1 사용자의 홈 디렉터리를 나타냄.
4.3 명령 행 편집 방법
- 문자 지우기 : backspace나 delete 키 (원래 지우듯이 지우면 됨)
- 단어 지우기 : ctrl + w
- 행 지우기 : ctrl + u
4.4 명령 구조
- 형식 : 명령 [옵션] [인자]
- 명령 : date, man, ls, cp, cd 등등! 요런 느낌
- 옵션 : 옵션을 사용하여 명령의 세부 기능을 선택할 수 있음. -나 --로 시작하며 영문 소문자나 대문자로 구성됨! 명령에 맞춰 사용하면 됩니다요~
- 인자 : 인자는 명령으로 전달되는 값이며 주로 파일명이나 디렉터리명이 사용됨!
4.5 명령 사용법
- ls -a /home => home의 모든 정보를 출력해달라는 뜻임.
4.6 기초 명령 사용법
- date 명령 : 날짜와 시간 출력
- 형식 : date (이거만 쓰면 됨)
- clear 명령 : 화면을 지운다.
- 형식 : clear
- man 명령 : 각종 명령의 사용법을 화면에 출력해줌.
- 형식 : man 명령 ex) man clear 하면 clear의 사용법 화면에 출력해주는 거.
- passwd 명령 : 사용자 계정의 비밀번호를 변경함.
- 형식 : passwd [인자] (이 명령의 인자는 로그인 ID임)
'학교 공부 > 리눅스' 카테고리의 다른 글
[리눅스] 문서 편집하기 2 (0) | 2022.09.16 |
---|---|
[리눅스] 문서 편집하기 1 (0) | 2022.09.16 |
[리눅스] 디렉터리와 파일 사용하기 3 (0) | 2022.09.16 |
[리눅스] 디렉터리와 파일 사용하기 2 (0) | 2022.09.16 |
[리눅스] 디렉터리와 파일 사용하기 1 (0) | 2022.09.16 |