본문 바로가기
오래된 글

시스템 프로그래밍 실습과제01 보고서

by pagehit 2018. 9. 7.
반응형

[sys01]HW01.hwp


시스템 프로그래밍

실습 과제(01)

01분반

 

실습 1. 디렉토리 생성, 권한 변경, 목록출력 실습

- 자신의 학번으로 디렉토리를 생성

- 디렉토리 접근 권한을 소유자 전용으로 변경

- 변경된 권한을 화면에 출력

- Hint : chmod [권한] [대상폴더]

 

그림입니다.

 

<구현방법>

명령어 mkdir(MakeDirectory)를 사용하여 학번 디렉터리를 생성해준다.(mkdir [디렉터리 명])

명령어 ls al을 이용하여 파일의 소유자, 권한, 크기, 날짜 등의 정보를 확인한다.

학번 디렉터리의 권한은 사용자가 읽고, 쓰고, 실행할 수 있고, 그룹이 읽고, 실행할 수 있고, 타인이 읽고 실행할 수 있다는 것을 확인 할 수 있다.

명령어 chmod를 이용하여 권한을 변경해 준다. 사용자를 제외한 그룹, 타인에게는 권한을 주지 않으므로 숫자 700을 이용하여 권한을 적용시킬 수 있다.

 

 

실습 2. 복사, 압축해제, 이동(이름변경), 압축 실습

- /home/syspro/lab01.tar.gz을 복사

- 압축해제

- lab01 디렉토리를 학번으로 이름 변경

- 학번 디렉토리를 [분반_학번.tar.gz]로 압축

 

그림입니다.

 

<구현방법>

명령어 cp(Copy)를 이용하여 파일 및 디렉터리를 복사한다. 원본파일(/home/syspro/lab01.tar.gz)을 복사할 위치인 현재 디렉터리(.)로 복사한다.

압축을 푸는 명령어 tar xvfz [파일명]을 이용하여 압축된 파일을 풀어준다.

명령어 mv(Move)는 파일 및 디렉터리를 이동할 때 쓰이지만 파일 이름을 변경할 때도 쓰이므로 명령어 mv를 이용하여 lab01 파일을 학번으로 이름을 변경해 준다.

그리고 이름을 변경해준 학번 디렉터리를 압축을 하는 명령어 tar cvfz를 이용하여 압축해 준다.

압축을 해줄 때는 파일명 뒤에 .tar.gz를 붙여주어야 한다.

 

 

 

실습 3. 삭제 실습

- 영문이름으로 디렉토리를 생성

- 영문이름 디렉토리 안에 학번 디렉토리를 생성

- 한번에 생성한 2개의 디렉토리 삭제

 

그림입니다.

 

<구현방법>

명령어 mkdir를 이용하여 영문이름으로 디렉토리를 생성한다.

cd를 이용해 영문이름 디렉토리로 이동한 다음 학번 디렉토리를 생성한다.

cd ..을 이용해 상위 디렉토리로 이동하고, rm r 명령어를 이용해 recursive하게 영문이름 디렉토리를 삭제해준다.

 

 

실습 4. 검색 실습

- /home/syspro/lab01.tar.gz을 복사

- 압축 해제

- lab01 디렉토리에서 확장자.c 파일이 어디에 위치하는지 검색

- lab01 디렉토리에서 test2.c 파일이 어디에 위치하는지 검색

주의 : 반드시 Find 이용

 

그림입니다.

 

<구현방법>

실습3의 방법을 이용하여 /home/syspro/lab01.tar.gz을 복사하고 압축을 풀어준다.

lab01 디렉터리에서 파일을 검색하기 위해 먼저 cd 명령어를 이용하여 현재 디렉터리에서 lab01 디렉터리로 이동한다.

그리고 디스크에 저장된 각종 파일/디렉터리를 검색하는 명령어인 find를 이용하여 .c 파일이 어디에 위치하는지 검색한다.

test2.c 파일을 찾을 때에도 명령어 find name을 이용하여 검색한다.

 

 

 

실습 5. 백업 실습

- 백업 디렉토리(/backup)을 생성

- 본인 계정의 모든 파일을 백업

주의 : 반드시 tar 이용

 

그림입니다.

원본 그림의 이름: CLP000037dc71ab.bmp

원본 그림의 크기: 가로 675pixel, 세로 821pixel

 

<구현방법>

디렉터리를 생성하는 명령어인 mkdir를 이용하여 백업(backup) 디렉터리를 만든다.

백업 디렉터리 안에 계정의 모든 파일을 백업하기 위해 먼저 현재 디렉터리에서 백업디렉터리로 이동을 하고, 압축을 하는 명령어인 tar cvfz를 이용 하여 계정의 모든 파일을 backup.tar.gz로 압축해 준다.

 

 

 

실습 6. Pipe 실습

- lab01의 파일 구조 출력 결과를 I/O Redirection을 이용해서 list.txt에 저장

- lab01 디렉토리에서 파일의 내용이 file02인 것을 찾아서 출력

Hint : 명령어 find, xargs, grep, pipe(>)를 모두 사용

 

그림입니다.

원본 그림의 이름: CLP000037dc0006.bmp

원본 그림의 크기: 가로 795pixel, 세로 401pixel

 

<구현방법>

lab01의 파일을 찾아 구조를 출력해 주기 위해서 find lab01 ls를 이용한다. 그리고 이 출력 결과를 파이프(|)를 사용하여 오른쪽 명령어의 입력으로 보내준다. 이 입력을 매개변수로 활용하여 list.txt에 저장하기 위해 xargs명령어와 >를 이용한다. (find lab01 0ls | xargs > list.txt)

명령어 cat을 이용하여 텍스트 파일의 내용을 출력할 수 있다.

명령어 grep을 이용하여 lab01 디렉터리에서 파일의 내용이 file02 인 것을 찾아서 출력해 준다. 이때 하위 디렉터리 까지 검색하기 위해서 r 옵션을 선택해서 recursive하게 하위 디렉터리까지 검색한다.

 

 

 

 

실습 7. cat 명령어를 사용하여 grepfile을 만들어라

- 리눅스에서 파일 만드는 법

cat > 파일명

내용 입력

입력 후 Ctrl + D

 

그림입니다.

원본 그림의 이름: CLP000017c00001.bmp

원본 그림의 크기: 가로 675pixel, 세로 236pixel

 

<구현방법>

리눅스에서 파일을 만들 때에는 cat > [파일명]을 이용하여 내용을 입력하여 파일을 만들어 준다.

 

 

실습 8. grepfile에서 the 글자가 있는 줄의 목록을 걸러 줄 번호와 함께 화면에 출력하라

 

그림입니다.

원본 그림의 이름: CLP000017c00002.bmp

원본 그림의 크기: 가로 675pixel, 세로 131pixel

 

<구현방법>

명령어 grep을 이용하여 the 글자가 포함되어 있는 줄을 출력해 준다.

이때 번호와 함께 출력하기 위해서 옵션 n을 선택해준다.

 

 

 

실습 9. grepfile에서 your 라는 단어가 없는 줄의 목록을 걸러 result 파일에 출력하라

 

그림입니다.

원본 그림의 이름: CLP000017c00003.bmp

원본 그림의 크기: 가로 675pixel, 세로 206pixel

 

<구현방법>

명령어 grep에서 pattern을 포함하지 않는 라인을 출력하는 옵션인 v을 이용하여 your라는 단어가 없는 줄의 목록을 걸러낸다.

그리고 이것을 파이프(|), xargs, >를 이용하여 result에 저장한다. (실습 6의 방법과 같다)

명령어 cat을 이용하여 result에 저장된 목록을 출력하면 된다.

 

 

실습 10. grepfile에서 your 라는 단어가 없는 줄의 수를 출력하라(cont )

 

그림입니다.

원본 그림의 이름: CLP000017c00004.bmp

원본 그림의 크기: 가로 675pixel, 세로 116pixel

 

<구현방법>

명령어 grep에서 pattern을 포함하지 않는 라인 출력하는 옵션 v와 패턴과 일치하는 라인의 개수만 출력하는 옵션 c를 이용하여, vc를 이용하여 grepfile에서 your라는 단어가 없는 줄의 수를 출력해준다.

 

 

 

vi 에디터로 testfile을 만들어라

copy and paste 명령어를 사용해서 상위 2줄의 내용을 copy해서 2paste 한다.

 

그림입니다.

원본 그림의 이름: CLP000017c00005.bmp

원본 그림의 크기: 가로 675pixel, 세로 326pixel

 

vi [파일명]을 이용하여 vi에디터로 testfile을 만든다.

표준모드에서 I, a, o, s 4개 중 하나의 키를 입력해 입력모드로 바꾸어 내용을 입력한다.

내용을 입력한 후 ESC 키를 눌러 표준모드로 돌아가서 v키로 블록을 지정해 준 다음, yy로 복사를 하고, p키를 이용해 붙여넣기 한다.

 

 

 

실습 11. 같은 행에서 처음과 마지막으로 이동하는 명령어 조사

 

같은 행에서 처음으로 이동하는 명령어는 ^ 또는 home 이고, 마지막으로 이동하는 명령어는 $ 또는 end 이다.

 

 

 

실습 12. 문서의 시작과 끝으로 한 번에 이동하는 명령어 조사

 

명령어 gg는 첫 번째 행으로 이동하고, 명령어 G는 마지막 행으로 이동한다.

 

 

 

실습 13. 위 문서에서 모든 youI로 변경한다.

조건 : vi 에디터의 기능인 치환 기능을 이용해서 한 번에 변경

그림입니다.

원본 그림의 이름: CLP000017c00006.bmp

원본 그림의 크기: 가로 675pixel, 세로 326pixel

 

:%s/you/I/g를 이용 현재 파일에서 you를 모두 I로 치환한다.

 

 

 

실습 14. 두 번째 줄 뒤에 “replace worlds, delete worlds" 라인을 추가

 

표준모드에서 커서를 두 번째 줄에 옮긴 뒤 A를 눌러 두 번째 줄 맨 뒤에 라인을 추가 시킬 수 있다.

또는 직접 커서를 두 번째 줄 맨 뒤로 옮긴 다음에 라인을 추가한다.

 

그림입니다.

원본 그림의 이름: CLP000017c00007.bmp

원본 그림의 크기: 가로 675pixel, 세로 326pixel

 

 

 

실습 15. 3번째 단락을 한번에 vi 명령어를 이용해서 삭제한다.

 

그림입니다.

원본 그림의 이름: CLP000017c00009.bmp

원본 그림의 크기: 가로 675pixel, 세로 326pixel

 

 

:7,8 d를 이용해서 세 번째 단락인 일곱 번째 여덟 번째 줄을 삭제한다.

 

반응형

댓글