리눅스프로그래밍

우분투 리눅스

헬로월드! 2020. 3. 29. 14:34

1. 리눅스란?

  • 리눅스 커널을 기반으로 하는 안드로이드 운영체제
  • 유닉스와 완벽하게 호환
  • 공개 소프트웨어이며 무료로 사용할 수 있다.
  • 서버용 운영체제로 많이 사용된다.(PC 뿐만 아니라 서버 컴퓨터, 대형 컴퓨터 에서도 사용 가능)
  • 편리한 GUI(Graphical User Interface) 환경 제공 
  • 리누스 베네딕트 토르발스에 의해 개발 ( 1990 년대 출시)
  • 리눅스의 구조  

1) 커널: 리눅스의 핵심으로 프로세스 관리, 메모리 관리, 파일 시스템 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행함

2) : 리눅스의 사용자 인터페이스 사용자와 커널 사이의 중간자 역할을 담당하는 특별한 프로그램이다.

셸은 사용자가 입력한 명령을 해석하여 커널에 넘겨준다. 그러면 커널이 명령을 수행한 후 결과를 돌려주고

셸은 다시 사용자가 이해할 수 있는 형태로 바꿔 출력한다. 리눅스는 배시 셸 bash shell ,born again shell 을 기본으로 사용한다. 

3) 응용 프로그램: 리눅스는 각종 프로그래밍 개발 도구, 문서 편집 도구, 네트워크 관련 도구 등 매우 다양한 응용 프로그램을 제공한다. 

 

2. GNU 프로젝트란?

리누스가 개발한 것은 리눅스 커널이다. 운영체제에서 가장 중요한 핵심 부분이 커널이긴 하지만 커널만으로는 운영체제를 활용할 수 없다. 사용자와의 인터페이스를 제공하는 윈도 시스템, 컴파일러, 편집기 등 다양한 응용 프로그램을 함께 제공해야한다. 리눅스 커널에 이러한 응용 프로그램을 제공하는 것이 바로 GNU 프로젝트다.

 

자유 소프트웨어 운동의 중심인물 = 리처드 스톨먼 <GNU 선언문> http://www.gnu.org/gnu/manifesto.html

 

GNU 선언문 - GNU 프로젝트 - 자유 소프트웨어 재단

This translation may not reflect the changes made since 2004-01-17 in the English original. Please see the Translations README for information on maintaining translations of this a

www.gnu.org

GNU 는 유닉스와 호환되는 자유 소프트웨어를 개발하는 프로젝트,

GNU is Not Unix (GNU는 유닉스가 아니다) = 그누라고 읽음

GNU 프로젝트는 자체적으로 운영체제 (커널) 을 개발 중이었지만, 완성하지 못하고 있었는데 리눅스가 등장하여

리눅스 커널과 GNU 각종 응용 프로그램이 결합하여 완성된 형태의 운영체제로 탄생했다.

 

GPL (General Public License) : 자유 소프트웨어 라이선스 / 5가지 의무 

https://ko.wikipedia.org/wiki/GNU_일반_공중_사용_허가서

 

3. 리눅스 배포판?

 레드햇 계열 , 데비안 계열, 슬랙웨어 계열 

리눅스는 GPL 에 따르는 공개 소프트웨어이므로 누구나 내려받아 설치, 수정 , 다시 자유롭게 배포할 수 있어서 

모두가 자신만의 리눅스 배포판을 만들 수 있다.

http://futurist.se/gldt/

 

GNU/Linux Distribution Timeline

2012-01-102019-02-19 Discontinued distros: gnuLiNex, gOS Added 11 distros (total 410): Bodhi, Exherbo, FireFly, Pear OS, Kwort, MAX, mkLinux, Tails, Viperr, webOS, […]

futurist.se

리눅스의 배포판 계통도를 볼 수 있는 사이트

 

다양한 리눅스 배포판 가운데 데비안 계열의 우분투 리눅스의 우분투 17.10 을 기준으로 공부해보자!

우분투의 기본 철학: 전 세계 누구나 어렵지 않게 리눅스를 사용하자! 

 

4. 가상머신

리눅스 설치는 별도의 PC 는 필요 없고 그냥 사용하는 컴터에 가상 머신을 설치하고 그 가상 머신에 리눅스를 설치하면 끝이다! 물론 사용하고 있는 윈도우도 그대로 사용 가능 !! 

 

가상머신? PC 에 설치되어 있는 운영체제에 가상 머신을 생성한 후 여기에 다른 운영체제를 설치할 수 있도록 해주는 응용프로그램이다. 말그대로 가상의 PC 가 생긴다고 생각하면 됨. 가상머신이 여러개라면? 여러 개의 운영체제를 설치할 수 있다. 용량만 충분하다면~! 

 

가상 머신의 종류

가상머신 호스트 OS 게스트 OS
VMware 윈도 계열 운영체제, 대부분의 리눅스, 애플 맥  윈도 계열 운영체제, 대부분의 리눅스 배포판, 솔라리스, Mac Os
버추얼 PC 윈도 계열 운영체제 윈도 계열 운영체제, 일부 리눅스, 솔라리스
버추얼 박스 윈도 계열 운영체제, 대부분 리눅스, 애플 맥, 솔라리스 윈도 계열 운영체제, 대부분의 리눅스 배포판, 솔라리스,Mac OS, OpenBSD 

 

5. 리눅스 터미널 창에서 명령 사용 

터미널 창을 띄우거나 리눅스에 접속하면 프롬프트가 나타난다. 

* 프롬프트 : 사용자의 명령 입력을 기다리는 표시, 사용하는 셸에 따라 다르게 표시됨, 배시 셸의 경우 기본적으로 $ 로 표시되고 시스템 관리자의 경우 #로 표시됨. 프롬프트는 사용자가 다른 모양으로 바꿀 수도 있다! 

터미널 창이 나왔을 때 기본 디렉터리는 사용자의 홈 디렉터리에 위치함 

ex ) user@myubuntu:~$ 라고 제목이 표시됨 여기서 user 는 사용자 계정 , myubuntu 는 호스트 이름으로 우분투 시스템 자체를 의미, ~ 기호는 user 사용자의 홈 디렉터리를 나타낸다. 

사용자의 홈 디렉터리는 사용자 계정을 등록할 때 결정된다.

 

1) 명령 행 편집 방법 : 단어 지울때 ctrl + w , 행 지울 때 ctrl + u (해당 행의 모든 내용 삭제)

 

2) 명령의 구조: 

  • 형식: 명령 [옵션] [인자]
옵션은 주로 - 또는 -- 로 시작하며 영문 소문자나 대문자로 구성됨
인자는 명령으로 전달되는 값이며 주로 파일명이나 디렉터리명이 사용됨, 명령에 따라 있을 수도 없을 수도! 

3) 명령 사용법: 

  •  명령만 사용하는 경우
  •  명령 + 옵션
  •  명령 + 인자
  •  명령 + 옵션 + 인자

4) 기초 명령 사용법:

date 명령 : 날짜와 시간을 출력함

clear 명령 : 화면을 지움

man 명령 : 명령 사용법을 화면에 출력함

passwd 명령 : 사용자 계정의 비밀번호를 변경한다.

exit 명령 : 터미널 종료하기 

 

6. 리눅스 vs 유닉스

  • 리눅스의 이름에서도 알 수 있듯이 유닉스 계열의 운영체제
  • 리눅스는 각종 명령이나 시스템 콜 등에 대한 유닉스의 표준을 준수하여 호환성을 제공함
  • 유닉스는 1969 년 AT & T 의 벨연구소에서 개발, 처음에는 어셈블리어, 1971년) C언어로 재개발