반응형

 

라즈베리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 (예시)

 

 

 

반응형