728x90

라즈베리파이 명령어

 

sudo su - // su 계정으로 변경

 

Ctrl + Alt + "F1~F6"     // 가상콘솔 (마우스 안됨)

Ctrl + Alt + F7          // X-Window 


 

 

원격 네트워크를 위한 설정

wlan0 선택 후, Automatically configure empty options 항목은 체크해제

위의 그림과 같이 설정한다.

 

 

ssh 설정


ssh : 원격으로 다른 컴퓨터에 접속해서 커맨드 라인 명령을 보내서 작업하는걸 도와주는 프로토콜이다. 

즉, Telnet과 같은 기능을 보안성을 높여서 하는 프로토콜

 

sudo halt // sudo 계정으로 시스템 종료 명령어

 

 

네트워크 설정이 끝났으면, 이제 윈도우에서 putty를 통한 원격 접속이 가능해진다.

 

계정명 pi / 비밀번호 입력후 엔터

접속되면 로그인 시각과 계정명을 볼 수 있다.



 

 

편의를 위한 설정

 

계정의 홈 디렉토리 내 .bashrc 파일의

#주석이 붙은 부분을 아래와 같이 수정 및 삽입



 

.vimrc 파일 수정후 위의 명령어들이 visual editor에 계속 적용된다.




비쥬얼 에디터로 main.c 소스 작성


:q!  // vi 강제종료

:wq // 저장후 종료 

 


프리웨어 컴파일러 gcc


(GNU is Not Unix) 프로젝트의 프리웨어(freeware) 컴파일러. 

본래 C 언어용 컴파일러로 시작하였으므로 GNU C Compiler의 약자였으나 후에 여러 언어를 지원하면서 GNU Compiler Collection으로 개명했다.


cc --version이라고 명령어를 쳐도 버전을 확인할 수 있다. //  C Compiler 버전




gcc main main.c 는 main.c를 main이란 파일로 컴파일하라는 명령어이다.


--save-temps -  옵션

// 컴파일 과정에서 생성되는 중간 파일인 전처리 파일(test.i), 과 어셈블리 파일(test.s)을 지우지 않고 현재 디렉토리에 저장된다.


-o 옵션

// 컴파일 과정에서 생성되는 Binary파일(*.o)이 추출된다.









 

TightVNC Viewer로 원격접속하기

1. 최신 패키지 확인
apt-get update

 

2. VNC 서버(tightvncserver) 설치

apt-get install tightvncserver

 

3. VNC 서버 실행(암호 두번 입력, 짧으면 튕김)
vncserver

 

4. 서버 실행 확인(포트 5901, 6001)
netstat -tulpn

 

5. 컴퓨터에 VNC 다운로드 후 설치
http://www.tightvnc.com/download.php


6. 컴퓨터에서 VNC 뷰어실행
IP주소::5901 입력 후 3번의 비번 입력


6-1 android-vnc-viewer 로 안드로이드 폰에서도 접속 가능



위는 윈도우에서 TightVNC Viewer로 라즈베리 파이에 원격접속한 화면이다. 

 

 

 

라즈베리 파이 SD카드를 이미지 파일로 백업하기

 


드라이브 명 잘 확인하고 디렉토리 선택후 Read를 누르면 백업 된다.





 

 


read가 끝나면 백업된 파일을 확인할 수 있다.




인터넷의 역사

unix -  AT&T  벨

BSD : 버클리

 

알파넷(국방성,버클리,AT&T 개발) -> 인터넷으로 발전

 

protocol : 컴퓨터 상호간 혹은 컴퓨터와 단말간에서 통신을 할 때에 필요한 통신규약

TCP/IP 에서 P가 protocol을 말함.



C언어 보강

num10

 

A=++num; // 전치연산의 값은 A 11  num 11

A=num++;  //  후치연산의 값은 A10  num 11

 

c++에서 전자를 쓰는게 속도향상에 도움이 됨 


 

헷갈릴때 둥근 괄호로 싸면 우선순위가 제일 높아 알기 쉽다.

 

 

auto 자동변수 (프로그램 종료하면 사라짐)

 

(auto) int A; // auto가 사실은 생략된 형태이다.



cl /P        // 전처리 파일 생성 main.i

cl /FA        // 어셈블리 파일 생성 main.asm

cl / C        //main.c 기계어 파일 생성 main.ob

 


어셈블리 코드 살펴보기

main.c

1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main()
{
	int iCnt;
	for(iCnt = 0; 100>iCnt ; ++iCnt);

	return 0;
}


main.asm


위는 main.c파일의 어셈블리 소스이다.

; 는 주석을 말한다.




소스를 간단화하면 위와 같다.

명령어 jmp는 점프, cmp는 비교하다, jge는 크거나 같으면(작으면 무효)의 의미이다.


$LN2@main을 보면 ++iCnt가 어셈블리 코드가 대략 어떻게 처리되는지를 알 수 있다.


mov    eax, iCnt

add    eax, 1

mov    iCnt, eax





cl /O2 /Fa main.c는 속도 최적화를 해서 컴파일하라는 명령어이다.


코드가 어떻게 처리되었는지는 위와 같이 실제 어셈블리 코드를 보면 자세히 알 수 있다.


 


 

 

'Linux & Network' 카테고리의 다른 글

2016 04-14 소켓  (0) 2016.04.15
20160401_리눅스 터미널 및 통신  (0) 2016.04.01
20160331_리눅스 터미널과 지역변수  (0) 2016.03.31
20160330_리눅스 터미널  (0) 2016.03.30
라즈베리파이 기본 설정  (0) 2016.03.25

+ Recent posts