https://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.png
GNU 정신에 가장 충실한 배포판으로 GNU의 공식적인 후원을 받고 있는 유일한 배포판 일반 사용자를 대상으로 하기 때문에 사용자 친화적인 배포판이 많다.
세계적으로 가장 인기 많은 배포판으로 RPM(REDHAT PACKAGING MANAGER)이라는 패키지 매니저를 통해 패키지의 설치, 삭제 및 업데이트를 편리하게 지원한다.
SaaS(Software as a Serviece)
SaaS는 가장 사용자 단에 친밀한 서비스이며 네트워크를 통해 애플리케이션 기능을 이용할 수 있는 서비스이다. 드롭박스, 구글 클라우드 등의 서비스가 여기에 속한다.
PaaS(Platform as a Service)
PaaS는 빠르게 어플리케이션을 개발하고 서비스할 수 있도록 고안된 것이다. 예를 들어 서버에는 이미 Node와 같은 런타임이 깔려있고 우리는 javascript 파일 빌드만 하면 된다.
IaaS(infrastructure as a Service)
IaaS는 인프라를 제공하는 클라우드 서비스이다. 기업에서 특히 많이 쓰인다. AWS의 EC2가 여기에 속한다.
실습을 위해서 설치가 필요없는 클라우드 환경을 이용하였다. 구름IDE라는 클라우드 서비스를 이용하여, Linux를 실습하였다.
실습환경)
1. 컨테이너를 하나 만든다. 컨테이너를 쉽게 생각해서 하나의 컴퓨터라고 생각하면 된다. 이름에는 대문자와 띄어쓰기가 포함되지 않도록 한다. 언어는 가장 기본적인 python 언어를 선택하여 만들었다.
상단 메뉴 바에서 창 > 새 터미널 창 을 눌러서 터미널 창을 킨다.
다음과 같은 터미널 창에서 실습을 진행한다.
mkdir 폴더이름
: 디렉토리 만들기, make directory 의 약자이다.mkdir -p one/two/three
→ 한 번에 여러 폴더 만들 수 있음. one> two> threermdir 폴더이름
: 디렉토리 지우기, remove directory의 약자이다. 단, 비어져있지 않은 디렉토리는 삭제 불가.rm -r 폴더이름
: 비어있지 않은 디렉터리도 삭제 됨. clear
: shell창이 깨끗해 진다. ls
: 해당 디렉토리 내에 있는 디렉토리 및 파일을 출력한다. list의 약자ls -a
: 숨겨진 파일이나 디렉토리도 출력한다.ls -l
: 파일 권한, 크기 등의 데이터를 출력한다. ls -al
: ls -a 명령어와 ls -l 명령어를 동시에 사용한 효과. 숨긴파일까지 모두 조회하여 파일 권한, 크기 등 모든 데이터를 출력한다.ll
: ls -al
과 같은 의미cd 경로
: 경로 변경, change directory의 약자.cd /
: 최상위 폴더, cd ..
: 상위 폴더, cd ~
: root폴더touch 파일이름
: 파일 만들기shift + v
: 선택/찾을문자열
/찾을문자열 +소문자n
: 다음 문자열로 이동/찾을문자열 +대문자N
: 이전 문자열로 이동u
: 실행취소more 파일이름
: enter로 한줄씩 넘어가기, z/space로 한 페이지씩 넘어가기, b는 이전 페이지echo 문자열
: 문자열 출력echo 문자열 > test.txt
: 출력 결과를 파일에 저장mv abc.txt def.txt
: abc.txt를 def.txt로 이름을 바꾸어 저장. (abc.txt는 사라짐)mv abc.txt xyz/def.txt
: abc.txt를 def.txt로 이름을 바꾸어 xyz 디렉토리에 저장.cp abc.txt def.txt
: abc.txt 파일을 def.txt로 이름을 바꾸어 복사.cp abc.txt xyz/def.txt
: abc.txt 파일을 xyz 디렉토리 안에 def.txt라는 이름으로 복사.vi
: 기본 editorvi 파일명
: 해당 파일 editing 가능. (해당 파일명의 파일이 없는 경우 새로운 파일 생성됨);
: 명령어를 여러개 연결하여 입력할 수 있음. 앞의 명령어가 실패해도 다음 명령어 실행mkdir four;cd four
: four라는 디렉토리를 만들고, 거기로 바로 이동.touch test2.txt;touch test3.txt
test2.txt와 test3.txt를 동시에 만듦&&
: 앞의 명령어가 성공했을 때 다음 명령어 실행&
: 앞의 명령어를 백그라운드로 돌리고 동시에 뒤의 명령어를 싱행 wget + 이미지주소
: 이미지를 받아올 수 있음sudo
: super user do를 뜻함. apt-get
: 우분투의 앱스토어 같은 곳git clone 깃헙주소
: 해당 git 정보가 불러와짐.unzip a.zip
: a.zip 알집을 푸는 명령어zip -r cho.zip ./a
: a폴더에 있는 모든 걸 cho.zip이라는 이름으로 알집을 만듦.-r
: Recursive (재귀). 하위 폴더가 있으면 하위 폴더도 검색. 하위폴더들을 깊이있게 끝까지 모두 둘러보며 폴더와 파일에 대해 명령어를 실행함. pwd
: 현재 경로 출력ctrl +c
: 명령어 중단alias
: 별칭 지정unalias
: alias 해제unalias ls
nslookup
: 도메인 명령으로 IP조회, 기본 설치가 안되어 있어서 apt-get update 후 apt-get install dnsutils
로 설치해야 함ping
: 해당 사이트에 접속이 되는지 확인, sudo apt-get install iputils-ping
chmod 700 test.py
: change mode, 파일의 종류/소유자/그룹 사용자/ 기타 사용자, rwx: 읽기(4)쓰기(2)실행(1)chmod 754 test.py
.파일 내에서,
ESC a, i, o
편집모드 - 명령모드 - 입력모드
: ESC
i
: 커서의 앞의 위치에서 입력모드a
: 커서의 뒤의 위치에서 입력모드o
: 커서의 한줄 밑의 위치에서 입력모드shift + i
: 해당 줄의 가장 앞에서 입력모드shift + a
: 해당 줄의 가장 뒤에서 입력모드apt-get 업데이트
sudo apt-get update
nginx 설치
sudo apt-get install nginx
git 복제
git clone https://github.com/paullabkorea/10000hour.git
경로 변경
vi /etc/nginx/sites-available/default
nginx의 기본 경로를, 배포하려는 디렉토리의 경로로 수정한다.
root /var/www/html; 를 root /workspace/폴더이름/10000hour; 로 수정한다.
esc /wq!
로 나온다
sudo service nginx start
프로젝트 > 실행URL과 PORT > 바로가기
alias ls='ls -a'
unalias ls
방향키 위
tab키
현재 폴더에 다음과 같이 폴더와 파일을 만들고 tree 명령어를 이용해 이를 아래와 같이 출력하세요.
a. tree는 기본 설치가 안되어 있습니다. 인터넷을 통해 tree설치 명령어를 알아내세요.
sudo apt-get install tree
b. 폴더 트리
.
├── README.md
├── a
│ ├── one.txt
│ └── two.txt
└── b
├── c
│ └── four.txt
└── three.txt
tree
현재 폴더 기준으로 확장자가 .js 파일을 모두 출력하세요.
find ./ -name '*.js'
find ./ -name '*.js' > result.txt
pwd
cd a
mv one.txt change.txt
mv change.txt ../b/change.txt
or
mv change.txt ../b
(확장자나 파일명이 같은 경우 적어주지 않아도 옮겨짐)