ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CH.02 라즈베리 파이를 위한 리눅스 기초 배우기
    Raspberry Pi ( python ) 2023. 2. 28. 11:31

    1 _ 리눅스 운영체제의 종류

     : 리눅스 운영체제는 대형기종에 작업이 가능한 유닉스를 개인용 컴퓨터에서 작동할 수 있게 변형한 것이라고 볼 수 있다.

    리눅스의 가장 큰 특징은 GNU 정신을 준수하기 때문에 대부분 무료이고 소스코드의 자유배포가 가능하다.

    대표적인 리눅스의 종류는 Debian, Redhat 이 있다.

     


    2 _ 원격 접속을 위한 VNC와 Putty

     : 라즈비안에 모니터, 키보드, 마우스를 연결하여 직접적으로 사용할 수 있지만 원격 접속하는 방법이 있다.

    CLI는 터미널 모드로 접속하기, GUI는 그래픽 모드로 접속하는 것이다.

     

     - 그래픽 모드 접속

    1) www.realvnc.com/en/connect/download/vnc/  

     

    Download VNC Server | VNC® Connect

    Enable remote connections between computers by downloading VNC®.

    www.realvnc.com

    해당 링크에서 VNC Viewer를 다운받는다.

     

    2) 라즈베리 파이에서 터미널로 들어가서 ip를 확인한다. 

     

    3) 원격접속을 하려는 PC에서 라즈베리 파이의 ip주소를 입력하고 접속한다.

    4) 원격으로 키보드, 마우스를 이용해서 라즈베리 파이를 이용할 수 있다.

     

     - 터미널로 접속하기

    1) Putty를 다운받는다.

    2) ip 주소를 입력하고 sessions에 raspberry를 저장하고 open한다.

    3) 아이디와 패스워드를 입력해서 로그인한다.

    4) 터미널 모드로 원격 접속

     

    ** 원격 접속  경로 : SD CARD -> 라즈베리파이 -> 라즈비안(OS) -> 모니터

     

    ** putty를 사용하는 이유

    : 라즈비안에있는 지니 에디터는 python 코드를 작성하는데 불편하다.

    따라서 이용하기 편한 vsc와 같은 에디터를 사용하기 위해 putty를 이용한다.


    3 _ 리눅스 파일 시스템

     : 리눅스는 많은 파일 시스템을 지원한다. 리눅스는 시스템이 사용할 수 있는 각각의 파일 시스템이 장치 식별자로 접근되는 것이 아니라 하나의 루트 디렉터리만을 가지는 파일 시스템이기 때문에 여러 하드디스크로 파티션을 나누기 위해서는 특정 폴더에 마운트 하게된다.

     

     - 리눅스 디렉터리 구조

     : 리눅스의 기본 디렉터리 구조는 트리 구조를 하고 있다. 디렉터리 구조는 기본구조를 제외하고 사용자의 설정에 따라 달라질 수 있다. 대부분의 리눅스는 표준 파일 시스템 계층을 사용하기 때문에 같은 목적의 파일들은 같은 장소에 일관되게 모아 관리되므로 시스템 자원이나 프로그램들을 쉽게 찾을 수있다.

     


    4 _ 리눅스 명령어

    1) 기본 명령어

    $ date : 현재 날짜 및 시간

    $ hostname : 호스트의 이름을 확인할 수 있다.

    $ ls : 현재 디렉터리안에 존재하는 모든 것들을 확인할 수 있다.

    $ clear : 화면을 깨끗이 지움

    $ passwd : 비밀번호를 변경

     


    2) 파일 및 디렉터리

     : 리눅스의 디렉터리는 하나의 파일로 간주되며 하나의 디렉터리는 다른 디렉터리들을 포함함으로써 계층 구조를 이룹니다. 부모 디렉터리는 다른 디렉터리들을 서브 디렉터리로 가지고 있다.

     

     - home 디렉터리

       : 리눅스 시스템은 다중 사용자 시스템이기 때문에 각 사용자마다 별도의 홈 디렉터리가 있습니다. 각 사용자의 홈 디렉터리는 계정을 만들 때 관리자에 의해 정해집니다. 사용자가 로그인하면 미리 설정 된 홈 디렉터리에서 작업을 시작하게 된다.

    홈 디렉터리는 일반적으로 사용자명과 같으며 로그인할 때 환경 변수 $HOME는 사용자의 홈 디렉터리의 이름으로 설정되어 있다.

    / 디렉터리로 이동한 뒤 cd $HOME을 통해 /home/pi 디렉터리로 이동이 가능하다.

     

     - cd : 해당 디렉터리로 이동한다.

    ex) $ cd $HOME -> HOME 디렉터리로 이동

     

     - pwd : 현재 작업중인 디렉터리를 보여준다

     - mkdir 명령어 : 새 디렉터리를 만든다.

    $ mkdir 파일명

     

     - cd ..  명령어 : 한 단계 상위 디렉터리로 이동할 수 있다.

     

     - home 디렉터리로 이동하는 3가지 방법

     - touch 명령어 : 빈 파일을 생성할 수 있다. 

     - ls 명령어 : 디렉터리의 내용을 출력하는데 사용된다.

    ls - l  :  파일을 상세하게 볼 수 있다.

    ls -a : 숨겨진 폴더와 파일의 리스트를 확인할 수 있다. ( 숨김 파일을 생성하려면 파일명 앞에 .을 추가)

    ls -al : 숨겨진 폴더나 파일의 리스트를 상세히 볼 수 있다. ( a와 l 명령어를 동시에 입력함 )

    cat : 파일의 내용을 화면에 바로 출력할 수 있다.

    head : 파일의 앞 10줄을 출력해준다.

    $ head read.txt

    tail : 파일의 맨 뒷 10줄을 출력해준다.

    $ tail raed.txt
    
    $ tail -5 read.txt  ->  맨 뒤 5줄만 출력

    tail -f 옵션을 사용하면 실시간으로 변경된 내용을 확인할 수 있다.  ( 나가기 : ctrl + c )

     


    3) 파일 이동, 삭제, 복사 명령어

    cp 명령어 : 파일을 복사해주는 명령어

    cp <복사할 대상> <복사될 위치>
    
    $cp read.txt text
    
    다른 이름으로 저장하기
    cp <복사할 대상> <복사될 위치/파일명>
    
    $cp read.txt test/rename.txt
    
    내 위치가 어디에 있든 정대경로를 통해 cp 명령어를 활용할 수 있습니다.
    $ cp /home/pi/webapps/ch02/read.txt /home/pi/webapps/ch02/test/change.txt

    mv 명령어 : 파일을 이동하는 명령어

    mv <파일명> <이동할 위치>
    mv myfile.txt test  : myfile.txt를 test 파일로 이동시킨다.
    
    mv 명령어를 통해 파일명을 변경하고 싶다면
    mv <파일명> <다른이름>
    mv myfile.txt yourfile.txt

    rm 명령어 : 파일을 삭제해주는 명령어

    rm <파일명>
    $ rm read.txt
    
    -r 옵션을 사용하면 디렉터리를 삭제할 수 있다.
    rm -r <파일명>
    $ rm -r test

     


    4) 파일 찾기 명령어

     ** 리눅스의 폴더 구조와 특징을 잘 안다고 하더라도 설치위치를 정확히 알 수는 없다. 설치한 프로그램의 실행파일은 심볼릭 링크(바로가기)를 /bin 폴더에 만들어두고 사용하는 경우가 있다.

    /bin은 기본적인 환경변수가 설정되어 있는 폴더이기 때문에, /bin 폴더 내부에 있ㄴ는 실행파일은 어디에서 든지 실행할 수 있다.

     

     - which 명령어 : 특정 명령어의 위치를 전체 경로로 찾아준다.

    which <명령어>
    $ which rm

     

     - whereis 명령어 : 실행파일, 소스파일, man 페이지 파일의 위치를 찾아준다.

    whereis <파일명>  -> 파일명과 동일한 모든 실행,소스,man 파일의 위치를 찾아준다
    $ whereis python3.5

     

     - find 명령어 : 해당 이름을 가진 모든 파일과 디렉터리를 찾을 수 있다.

    sudo find / -name python3.5

     ** 앞에 sudo를 붙이는 이유는 pi 사용자가 아닌 root 사용자의 권한을 대행 받아서 모든 폴더를 탐색하기 위해서이다.

    /의 의미는 최상단의 / 디렉터리부터 검색하라는 의미 ( windows 에서 C:\ 부터 검색하라는 것과 동일 )

     


    5) 권한

     : 특정 파일이나 디렉터리를 생성한 뒤 그 파일에 접글할 수 있는 권한을 설정하여 다른 유저가 접근할 수 없게 할 수 있다.

    file1.txt 속성

       -           rw-               r--             r--               1             root         root               0       3월 2 10:23       file1.txt

    타입  소유자권한   소유그룹    모든유저    링크수      소유자  소유그룹        용량      생성날짜         파일이름

    으로 해석할 수 있다

     

     - file1.txt의 경우

    - 일반타입   /   d 폴더   /   l 링크파일   :  file1.txt는 맨 앞에서 - 로 시작하기 때문에 일반타입이다.

     

    퍼미션 정보

    r read 권한 4,

    w write 권한 2,

    x execute 권한 1,

    - 권한없음 0

     

    file1.txt는 다음과 같다

    소유자 rw-  6  읽고 쓰는 권한

    소유그룹 r--  4  읽기 권한

    모든유저 r--  4  읽기 권한

     : 따라서 소유자는 읽고 쓰기 가능, 소유그룹은 읽기 가능, 모든유저 읽기 가능

     

    링크수 지정

    in [대상파일] [링크파일]

     


    chmod 명령어를 이nano 용하여 file1.txt 권한 변경하기

     

     ① file1h.txt 읽어보기

     : nano 에디터(메모장 같은 역할)를 통해 파일을 읽을 수 있다

    $ cd ~/webapps/ch02
    $ nano file1.txt

    ② file1h.txt 는 sudo touch 로 작성되었기 때문에, 소유자와 소유그룹이 root이므로 모든 유저로 진입한 경우 

    파일의 내용을 변경할 수 없다

    수정 실패

    ③ 권한 수정하기

     - 수정 권한이 있다면

    chmod <수정번호> <파일명>
    $ chmod 646 file1.txt
    
    수정번호는 퍼미션 정보의 숫자를 입력한다
    위의 퍼미션 정보는 rw-r--rw- 이다.

     - 수정 권한이 없다면

    sudo를 붙여서 수퍼유저의 권한을 대행받아야한다

    $ sudo chmod 646 file1.txt

    수정 완료

     


    chmod 명령어

    chmod <수정번호> <파일명>

    r-- 권한 : 4

    -w- 권한 : 2

    --x 권한 : 1

    rw- 권한을 주고싶다면 r-- + -w- : 6

    r-x 권한을 주고싶다면 r-- + --x : 5

    rwx 권한을 주고싶다면 r-- + -w- + --x : 7

    덧셈 법칙으로 수정번호를 작성할 수 있다.

     


    chown 명령어 : 파일의 소유자와 소유그룹을 변경할 수 있다.

    chown <소유자>:<소유그룹> <파일명 or 디렉터리명>
    $ sudo chown root:gt file1h.txt
    
    sudo 명령어를 통해 권한을 대행받고
    소유자를 root , 소유그룹을 gt 로 변경함

     


    6) 입출력 재지정 IO Redirection

     : Redirection은 표준 입출력의 방향을 바꿔준다. 표준 입력은 키보드, 표준 출력은 모니터지만 이를 파일로 처리하고 싶을 때 주로 사용한다.

     

    ① > 사용법

     : 왼쪽의 내용을 오른쪽 파일에 덮어쓰기 한다.

    $ ls > file1h.txt
    -> ls의 결과물을 file1h.txt 파일 내부에 덮어쓰기 한다.
    
    $ ls -l > file1h.txt
    -> ls -l 의 결과물을 file1h.txt 파일 내부에 덮어쓰기 한다.

    ② >> 사용법

     : 왼쪽의 내용을 오른쪽 파일의 기존 내용에 추가한다.

    $ ls >> file1h.txt

     - ls -l > file1h.txt 한번, ls >> file1h.txt 두번을 실행한 결과

     

    ** ls 나 ls -l 등의 명령어에 대한 결과를 파일에 출력 시켜서 볼 수 있다는 뜻이다.

     

     


    7) wget, apt-get, git clone 다운로드

    윈도우에서 작업한 파일을 라즈베리 파이로 옮기는 방법

     

    1. 이메일로 파일을 보내고 라즈베리 파이에서 다운받는다.

    2. 원격으로 라즈베리 파이에 접속

    3. 특정 홈페이지( 카페 )에 파을을 업로드 해두고 라즈베리 파이에서 다운받는다.

     


    8) 파일 압축

     : 라즈비안에서 tar 명령어를 이용하여 파일을 압축하고 압축을 해제할 수 있다.

    ( tar / tar.gz )

    tar : 파일과 폴더를 하나의 파일로 묶어주는 유틸리티, 주로 백업 용도

    tar.gz : 파일 및 폴더들을 묶어서 압축

     

    tar 압축
    $ mkdir aaa
    $ tar -cvt aaa.tar aaa  // aaa 폴더를 aaa.tar 로 압축
    
    tar 압축 해제
    $ tar -xvf aaa.tar
    
    tar.gz 압축
    $ mkdir ccc
    $ tar -zcvt ccc.tar.gz ccc  // ccc 폴더를 ccc.tar 로 압축
    
    tar.gz 압축 해제
    $ tar -zxvf ccc.tar.gz
    
    zip 압축 해제
    $ sudo apt-get install unzip
    $ unzip 파일명

     

Designed by Tistory.