쉘(Shell)
쉘 프로그램은 사용자가 내린 명령을 운영체제가 수행할 수 있는 명령어로 해석하여 운영체제에게 전달하는 일을 한다.
한마디로 표현하면 명령어 해석기입니다.
창을 닫을떄는 x을 누르면 문제가 생길수 있다.
그래서 ctrl + D를 누르면 된다.
기본 명령어
ls : 현재 디렉터리안에 존재하는 모든 것을 확인 가능
date : 현재 날짜 및 시간을 확인
hostname : 호스트의 이름을 알수 있다.
clear : 화면 깨끗이
passwd : 사용자 비밀번호 변경가능
파일 및 디렉터리
리눅스의 디렉터리는 하나의 파일로 간주되며 하나의 디렉터리는 다른 디렉터리들을 포함함으로써 계층 구조를 이룬다.부모 디렉터리는 다른 디렉터리들을 서브 디렉터리로 가지고 있다.
home 디렉터리
리눅스 시스템은 다중 사용자 시스템이기 때문에 각 사용자마다 별도의 홈 디렉터리가 있습니다. 각 사용자의 홈 디렉터리는 계정을 만들때 관리자에 의해 정해집니다. 사용자가 로그인하면 미리 설정된 홈 디렉터리에서 작업을 시작하게 됩니다.
cd /를 통해 /디렉터리로 이동 cd $home을 통해 /home/pi 디렉터리로 이동
pwd : 현재 작업 디렉터리를 보여줌
mkdir : 새 디렉터리를 만듬
cd : 내가 원하는 작업 디렉터리로 이동
rmdir : 디렉터리 삭제
cd.. : 한 단계 상위 디렉터리로 이동
home 디렉터로 이동하는 3가지
touch : 빈 파일을 생성. 빈 파일을 생성하는 것이기 때문에 파일 안의 내용은 없음
ls -l
파일을 상세하게 볼 수 있다
read.txt가 폴더인지 파일인지, 권한은 어떻게 되있는지, 소유자는 누구인지, 생성된 날짜는 언제인지 확인 가능
ls -a
명령어를 통해 숨겨진 폴더와 파일의 리스트를 확인 가능
숨김파일을 touch 명령어를 통해 만들어 보겠다. 숨김파일을 생성하려면 파일명 앞에 .을 추가하면 된다.
ls -al
명령어를 통해 숨겨진 폴더나 파일의 리스트를 상세히 볼 수 있다.
cat : 파일의 내용을 화면에 바로 출력
head : 파일의 앞 10줄을 출력
tail : 파일의 맨 뒤 10줄을 출력
두개의 터미널(명령창)을 여는 법
첫번째 터미널에서는 $tail -f ~/webapps/ch02/read.txt 입력하고 대기
두번째 터미널에는 $ nano ~/webapps/ch02/read.txt 치고 엔터
nano 에디터 사용해서 Hello를 치고 ctrl + x 누르고 나오면 된다.
다른 창에 tail -f로 실행하면 좀 전에 쳤던 Hello가 보인다.
파일 찾기 명령어
which : 특정 명령어의 위치를 전체 경로로 찾아주는 명령어
책에는 python3.5가 나오는데 없다. 그래서 python3.7로 찾는다.
whereis : 실행파일, 소스파일, man 페이지 파일의 위치를 찾아주는 명령어
find : find 명령어를 통해 python3.7라는 이름을 가진 모든 파일과 디렉토리를 찾을 수 있다.
권한
리눅스는 하나의 컴퓨터를 여러 사람이 사용할 수 있는 멀티유저 운영체제이기 때문에 관리가 매우 중요하다.
특정 파일이나 디렉토리를 생성한 뒤 그 파일에 접근할 수 있는 권할을 설정하여 다른 유저가 접근할 수 없게 할 수 있다.
ls -l 명령어를 통해 파일을 자세히 알아보자.
위에 그림을 보면서 이해하면 좀 더 쉽다.
링크수
중간의 숫자는 링크 수를 뜻하며 윈도우로 비유하면 "바로가기"와 같다.
만드는 방법은 in [대상파일] [링크파일] 로 실행하면 된다.
root (첫번째) : 소유자
root (두번째) : 소유 그룹
0 : 용량
chmod 명령어를 이용하여 file1.txt 권한 변경
소유자와 소유그룹이 root이고 다른 모든 유저는 읽기(r--)권한만 있는 상태이다.
그래서 pi사용자가 해당 파일을 읽는 것은 가능하지만 쓰는 것을 불가능하다.
file1.txt 파일 읽어보기
nano 에디터를 사용해보자.
nano 에디터는 윈도우에서 메모장과 같다고 보면 된다.
기본적으로 라즈비안에 설치가 되어있다.
nano 에디터를 통해 file.txt를 읽을 수 있다.
그 이유는 r의 권한을 가지고 있기 때문이다. 그런데 중간의 빨간 테두리로 쓸 수 없는 것도 볼 수 있다
file1.txt 파일 수정
nano 에디터에 hello pi를 입력하고 컨트롤 + X -> Y -> enter
수정하고 빠져나오려는 순간 허가 거부가 뜨면서 수정이 되지 않는다
w의 권한이 없기때문에 hello pi가 저장되지 않는다.
일단 빠져나오려면 컨트롤 + X를 입력한 뒤 n을 입력하면 된다.
file.txt 권한 수정하기
수정 권한이 있다면?
chmod <수정번호> <파일명>
수정 권한이 없다면?
sudo chmod <수정번호> <파일명>
pi가 file1.txt 파일에 수정 권한이 없기때문에 sudo를 붙인다. sudo를 붙이면 root의 권한을 대행받을 수 있다.
file1.txt의 권한이 rw- 으로 변경된 것을 확인할 수 있다
다시 file1.txt의 파일을 수정해보자
이번엔 hello pi를 입력하고 빠져나오면 무사히 나올 수 있다
chmod 명령어
chmod는 파일의 권한을 변경해주는 명령어이다. 숫자를 통해 권한을 변경할 수 있다,
chmod <수험번호> <파일명>
rwx 3가지 권한을 다 주려면 7
r- 권한만 주려면 4
-w-권한만 주려면 2
--x 권한만 주려면 1
read의 약자 r은 숫자 4
write의 약자 w는 숫자 2
execute의 약자 x는 숫자 1로 표현된다. (tip. execute는 실행하다라는 뜻으로, 윈도우에서 .exe의 약자이다)
rw- 권한은 읽고 쓰는 것이 가능하다는 것이다. rw-는 r의 4와 w를 더한 값인 6을 주면 된다.
r-x 권한은 읽고 실행하는 것이 가능하다. r-x는 r의 4와 x의 1을 더한 값인 5를 주면 된다.
-wx의 권한을 주려면 숫자 몇을 줘야할까? w의 2와 x의 1을 더한 3을 주면 된다.
예를 들어서 chmod 646일때,
-rw-r--rw- 로 수정할 수 있다.
chown 명령어
파일의 소유자와 소유그룹을 변경할 수 있다.(own는 오너의 약자이다)
chown <소유자> <소유그룹> <파일명 or 디렉토리명>
현재 file1.txt 소유자가 root이고 그룹 소유자도 root이다.
현재 나는 pi로 로그인했기 때문에 해당 파이르이 소유권을 변경할 권한이 없을 것이다.
sudo 명령어를 통해서 권한을 대행받고 file1.txt의 그룹 소유자를 pi로 변경해보자.
root가 pi로 바뀐 것을 볼 수 있다
D로 시작하는 모든 파일 출력
* 는 모든(All)이라는 뜻
.txt로 끝나는 파일들을 모두 출력
.txt로 끝나는 것중에 앞에 한글자 출력
? 한글자를 나타냄
입출력 재지정 IO Redirection
리다이렉션은 표준 입출력의 방향을 바꿔준다. 모든 명령어에 대한 결과가 모니터 화면에 출력되는게 당연하다고 생각할 수 있는데, 리다이렉션으로 출력하는 방향을 바꿔줄 수 있다.
a.txt의 내용을 확인하려면 cat 명령어를 사용
두 명령어의 내용이 같으므로 a.txt 파일의 데이터가 그대로 저장
>만 사용하면 기존의 내용에서 덮어쓰기를 한 다음 저장
>>을 사용하면 기존에 있던 파일의 내용에 추가되어서 저장
라즈베리 삼바
예전에 마이크로소프트와 인텔이 윈도우에서 다른 시스템의 디스크나 프린터 같은 자원을 공유할 수 있도록 SMB(Server Message Block)라는 프로토콜을 개발하였다.
삼바(samba)란 이 SMB를 이용하여 PC에서 리눅스 또는 UNIX 서버에 접속하여 파일이나 프린터를 공유하여 사용할 수 있도록 해주는 소프트웨어로 1991년에 개발되었으며 GNU 라이선스로 배포되고 있습니다.
이번 글에선 라즈베리파이에 삼바를 설치하여 라즈베리파이의 파일들을 윈도우에서 보거나, 수정, 생성 등을 하는 법에 대해서 알아보겠습니다.
sudo apt-get install samba samba-common-bin
설치를 진행하다 보면 이런 'Samba server and utilities' 창이 나타납니다. 이것은 multihomed smb network에만 필요하고, 일반 네트워크를 사용하는 경우에는 필요하지 않다고 합니다. 아니요 버튼을 클릭해주세요.
완료가 된 후, samba 비밀번호 설정을 해줍니다.
sudo smbpasswd -a pi
vi 편집기를 통해 명령어를 추가 하기 위한 작업을 하겠습니다.
vi .vimrc
15번줄 커서에 'o'를 눌러주시면 한 줄이 추가
set mouse-=a 추가
:wq를 넣고 enter
관리자 권한을 얻어오는 sudo를 사용하여 root에 옮겨보겠습니다.
ls -al의 약어 ll로 사용
11~13, 16~18 번째 줄 #을 'x'를 눌러제거
만약 앞에 공백이 있으면 공백까지 제거
:wq로 저장
root계정으로 파일 옮기기
삼바 파일 수정
:99999(제일 큰 수)를 입력하면 맨 마지막으로 가게된다.
comment는 각자맞게 설정해주시면 됩니다! 밑의 코드를 복사해주세요!
[pi]
comment = "choi won young"
path = /home/pi
valid users = pi
browseable = yes
guest ok = no
writable = yes
read only = no
create mask = 0777
마지막줄에 넣어주면 된다.
:wq로 저장
sudo service smbd restart로 재부팅
탐색기 창으로 가서 주소창에 \\와 함께 자신의 라즈베리 ip를 입력
\\192.168.0.169
표시된 부분을 체크한 후 [마침]
아래와 같은 창이 뜨면 "내 자격 증명 기억"을 체크
이렇게 되면 쌈바 끝
잘 되는지 확인하기 위해 파일을 하나 만듭니다.
라즈베리파이로 가서 ls -al이나 ll을 입력하면 윈도우에서 만든 [새 폴더]가 나오는것을 확인
'스마트팩토리 > 라즈베리파이' 카테고리의 다른 글
2020/07/24 라즈베리 파이 (0) | 2020.07.24 |
---|---|
라즈베리파이3 B+ 내장(Built in) WIFI 끊김 해결 방안 (0) | 2020.07.24 |
2020/7/23 라즈베리파이 (0) | 2020.07.23 |
2020/7/21 라즈베리파이 (0) | 2020.07.21 |
2020/7/20 라즈베리파이 (0) | 2020.07.20 |