라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

* 이 시리즈는 윈도우나 iOS를 주로 사용하고 리눅스를 잘 모르는 사용자가 리눅스를 사용해야할 때를 위한 시리즈입니다.

Show

    리눅스 터미널에서 파일 실행하는 방법입니다.

    보통 많이 봤던 .exe파일이나, .sh파일, 혹은 확장자가 없어도 파일을 열었을 때,

    #!/bin/sh

    이렇게 시작하는 파일들을 (Bash 쉘 스크립트라고도 부르죠) 다 똑같이 실행할 수 있습니다.

    실행 방법은 온점과 슬래쉬( ./ )를 입력하고 그 뒤에 파일 이름을 입력하는 것인데요.

    파일 이름을 filename이라고 하면,

    ./filename

    이라고 입력 하시면 실행이 됩니다. 만약 파일이 확장자가 있다면 확장자까지 입력을 해주셔야 합니다.

    예를 들어서 filename.exe라면 아래처럼 입력하시면 되고요.

    ./filename.exe

    filename.sh라면 역시 아래처럼 입력하시면 됩니다.

    ./filename.sh

    다음 시리즈에서는 리눅스에서 다양한 압축파일 푸는 법으로 돌아오겠습니다.

    리눅스에서 파일 내용을 확인하는 명령어들을 살펴 봅니다. 각종 로그 파일을 살펴보거나 문서들을 살펴볼때 유용합니다.

    cat

    cat 명령어는 텍스트로 된 파일일 경우 그 내용을 정상적으로 출력하지만 바이너리 파일일 경우에는 출력은 하지만 알아볼 수 없다. 그리고 2개 이상의 파일이름이 지정되면 모든 파일이 연결되어 보여진다.

    사용법 : cat [옵션] 파일명

    test 파일을 열어봄

    cat test 
    

    각 행에 번호를 붙여서 출력

    cat -b test 
    

    빈 행에도 번호를 붙임

    cat -n test
    

    연속되는 2개이상의 빈 행을 한행으로 출력

    cat -s test 
    

    more

    more 명령어는 특정파일의 내용을 확인하는 그 페이지에서 바로 vi 로 파일을 열어서 편집을 할 수도 있으며 텍스트 파일의 내용을 한 페이지씩 차례대로 확인할 수 있다.

    사용법 : more 파일명

    more test
    

    많은 양의 파일리스트를 확인할때 파이프를 이용해 연결

    ls -l /etc | more
    

    특정 파일의 내용을 확인하고 있는 상태에서 사용할 수 있는 키

    • h : more 명령어상태에서 사용할 수 있는 키 도움말 확인
    • Space Bar : 한 화면씩 뒤로 이동하기 (f와 동일)
    • Enter : 현재행에서 한 행씩 뒤로 이동하기
    • q : more 명령어 종료하기
    • f : 한 페이지씩 뒤로 이동하기(Space Bar 와 동일)
    • b : 한 페이지씩 앞으로 이동하기
    • = : 현재 위치의 행번호 표시하기
    • /문자열 : 지정한 문자열을 검색하기
    • n : /문자열로 검색한 문자열을 차례대로 계속해서 찾기
    • !쉘명령어 : more 명령어상태에서 쉘명령어를 실행하기
    • v : more 명령어로 열려있는 파일의 현재위치에서 vi를 실행하기

    less

    less는 more와 매우 유사하다.

    사용법 : less 파일명

    less test
    ls -l | less
    

    less 내부명령키

    • Space Bar 또는 f : 한 화면 뒤로 이동
    • b : 한 화면 앞으로 이동
    • Enter : 한 행씩 뒤로 이동
    • 숫자+n : 원하는 페이지만큼 뒤로 이동, 이후부터는 n만 눌러도 숫자페이지만큼 이동
    • q : less 수행종료

    head

    head는 파일의 앞부분부터 확인하는 명령어이다.

    사용법 : head 파일명

    기본적으로 행의 앞부분 부터 10 행까지만 출력

    head test 
    

    20행까지 출력

    head -n 20 test 
    

    200 byte 까지의 내용을 출력

    head -c 200 test 
    

    tail

    tail은 특정파일에 계속 추가되는 모든 내용을 모니터링 할 수 있어 실무에서 유용하게 사용되는 명령어이다.

    /var/log/ 디렉토리에 존재하는 많은 시스템로그파일들의 로그파일들에 저장되는 내용들을 실시간으로 계속 모니터링하기 위한 용도로 자주 사용된다.

    사용법 : tail 파일명

    기본적으로 파일에서 마지막 부분의 10개행을 화면에 출력

    tail test 
    

    마지막 부분의 20개행까지 출력

    tail -n 20 test
    

    마지막에서 200byte 까지를 출력

    tail -c 200 test  
    

    로그파일을 실시간 모니터링, 종료는 Ctrl-c

    tail -f /var/log/messages
    


    안녕하세요 문쑹입니다 :)

    오늘은 리눅스 기본 명령어와 디렉토리에 대하여 포스팅해보겠습니다.

    쉘(Shell) 이란?

    우리가 윈도우의 도스에서 내리는 대부분 명령은 command.com이라는 파일이 처리합니다. 이 파일을 운영체제의 쉘(Shell)프로그램이라고 말합니다. 쉘 프로그램은 사용자가 내린 명령을 운영체제가 수행할 수 있는 명령어로 해석하여 운영체제에게 전달하는 일을 합니다. 그래서 명령어 해석기라고 불립니다. 정리하자면 리눅스는 커널이라고 불리는 하드웨어를 직접 제어하는 부분과 그 위에서 커널에 명령을 주는 쉘로 구성이 됩니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    쉘의 동작원리

    기본 명령어

    date 명령어

    현재 날짜 및 시간을 확인할 수 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    hostname 명령어

    호스트의 이름을 확인할 수 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    ls 명령어

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

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    clear 명령어

    화면을 깨끗하게 지울수 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    passwd 명령어

    사용자 비밀번호를 변경할 수 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    관리자 권한으로 root 비밀번호 변경

    파일 및 디렉터리

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    리눅스 디렉토리 트리 구조

    home 디렉토리

    리눅스 시스템은 다중 사용자 시스템이기 때문에 각 사용자마다 별도의 홈 디렉터리가 있습니다. 홈 디렉터리 이름은 일반적으로 사용자명과 같으며 로그인할 때 환경 변수 $HOME은 사용자의 홈 디렉터리의 이름으로 설정되어 있습니다.

    아래와 같이 / 디렉터리로 이동한 뒤 cd $HOME을 통해 /home/pi 디렉터리로 이동이 가능합니다.

    cd 명령어

    cd 명령어는 change directory입니다. 말 그대로 디렉토리를 변경해주는 명령어 입니다. home 디렉토리로 이동하는 몇 가지 방법을 사용해보겠습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    pwd 명령어

    현재 작업 디렉터리를 보여줍니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    mkdir 명령어

    새 디렉터리를 만드는 명령어 입니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    touch 명령어

    빈 파일을 생성해주는 명령어 입니다. 파일안에 내용은 없습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    ls 명령어

    디렉터리의 내용을 출력하는데 사용됩니다.

    ls -l 명령어를 통해 파일을 상세히 볼 수 있습니다.

    read.txt가 폴더인지 파일인지, 권한은 어떻게 되어 있는지 소유자는 누구인지 생성된 날짜는 언제 인지 확인할 수 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    ls -a 명령어를 통해 숨겨진 폴더와 파일의 리스크를 확인할 수 있습니다.

    숨김 파일을 touch명령어를 통해 만들어 보겠습니다. 숨김 파일을 생성할 때 파일명 앞에 .을 추가해주면 됩니다.

    밑의 예제를 보면 ls -a 와 ls의 차이를 좀 더 쉽게 파악할 수 있겠죠?

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    ls -al 명령어를 통해 숨겨진 폴더나 파일의 리스트를 상세히 볼 수 있습니다.

    리눅스에서는 명령어 뒤의 옵션을 동시에 붙여서 사용 가능합니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    cat 명령어

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

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    head 명령어

    파일의 앞 10줄을 출력해줍니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    tail명령어

    파일의 맨 뒤 10줄을 출력해 줍니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    head 와 tail 명령어의 옵션을 조정하여 원하는 줄만큼 출력할 수도 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    tail -f 옵션을 사용하면 실시간으로 변경된 내용을 확인할 수 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    두개의 터미널을 열어줍니다.

    첫 번째 터미널에서 다음과 같이 입력하고 대기합니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    첫 번째 터미널

    두 번째 터미널에서는 nano 에디터를 사용합니다. 입력이 다되었으면 저장 후 nano 에디터를 종료해주세요.

    ctrl + x 를 해주시면 됩니다. 저장하시겠습니까? 라고 물어보는데 그냥 y를 입력하고 엔터를 치시면됩니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    두 번째 터미널

    저장이 되는 동시에 첫 번째 터미널에서 입력한 내용이 출력됩니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    첫 번째 터미널

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

    cp명령어

    파일을 복사해주는 명령어 입니다.

    cp <복사할 대상> <복사될 위치>

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    파일을 복사하는데 다른 이름으로 저장하고 싶다면 cp <복사할 대상> <복사될 위치/파일명> 으로 하시면 됩니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    mv명령어

    파일을 이동하는 명령어 입니다.

    mv <파일명> <이동할 위치>

    mv명령어를 통해 파일명을 변경하고 싶다면 mv <파일명> <다른이름> 으로 해주시면됩니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    rm명령어

    파일을 삭제해주는 명령어입니다. rm <파일명>

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    -r 옵션을 사용하면 디렉토리를 삭제할 수 있습니다. rm -r <디렉토리명>

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    파일 찾기 명령어

    which 명령어

    특정 명령어의 위치를 전체 경로로 찾아주는 명령어 입니다. witch <명령어>

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    which 명령어를 통해 python 실행파일들이 어디있는지 찾아 보겠습니다. 그리고 which 명령어를 통해 일반 파일을 찾을 수는 없습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    whereis 명령어

    실행파일, 소스파일, man 페이지 파일의 위치를 찾아주는 명령어 입니다. whereis <명령어>

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    find 명령어

    python3.7이라는 이름을 가진 모든 파일과 디렉토리를 찾을 수 있습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

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

    권한

    리눅스(Linux)는 하나의 컴퓨터를 여러 사람이 사용할 수 있는 멀티유저 운영체제(OS)이기 때문에 권한 관리가 매우 중요합니다. 특정 파일이나 디렉토리를 생성한 뒤 그 파일에 접근할 수 있는 권한을 설정하여 다른 유저가 접근할 수 없게 할 수 있습니다.

    ls -l 명령어를 통해 파일을 자세히 보겠습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    <1> file1.txt를 살펴보기

    1. -

    파일의 타입

    2. rw-r--r--

    퍼미션 정보

    r read 권한 4
    w write 권한 2
    x execute 권한 1
    - 권한없음 0
    소유자 rw- 6 읽고 쓰는 권한
    소유그룹 r-- 4 읽기 권한
    모든유저 r-- 4 읽기 권한

    3. 1

    링크수

    윈도우에 비유하면 "바로가기"와 같습니다. 생성 방법은 in [대상파일] [링크파일] 입니다.

    4. root <첫 번째>

    소유자

    5. root <두 번째>

    소유그룹

    6. 0

    용량

    7. 7월 22 11:45

    생성날짜

    8. file1.txt

    파일이름

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

    소유자와 소유그룹이 root이고 다른 모든 유저는 읽기(r--)권한만 있는 상태입니다. 그렇기 때문에 pi 사용자로 해당 파일을 읽는 것은 가능하지만 쓰기는 불가능합니다.

    1. file1.txt 파일 읽어보기

    nano 에디터를 사용하여 file1.txt를 읽었습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    2. file1.txt 수정하기

    아래와 같이 "hello pi"를 입력하고 ctrl + x -> Y -> Enter 을 하면 저장이 되지 않습니다. 그 이유는 write의 권한인 w가 없기 때문입니다. 이제 권한을 수정하여 글을 쓸 수 있도록 해보겠습니다. 

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    저장하지 않고 nano 에디터를 빠져나오려면 Ctrl + x -> N을 입력하면 됩니다.

    3. file1.txt 권한 수정하기

    수정 권한 있을 때

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

    수정 권한 없을 때

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

    pi가 file1.txt 파일에 수정권한이 없기 때문에 sudo를 붙여줍니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    file1.txt의 모든 유저 권한이 rw-으로 변경된 것을 확인할 수 있습니다.

    4. file1.txt 파일 수정 재시도

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    수정이 잘 된것을 확인 했습니다.

    <3> chmod명령어

    권한을 변경해주는 명령어이며 숫자를 통해서 권한을 변경할 수 있습니다.

    • chmod <수정번호> <파일명>
    • rwx 3가지 권한을 다 주려면 7을 주면 됩니다.
    • r-- 권한만 주려면 4를 주면 됩니다.
    • -w- 권한만 주려면 2를 주면 됩니다.
    • --x 권한만 주려면 1을 주면 됩니다.
    • read의 약자 r은 4로 표현됩니다.
    • write의 약자 w는 2로 표현됩니다.
    • execute의 약자 x는 1로 표현됩니다.

    file2.txt 파일에 소유그룹 권한에 실행 권한을 줘보겠습니다. 아래 예제와 같이 실행권한이 생기면서 초록색으로 변경이 되었습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    <4> chown 명령어

    파일의 소유자와 소유그룹을 변경할 수 있습니다. chown <소유자> <소유그룹> <파일명 or 디렉토리명>

    현재 file1.txt는 소유자와 그룹소유자가 모두 root입니다. 저는 현재 pi로 로그인해 있기 때문에 해당 파일의 소유권을 변경할 권한이 없습니다. 이때는 sudo 명령어를 통해서 권한을 대행받고 소유권을 변경해 보겠습니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi

    입출력 재 지정 IO Readirection

    리다이렉션은 표준 입출력의 방향을 바꿔줍니다. 표준 입력은 키보드, 표준 출력은 모니터이지만 이를 파일로 처리하고 싶을 때 주로 사용합니다. 모든 명령어에 대한 결과가 모니터화면에 출력되는 것을 당연하게 생각할 수 있지만 이것은 기본 표준 입출력이 모니터라는 것을 의미하기 때문입니다. 

    <1> '>' 사용법

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    ls의 리다이렉션을 readme.txt로 변경

    > 을 다시 사용하면 이전에 내용은 사라지고 덮어쓰게 됩니다.

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    덮어쓰기 된 readme.txt 파일

    <2> '>>' 사용법

    라즈베리파이 파일 열기 - lajeubelipai pail yeolgi
    추가된 readme.txt 파일

    다음에는 윈도우랑 라즈베리파이랑 파일을 공유할 수 있도록 설정하는 방법을 포스팅 해보겠습니다. 감사합니다 :)

    Hasta Luego~!