728x90

리눅스 터미널 공부


ls // 디렉토리 및 파일목록출력

ls -a // 숨겨진 파일까지 보여줌 

 

ls -l  //자세한 정보를 보여줌

ls -al // 자세한 정보 및 숨겨진 파일까지 보여줌

 




. bash / rc      // Run Script

.             // 숨겨진 파일

 

환경변수들이 들어있는 파일이라 숨김 ( .)

세팅후에는 다시 로긴해야 함

 



ls aliases 를 통해 별칭을 설정할 수 있다.

 




 

 

 

vi 는 저장하면 .swp파일을 지우고 저장한다.

.swp파일은 일종의 자동 세이브

그러나 강제종료하게 되면 파일이 지워지지 않고 남는다.

 

 


 




touch 명령어

존재하지 않으면 파일을 만들고

존재하면 날짜를 최근으로 바꿔준다.

 

 

리눅스는 printf문에 \n을 넣어줘야 출력이 된다.

 

 

gcc -o main main.c // 컴파일시 main파일로 출력

./main     //main파일 실행

 

될수있으면,소스파일 창은 닫지않고 컴파일 창은 따로 둠

 

:w main2.c // main2.c로 저장

:w // w main2.c를 했어도 main.c로 저장된다

 



set 환경변수

set | grep path

 

env

윈도우,도스는 일단 현재 디렉토리에서 찾고 없으면 path에서 찾는다. ( .|main이 아닌 main만 쳐줘도 됨)

유닉스는 현재 디렉토리에 패스가 있어야 한다.  어디에 있는 파일을 실행할지 명확하게 정해줘야 한다. (./main) 

 


return 0;

0 - 에러하나없이 종료했다는 걸 뜻함(리눅스)

 


 

 

 

 


 

     cp / copy

mv / move


 

리눅스에서 현재디렉토리의 파일 실행시 ./ 를 붙여줘야 함 


rm // remove 


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
728x90

라즈베리파이 첫 수업

 

홈페이지  https://www.raspberrypi.org/

 

Raspbian Jessie 풀버전 다운로드

https://downloads.raspberrypi.org/raspbian_latest

 

 

Win32DiskImager 다운로드

https://sourceforge.net/projects/win32diskimager/

 

Device항목에 sd카드 드라이브명 확인후,

Raspbian 이미지 쓰기(디스크 모양)

 

 

 

 

네트워크 설정

 


 

인터넷 프로토콜 버전 4 (TCP/IPv4)

ip주소 끝자리를 출석번호 +10으로 줌 (24+10) // 후에 출석번호 +40으로 수정함

 

•Google Public (구글 퍼블릭)
◦기본 DNS 서버 주소 - 8.8.8.8

◦보조 DNS 서버 주소 - 8.8.4.4

 

 

 

IPv4 주소 : 192.168.1.34로 바뀜



[라즈베리 파이, 기본 세팅]

전원을 꼽는 순간 부팅

HDMI 흔들어서 넣지말고 수직으로 주의깊게 넣기 (뺄때도 마찬가지)

처음 세팅때는 usb키보드와 마우스 연결 필요



Shell (사전적 의미론 껍데기) : 명령어를 통해 커널에 접근 가능

unix : 여러 os의 조상


리눅스 명령어

ls -al : 현재 디렉토리 내의 모든 내용 출력

pwd : 현재 디렉토리를 보여줌

tree : 현재 디렉토리를 포함해서 모든 하위 디렉토리와 파일을 보여줌

(화면에 뿌려줄때 ctrl+c로 빠져나올 수 있다)


sudo : SUbstitute user DO 의 줄임말, 관리자 권한의 계정으로 명령을 내림


su - : root권한 획득


$ : 일반계정

# : 루트계정 (sudo)


Ctrl + D : 로그아웃, 한번 더 입력하면 창을 닫는다.


apt-get 프로그램을 받음, 설치시 install 명령어를 뒤에 같이 씀

-> install (대상)


sudo apt-get install vim

sudo raspi-config // 라즈베리 파이 환경설정

1. Expand Filesystem // 파일시스템 확장(SD 카드 전체용량 사용하도록 확장)
2. Change User Password // pi계정 비밀번호 변경

5. Internationalisation Options  //언어, 키보드,타임존 등을 설정

sudo apt-get update  // 각 업데이트 저장소 에서 업데이트 패키지 목록을 갱신

apt-get 프로그램 받아서 설치해줌


 

wlan scan - TESTER 네트워크가 보임






sudo apt-get install vim // vim설치, vim은 visual editor에서 발전한 것



터미널에서 Visual Editor 실행 (main.c 란 파일명으로 편집)



편집 / 명령모드 / 확장명령





visual editor 명령어 배우기

i : insert

o : 한줄 띄우고 insert


esc누르면 명령모드


명령모드

backspace는 커서 왼쪽 이동

h : left j : down k : up l : right


x : 한개의 문자 삭제

dd : 현재 라인 삭제

dw : 단어 삭제

d + (hjkl) : 해당 방향 삭제

d + n + (hjkl) : n개만큼 특정방향 삭제


r : 1개의 문자 바꾸기

R : 수정모드로 글자 덮어씀


dd : 잘라내기

p : 붙여넣기


yy : 현재 라인 복사


$ : 문장의 맨 끝으로 이동

0 : 문장의 맨 처음으로 이동



v 비쥬얼블럭 잡기


shift + colon (:)

:set numer // 줄보이기


:q! : 저장하지 않고 종료



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

2016 04-14 소켓  (0) 2016.04.15
20160401_리눅스 터미널 및 통신  (0) 2016.04.01
20160331_리눅스 터미널과 지역변수  (0) 2016.03.31
20160330_리눅스 터미널  (0) 2016.03.30
라즈베리 파이 원격제어와 C언어  (0) 2016.03.28

+ Recent posts