728x90

3장. 리눅스 기본 사용법

 

*aws 접속하기

Labs -> Creating and Working with an EC2 Instance in AWS

 

  1. VPC(virtual private cloud) -> 가상 네트워크 생성

  2. EC2 Instance 만들기

 

public key로 입력

사용자 이름 : ubuntu

사용자 키 이름 : Lab

 

chmod 400 /Users/mhee4/Lab.pem(권한주기 - 읽기 권한만 남기기)

ssh -i /Users/mhee4/Lab.pem ubuntu@54.242.154.72

 

(이렇게 접근해도 됨)

cd mhee4/

ssh -i .\Lab.pem ubuntu@54.242.154.72

 

http://blog.freezner.com/archives/1249

 

[OS X] 맥 기본 터미널로 AWS EC2 터미널 접속하는 방법

맥 환경에서의 첫 포스팅입니다. (드디어 맥북을 장만했습니다.) 덕분에 앞으로 OS X 에 관련한 포스팅도 하게 될 듯합니다. OS X에서 EC2를 접속하기 위한 준비물은 이렇습니다. 터미널 프로그램 (

blog.freezner.com

https://www.overtop.co.kr/363

 

Mac에서 SSH로 EC2 인스턴스 접속하기

Mac OS 나 리눅스에서는 아래와 같이 해주면 된다. #.1 KeyPairs 를 만들어 보자 EC2 Service > Key Pair 메뉴에서 생성하자. 키페어이름을 입력하고 [Create]를 클릭하면 즉시 다운로드가 된다. 처음에만 당황

www.overtop.co.kr

 

 

<우분투 command>

$sudo apt-get install -y apache2(웹서버 설치)

$sudo service apache2 start

$sudo service apache2 status

 

$sudo apt-get install net-tools

$netstat -ntlp

 

-> 발급받은 IPv4로 잘 들어가지나 확인하기

 

ubuntu@54.242.154.72

ec2-54-242-154-72.compute-1.amazonaws.com

 

$whoami(내가 누구니)

$hostname

$cd \

$ cd /home(로그인 했을 때 자신의 디렉토리 정보)

$pwd

 

 

http://54.242.154.72/ 잘 가동되나 확인

ec2-54-242-154-72.compute-1.amazonaws.com

 

 

Playground - linux server

 

https://ddasi-live.tistory.com/55

 

MAC SSH 터널링

안녕하세요. 따시 입니다. MAC 에서 터너링하는 방법을 소개하려합니다. 기존에 윈도우 OS 를 사용했을 때에는 터널링을 쉽게 하였습니다. 윈도우에서는 xshell 프로그램을 사용하여 ssh를 사용하였

ddasi-live.tistory.com

맥에서 xshell 프로그램 대신 터널링

https://m.blog.naver.com/PostView.nhn?blogId=ysulshin&logNo=220928451484&proxyReferer=https:%2F%2Fwww.google.com%2F

 

MAC ssh 터널링

window에서는 putty를 썼는데, mac은 자체적으로 ssh가 되서그런지 많이쓰는 툴을 딱히 찾지못해 그냥 터미...

blog.naver.com

 

 

xshell 실행 ->

session name : acloud-guru

public IPv4 : 54.167.223.78

22번

 

ssh cloud_user@54.85.69.117

 

 

$touch test.txt

$ls -l text.txt

-rw-rw-r-- 1 cloud_user cloud_user 0 Feb  4 01:28 test.txt

 

$chmod 400 test.txt(읽기 전용으로 바뀜) ->소유자만 읽기권한만 주기

$ls -l test.txt

-r-------- 1 cloud_user cloud_user 0 Feb  4 01:28 test.txt

 

$cd/etc

$vi /etc/hosts(/로 시작하는 것이 절대경로)

 

:q! -> 강제종료

 

$vi var/log/syslog(권한 거부)

$ls -l /var/log/syslog

-rw-r----- 1 syslog adm 7547 Feb  4 01:45 /var/log/syslog

-:파일 | Hard Link연결개수 | 사용자 | 소유자그룹 | 사이즈 | 생성일 or 수정일 | 파일명

 

cloud-user -> admin이 아님 -> permission denied

root권한의 계정이 필요 -> sudo command 사용

 

**권한설정

소유자 | 소유그룹 | 기타그룹

  rwx        rwx          rwx

  _ _ _         _ _ _          _ _ _

읽,쓰,실   읽,쓰,실   읽,쓰,실

기,기,행.  기,기,행   기,기,행

2^2, 2^1, 2^0

4,2,1

001 => 1

010 => 2

100 => 4

111 => 7

쓰기 : 수정, 삭제

 

$sudo vi /var/log/syslog

:set nu(줄 번호 표시하기)

:set nonu(줄 번호 없애기)

 

 

명령모드 -> 입력모드

i (현재위치 입력)

a (다음위치 입력)

o (다음행에 입력)

h,j,k,l (커서 이동)

w (단어 이동)

cw (단어 변환)

x (1글자 삭제)

dd (1행 삭제)

/ (검색)

 

 

:w (저장)

:wq! (저장 & 종료)

G (문서 제일 마지막)

gg (문서 제일 처음)

:라인넘버 (해당 라인으로 이동)

:sh (쉘 명령어 사용, EXIT로 복귀)

:set nu

:set nonu

 

입력모드 -> 명령모드

esc

:q

:q! (저장x, 강제종료)

 


 

4장. 리눅스 기본 명령어와 네트워크 명령어

 

$groups

cloud_user sudo

$passwd (패스워드 변경하는 명령어)

$vi /etc/passwd(등록된 사용자 확인 파일)

$cat /etc/passwd

$cat /etc/passwd | grep cloud_user(검색데이터 추출할 때 많이 사용됨)

$ls -l /etc/passwd

-rw-r--r-- 1 root root 2315 Feb 22  2019 /etc/passwd(파일임)

 

$history

$cat /etc/group(현재 생성되어 있는 그룹의 목록)

$cat /etc/group | grep cloud_user

 

 

<실습 5-1>사용자와 그룹관리하기(179~182p)

$sudo adduser hanbit1 -password 1234

$tail /etc/passwd

$tail /etc/group

$sudo userdel hanbit1

 

$ls -l /home

$ls -al /home/hanbit1

$sudo rm -rf /home/hanbit1

 

 

$chmod -> 사용 권한 변경

$chown -> 소유자 변경

 

<실습 5-2>파일 허가권과 소유권 실행하기(187~188p)

$ls -l sample

$chmod 755 sample

$chown ubuntu sample

$chgrp ubuntu sample

 

-- process service

$ps -ef | grep cloud_user

$kill -9 processname

 

    6. 리눅스 패키지 설치와 응급 복구

$netstat -ntpl

$apt list

$apt list apache\*

 

$sudo service apache2 stop

$sudo service apache2 status

$sudo apt-get purge apache2 apache2-utils apache2.2-bin apache2-common

$sudo apt-get install -y apache2

$sudo service apache2 start

$sudo service apache2 status

 

 

**python, nodejs설치 확인(node 10.xx 이후 버전 설치)

$python -V

$node --version

$sudo apt-get install nodejs

 

$curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -

$sudo apt-get install -y nodejs

$sudo apt-get update

$node --version

$npm --version

 

$javac --version

$python3 -V

 

**java 설치

$sudo apt-get update

$sudo apt-get install openjdk-8-jre

(jre-실행만, jdk-compile개발도구도 포함)

$sudo apt-get install openjdk-8-jdk

$java -version

$javac -version

 

**python 최근 버전으로 update

https://www.python.org/ftp/python/3.9.1/

Python-3.9.1.tgz

 

  1. curl을 사용해 다운

down 링크를 만들어줌

 

    2. wget을 사용해 다운(v)

ftp역할을 해줌

 

$cd Downloads

$sudo wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz

tar + gz => 하나의 파일로 묶어줌 + 압축파일 => 파일들로 하나의 단일 파일로 묶고 압축

 

$ls -l

total 24780

-rw-r--r-- 1 root root 25372998 Dec  7 22:42 Python-3.9.1.tgz

 

(압축해제)

$sudo tar xfz Python-3.9.1.tgz (f : 파일명 설정, v : 상세확인)

 

$ls -l

$cd Python-3.9.1

$ls

CODE_OF_CONDUCT.md  Mac              PCbuild     aclocal.m4    m4

Doc                 Makefile.pre.in  Parser      config.guess  netlify.toml

Grammar             Misc             Programs    config.sub    pyconfig.h.in

Include             Modules          Python      configure     setup.py

LICENSE             Objects          README.rst  configure.ac

Lib                 PC               Tools       install-sh

 

(build작업)

$sudo ./configure --enable-optimizations (build환경 체크)

$sudo make altinstall

 

$python -V

Python 2.7.12

$python3 -V

Python 3.5.2

$python3.9 -V

Python 3.9.1

 

 

**설치방법

ubuntu -> 패키지형태로 설치(apt-get install), 다운로드(tar로 단일 파일만들고 gzip으로 압축하는게 일반적)

*.tar, *.gz(압축파일), gunzip(압축파일 풀기)

*.tgz(*.tar + *.gz) => tar xfz Python-3.9.1.tgz

centOS(Redhat, Fedora) -> 패키지형(yum install) , 다운로드(

웹서버, Nodejs, MongoDB, ..., 다운로드 페이지

.exe -> 윈도우 실행

*.class, *.py => 압축 -> 해제(python +django +scrapy +restframework)

프로그램 묶음 + 코드파일 => 설치파일로 만들기

tar로 압축해제하면 원코드가 있다. =>설치파일 생성해야함

./configure -> (설치)make 파일

make(설치) -> 설치용 패키지 완성

 

(mysql을 다운받는다면)

https://dev.mysql.com/downloads/mysql/

(linux)dpkg -i lib mysql-community-server-core-dbgsym_8.0.23-1ubuntu16.04_amd64.deb

(source code) 설치 후 tar, configure, make파일을 직접 설정해줘야 함

 

 

 


도커/쿠버네티스를 활용한 컨테이너 개발 실전 입문

 

 

container 가상화는 리눅스 위에 설치하는게 원래는 맞음

도커의 container를 널리 활용할 수 있도록 windows, mac OS으로 설치할 수 있음

 

쿠버네티스는 도커를 보다 쉽게 사용할 수 있게 관리하는 것(operation tool )

 

Mac OS에 도커 데스크탑을 설치하여 실행

쿠버네티스 - 미니큐브

 

클라우드 서버에서 도커를 설치하면 영구적이지 않다.

 

  1. mac - docker 설치

  2. linux - docker 설치

 

$docker version

Server version 확인

$docker image ls (= docker images)

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE

docker/getting-started   latest              021a1b85e641        8 weeks ago         27.6MB

 

$docker (container) run -d -p 80:80 docker/getting-started

$docker container ls

CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                NAMES

9d822da28356        docker/getting-started   "/docker-entrypoint.…"   About an hour ago   Up About an hour    0.0.0.0:80->80/tcp   confident_swartz

 

$docker stop 9d822da28356(중단)

$docker rm 9d822da28356(삭제)

$docker container ls

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

 

$docker run -d -p 80:80 docker/getting-started(재실행)

$docker container ls

$docker container ls

CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                NAMES

ed164936c5cd        docker/getting-started   "/docker-entrypoint.…"   28 seconds ago      Up 27 seconds       0.0.0.0:80->80/tcp   naughty_yalow

 

$docker container ls -a(종료된 컨테이너까지 보여줌)

$docker stop 9d822da28356(중단)

$docker rm 9d822da28356(삭제)

$docker run -d -p 80:80 docker/getting-started(재실행)

 

$docker image ls

$docker image rm 021a1b85e641

 

 

 

 

 

 

 

 

 

 

728x90

+ Recent posts