라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

 

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in
쉘의 동작원리

 

기본 명령어

date 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

hostname 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

ls 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

clear 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

passwd 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in
라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in
관리자 권한으로 root 비밀번호 변경

 

파일 및 디렉터리

 

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in
리눅스 디렉토리 트리 구조

home 디렉토리

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

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

 

cd 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

pwd 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

mkdir 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

touch 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

ls 명령어

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

 

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

cat 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

head 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

tail명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

 

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

 

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in
첫 번째 터미널

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in
두 번째 터미널

 

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in
첫 번째 터미널

 

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

 

cp명령어

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

 

mv명령어

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

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

rm명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

파일 찾기 명령어

 

which 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

whereis 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

find 명령어

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

 

권한

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

<1> file1.txt를 살펴보기

1. -

파일의 타입

- 일반파일d 폴더l 링크파일

 

2. rw-r--r--

퍼미션 정보

rread 권한4wwrite 권한2xexecute 권한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를 읽었습니다.

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

2. file1.txt 수정하기

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

 

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

 

3. file1.txt 권한 수정하기

수정 권한 있을 때

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

 

수정 권한 없을 때

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

 

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

 

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

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

 

<3> chmod명령어

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

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

<4> chown 명령어

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

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

라즈베리 파이 파일 확인 - lajeubeli pai pail hwag-in

 

입출력 재 지정 IO Readirection

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