[TIL] Server, Linux, Ubuntu, CLI

jay__ss·2021년 11월 23일
2
post-thumbnail

1. Ubuntu

실습을 위해 구름ide를 사용한다.

컨테이너를 생성할 수 있다.
이 때의 컨테이너는 '한 대의 컴퓨터'로 생각하면 된다.(총 5대까지 가능)

우선은 굉장히 성능이 좋은 컴퓨터를 5개로 나누어 가질 수 있다고 생각한다.

선택하는 지역은 서버가 있는 지역을 의미한다.(내가 사는 곳을 선택하는 의미는 아님)

구름ide는 빌려쓰는 개념이다.
내 컴퓨터에는 리눅스가 없기에, 리눅스가 있는 컴퓨터를 빌린다
정도로 이해한다.

2. CLI vs GUI

벌써부터 생소한 용어에 혼란스럽지만, 쉽게 이해하는 것을 최우선의 목적으로 한다.

쉽게 말해, 우리가 이제껏 써온것이 GUI이다. 그래픽 유저 인터페이스!
조금 더 풀어쓰자면, 사용자가 눈으로 보면서 직관적으로 쓸 수 있는 형태이다.
사용에 있어서 공부가 필요치 않고, 쉽게 쉽게 적응할 수 있다는 의미이다.

그에 반해 CLI는 Command Line Interface로, 명령어들이 줄글들로 주-욱 써내려진 형태를 말한다. (흔히 생각하는 해커의 화면)

그럼, 이렇게 보기 불편한 것을 왜 쓰는지 궁금해진다.
GUI는 누군가가 만들어놓은 완제품이다.(유저가 쓰기 편하도록)
누군가가 만들지 않은 기능은 쓸 수 없다는 의미이다.
즉, 커스텀의 영역에서는 한계가 있다.
무언가를 만들어내는 개발의 영역에서는 크리티컬하다. 라는 정도로만 알고있자 우선.

Raw한 개발 환경이라면(사실 raw하지 않아도 직면하게 된다고 한다)마주치게 될 CLI에 대해 '손으로 익혀보자.'


3. 명령어 실습

#폴더만들기
mkdir jayss
#폴더지우기 - 휴지통이 없으니 삭제에는 항상 유의하자
#안에 파일이 있다면 실행되지 않음
#rmdir -r jayss 하면 해결 됨
rmdir jayss
#print working directory -현재 폴더 경로 프린팅
pwd
#작성했던 명령어들 지우기
clear
#현재경로의 파일과 폴더 보여주기
ls
#change directory - 디렉토리 이동
cd jayss
#숨겨져있는 파일 폴더 까지 전부 보여주기
ls -al = ll
#test.txt 생성
touch test.txt
#vi는 에디터임. test.txt를 vi로 열겠다는 의미
vi test.txt
#그렇게 열게되면 명령모드로 열림(수정 불가능)
#아래의 입력키는 입력모드로 전환시켜줌. i만 알아도 일단 이상 없음
#i 커서가 깜빡이는 앞에 입력이 됨
#a 커서가 깜빡이는 뒤에(?)입력이 됨
#o 커서가 깜빡이는 곳 한줄 밑에 입력이 됨
i, a, o
#입력모드에서 명령모드로 전환이 됨
esc
#write quit 에디터를 저장하고 나간다는 의미(!는 강제성을 의미)
:wq
:wq!
#한 줄 삭제 - 명령모드에서!!
dd
#복사 - 명령모드에서!!(복사만 된 상태, 붙여넣기는 따로 해야함)
yy
#붙여넣기 - 명령모드에서!!
p
#
shift i / a
shift v -> y -> p
/hello

tab
#엄청긴 내용이 있을 때 사용.
#space-한장씩 넘김 enter-한줄씩넘김
more
#""안의 내용을 출력해줘
echo "hello world"
#""안의 내용을 hello.txt.로 보내줘
echo "hello world" > hello.txt

명령어 수업만 들을래도 한 달의 기간이 걸릴만큼 방대하다.
하지만 우리가 앞으로 다뤄야 될 아주 최소한의 정도만 알고 넘어가자.
(이것도 최소한을 다 기재한 것이 아니다.)


4. Service deploy with ubuntu

<시나리오>
깃헙에 완성된 서비스 레포지토리가 있다.
그 레포지토리 안에 있는 서비스를 가져와 배포한다.

4.1 sudo apt-get update

apt-get이란, 일종의 앱 스토어와 같은 개념이다.(이해를 위한 설명)
어딘가로부터 받아와야 할 때 쓴다.
그러한 앱 스토어를 업데이트 시키는 명령어다.

4.2 sudo apt-get install git

git을 설치하는 명령어다.
sudo는 Super User Do의 의미이다.

4.3 sudo apt-get install nginx

nginx를 설치하는 명령어다.

4.4 git clone 깃주소

'깃주소'에 있는 파일들을 불러오는 명령어다. 복붙의 의미!!

여기까지가, 서비스를 배포할 준비를 하는 단계이다.

4.5 vi /etc/nginx/sites-available/default

nginx가 기본값으로 바라보는 폴더가 있는데, 우리는 이 폴더를 깃에서 가져온 서비스 폴더로 바꿔야한다.

vi에디터를 이용해 바꾸는 명령어다.

들어가보면,
root /var/www/html; 라는 부분이 있을것이다.

우리는 이 곳을 찾아내어 경로를 바꾸어야 한다.

root /workspace/컨테이너이름/web; 으로 변경!!(띄어쓰기 주의하자)

이 때, 이 곳이 몇 번째 줄인지 안다면 :line-number + enter로 바로 이동가능하다!!!

4.6 sudo service nginx start

웹 서버를 가동시키는 명령어이다.

4.7 sudo service nginx stop

웹 서버를 중지시키는 명령어이다.

5. 실제 서비스 작동 확인

상단에 있는 프로젝트 -> 실행 URL과 포트로 들어간다.
등록된 URL을 클릭하여 잘 구동되는지 확인한다.
정상 작동한다면, 우리는 deploy에 성공한 것이다!!!!!!!


끝으로

레이아웃 잡기도 어정쩡한 와중에 본격적인 CS공부에 들어왔다.
'이런 느낌이구나'정도의 이해는 가능하지만, 그것을 넘어서는 완벽한 이해는 아직 어렵다. '웹 서비스'의 전체적인 흐름에 대한 공부도 재밌을 것 같다는 느낌이 든다.
CLI는 훈련이다. 손이 따라가야 한다.
VSC처럼 자동완성이 있는 것도 아니다.(물론 탭 키를 이용한 자동완성은 존재!)
완벽히 따라쳐야 하고, 틀리면 작동이 안된다!!

내가 지금 emmet을 활용하고 class를 부여하는 것처럼, 그냥 마구잡이로 해야한다!!

profile
😂그냥 직진하는 (예비)개발자

0개의 댓글