Linux

YU YU·2021년 8월 25일
0

경일_Linux

목록 보기
1/4
post-thumbnail

👨학습 목표: Linux의 개념과 명령어를 알아보고 서버를 실행시켜보자.

1. OS란 무엇인가


1-1. OS란?

Operating System의 약자로, 운영체제를 뜻한다. 운영체제는 하드웨어를 관리하고 응용 소프트웨어를 실행시키는 '시스템 소프트웨어'이다.

1-2. OS의 종류

운영체제에는 여러가지가 있지만 우리가 아는 대표적인 OS로는 네가지를 들 수 있다.

window linux Unix Mac

이렇게 네가지를 들 수 있다.

window

window는 gui즉 graphic user interface를 가진 운영체제이다. 그래서 사용자들이 쓰기 편하게끔 디자인되어서 가정용 컴퓨터의 시대를 앞당긴 운영체제이다. 프로그램 파일을여는것도 명령어를 입력하는 것이 아닌 마우스의 클릭만으로 파일을 실행시킬 수 있게하였다. 컴퓨터에 대한 지식이 없이 사람들이 컴퓨터를 쉽게 이용할 수 잇도록 하는 것이다.
반면에 GUI엔진이 메모리가 잡아먹어서 컴퓨터의 성능이 저하된 채로 쓰게 되는 큰 단점이 있다.

Unix

벨 연구소에서 개발한 운영체제로 Linux, android, macOS 등 많은 운영체제들의 뿌리가 되었다.

MacOs

Apple에서 만든 유닉스 계열 운영체제이다. Unix

Linux

Linux 또한 Linux 커널을 사용하는 Unix 기반 운영체제이다. chorme 및 android가 Linux 커널을 이용한 프로그램이다. freeware이기에 무료로 사용할 수 있다. window보다 더 쾌적하게 이용할 수 있지만 CLI(Command Line Interface)이기에 컴퓨터에 대한 지식이 없는 일반인들이 이용하기에는 힘들다.

소프트웨어가 잘 작동되도록 하는 것.

2. 윈도우 환경에서의 Linux 설치


우리는 지금 리눅스 운영체제로 컴퓨터를 사용하려는 것이 아니라 목적이 Linux를 배우는 것이기에 윈도우 환경에서 Linux를 깔아보자.
이 블로그에 설치하는 방법이 잘 나온다.

shell script
정확한 시간에 키고 끄고를 사람이 하는 것이 아니라 컴퓨터로 하게 하는 것.
특정시간에 특정 작업을 할 수 있도록 하는 프로그램.

3. Linux 명령어


cd ~

기본 디렉토리로 이동시키는 명령어

보통 작업을 할 때 먼저 $ cd ~을 입력해서 기본 디렉토리로 이동해서 작업하는 것을 추천한다.

명령어 옵션 -
명령어에 -를 붙이는 경우가 많다. ls -al 처럼 말이다. 이러한 명령어의 옵션을 알아보려면 [명령어] --help를 입력하면 그 명령어에 해당하는 옵션들이 출력이 된다.

[명령어] -[옵션]

파이프라인 |

[명령어1] | [명령어2] 형태로 쓰는데,
명령어 1의 결과를 가지고 명령어 2를 실행시키는 것이다.
[명령어1] | [명령어2] | [명령어3] 이렇게 여러번 쓰는 경우도 가능하다.

grep

grep: 검색하는 기능을 한다.
$ ps -ef | grep node
위의 경우에는 프로세스들을 보여주고, 그 안에서 node라는 것이 있는지 검색을 한다.


cat

결과물을 바로 보여준다. 파일 내용 출력하는 명령어라고 보면 된다. 이것은 vi server.js라고 들어가서 내용물을 확인하고 다시 :q!라고 쓰고 vim 편집기를 빠져나오는 귀찮음을 덜어준다.

mv

파일의 이동과 이름을 바꾸는 것을 담당한다. 리눅스에는 이름 바꾸기 기능을하는 명령어가 존재하지 않아서 파일명을 변경하고 싶을 때는이동하는 이 명령어를 이용한다.

mv - 이동

$ mv [파일위치(자신 포함)]   [옮길 파일 위치(자신 포함)]

test.txt파일 옮기는 과정

mkdir sample을 통해 sample이라는 디렉토리(폴더)를 만든다. 그 후에 mv명령어를 통해 옮겨준다.

mv - 파일명 수정

mv명령어를 통해서 파일명을 수정해보자.
mv [현재 파일 위치(자신 포함)] [현재 파일 위치(바꾸고 싶은 파일명으로)]


이렇게하여 test.txt파일이 test2.txt파일으로 파일명이 변경되었다.

io redirection

용법:  > or <

결과물을 받아서 파일로 남기는 명령어이다. 보통 cat과 결합해서 많이 쓰는데 로그를 남길때 많이 쓰곤 한다. 새로운 파일을 만든다.

test.txt라는 파일이 새로 만들어졌다.

만일 에러가 난다면 다음과 같이 에러나는 결과를 받아 저장할 수 있다.

4. Linux로 서버를 운영해보자.


apt: 리눅스의 package manager


apt-get:설치하는 것임

htop
ps-ef내용을 보여주는 것임.

인터넷 접속

linux환경에서 인터넷 접속은 페이지를 보여줄 수 없을 뿐 가능은 하다. ^^;

curl http://google.com
curl [url]

인터넷 url을 설치할 때 $ curl -O [url]을 입력해주면 된다.
curl -O


다음과 같이 하여서 http://ingoos.co.kr/index.html 을 다운받았다. 그래서 $ ls를 치면 index.html이 새로 생성된 것을 알 수 있다.

4-1.내 컴퓨터를 하나의 웹서버로 만들기(환경설정)



$sudo apt-get update 명령어를 통해 최신으로 업데이트를 해준다.
패키지 인덱스 인덱스 정보를 업데이트 : apt-get은 인덱스를 가지고 있는데 이 인덱스는 /etc/apt/sources.list에 있습니다. 이곳에 저장된 저장소에서 사용할 패키지의 정보를 얻습니다.
출처:https://blog.outsider.ne.kr/346

$sudo apt-get install -y build-essential

둘 다 시간이 걸린다.
-y 옵션은 질문에 모두 yes를 선택하겠다는 의미이다.
build-essential: 소스코드 빌드 시 필요한 기본적인 패키지들을 다운로드 합니다.설치 후에는 gcc, g++, make, perl 등과 각종 라이브러리들이 설치됩니다.

이것을 실행하는 위치는 디렉토리에 상관이 없다.
그러나 보통 cd ~하는 것을 추천한다.

$ sudo apt-get install curl

Curl:Client url
서버와 통신할 수 있는 커맨드 툴이다. 보통 설치되어 있다.
이것으로 Restful API도 사용할 수 있다.

$ curl -sL http://deb.nodesource.com/setup_14.x | sudo -E bash --

node소스를 다운받는다. 여기서 -sL이라는 옵션이 붙는데 이에 대해 알아보자.

-s는 에러가 나면 에러를 보여주는 것이고
-L은 만약 링크가 다른 주소로 바뀌었을 때 그 다른 주소로 다시 가게하는 옵션이다.
$ sudo apt-get install -y node.js

위의 명령어는 node.js를 설치하는 명령어이다.

❓왜 다시 node.js를 설치하나요? 윈도우에 이미 설치되어 있어요!
😀이미 윈도우에 node.js가 깔렸는데도 다시 설치하는 이유는 window와 linux는 다른 운영체제이기에 재설치하는 것입니다. 윈도우 환경에서 돌아가는 linux는 결국 가상머신이라고 보면 됩니다. 하나의 컴퓨터를 다른 큼퓨터로 인식하게 하는 것입니다. 하나의 컴퓨터로 두대의 컴퓨터를 돌린다고 보면 되는 것입니다.

이를 실행시키고 설치가 끝났으면 node가 제대로 깔렸는지, npm이 제대로 깔렸는지 다음 명령어를 통해 확인한다.
$ node -v
$ npm -v

4-2. 내 컴퓨터를 하나의 웹서버로 만들기(서버 작업)

$ cd ~
$ mkdir server
$ cd server
$ npm init

$ cd ~명령어를 통해 루트 디렉토리로 들어가서 $mkdir server명령어를 통해 server폴더를 만든다. 그리고 server폴더 안에서 $ npm init을 통해 package.json파일을 만들어준다.

그리고 웹서버를 실행시키기 위해 express를 깔아준다.
$ npm install express


그리고 $ vi server.js를 입력하여 server.js파일을 만들고 다음과 같이 편집한다.

$ netstat -na

명령어 뒤에 -붙으면 옵션이다.

$ sudo apt-get install net-tools

ubuntu를 깔게되면 최소프로그램만 설치되어있어 네트워크툴인 net-tools가 설치되어있지 않기에 위와 같은 명령어를 입력하여 깔아준다.
그리고나서

node server.js &
를 통해 server.js를 백그라운드로 실행시킨다.

혹시 이를 종료하고 싶다면
$ ps -ef | grep node
와 같이 입력하여 PID값을 알아내어서
$ sudo kill -9 [PID]
와 같이 입력하면 된다.

4-3. 내 컴퓨터를 하나의 웹서버로 만들기(방화벽 풀기)

과정
1. 제어판으로 들어간다.
2. 'Windows Defender 방화벽'으로 들어간다.
3. 왼쪽 메뉴들에 있는 '고급 설정'을 클릭한다.
4. 왼쪽 메뉴의 인바운드 규칙을 클릭한다.
5. 오른쪽 '작업'메뉴의 '인바운드 규칙'에 속해있는 '새규칙'을 클릭한다.
6. '포트'를 선택하고 3000번을 입력하고 이름을 정해준다.

  1. 'Windows Defender 방화벽'으로 들어간다.
  2. 왼쪽 메뉴들에 있는 '고급 설정'을 클릭한다.






    그러면 다음과 같이 serverPort라는 이름의 인바운드 규칙이 생겼다.

    다음과 같이 작업을 한 후 cmd(윈도우상의 명령 프롬포트)를 실행시켜 ipconfig를 입력하면 다음과 같은 정보가 나온다. 여기서 IPv4에 있는 주소에 3000번 포트로 접속하면 접속이 된다. 이는 전체 인터넷상으로 되는 것이 아니라 같은 랜선이나 와이파이를 공유하는 기기에서 있으면 된다.
    IPv4주소에 3000번 포트로 접속하면 된다.

netstat -na

profile
코딩 재밌어요!

0개의 댓글