커뮤니티
- 제 목 라즈베리파이 LINUX 기초
- 작성자 네오즈 조회 : 7,912 좋아요 : 1 댓글 : 0
- 작성일 2019-09-26 오후 12:34:55
-
1. 리눅스 명령어 기초
개념의 이해와 실습을 위해 라즈베리파이에 키보드 모니터를 연결하고, 전원을 투입한다. 부팅이 완료되면 터미널을 열어 raspi-config를 실행하여 Boot Option을 첫 번째 옵션인 ‘B1. Console Text console’, requiring user to login’ 을 선택하고 빠져 나와 라즈베리를 리부팅 시킨다.
1.0 가상 터미널
아래는 CLI( Command Line Interface ) 모드에서, 부팅 직 후의 라즈베리파이 화면에 표시된 내용이다.
노란색으로 표시한 문자열을 살펴 보면
“Raspbian GNU/LINUX 9” 은 지금 구동한 리눅스 종류와 버전을, “raspberrypi tty1” 은 해당 단말기( Terminal )를 나타내고 있다. ( tty: teletypewriter )
결국 “Raspbian GNU/LINUX 9( Raspbian Stretch 9 )” 리눅스가 “raspberrypi tty1” 단말에서 구동 중이라는 의미이며, 그 아랫줄에는 로그인 계정과 패스워드를 입력받아 해당단말에서 라즈베리파이에 로그인하는 과정인 것이다. 결국 마지막 행의 프롬프트가 나타난 것으로 보아 정상적으로 로그인 된 것을 알 수 있다.
현재 상태에서 다른 터미널을 통해 라즈베리파이에 로그인하기 위해 키보드의 “Alt + F2” 를 눌러보면 다음과 같은 화면이 나타난다.
역시 이 번에도 노란색으로 표시한 문자열을 살펴 보면, 이번에는 “Raspbian GNU/LINUX 9” 리눅스가 “raspberrypi tty2” 단말에서 구동 중이라는 의미라는 것을 알 수 있을 것이다.
먼저 로그인한 “raspberrypi tty1” 단말로 이동하려면 “Alt + F1” 을 누르면 된다.
별도의 작업 없이 열 수 있는 가상 터미널은 모두 5개로 “Alt + Fn” 으로 ttyn 가상터미널을 열 수 있다.
( n = 2, 3, 4, 5, 6 )
tty1 단말은 가상터미널이 아니다. 직접 연결된 키보드, 모니터 콘솔이 tty1 단말이 된다.
1.1 사용자 계정 관련 명령어
사용자 계정( User Account )은 유닉스나 리눅스 시스템에서 컴퓨터 사용을 위해 관리자로부터 발급받는 사용자 인증을 위한 Login Name과 이 때 동시에 생성되는 디스크 상의 작업공간을 의미한다.
멀티유져( Multi-User ) 네트워크 운영체제( Network OS )이기 때문에 이 계정( account )은 매우 중요한 개념이다. 계정은 크게 일반 사용자 계정과 관리자 계정으로 나누어 볼 수 있다. “라즈베리파이” 의 경우 기본적으로 기본 사용자 계정 ‘pi’ 와 관리자 계정 ‘root’가 만들어진 상태로 제공된다.
who
호스트에 로그인한 사용자 정보를 출력한다.
현재 이 시스템에는 “pi” 와 “root” 두 사용자 만이 로그온 되어 있다. “pi” 는 tty1 단말에서 로그온 했고, “root” 는 tty2 단말에서 로그온 한 것을 알 수 있다.
whoami
현재 로그인한 사용자 ID를 출력한다.
키보드에서 “Alt + F2” 를 눌러 tty2 가상단말 화면으로 전환 후, “whoami” 명령을 실행해보자.
다음은 root의 패스워드를 변경하는 과정이다.
먼저 프롬프트( Prompt – 명령을 입력 받을 준비가 되어 있음을 나타내는 라인 앞에 표시되는 문자열로, 간단한 정보를 표시해준다. )를 살펴보자.
이 프롬프트가 표시하고 있는 정보는
- 사용자 명( username ) “pi” 로 로그인( login ) 하였으며,.
- 로그인 한 컴퓨터 명( hostname )은 “raspberryPi” 이다.
라는 것을 알 수 있다. 모든 LINUX 또는 UNIX 컴퓨터의 관리자 계정명이 “root” 이므로 “pi”는 일반 사용자 계정이라는 것도 유추할 수 있다. 패스워드 변경 명령 “passwd”를 사용하여 “root” 계정의 패스워드를 변경해 보자.
“당신은 ‘root’ 계정의 패스워드 정보를 열람하거나, 변경할 수 없다.” 라는 일종의 permission 에러가 발생했다. 이 문제를 해결하는 방법 중 한 가지가 “sudo” 명령을 사용하는 것이다.
sudo
sudo( substitution do ) : ( 관리자를 ) 대신하여 실행.
‘sudo’는 단독으로 실행되는 명령이 아니다. 관리자( root ) 권한이 필요한 명령을 실행해야 할 경우 명령 앞에 덧붙여 사용한다. ( 해당 계정이 sudo 그룹에 속해 있어야 사용할 수 있다. )
에러 메시지 대신 새 패스워드를 입력하라는 메시지가 나타났다. 변경할 패스워드와 Enter 키를 입력하면
한 번 더 변경할 패스워드 입력을 요구하는 메시지가 나타난다. 새로 사용할 패스워드와 Enter 를 다시 한 번 입력하면, 패스워드 업데이트( 변경이 )가 성공했다는 메시지가 출력되고, 프롬프트가 나타난다.
su
root계정의 패스워드를 변경하는 또 다른 한 가지 방법은 “su” 명령을 이용하는 방법이다. “su” 명령을 이용하면 일반 사용자로 로그인하여, 로그아웃 없이 잠시 동안 슈퍼유저( Super User – root ) 권한의 명령어를 실행할 수 있다. 그러면 root계정의 패스워드를 변경해 보자.
실행하면 다음과 같이 패스워드( root계정의 패스워드 ) 입력을 요구한다.
root의 패스워드와 Enter 를 입력하면 아래와 같이 root로 로그인한 프롬프트가 나타난다.
“passwd” 를 입력하고 Enter를 입력하면, 아래와 같이 신규 패스워드 입력 요구 메시지가 나타난다. 새 패스워드와 Enter를 입력한다.
패스워드와 Enter키를 입력하면 한 번 더 변경할 패스워드 입력을 요구하는 메시지가 나타난다.
다시 한 번 root의 패스워드와 Enter 를 입력하면 아래와 같이 root로 로그인한 프롬프트가 나타난다.
앞서 “su” 명령을 실행하기 전의 사용자 “pi” 로 로그인한 상태로 되돌아가기 위해 “exit” 명령과 Enter를 입력한다.
“exit” 메시지가 출력되고, “pi” 로그인한 프롬프트가 나타난다.
passwd
사용자의 login password를 변경하는 명령이다. 다음처럼 단독으로 사용할 경우, 현재 로그인 되어 있는 사용자의 패스워드를 변경하게 된다.
“pi”의 패스워드를 변경한다는 메시지와, 현재 사용중인 패스워드 입력을 요구하는 메시지가 나타난다. 여기서 새로 사용할 패스워드와 Enter를 입력하면 다음과 같이 새로 사용할 패스워드 입력을 요구한다.
새 패스워드와 Enter를 입력하면, 신규 패스워드의 재입력을 요구하는 메시지가 나타난다.
입력한 신규 패스워드와 Enter를 한 번 더 입력하면 패스워드 업데이트( 변경이 )가 성공했다는 메시지가 출력되고, 다시 프롬프트가 나타난다.
logout
네트워크 운영체제인 유닉스나 리눅스에서는 컴퓨터를 사용하기 위해 반드시 login과정을 거쳐야만 한다. 이 로그인 과정에서 빠져 나오는 명령이 바로 logout이다. ( putty를 통한 원격 로그인의 경우 logout 대신 exit를 사용한다. )
1.2 파일 및 디렉토리 관련 명령어
디렉토리( directory )는 MS-Windows에서의 폴더( folder )와 동일한 개념으로 어떤 기준에 의해 파일( file )들을 모아둔 파일 시스템 상의 논리적 공간이다.
pwd( print working directory )
현재 사용자의 경로를 알려준다.
ls
단독으로 사용할 경우 현재 위치의 파일 및 디렉토리 목록을 화면 출력. 뒤에 특정 디렉토리 위치를 적어 줄 경우 해당 디렉토리의 파일 및 디렉토리 목록을 화면 출력.
-a 적용
-l 적용
- al 적용
mkdir( make directory )
디렉토리 생성
rmdir( remove directory )
디렉토리 삭제.
cp( copy )
파일 복사.
mv( move )
파일 이동.
rm( remove )
파일 삭제.
chmod( change mode )
파일 속성 변경
touch
크기가 0인 파일 생성. 파일이 존재할 경우 파일 수정 일시를 명령이 실행된 일시로 변경.
cat
텍스트 파일의 내용을 표준출력장치( 일반적으로 화면 )로 출력.
1.3 시스템 종료 명령
디렉토리( directory )는 MS-Windows에서의 폴더( folder )와 동일한 개념으로 어떤 기준에 의해 파일( file )들을 모아 둔 파일 시스템 상의 논리적 공간이다. MS-Windows에서 폴더라고 부르는 것을 유닉스나 리눅스에서는 디렉토리라고 부른다고 생각하면 100% 정확하다.
shutdown
sudo shutdown –h [minute]
halt
sudo halt ( sudo shutdown –h now or sudo shutdown –h 0 )
reboot
sudo reboot ( sudo shutdown –r now or sudo shutdown –r 0 )