gyeong3un2
[유닉스 이론과 실습] 5장 연습문제 본문
01. 내가 사용중인 셸의 종류를 확인하는 방법으로 적합하지 않은 것을 고르시오.
① echo $SHELL
② grep user1 /etc/passwd
③ 프롬프트의 모양을 확인한다.
④ bash --version
정답 : ② grep user1 /etc/passwd
- echo $SHELL : 내가 사용중인 셸의 종류를 확인하는 방법
- grep user1 /etc/passwd : grep 명령은 지정한 파일(/etc/passwd)에서 특정 문자열(user1)이 있는 행을 찾아 그 내용을 화면에 출력한다.
- bash --version : 버전 정보를 비롯한 배시 셸의 모든 정보를 알 수 있다.
02. 서브 셸을 종료하는 명령이 아닌 것은?
① logout
② exit
③ [Ctrl] + C
④ [Ctrl] + D
정답 : ③ [Ctrl] + C
- [Ctrl] + C : 현재 명령을 중지하는 명령이다.
- 서브 셸을 종료하는 명령은 logout, [Ctrl] + D, exit 등 일반 셸의 로그아웃 명령과 같으나 대부분의 셸이 exit을 사용할 것을 추천하고 있다.
03. 임의의 문자열을 나타내는데 사용되는 특수 문자는 무엇일까?
① *
② ?
③ [ ]
④ ~
정답 : ① *
- * : 임의의 문자 또는 문자열
- ? : 임의의 한 문자
- [ ] : 한 문자 위치를 위한 문자의 범위 표시
- ~ : 홈 디렉토리
04. 셸에서 사용 가능한 변수에 대한 설명으로 맞는 것을 고르시오.
① 셸 변수는 수정, 삭제가 가능하다.
② 셸 변수는 한 번 설정하면 수정할 수 없다.
③ 환경 변수는 한 번 설정하면 수정할 수 없다.
④ 서브 셸을 생성하면 모든 환경 변수는 리셋된다.
정답 : ① 셸 변수는 수정, 삭제가 가능하다.
05. 다음 중 배시 셸에서 사용하는 환경 설정 파일이 아닌 것은 무엇인가?
① /etc/.profile
② /etc/.login
③ $HOME/.profile
④ $HOME/.bashrc
정답 : ② /etc/.login
- /etc/.login : C 셸의 시스템 초기화 파일이다.
06. 표준 입출력 장치가 무엇인지 설명하시오.
정답 : 유닉스 셸이 작업을 수행하는 데 필요한 정보를 받아들이는 장치이다.
07. > 사용시 기존 파일의 내용을 덮어쓸 수 있다. 이를 방지하기 위한 방법을 설명하시오. ★
정답 : set -o noclobber
해당 이름의 파일이 있는지 'ls 파일명'으로 먼저 확인한 후에 사용해야 한다.
- ls 파일명 : 파일명이 있는지 확인
- ls -al > 파일명 : ls 명령의 수행 결과를 파일명에 저장
- date > 파일명 : date 명령의 수행 결과를 파일명에 저장
- cat 파일명 : 명령의 실행 결과를 보여줌
08. " "와 ' '의 차이점을 설명하시오. ★
정답 : " "는 $, `, \을 제외한 모든 셸 문자를 무시하는 문자이고 ' '는 모든 셸 문자를 무시하는 문자이다.
09. 현재 사용 중인 셸이 무엇인지 확인하는 방법을 두 가지 적으시오. ★
정답 : echo $SHELL, grep $LOGNAME /etc/passwd
10. 배시 쉘이 사용하는 초기화 파일의 이름을 적고 각각의 특징을 설명하시오. ★
정답 : 배시 쉘의 시스템 초기화 파일은 /etc/profile이고, 사용자 초기화 파일에는 $HOME/.bash_profile, $HOME/.bash_login, $HOME/.profile, $HOME/.bashrc, 그리고 $HOME/.bash_logout이 있다.
시스템 초기화 파일은 시스템을 사용하는 전체 사용자의 공통 환경을 설정하는 파일이다.
사용자 초기화 파일은 각 사용자의 홈 디렉토리에 있으며 사용자가 많은 설정을 수정하고 관리한다.
※ 다음 작업을 수행하기 위한 명령을 기술하시오.
11. 현재 디렉토리에서 숫자로 시작하는 모든 파일의 상세 정보를 한 화면씩 출력하시오. ★
정답 : ls -al [0-9]* | more
ls [0~9]* : 파일명이 숫자로 시작하는 모든 파일 목록을 출력한다.
ls -al / | more : 루트 디렉토리에 있는 모든 파일의 상세 정보를 한 화면씩 출력한다.
12. 현재 디렉토리에 있는 파일명의 확장자인 c인 모든 파일을 /tmp로 복사하시오.
정답 : cp *.c /tmp
cp * /tmp : 현재 디렉토리의 모든 파일을 /tmp 디렉토리로 복사한다.
cp *.c _/C : 확장자인 c인 모든 파일을 상위 디렉토리 밑의 C 디렉토리로 복사한다.
13. ls 명령 실행시 ls -aF가 실행되도록 설정하시오.
정답 : alias ls='ls -aF'
14. 현재 히스토리 번호가 600번, 사용 중인 시스템 이름이 cookbook이고, 로그인명이 user1이라면 프롬프트가 600:usr1@cookbook이 되도록 설정하시오. ★
정답 : PS1='\!:\u@\h'
\! : 히스토리 번호
\u : 현재 사용자 이름
\h : 호스트 이름
15. 이전의 작업 디렉토리로 이동하시오.
정답 : cd -
16. 홈 디렉토리에 있는 모든 파일의 상세 정보는 파일 ls.out에, 오류 메시지는 ls.err 파일에 저장하되, 하나의 명령으로 실행하시오. ★
정답 : ls -al ~ > ls.out 2> ls.err
- 2> : 오류 리다이렉션
명령 2> 파일명 : 표준 오류 메시지를 파일에 저장한다.
17. cd 명령으로 현재 작업 디렉토리를 변경할 때 현재 디렉토리, /etc 디렉토리, 내 홈 디렉토리 순서대로 디렉토리를 찾도록 환경을 설정하시오.
정답 : CDPATH=.:/etc:~
18. 이전에 실행했던 명령들의 목록이 다음과 같을 때 물음에 답하시오.
user1@Solaris11:~$ fc -1 . . . 569 cd . . 570 rmdir Test 571 cd~/Unix/ch3 572 vi t2 573 cd Unix 574 history 575 fc -1 576 cp *. c ~/C 577 mkdir ~/C 578 clear user1@Solaris11:~$ |
1) 576번 작업에서 현재 디렉토리의 모든 c 소스 파일을 홈 디렉토리 아래의 C 디렉토리로 복사하려고 했는데, ~/C
디렉토리가 없어서 실패하였다. 그래서 그 다음 작업으로 ~/C 디렉토리를 생성하였고, 576번에서 작업하였던
복사 명령을 다시 실행하려고 한다. 해당 작업을 반복하는 방법을 두 가지 이상 적으시오.
정답 : !576, !cp
- !cp :
2) 방금 작업했던 복사 명령을 활용하여 현재 디렉토리의 모든 c 소스 파일을 /tmp로 복사하려고 한다. 어떻게 하면
되겠는가? ★
정답 : ^~/C^/tmp
3) 571번에 있는 cd 명령을 실행하지 말고 출력만 하시오.
정답 : !571:p
4) 방금 작업한 명령을 반복하는 방법을 두 가지 적으시오.
정답 : !!, !-1
'유닉스 기초 > [유닉스 이론과 실습] 연습문제' 카테고리의 다른 글
[유닉스 이론과 실습] 7장 연습문제 (0) | 2021.04.23 |
---|---|
[유닉스 이론과 실습] 6장 연습문제 (1) | 2021.04.15 |
[유닉스 이론과 실습] 4장 연습문제 (0) | 2021.04.01 |
[유닉스 이론과 실습] 3장 연습문제 (0) | 2021.03.25 |
[유닉스 이론과 실습] 2장 연습문제 (2) | 2021.03.14 |