gyeong3un2
[유닉스 이론과 실습] 7장 연습문제 본문
01. 다음 중 옳은 것을 고르시오.
① 파일 내용 중 특정 문자열을 찾고 싶을 때는 find 명령을 사용한다.
② 찾고자 하는 문자열은 정규 표현식을 이용하여 표현한다.
③ grep과 egrep은 완전히 동일한 명령이다.
④ which 명령은 조건에 맞는 파일이 디렉토리 어디에 있는지 찾아주는 명령이다.
정답 : ②
① 파일 내용 중 특정 문자열을 찾고 싶을 때는 grep 명령을 사용한다.
③ egrep은 grep과 사용법은 동일하지만 정규 표현식에 사용할 수 있는 특수 문자가 더 추가되기 때문에 완전히 동일하다고 할 수 없다.
- grep : "global regular expressions print", 지정한 패턴을 포함하는 행을 찾는다.
- egrep : egrep은 확장된 정규 표현식을 사용하는 grep 명령이다.
- fgrep : fgrep은 지정한 파일에서 문자열을 찾는 명령으로, 문자열에 포함된 모든 정규식 관련 특수 문자를 일반 문자로 해석해 검색한다.
- find : 조건에 맞는 파일을 지정한 위치에서 찾는다.
- which : 명령어 파일의 위치를 찾아서 그 경로를 출력한다.
02. 다음 중 파일의 내용이나 위치를 검색하는 명령이 아닌 것을 고르시오.
① which
② search
③ grep
④ find
정답 : ② search
- which : 파일의 위치를 검색하는 명령
- find : 파일을 검색하는 명령
- grep : 파일의 내용을 검색하는 명령
03. 정규 표현식으로 적당하지 않은 것은? ★
① ^root
② sh$
③ [0-9]*
④ *.c
정답 : ④ *.c
- *은 앞의 문자와 매칭인데, ④은 뒤에 있기 때문에 적절하지 않다.
04. 어제 내가 생성한 C 프로그램 파일의 위치를 찾기 위해 다음과 같은 명령을 사용했는데, 파일이 찾아지지 않는다. 명령을 고치는 방법으로 적절한 것을 고르시오.
find . -mtime 1 *.c
① -mtime 옵션 대신 -atime을 사용한다.
② -mtime +1 대신 1을 사용한다.
③ . 대신 ~을 사용한다.
④ find 명령 대신 grep 명령을 사용한다.
정답 : ③
① -mtime은 -atime과 같은 역할이다.
-mtime [+|-]n / -atime [+|-]n : 수정 시간이 +n일보다 오래되었거나 -n일보다 짧거나, 부호가 없으면
정확히 n일인 파일을 검색
② +1은 수정 시간이 1일보다 오래된 파일을 검색하는 것이고, 1은 정확히 1일된 파일을 검색하는 것이다.
05. 전화번호를 표현하기 위한 정규식으로 올바른 것을 고르시오.
① [01]+[0-9]*[0-9]*
② [0-9]*-[0-9]*-[0-9]*
③ 010-[0-9]+-[0-9]+
④ 0|1-[0-9]+[0-9]+
정답 : ③
egrep에서 확장된 정규 표현식 특수 문자 + : 앞의 글자가 하나 이상 나옴
※ 다음 질문에 맞는 설명이나 명령을 기술하시오.
06. /etc/services 파일에서 tcp를 포함하고 있는 행의 수를 출력하시오.
정답 : grep -c tcp /etc/services
grep [옵션] 패턴 [파일명]
[옵션]
-n : 행 번호 출력
-c : 패턴을 포함하는 행 수 출력
07. 현재 디렉토리의 모든 파일 중에서 unix를 포함하고 있는 파일의 이름을 출력하시오. ★
정답 : grep -l unix *
-l : 해당 패턴을 포함하는 파일 이름 출력
08. 홈 디렉토리의 *.txt 파일 중에서 Jeremy Lin이라는 이름을 찾으시오.
정답 : grep 'Jeremy Lin' ~/*.txt
09. /etc/hosts 파일에서 #으로 시작하는 모든 행을 행 번호와 함께 출력하시오. ★
정답 : egrep -n '^#' ~/etc/hosts
egrep [옵션] 패턴 [파일명]
[옵션]
-n : 행 번호 출력
10. 현재 사용하는 유닉스 시스템에서 bash나 ksh을 사용하는 사용자의 목록을 출력하시오.(/etc/passwd 파일에 필요한 정보 있음)
정답 : egrep 'bash|ksh' /etc/passwd
11. /etc 디렉토리의 모든 파일 중 심볼릭 링크 파일에 대한 상세 목록 정보를 link.out 파일에 저장하시오. ★
정답 : ls -l /etc | grep ^l > link.out
12. which 명령이 있는 위치를 검색하시오.
정답 : which which
13. 현재 사용 중인 시스템 전체에서 이름이 which인 파일을 검색하되, 오류 메시지는 화면에 출력되지 않도록 하시오.(시스템에 따라 시간이 매우 오래 걸릴 수 있음)
정답 : find / -name which 2> /dev/null
- 만약 오류 메시지를 나중에 검토할 생각이 없고 그냥 화면에서 지워버리는게 목적이라면 굳이 별도의 파일을 생성하여 메시지를 저장할 필요없이 저장 파일을 /dev/null로 지정하면 파일이 생성되지 않고 메시지만 사라진다.
14. 현재 디렉토리의 data 파일 중에서 *나 ^ 문자를 포함하는 행을 출력하시오.
정답 : grep '[\^\*\]' data
15. /tmp 디렉토리에서 내가 생성한 파일 중 grep.dat 파일보다 나중에 수정된 모든 파일을 찾아 현재 디렉토리 아래의 tmp 디렉토리로 복사하시오.
정답 : find /tmp –user $LOGNAME –a –newer grep.dat –exec cp –rf {} tmp \;
16. 내 홈 디렉토리의 모든 디렉토리와 파일 중에서 접근 권한이 777인 것을 검색하시오.
정답 : find ~ -perm 777
-perm 접근 권한 : 8진수 접근 권한 검색
'유닉스 기초 > [유닉스 이론과 실습] 연습문제' 카테고리의 다른 글
[유닉스 이론과 실습] 9장 연습문제 (0) | 2021.05.09 |
---|---|
[유닉스 이론과 실습] 8장 연습문제 (0) | 2021.05.07 |
[유닉스 이론과 실습] 6장 연습문제 (1) | 2021.04.15 |
[유닉스 이론과 실습] 5장 연습문제 (0) | 2021.04.08 |
[유닉스 이론과 실습] 4장 연습문제 (0) | 2021.04.01 |