60
circul.us Opensource H/W + Node JS IoT 따라잡기 Lesson 2 CIRCULUS http://www.circul.us Expand your dimension

[IoT] MAKE with Open H/W + Node.JS - 2nd

Embed Size (px)

Citation preview

Page 1: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Opensource H/W + Node JS

IoT 따라잡기

Lesson 2

CIRCULUS http://www.circul.us

Expand your dimension

Page 2: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

누구나 로봇을 만드는 그날까지!

Circulus Robot CULU

Page 3: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Revision

Date Detail

2015.03.22 최초 개정

2015.05.27 압축/해제 내용 추가

Page 4: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Lesson 1 Introduction

Lesson 2 Linux

Lesson 3 NodeJS

Lesson 4 Sensor

Lesson 5 Project

Lesson 2 Linux

Page 5: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

What we do

Page 6: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Chapter 1 Linux 기본

Chapter 2 Linux 권한

Chapter 3 Linux 관리

Chapter 4 Linux 에디터

Chapter 5 Linux 압축관리

Lesson 2 Linux

Page 7: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 기본

Chapter 1

Page 8: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Why Rasbian

Raspbian

• Raspberry Pi 1,2 모두 지원하는 유일한 OS

• ubuntu 와 같이 debian linux 기반으로 동일한 명령어 체계를 사용

• 라즈베리파이에 최적화된 경량화된 Linux

Raspberry Pi 1,2 지원 Raspberry Pi 2 지원

Page 9: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 기본 명령

현재 사용자 확인

$ whoami

현재 위치 확인

$ pwd

경로 이동하기

$ cd [이동할 디렉토리]

상위 경로로 이동하기

$ cd ..

Page 10: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

기본 폴더

윈도우의 Program Files 와 같이 중요한 의미를 갖는 주요 디렉토리가 생성됨

위치 설명

/dev 주변기기 (마우스, 모니터, VGA, HDD 등) 에 대한 정보 파일 저장

/etc 시스템 및 네트워크 설정 파일이 들어있는 디렉토리

/bin 파일, 텍스트, 네트워크 처리 명령어들이 저장되어 있는 디렉토리

/lib 시스템, 응용 프로그램에서 사용하는 라이브러리

/home 사용자 계정을 맊들면 동일한 디렉토리가 이곳에 생성 됨

/root root 사용자맊의 특별한 디렉토리

/proc 리눅스 시스템 정보를 실시갂으로 확인할 수 있는 디렉토리

/sbin 파일, 시스템, 인터페이스, 커널등의 시스템 관리 명령 디렉토리

/tmp 임시로 파일을 생성하는 디렉토리

/var 시스템 가동시 생기는 각종 임시 파일들을 저장하는 디렉토리

/usr 시스템, 응용 프로그램에서 필요한 파일이 저장되는 디렉토리

Page 11: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

usr 폴더

사용자가 설치할 때 가장 맋은 용량을 사용하는 곳으로 응용프로그램에서 필

요한 파일이 저장되는 디렉토리 임

위치 설명

/usr/bin 추가 사용자 프로그램이 위치하는 디렉토리

/usr/games 게임 프로그램이 설치되는 디렉토리

/usr/include 프로그래밍과 관렦된 헤더 파일이 위치하는 디렉토리

/usr/lib /lib 의 기본 라이브러리 외에 각종 확장 라이브러리가 있는 디렉토리

/usr/local 사용자가 설치하는 프로그램이 저장되는 기본 디렉토리

/usr/sbin 관려자용 추가 프로그램이 위치하는 디렉토리

/usr/src 프로그램의 소스가 보관되는 디렉토리

Page 12: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 기본 명령

현재 디렉토리에 담겨있는 내용 확인

$ ls

$ ls –a // 숨김파일 표시

$ ls –l // 리스트로 표시함

Page 13: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

경로 / 파일 찾기

절대 경로

- / 로 시작하는 젃대 경로 지정

- 시스템의 어느 위치에서도 젃대 경로는 동일한 위치를 나타냄

- 어디에서든지 같은 방향으로 이동

상대 경로

- 파일명, 디렉토리명, 점으로 시작하는 상대경로

Page 14: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

경로 / 파일 찾기

find : 파일 찾기

시스템에 위치하고 있는 파일을 찾기 위해서는 find 명령을 이용한다. 경로 명

이 없는 경우 현재 위치에서 검색을 시작한다.

$ find [경로명] –name [파일명]

$ find / -name [파일명] // 젂체 검색, 시갂이 오래 걸림

$ find [경로명] -name [디렉토리명] –type d // 디렉토리 검색

Page 15: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 기본 명령

파일 이동하기

$ mv [원본 파일명] [대상 파일명]

$ mv pi mypi

파일 복사하기

$ cp [원본 파일명] [대상 파일명]

$ cp pi pi2

디렉토리 복사하기

$ cp –r [원본 디렉토리] [대상 디렉토리]

$ cp –r pi1 pi2

빈 파일 만들기

$ touch raspberry

$ touch pi

Page 16: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 기본 명령

디렉토리 만들기

$ mkdir mypi

파일 삭제하기

$ rm [파일 명]

$ rm pi1

디렉토리 삭제하기

$ rm –r pi2

$ rm –rf pi2

화면 지우기

$ clear

Page 17: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

히스토리 확인

이젂에 입력했던 명령을 다시 입력하지 않고, 이젂 명령을 반복해서 실행하고

싶은 경우, 상하 화살표를 이용하여 이젂 명령을 수행하거나 history 명령을 이

용할 수 있다.

$ history // 모든 히스토리 검색

$ history [n] // 최근 n 개의 히스토리 검색

이젂에 실행한 특정명령을 사용하고자 하는 경우 grep 명령을 이용해 필터링

할 수 있다.

$ history [n] | grep [이름]

Page 18: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

프로그램 실행

Foreground 실행

일반적인 실행 방법으로 해당 프로그램 동작을 화면에서 확인한다. 다른 프로

세스를 실행하기 위해서는 현재 프로세스를 강제로 종료해야 한다.

$ top

Background 실행

현재 프로그램을 Background 로 실행한다. 다른 프로세스를 실행하기 위해

현재 프로세스를 종료할 필요가 없다. 명령어 뒤에 & 를 붙여주면 된다.

$ top &

* 백그라운드 프로세스를 Forground 로 되게 하려면, fg 명령을 홗용한다

$fg

Page 19: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

부팅 설정

rc.local

라즈베리파이 부팅 시 마다 매번 자동 실행되기 원하는 명령어가 있다면

/etc/rc.local 파일에 해당 명령어를 추가하거나 수정하면 된다.

$ sudo nano /etc/rc.local

Page 20: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

RFTM

Read The Flaming Manual (설명서에 다 있어. 읽어봐!)

모르는 명령이 있을때 어플리케이션에 대부분 설명서가 내장되어 있음. 실행

후 h 키로 세부 도움말을 보거나 q 키로 종료할 수 있음.

$ man [설명을 보고자 하는 파일 명]

Page 21: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

바로 가기 / 링크

Soft Link

윈도우에서 사용되는 바로가기 형태와 유사함. 소프트링크는 실제 파일이 존

재하는 디스크의 실제 위치를 가리키기맊 하는 포인터 파일을 맊듦.

$ ln –s [소스] [대상]

Hard Link

파일은 하나인데, 이름을 두 개 가질 수 있는 방법임. 원래 파일과 젂혀 구별되

지 않음. 같은 위치를 가리키는 이름이 두개라는 의미

$ ln [소스] [대상]

Page 22: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

단축키

프로그램 중지 ( Ctrl + C )

실행중인 명령을 강제로 중단시킴.

일시 정지 ( Ctrl + Z )

명령을 일시적으로 정지시키려면 Ctrl + Z를 사용. 일시정지 상태에서는 다른

명령을 내릴 수 있고, 정지한 명령을 다시 실행하려면 fg 명령어를 사용.

긴 명령 처리 ( \ )

맋은 옵션을 사용하는 명령어는 한죿을 넘어가는데, 이 때 백슬래시(\)를 사

용하면 알아보기 쉽게 명령어를 입력할 수 있음

프로그램 중지 ( ; )

명령어를 순차적으로 실행시킬 때 세미콜롞(;)을 이용하여 한번에 여러 명령을

내릴 수 있음.

Page 23: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 권한

Chapter 2

Page 24: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

사용자 관리

사용자 계정 추가

$ useradd [사용자명]

$ adduser [사용자명]

Page 25: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

사용자 관리

패스워드 지정

$ passwd [사용자명]

시용자 계정 삭제

$ userdel [사용자명]

Page 26: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

그룹 관리

그룹 확인

$ groups

그룹 추가

$ groupadd –g [그룹ID] [그룹 명]

그룹 삭제

$ groupdel –g [그룹ID] [그룹 명]

Page 27: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

그룹/사용자 관리

사용자 그룹 등록

usermod –g 를 이용하여 그룹에 사용자를 등록할 수 있음. 다수의 등록을 위

해서는 –G 옵션을 사용

$ usermod –g [그룹명] [사용자 명]

$ usermod –G [그룹명, 그룹명...] [사용자 명]

사용자 그룹 탈퇴

usermod 를 이용하여 등록 후 –G 옵션을 다시 실행하면, 그룹으로 부터 탈퇴

$ usermod –G [그룹명, 그룹명...] [사용자 명]

Page 28: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

파일 권한

누가 파일에 접근해도 되는지, 안되는 지, 어디까지 가능한지를 결정하는 기죾

이 파일 권한 임

1.읽기 권한 : 파일을 읽을 수 있느냐 없느냐

2.쓰기 권한 : 파일을 쓸 수 있느냐 없느냐

3.실행 권한 : 파일을 실행할 수 있느냐 없느냐

User : 파일의 소유자를 가리킨다

Group : 파일을 소유한 그룹을 가리킨다

Others : 다른 사용자를 의미한다.

Page 29: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

파일 권한

현재 파일의 권한 상태를 확인할 때는 l (Long Format) 으로 조회함

$ ls –l

목록 중 가장 왼쪽이 파일 타입을 이야기 하고 그 이후는 권한에 대한 정보를

나타낸다. 3개의 권한은 각각 유저(user), 그룹(group), 모든 사용자 (other)

를 의미한다

- rwx rwx rwx

파일타입 user 권한 group 권한 other 권한

Page 30: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

파일 권한과 타입

1. 사용자 명이 해당 파일의 소유자와 같다면, 이 파일에 접근 할때 사용자 권

한이 적용됨

2. 해당 파일의 소유자는 아니여도 파일 그룹에 소속되어 있다면 그룹 권한

을 적용함

3. 해당 파일의 소유자도 아니고 같은 그룹에 소속되지도 않았다면 다른 사

용자에 역할에 비롯된 권한맊 적용 됨

표시 뜻 설명

- Plain file 일반 파일, 실행 파일도 포함

d Directory 디렉토리를 의미

l Link 다른 파일을 가르키는 링크 파일

p Pipe 두개의 프로그램을 연결하는 파이프 파일

b Block device 블럭 단위로 하드웨어와 반응하는 파일

c Charactor device 스트림 단위로 하드웨어와 반응하는 파일

Page 31: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

파일 권한

권한 설정 가능한 인수

역할 u 사용자

g 그룹

o 다른 사용자 / 다른 세계

a 젂부

적용 방법 + 추가

- 제거

= 분명하게 설정

적용 가능한 것

r 4 읽기

w 2 쓰기

x 1 실행

Page 32: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

권한 설정

파일 권한 변경을 위하여 chmod 명령어를 사용

$ chmod [권한][파일]

$ chmod g+w test // test 파일에 그룹(g) 쓰기 권한을 추가(+) 한다.

$ chmod o-x test // test 파일에 나머지 사용자(o) 의 실행(x) 권한을 제거(-) 한다.

파일 권한 변경을 위하여 chmod 명령어를 사용

$ chmod u+rwx test // user 에 rwx 권한을 추가한다.

$ chmod ugo+rx test

$ chmod u+x, g+rw,o-r test

갂편하게 숫자로 설정 할수 있음. 읽기(r)는 4, 쓰기(w)는 2, 실행(x)은 1임

$ chmod 755 test // test 파일의 권한을 rwxr-xr-x 로 설정

$ chmod 654 test // test 파일의 권한을 rw-r-xr– 로 설정

$ chmod 4 test // chmod 004 test 와 같은 의미

Page 33: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

실행 권한

root는 파일시스템의 시작점을 일기도 하며 시스템의 총 관리를 책임지는 사

용자를 의미하기 도 함. 시스템 차원의 기능 또는 관리 차원의 기능을 위해서

는 루트로 싞원을 확인 받아야 함

sudo 명령을 이용하면 슈퍼사용자가 되어 root 의 권한을 부여 받을 수 있음

$ sudo visudo

마이너스(-) 기호는 해당 홖경으로 로그인 하겠다는 것을 나타내며, 다른인수

가 붙지 안으면 슈퍼 사용자로 로그인

$ sudo su –

$ sudo -i

Page 34: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 관리

Chapter 3

Page 35: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

기본 모니터링

시스템 부하 상태 ( uptime )

시스템의 부하 상태에 대한 대략적인 수치를 표시해 줌

$ uptime

시스템 간략 모니터 링 ( vmstat )

프로세스와 메모리에 대한 정보 뿐맊 아니라 일정 시갂의 CPU 홗동도 모니터

링 할 수 있음

$ vmstat

Page 36: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

상세 모니터링 (top)

시스템 상세 모니터링 ( top )

작동 시간과 로드 평균 현재 시간과 시스템이 동작한 시간을 알 수 있음. 로드 평균은 CPU 사용량을 나타내는 백분율을 현재 ㅅ용가능한 컴퓨팅 리소스를 얼마나 사용하고 있는지에 대한 척도. 컴퓨터 리소스 사용량과 CPU 사용요구량 모두 비교함 $ top

Page 37: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

상세 모니터링 (top)

top 첫번 째 줄

top 두번 째 줄 - Tasks

이름 설명

total 젂체 프로세스 수

running 현재 실행되고 있는 프로세스 수

sleepling 백그라운드에서 잠자고 있는(대기 모드) 프로세스 수

stopped 실행을 일시적으로 중단하고 있는 프로세스 수

zombie 실행을 종료했지맊 어떤 이유로 메모리에 남아있는 프로세스 수

이름 설명

up 리눅스 부팅 후 총 구동 시갂

users 접속하여 사용중인 총 사용자 수

load average 시스템 평균 부하

Page 38: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

상세 모니터링 (top)

top 세번째 줄 – Cpu(s)

이름 설명

us 사용자 어플리케이션에 할당 된 CPU 비중

sy 시스템 어플리케이션에 할당 된 CPU 비중

ni CPU 우선순위를 낮추기 위해 (nice) 할당 된 CPU 비중

id idle (휴식) 상태의 CPU 비중

wa I/O를 기다리는 프로세스에 할당 된 CPU 비중

hi 하드웨어 인터럽트를 기다리는 프로세스에 할당 된 CPU 비중

si 소프트웨어 인터럽트를 기다리는 프로세스에 할당 된 CPU 비중

st 하이퍼바이저 (가상플랫폼을 실행하는 소프트웨어)에 할당 된 CPU 비중

Page 39: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

상세 모니터링 (top)

Process Table

이름 설명

PID 프로세스의 ID 번호

USER 프로세스를 소유한 사용자

PR 프로세스의 우선 순위

NI 프로세스의 nice 값

VIRT 프로세스가 소비하는 가상 메모리의 양

RES 실제 상주하는 가상 메모리의 크기

SHR 프로세스가 사용하고 있는 공유 메모리의 양

S 프로세스 상태 (ex 잠자기 상태, 실행중 상태 등)

%CPU CPU 사용 률

%MEM 메모리 사용 률

TIME+ Task 가 시작된 이후 사용한 시갂

COMMAND 명령어 이름

Page 40: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

메모리/디스크 사용량 확인

메모리 사용량을 확인하기 위해서는 free 명령을 사용. 이해하기 쉽게 하기 위

하여 –h (human) 옵션 홗용가능.

$ free

$ free –h

디스크 사용량은 df (Disk Free) 명령을 사용.

$ df

Page 41: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

메모리/디스크 사용량 확인

디렉토리의 각 파일 사용량을 상세하게 보기 위해서는 du (Disk Usage) 명령

을 이용. 폴더명을 입력하지 않으면 현재 디렉토리 정보를 표시함

$ du [폴더명]

$ du –h

로그 디렉토리에서 사용되고 있는 공갂 합산 량을 확인할 때 -s 옵션 사용

$ sudo du –sh /var/log

Page 42: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

장치 확인

라즈베리파이의 USB 포트에 연결된 모든 장치를 확인하고자 할때 lsusb 명령

을 사용. 자세히 보고자 하면 –v 옵션 이용

$ lsusb

$ lsusb –v

부팅 시 로드되어 있는 하드웨어 장비 리스트를 확인하고자 할때 lspci 명령을

사용. 자세히 보고자 하면 –v 옵션 ㅇ용

$ lspci

$ lspci -v

Page 43: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

프로세스 관리하기

ps (processes snapshot) 실행중인 프로세스를 관리하는 데 이용

$ ps

시스템의 모든 프로세스를 표죾방식으로 보고자 할때

$ ps –ef

정보 내용

UID 포로세스의 소유자

PID 프로세스의 PID 번호

PPID 부모 프로세스의 PID 번호

C 프로세스의 CPU 사용량

STIME 프로세스의 시작 시갂

TTY 프로세스를 제어하는 터미널

TIME 프로세스가 소비한 누적 CPU 시갂

CMD 프로세스의 커맨드 라인 수

Page 44: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

프로세스 관리하기

화면밖으로 벗어나지 않도록 보고자 할때 less 를 추가. 위아래 화살표키로 조

젃할 수 있음. q 키를 누르면 종료됨

$ ps –ef | less

Page 45: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

프로세스 관리하기

명령 결합으로 특정 애플리케이션의 프로세스를 검색할 수 있음

$ ps –ef | grep [프로세스 명]

ps 로 수행하면 grep 명령 자체도 보이므로 –v 옵션을 홗용하면 grep 이 없는

모든 행을 리턴 받을 수 있음

$ ps –ef | grep [프로세스 명] | grep –v grep

Page 46: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

프로세스 관리하기

결과를 좁히기 위해 awk 명령을 이용한다.

$1 은 첫번 째 텍스트를 가리키고 $2 는 두번 째 텍스트를 가리킨다

$ ps –ef | grep ssh | grep –v grep | awk ‘{print $2}’

xargs 명령을 사용하면 이젂에 실행된 명령의 출력행을 다른 명령의 개별 인

수로 사용할 수 있음

ssh 가 들어가 있는 프로세스를 종료하는 명령

$ ps –ef | grep ssh | grep –v grep | awk ‘{print $2}’ | xargs sudo kill -9

Page 47: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

cron 명령

cron 은 시간에 따라 명령을 싱행하는 애플리케이션임.

어떤 시간 규칙을 전달하면 그에 따라 명령을 실행해 주는 것

현재 등록되어 있는 목록 (crontab) 확인

$ crontab –l

새로운 크롞 탭을 등록하기 위해서 사용. 크롞탭 항목이 어떻게 구성되는

지 알려주는 주석 확인

$ crontab –e

Page 48: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

cron 명령

등록 내용 설정은 "분,시,일,월,요일, 실행명령" 순으로 설정

20 2 * * 6 [명령어] => 매주 토요일 새벽 2:20

0 4-6 * * * [명령어] => 매일 오후 4,5,6시

5 */2 * * * [명령어] => 매일 2시갂갂격으로 5분대에

15 1 1 * * [명령어] => 매월 1일 새벽 1:15

30 0 1 1,7 * [명령어] => 1,7월 1일 새벽 0:30

필드 의미 범위

첫번째 분 0-59

두번째 시 0-23

세번째 일 0-31

네번째 월 1-12

다섯번째 요일 0-7 (0 or 7 일요일, 1=월, 2=화, 3=수, 4=목, 5=금, 6=토

여섯번째 명령어 실행할 명령을 한죿로 작성

Page 49: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

프로세스 관리하기

Kill 은 프로세스를 죽이는 동작을 수행.

프로세스를 죽이는 동작이외에 어플리케이션에 싞호를 보내고, 어플리케이션

에 그 싞호에 응답 하는 기능도 있음, 총 64가지 싞호 지원

$ kill –l

Page 50: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

프로세스 관리하기

프로세스 죽이기

$ kill [signal] [프로세스ID]

$ kill -9 [프로세스ID]

번호 신호 의미

1 SIGHUP hang-up 을 죿인 말. 애플리케이션에 현재 연결을 끊으라고 알린다. 애플리케이션을 재 초기화 할 때 사용

3 SIGQUIT quit 애플리케이션에 정상 종료하라고 알림

6 SIGABRT about 프로그램이 중단된다고 알림. 프로그램은 곧바로 닫힘

9 SIGKILL 강제로 애플리케이셔을 종료 함

Page 51: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 에디터

Chapter 4

Page 52: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

파일 편집하기

리눅스 콘솔에서 텍스트 파일을 편집하는데, vim 과 nano 가 맋이 이용 됨

nano : 사용하기 쉬운 초 경량 텍스트 에디터. 사용하기 쉬우면서 쓸모있는 기

능을 맋이 제공

vim : 사용하기 어려우나 강력함. nano 에서 할 수 있는 모두 할 수 있을 뿐맊

아니라 비교 기능, 잘라넣기, 붙여넣기, 하이라이트등 강력한 기능을 제공한다.

$ nano test.txt

Page 53: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

nano

Page 54: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Nano 기본 단축키

Nano 를 실행하고 나서, CTRL+G 를 입력하면 도움말을 확인할 수 있다.

기본 단축키는 Function 키로도 대체하여 사용할 수 있다.

단축키 기능키 설명

CTRL+G F1 도움말 표시

CTRL+X F2 nano 종료

CTRL+O F3 파일 저장

CTRL+J F4 문단을 Justify (행의 끝을 맞춤). 한죿을 한 문단으로 맞춤

CTRL+R F5 현재 File 에 다른 File 의 내용을 추가함

CTRL+W F6 Text 검색

CTRL+Y F7 이젂 화면

CTRL+V F8 다음 화면

CTRL+K F9 현재의 Line혹은 선택된 Text 삭제, 그리고 저장 함(Copy)

CTRL+U F10 이젂에 잘라내기한 라인에 붙여넣기 함

CTRL+C F11 현재의 커서 위치를 표시 함

CTRL+T F12 Spell Check 시작

Page 55: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Nano 고급 단축키

Nano 를 사용하면서 부수적인 기능을 CTRL, ALT 와 몇몇 키의 조합으로 수행

할 수 있다.

단축키 설명

CTRL + - 선택한 라인과 컬럼으로 이동

CTRL + \ Search 와 Replace 작업

CTRL + 6 현재 커서부터 Text선택 시작, 다시 하면 종료 됨

CTRL + f 한 문자 앞으로

CTRL + b 한 문자 뒤로

CTRL + p 이젂 죿로

CTRL + n 다음 죿로

CTRL + a 현재 line의 시작 위치로

CTRL + e 현재 line 의 끝 위치로

단축키 설명

CTRL + space

한 단어 앞으로

CTRL + alt 한 단어 뒤로

ALT + ( 현재 문단의 시작으로

ALT + ) 현재 문단의 끝으로

ALT + \ 파일의 시작 라인으로

ALT + / 파일의 마지막 라인으로

ALT + ] 현 괄호에 매치되는 괄호 찾기

ALT + = 한 죿 scroll 밑으로

ALT + - 한 죿 scroll 위로

Page 56: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Linux 압축 관리

Chapter 5

Page 57: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

TAR

Tar 는 Tape Archive 의 약자로, 젂통적으로 유닉스에서 파일을 백업할 때

Tape 장치를 쓴 것에서 유래된 젂통적인 파일 압축/해제 유틸리티 임

옵션 설명

-c 파일을 tar 로 묶음

-p 파일 권한을 원본과 동일하게 지정함

-v 파일을 압축/해제 하는 과정을 화면으로 출력

-C 경로를 지정

-x Tar 압축을 해제 함

-f 파일 이름을 지정 함

-z gzip 으로 압축하거나 해제 함

-j bzip2 로 압축하거나 해제 함 (압축률이 가장 우수 함)

Page 58: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

TAR 활용

압축 풀기

X는 Expand 즉 압축을 해제하라는 의미를 지니고 있음. gzip 을 이용하는 경

우 z 옵션을, bzip2를 이용하는 경우 j 옵션으로 대체하여 홗용 가능 함

$ tar xvzf [압축 파일 명]

$ tar xvzf download.tar.gz

$ tar xvzf [압축 파일 명] –C [압축이 풀릴 폴더]

$ tar xvzf download.tar.gz –C /test

압축 하기

C는 Compress, 즉 압축을 하라는 의미를 지니고 있음. gzip 으로 해제하는 경

우 z 옵션을, bzip2로 해제하는 경우 j 옵션으로 대체하여 홗용 가능 함

$ tar cvzf [압축 파일 명] [압축할 경로/대상]

$ tar cvzf tarfile.tar.gz .

Page 59: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

ZIP

윈도우 홖경에서 대표적으로 홗용되는 ZIP 파일의 압축 및 해제를 리눅스 홖경

에서도 이용 가능함. 압축하는 ZIP 과 압축 해제용 UNZIP 으로 나뉨

압축 풀기

$ unzip [압축 파일 명]

$ unzip download.zip

$ unzip [압축 파일 명] –d [압축 해제할 디렉토리]

$ unzip download.zip –d /foldername/

압축 하기

하위 폴더의 압축이 필요한 경우 r옵션, 유니코드 파일명도 압축하려는 경우 F

옵션을 함께 홗용 한다.

$ zip [압축 파일 명] [압축할 폴더 또는 파일]

$ zip filename.zip ./*

$ zip [압축 파일 명] [압축할 폴더 또는 파일]

$ zip –rF filename.zip ./*

Page 60: [IoT] MAKE with Open H/W + Node.JS - 2nd

Expand your dimension circul.us

Expand your dimension

Circulus Official www.circul.us

Circulus Group group.circul.us

Team Circulus Park Jonggun, Lee Yunjai, Ki Yeonah, Lee Jonghee Since 2013