반응형

sudo (substitute user do  또는 super user do 의미)

  • 로그아웃 없이 다른 사용자의 권한을 사용하여 명령을 실행하도록 하는 명령어
  • "sudo 명령어" 는 root 권한으로 명령어를 실행함
  • /etc/sudoers 파일에 지정되어 있는 사용자만 사용가능

su (substitute user 또는 super user)

  • 로그아웃 없이 다른 사용자로 로그인하는 명령어
  • "su 사용자명" 으로 사용 ("su"는 "su root"와 동일함)
  • 로그인 하려는 계정의 패스워드가 필요함

sudo 명령어의 사용방법

sudo [명령어] : root 계정으로 로그인 없이 [명령어]를 실행 | root 계정의 패스워드 필요

sudo su : root 계정으로 로그인 | 현재 디렉토리 유지 (현재 계정의 쉘 유지) | 현재 계정의 패스워드 필요

sudo -s : root 계정으로 로그인 | 현재 디렉토리 유지 (현재 계정의 쉘 유지) | root 계정의 패스워드 필요

sudo -i : root 계정으로 로그인 | "/root"로 디렉토리 변경 (root 쉘 실행) | root 계정의 패스워드 필요

su 명령어의 사용방법 ([아이디] 파라미터가 없을경우 root 로 치환됨)

su [아이디] : root 계정으로 로그인 | 현재 디렉토리 유지 (현재 계정의 쉘 유지) | root 계정의 패스워드 필요

su - [아이디] : root 계정으로 로그인 | "/root"로 디렉토리 변경 (root 쉘 실행) | root 계정의 패스워드 필요

반응형
반응형

【라즈베리파이 화면 해상도 설정

 

 라즈베리파이를 처음 설치하게 되면 화면사이즈가 모니터에 꽉차지 않고 모니터 크기(해상도) 보다 조금 작게 나타납니다.  이럴때는 HDMI 설정과 관련한 옵션파일을 열어 강제로 지정해주면 간단히 해결 됩니다. 

 

▶ 해상도 강제 지정하기

 

1. 나노 에디터를 이용하여, 아래와 같은 명령어로 부팅환경 설정 파일을 파일을 열어 봅니다. 

: ~$  sudo nano /boot/config.txt     

 

2. 에디터에서 중간쯤에 아래와 같은 문장이 있어요. 

# uncomment to force a specific HDMI mode (this will force VGA) 

# hdmi_group=1

# hdmi_mode=1

 

3. 이것을 일반적으로 22인치 이상 모니터에 많이 사용하는 1920*1080(16:9) 1080p 해상도로 할 경우에는 아래 숫자로 바꾸어 주면 됩니다. 

# uncomment to force a specific HDMI mode (this will force VGA) 

hdmi_group=2

hdmi_mode=82

수정후에는 Ctrl + X ,   저장할까요?  --> Y  엔터    

저장하고 빠져 나온 후,   재부팅 한다.  ( : ~$  sudo reboot )

 

4. 기타 그외에 다른 해상도는 아래를 참고해주세요~

( 여기에서 주의해야 할 것은 ,  자신의 모니터가 지원되지 않는 해상도로 변경해서 재부팅하면 화면이 보여지지 않는 경우가 생기게 되고,  설정값을 원래대로 다시 돌려 놓을 수 없는 상황이 생깁니다.  그렇게 되면, 다른 모니터나 TV 등에 연결해서 볼 수 있는 상태를 찾아다녀서 복구시키거나,  방법이 없는 경우는 운영체제를 다시 설치해야 되는 경우도 발생 할 수 있으니 잘 확인 후 변경하시길 바랍니다.  ^^;;  )  

- hdmi_group

아래값은 HDMI 출력 그룹이 CEA(Consumer Electronics Association, TV에서 일반적으로 사용되는 표준)인지 DMT(Display Monitor Timings, 모니터에서 일반적으로 사용되는 표준)인지를 정합니다. 이 설정은 hdmi_mode와 함께 사용됩니다.

hdmi_group결과

0 EDID로부터 자동 감지
1 CEA
2 DMT

- hdmi_mode

아래 값들은 hdmi_group=2(DMT)인 경우에 유효합니다. (TV용이 아닌 디지털 모니터용에 대한 설정 값들입니다)

 

hdmi_mode해상도주파수비고

1 640x350 85Hz
2 640x400 85Hz
3 720x400 85Hz
4 640x480 60Hz
5 640x480 72Hz
6 640x480 75Hz
7 640x480 85Hz
8 800x600 56Hz
9 800x600 60Hz
10 800x600 72Hz
11 800x600 75Hz
12 800x600 85Hz
13 800x600 120Hz
14 848x480 60Hz
15 1024x768 43Hz Raspberry Pi와 호환되지 않음
16 1024x768 60Hz
17 1024x768 70Hz
18 1024x768 75Hz
19 1024x768 85Hz
20 1024x768 120Hz
21 1152x864 75Hz
22 1280x768 블랭킹 감소
23 1280x768 60Hz
24 1280x768 75Hz
25 1280x768 85Hz
26 1280x768 120Hz 블랭킹 감소
27 1280x800 블랭킹 감소
28 1280x800 60Hz
29 1280x800 75Hz
30 1280x800 85Hz
31 1280x800 120Hz 블랭킹 감소
32 1280x960 60Hz
33 1280x960 85Hz
34 1280x960 120Hz 블랭킹 감소
35 1280x1024 60Hz
36 1280x1024 75Hz
37 1280x1024 85Hz
38 1280x1024 120Hz 블랭킹 감소
39 1360x768 60Hz
40 1360x768 120Hz 블랭킹 감소
41 1400x1050 블랭킹 감소
42 1400x1050 60Hz
43 1400x1050 75Hz
44 1400x1050 85Hz
45 1400x1050 120Hz 블랭킹 감소
46 1440x900 블랭킹 감소
47 1440x900 60Hz
48 1440x900 75Hz
49 1440x900 85Hz
50 1440x900 120Hz 블랭킹 감소
51 1600x1200 60Hz
52 1600x1200 65Hz
53 1600x1200 70Hz
54 1600x1200 75Hz
55 1600x1200 85Hz
56 1600x1200 120Hz 블랭킹 감소
57 1680x1050 블랭킹 감소
58 1680x1050 60Hz
59 1680x1050 75Hz
60 1680x1050 85Hz
61 1680x1050 120Hz 블랭킹 감소
62 1792x1344 60Hz
63 1792x1344 75Hz
64 1792x1344 120Hz 블랭킹 감소
65 1856x1392 60Hz
66 1856x1392 75Hz
67 1856x1392 120Hz 블랭킹 감소
68 1920x1200 블랭킹 감소
69 1920x1200 60Hz
70 1920x1200 75Hz
71 1920x1200 85Hz
72 1920x1200 120Hz 블랭킹 감소
73 1920x1440 60Hz
74 1920x1440 75Hz
75 1920x1440 120Hz 블랭킹 감소
76 2560x1600 블랭킹 감소
77 2560x1600 60Hz
78 2560x1600 75Hz
79 2560x1600 85Hz
80 2560x1600 120Hz 블랭킹 감소
81 1366x768 60Hz
82 1920x1080 60Hz 1080p
83 1600x900 블랭킹 감소
84 2048x1152 블랭킹 감소
85 1280x720 60Hz 720p
86 1366x768 블랭킹 감소

 

- 위 설정값들은 RasberryPi WiKi를 참고 하였습니다. 

 ( https://wikidocs.net/7826 )

 

감사합니다. 

오늘 하루도 행복하세요! ~

 

반응형
반응형

 

라즈베리Pi라즈베리Pi 리눅스(Linux) 명령어 정리

 

라즈베리파이에서(현재 라즈비안 OS) 주로 사용되는 주요 리눅스 명령어에 대한 정리입니다.

▶ OS 시동 및 기본 명령어

   ~$ sudo reboot (라즈베리파이 재시작)

   ~$ sudo shutdown -h now (라즈베리파이 즉시 종료)

   ~$ sudo raspi-config (라즈베리파이 설정화면 띄우기)

   ~$ sudo su (관리자권한 모드:'sudo' 없이 실행가능, 'exit' 유저모드)

 

▶ OS 및 프로그램 update & upgrade :    

   ~$ sudo apt-get update (설치된 프로그램 업데이트 내역 확인)

   ~$ sudo apt-get upgrade (확인된 업데이트가 있을 경우 upgrade)

   ~$ sudo apt-get dist-upgrade (필요한 세부내역까지 모두 업데이트)

 

▶ 프로그램 설치 : 

   ~$ sudo apt-get install 프로그램명

 

▶ 프로그램 삭제 : 

   ~$ sudo apt-get remove 프로그램명

   ~$ sudo apt-get remove --purge 프로그램명(셋업file까지 삭제)

   ~$ sudo apt-get autoremove (사용 안하는 프로그램 자동삭제)

   ~$ sudo apt-get remove 프로그램명

 

▶ 프로그램 설치 : 

   ~$ sudo apt-get install 프로그램명

   

▶ 화면 캡쳐 ( scrot ) : 

   ~$ scrot -d 5   (delay time 5초 뒤 캡쳐)   

   ~$ scrot -c     (d 옵션과 함께 사용하여 캡쳐 count down 표시해줌)   

   ~$ scrot -u      (현재 활성화 창 캡쳐) 

   ~$ scrot -u -b  또는 -ub (현재 활성화 창의 보더-테두리까지 캡쳐) 

 (사용 예 : scrot -d 3 -ub  : 3초 뒤 활성창을 테두리 포함하여 캡쳐)

 (캡쳐 된 파일의 저장 위치 :  home 디렉토리의 pi 폴더, png파일로 저장)

 

   ~$ scrot -cd 5    (5초의 카운트 다운과 함께, 라즈비안 화면 메뉴 등 전체 캡쳐에 용이) 

   ~$ scrot -ucd 5    (5초의 카운트 다운과 함께, 마우스로 선택한 활성윈도우창 화면 만 캡쳐해줌. ) 

 

 

▶ 디스크 용량 확인 ( df ) : 

   ~$ df        ( 1byte 단위)

   ~$ df -h    ( G, M 등의 단위로 정렬해서 보여 줌)

 

주요 Linux 명령어 : 

1)  디렉토리(.... 위치) 관련 명령어
~$ pwd    →   현재의 작업 디렉토리(위치) 알려줌 
 /            → 루트 디렉토리
 .   또는 ./      →  현재 디렉토리  
..   또는 ../      →   상위(부모) 디렉토리
~/        → 유저의 홈 디렉토리
../../      →  부모의 부모 디렉토리

2) touch 명령어
- 비어있는 (용량 0) 파일을 생성함
ex)  ~$ touch  filename.c

3) 파일 이동(옮기기) 명령어  :  mv
ex)  ~$ mv filename.c  ..    (filename.c 파일을 상위 폴더로 이동 시켜라) 
아래 예시는 현재 위치( . ) 에 있는 filename.c 파일을 상위 폴더로 이동시킨 후,  다시 현재 위치로 옮겨오는 예시를 보입니다. 

아래 예시처럼 mv (이동) 명령어를 이용해 같은 위치에 이동시키며 파일 이름을 바꿀 수 있습니다.

4) rm   :  파일 삭제 명령어 
ex) rm new.c    :  new.c 파일을 삭제함

5) mkdir : 디렉토리(폴더) 만들기 
ex)  mkdir pump   :  pump 디렉토리를 생성함,    
또는  한 번에 두 개 또는 여려개의 디렉토리를 생성할 수 있습니다.  
ex)  mkdir pump  pumpkin  :  두 개의 디렉토리를 한 번에 생성함.

그리고, '~$ cd pu' 까지 입력한 상태에서 탭키를 한 번 입력하면, 해당 문장으로 시작되는 디렉토리 중 알파벳 순으로 제일 처음 나오는 폴더의 이름으로 자동 입력시켜주며,  탭키를 이어서 두 번더 입력할 경우,  동일한 문장으로 시작되는 폴더가 있을 경우 모두 보여 줍니다.  (위 이미지 참조)

6) echo 명령어  :   텍스트(문자열)을 바로 보여주는 명령어이며,  디렉션 '>' 을 사용하면 해당 문자열을 파일 형태로 저장시킬 수 있습니다. 
또한, ' cat '명령어는  해당 파일의 내용을 보여줍니다. (아래 이미지)

여기서, 기존 파일에 내용을 추가하려면 이중 디렉션('>>')을 사용하면 됩니다. (아래 이미지)
ex)  echo "i love kimchi" >> food 

 -  디렉션('>') 은  특정 리눅스 명령으로 인한 결과을 화면 대신 파일로 저장시킬 수 있습니다. 
 ex)  ~$ ls -la  > ls_Output 라고 명령하면  ls -la의 결과를 화면 대신, 'ls_Output'이라는 파일로 저장시켜 줍니다. 

 

7)   less 명령어  :   내용이 긴 파일을 한 페이지 단위로 멈춤(보여줍니다) .  
 ex )  less  ls_Output  ↵
 화면에 한 페이지 단위로 멈출 때,  키보드를 누르거나  화살표 키로 다음 페이지로 넘길 수 있습니다.
 마지막 페이지에서 빠져나갈 때는  ' : q '   로 입력 합니다.

8)   gcc 컴파일러 실행  :   C언어로 코딩된 코드를 gcc 컴파일러를 이용하여 컴파일 하고, 실행 시키는 리눅스 명령어 입니다.
 ~$  gcc  hello.c   ↵    #    hello.c 파일을 gcc 컴파일러로 컴파일 하여  디스플레이를 통해 볼 수 있는 결과물 ( a.out )을 생성함
 ~$  ./a.out     ↵         #  화면에 a.out  의 내용을 출력함ㅜ
 

 

 Vim 편집기 관련 사용법 및 명령어 : 

1)   Vim 편집기 설치  :   Vim 편집기는 라즈베리파이에서 코딩을 가장 간편히 할 수 있는 편집기여서 익혀두면 좋은데요,  원래 유닉스 버전에서 유명한 단순 편집기인 Vi를  1991년 Bram Moolenaar 라는 개발자가 개선된(improved) 형태의 편집기를 발표하였는데  그게 바로 Vim 입니다. 
이후, 리눅스 진영에서 Vim 편집기를 현재까지 많이 애용하게 되었습니다. 

물론, IDE 형태의 제대로 된 메뉴를 갖추고 좀더 사용하기 편하고 강력한 기능의 코딩 편집툴도 있지만, 경우에 따라서는 어쩔수 없이 텍스트 기반의 리눅스 터미널 화면에서 처리해야 하는 상황이 분명히 존재하는데 이 때 사용하기 제격인 Vim 편집기의 사용방법은 분명 익혀둘 필요가 있습니다. 

 - 설치 명령어 :   ~$ sudo  apt-get  install vim

1
~$ sudo  apt-get  install vim
cs

  (설치 중간 질문에  'y' 키 눌러주세요)

- Vim 에디터 환경설정 :  Vim 에디터 설치하게 되면,  글자색을 입혀주는 기능이나 좌측에 코딩의 편의를 위한 숫자를 넣어 줄 수 있는데요,  그냥 단순하게 명령어를 사용해서는 환경설정이 저장되지 않아 다음번 Vim을 오픈할 때는 다시 원래대로 돌아간 상태로 로딩되는데요, 
vimrc 라는 환경설정 파일을 만들어 옵션을 입력하여 저장하면 해결됩니다. 
리눅스 파일중에 이름앞에 ' . '(점)이 붙은 파일들은 숨김파일 표시인데요,  환경설정 파일을 숨김파일 형태인 ' .vimrc '로 해서 만들어 주면 됩니다.   그 외에 문법규칙, 환경 변수 등록, 에디터 테마 등을 설정해 둘 수 있습니다.

1
2
~$ cd
~$ vim .vimrc
cs

 먼저,  .vimrc 파일은 홈 디렉토리로 이동해서 설치해야 함으로,  cd  ↵   입력하면 홈디렉토리로 이동하게 되며,  vim  .vimrc  를 입력해서  아래와 같은 내용을 추가해 주면 됩니다. 
vim 에디터 편집화면에서  내용입력시 ' Insert ' 키는 키보드 ' i

1
2
syntax on
set number
cs

  1. 코드에 다른 색을 구분 표시 해주는 설정은  " syntax on " 라고 입력합니다.  
  2. 코드 옆에 숫자 표시를 해주는 설정은  " set number "  입니다. 
입력 완료 후에는  'ESC'키를 한 번 눌러주고  콜론 ' : ' 키를 누룬 후 ,  저장과 빠져나가기 ' wq '  엔터 하면 됩니다.  →   : wq

 아래 모습은 설정 전과 후의 모습입니다. 

.vimrc 환경설정 적용 전 모습
.vimrc 환경설정 적용 후 모습

만약  단순 명령어로 바로 적용할 수는 있지만,  환경설정 파일을 만들지 않고 하게 되면,  리셋되어 있어,  파일을 열때 마다 적용해야 하는 불편함이 있게 됩니다.

- 화면 이동,   Vim 편집화면에서,  처음 Insert 키를 입력하지 않았을 때,  키보드 화살표 키처럼 이동할 수 있는 키가  상-하는 K - J  ,   좌-우는  H - L  키 입니다.

 

 -  vim 파일 편집 화면 속에서,  Insert 등의 편집 모드가 아닌(ESC 된 상태) 상태에서 특정 라인으로 이동 하고 싶다면,   예를 들어 10번 라인,   숫자 '10' 입력후 대문자 'G' 키를 입력하면 됩니다. 
그리고, 해당 라인 끝으로 이동하려면,  '$' 입력하면 되고,  해당 라인 맨 앞으로 이동하려면,  '^' 입력 하면 됩니다.   그리고,  소문자 'w'  키를 계속 누르면 단어 단위로 이동 할 수 있습니다.   여기서  단어 단위 앞쪽으로 이동하고 싶다면 소문자 'b' 키를 누르면 됩니다.

1. 복사

vim에서 복사는 일반모드에서 y 또는 yy 명령을 사용해서 합니다. y는 '뽑아내다' 라는 뜻을 가진 yank 에서 따온 것이죠. 일반모드에서 사용되는 대부분의 명령들은 반복수를 지정할 수 있습니다. 
예를 들어 5yy 이렇게 입력하면 현재 행 기준 5행을 복사하는 것이죠. 

 명령어  설명
 y  레지스터에 복사. 
 yy  현재 행을 레지스터에 복사.
 :y
 Y


2. 붙여넣기

복사 또는 잘라내기로 레지스터에 저장한 내용을 일반모드에서 p 키를 이용해서 붙여넣을 수 있습니다.

 명령어  설명
 p  현재 행에 붙여넣기.  개행 문자가 포함된 경우에는 현재 행의 아래에 붙여넣기.
 :pu
 P  현재 행의 위쪽에 붙여넣기.

 

3. 삭제 (잘라내기)

일반적인 문서 편집기에서 내용을 삭제할 때는 키보드의 Delete 키를 사용하는데, vim 에서도 마찬가지로 입력모드에서 Delete 키를 이용해서 삭제할 수 있습니다. 일반모드에서 x 키를 이용해서 한글자씩 삭제할 수도 있습니다. 
그런데 실제로는 vim에서 삭제를 한다기 보다는 잘라내기를 수행하게 됩니다.

 명령어  설명
 x  커서에 위치한 문자 삭제.
 dd  현재 행 삭제
 :d
 D  현재 컬럼 위치에서 현재 행의 끝부분 까지 삭제  
 d$
 J  아래 행을 현재 행의 끝에 붙임 (아래 행의 앞부분 공백은 제거됨)

 

4. 실행취소

vim에서는 매우 강력한 실행취소 기능을 제공합니다. 일반모드에서 u 명령을 통해 직전 명령을 취소할 수 있는데요. u 명령을 계속해서 사용하면 해당 문서를 처음 열었던 상태까지 돌아갈 수 있습니다. 이 상태에서 Ctrl+R 명령으로 최근 상태까지 다시 복귀가 가능하기 때문에 편집하다가 실수로 잘못 편집하거나 이전 상태를 확인하고 다시 편집하려고 할 때 유용하게 사용할 수 있습니다. 

 명령어  설명
 u  undo 기능. 바로 직전 명령 취소. (이전 상태로 돌아감)
 Ctrl+R  redo 기능. 바로 직전에 취소했던(undo) 명령 되돌림.

 

gcc 컴파일 관련 명령어 2 : 

1)  컴파일 하기 ①
~$ gcc 파일명.c
~$ gcc hello.c

2)  컴파일 하기 ②
~$ gcc 소스_파일.c  -o  실행_파일
~$ gcc hello.c  -o  hello.out      또는 확장자 생략가능

3)  실행 하기
~$ ./a.out    또는
~$ ./hello.out

4)  컴파일과 실행 동시에하기
~$ gcc ./hello.c  &&  ./a.out

5)  디버그 정보 넣기
~$ gcc  -g  hello.c 
~$ a.out     hello.c

~$ a.out  hello.c

-g 옵션은 디버그 관련된 정보를 a.out 넣어주는 역할을 함.

 

6)  디버그 (Debug)
~$ gdb  a.out    (또는 gdb -q a.out)
~~~~~~

 

(gdb)  disassemble  main   (또는 disas main)  ( main() 함수의 어셈블리 명령어가 나옴 )
0x08034002f  .....
.......

(list 명령어)    ( 코드의 리스트를 보여줌)


(gdb) list
#include <stdio.h>
int main () {
~~~~
}

(break 라인또는 위치 명령어)   ( break 중지점을 넣어 줌, break 뒤에 줄 수를 입력하거나 특정함수명 또는 main함수 입력)
(gdb) break main
~~~~

(run 명령어)    ( 프로그램을 실행시킴)
(gdb) run

(ir 명령어)    ( 또는 info register , 현재 중지점에서의 모든 레지스터의 값을 보여줌)
(gdb) ir    또는 info register

(x  명령어)    ( 또는 examine , 해당 주소의 메모리에 어떤 값이 들어 있는지 확인함)
(gdb) x(/숫자 진법 바이트) 주소값 또는 레지스터 이름     
(진법옵션:   /o , /x , /u , /t  a  →  8진법/16진법/부호없는 10진법/2진법) 

(gdb)  x/2x eip
(gdb)  x/8xb eip 
(gdb)  x/8xh eip 
(gdb)  x/8xw eip 

(/b, /h, /w, /g  → 단일바이트/, 2바이트하프워드/, 4바이트워드/, 8바이트 자이언트)

 

 주요 Linux 명령어 3 : 

1)  IP 확인
~$ hostname  -I       (대문자 i)

   →   192.168.10.195 (예시)

 

 

 

반응형