본문 바로가기

Computer Science/Embedded Software

[Embedded Software] Linux Commands 실습

+ 한국항공대학교 최차봉 교수님의 임베디드 SW 과목 내용을 정리한 글입니다.

 

< 첫 번째 실습 - 백그라운드에 있는 프로그램 실행하기 > 

vi test 를 실행하여 임의의 문서를 작성하라.

vi test

 

ZZ 로 저장하고 끝내야 하는데 ctrl + z를 잘못 눌렀다. 이때 입력한 모든 내용을 복구하고 정상적으로 종료하기 위해 해야할 작업은 무엇인가? 사용된 명령과 용어에 대해 설명하라.

 

bg 를 통해 Backgrouud에서 실행되고 있는 프로세스와 job번호를 확인한다.

bg

 

fg %[job번호] 를 통해 job번호에 해당하는 프로세스를 Frontground로 옮긴다.

fg %1

Esc를 누르고 ZZ로 저장하고 종료한다.


< 두 번째 실습 - 메모리 상태 파악하기>

free 명령을 실행하여 RAM과 Swap 메모리의 크기를 파악하라.

free

 

free 를 통해 메모리 크기를 파악한다. (단위: KB)

Mem: 메인 메모리

Swap: 메모리가 부족할 때 메모리처럼 사용할 수 있는 디스크 (가상 메모리)

total: 총 메모리 (used + free + buff/cache)

used: 현재 프로세스를 처리하기 위해 사용하고 있는 메모리

free: 남은 메모리

shared: 윈도우와 공유한 메모리

buff/cache: 디스크에서 읽어올 때 사용하는 메모리

available: 새로운 프로세스를 실행할 때 사용 가능한 메모리


< 세 번째 실습 - vi 편집 연습하기 >

vi 편집기 구조

sampletext.txt 파일을 pc에 다운로드하라.

sampletext.txt
0.00MB

Clipboard를 이용하여 리눅스 홈 디렉토리에 sampletext.txt를 작성하라.

- 메모장을 열어서 클립보드로 Copy

- 리눅스에서 vi sampletext.txt, insert mode 상태에서 PC Clipboard로 Paste

 

:w [파일 이름] 을 사용하여 sample2.tx와 sample3.txt를 생성하라.

:w sample2.txt 
:w sample3.txt

 

sampletext.txt, sample2.txt, sample3.txt 를 복수 파일 편집하라.

vi sampletext.txt sample2.txt sample3.txt

:n 명령어를 통해 다음 파일로 이동할 수 있다.

:N 명령어를 통해 이전 파일로 이동할 수 있다.

 

+ vi편집기에서는 반드시 구분자 /를 사용해야한다.

:%s/[old]/[new] 명령을 사용하여 sample2.txt에서 "love"를 "LOVE"로 치환하라.

:%s/love/LOVE

 

/LOVE 명령어를 통해 'LOVE' 위치를 찾을 수 있다.

/LOVE

 

:%s/[old]/[new]/gc 명령을 사용하여 sample3.txt에서 "o"를 "O"로 치환하라.

:%s/o/O/gc

< 네 번째 실습 - 다양한 유형의 find 사용하기>

/usr 디렉토리 하위의 모든 디렉토리에서 .txt 확장자를 갖는 모든 파일을 검색하고 결과를 txtlist 파일에 저장하라. (Redirection > 이용)

find /usr -name "*.txt" > txtlist

 

/usr 디렉토리 하위의 모든 디렉토리에서 .txt 확장자를 갖는 모든 파일을 textlist 디렉토리에 복사하라. (-exec cp {} 이용)

mkdir textlist
find /usr -name "*.txt" -exec cp {} textlist \;

 

백업 디렉토리 backYYMMDD를 생성하라.

- BDIR=back$(date+format) 을 생성하고 mkdir에서 사용하라.

BDIR=back$(date +%y%m%d)
mkdir $BDIR

 

/ 디렉토리 하위의 모든 숨겨진 rc 파일을 위에서 만든 백업 디렉토리 backYYMMDD에 백업하라.

- 단, 파일명은 .으로 시작하고 rc로 끝난다.

- permission denied 오류에 대해서는 sudo 명령을 사용하라. (root 권한으로 명령)

sudo find / -name ".*rc" -exec cp {} $BDIR \;

 

ls -al 명령을 통해 확인하라

ls -al

< 다섯 번째 실습 - 정규표현식과 egrep 사용하기 >

sampletext.txt에서 다음 조건을 검색하여 [이름].txt에 저장하라. (Redirection 이용)

 

1. "love"를 포함한 라인

egrep "love" sampletext.txt > love.txt

 

2. "what"이나 "where"를 포함한 라인

egrep "wh(at|ere)" sampletext.txt > wh.text

 

3. 소문자로 시작하는 라인

egrep "^[a-z]" sampletext.txt > a-z.txt

 

4. ","로 끝나는 라인

egrep ",$" sampletext.txt > ,.txt

 

5. A ~ O 대문자를 포함하지 않는 라인

egrep -v "[A-O]" sampletext.txt > AO.txt