리눅스 마스터 2급

[리.마 2급 기출 풀이]_2022.06.11_(21~40)

ITsubin 2022. 8. 25. 21:06

21. 다음 중 백그라운드로 실행시킨 프로세스를 확인하는 명령어로 알맞은 것은?

    job

    jobs

    fg

    bg

 

백그라운드로 실행시킨 프로세스를 확인하는 명령어는 "jobs" 입니다.

작업이 중지된 상태, 백그라운드로 진행중인 상태, 변경되었지만 보고되지 않은 상태 등을 표시합니다.

 

프로세스 관련 주요 명령어는 아래와 같습니다.

명령어 설명
ps 현재 실행 중인 프로세스의 상태를 보여주는 명령어
(CPU 사용도가 낮은 순서대로 출력)
pstree 실행 중인 프로세스들을 트리구조로 보여주는 명령어
jobs 작업 중지, 백그라운드, 변경되었지만 보고되지 않은 상태 등을 보여주는 명령어
bg 포그라운드 작업을 백그라운드 작업으로 전환
fg 백그라운드 작업을 포그라운드 작업으로 전환
kill 프로세스 종료 명령어
killall 같은 데몬의 여러 프로세스를 한 번에 종료
nice 프로세스 사이의 우선순위를 확인하고 우선순위를 변경하는 명령어
renice 이미 실행 중인 프로세스의 우선순위를 변경하는 명령어
(프로세스 소유자, 루트 권한자만 명령 가능)
top 리눅스 시스템의 운영 및 프로세스 상태를 실시간으로 모니터링
nohup 프로세스가 중단되지 않고 백그라운드로 작업을 수행하게 해주는 명령어

22. 다음 설명에 해당하는 용어로 가장 알맞은 것은?

주기적이고 지속적인 서비스 요청을 처리하기 위해 메모리에 계속 상주하고 있는 프로그램으로 백그라운드 프로세스의 일종이다.

    init

    inetd

    standalone

    daemon

 

해당 설명은 데몬 프로세스(Daemon Process)에 대한 내용입니다.

특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행됩니다.

 

프로세스의 종류 및 설명은 아래와 같습니다.

데몬 프로세스 > 특정 서비스를 제공하기 위해 존재하며 리눅스 커널에 의해 실행
> 주기적이고 지속적인 서비스 요청을 처리하기 위해 메모리에 계속 상주
고아 프로세스 > 자식 프로세스가 아직 실행중일 때 부모 프로세스가 먼저 종료된 자식 프로세스
좀비 프로세스 > 자식 프로세스가 실행을 종료했음에도 프로세스 테이블 목록에 남아있는 경우
> defunct 프로세스라고 나오기도 함

23. 다음 중 실시간으로 CPU 사용량을 확인할 때 이용하는 명령어로 알맞은 것은?

    top

    pgrep

    nohup

    free

 

실시간으로 CPU 사용량을 확인할 때 사용하는 명령어는 "top" 명령어입니다.

리눅스 시스템의 운영 상태 및 프로세스 상태를 실시간으로 모니터링할 때 사용합니다.

 

프로세스 관련 주요 명령어는 아래와 같습니다.

명령어 설명
ps 현재 실행 중인 프로세스의 상태를 보여주는 명령어
(CPU 사용도가 낮은 순서대로 출력)
pstree 실행 중인 프로세스들을 트리구조로 보여주는 명령어
jobs 작업 중지, 백그라운드, 변경되었지만 보고되지 않은 상태 등을 보여주는 명령어
bg 포그라운드 작업을 백그라운드 작업으로 전환
fg 백그라운드 작업을 포그라운드 작업으로 전환
kill 프로세스 종료 명령어
killall 같은 데몬의 여러 프로세스를 한 번에 종료
nice 프로세스 사이의 우선순위를 확인하고 우선순위를 변경하는 명령어
renice 이미 실행 중인 프로세스의 우선순위를 변경하는 명령어
(프로세스 소유자, 루트 권한자만 명령 가능)
top 리눅스 시스템의 운영 및 프로세스 상태를 실시간으로 모니터링
nohup 프로세스가 중단되지 않고 백그라운드로 작업을 수행하게 해주는 명령어

24. 다음 중 현재 실행 중인 포어그라운드 프로세스의 작업을 백그라운드 프로세스로 전환하기 위해 사용하는 키 조합으로 알맞은 것은?

    [ctrl]+[z]

    [ctrl]+[c]

    [ctrl]+[l]

    [ctrl]+[d]

 

현재 실행 중인 포그라운드 프로세스 작업을 백그라운드 프로세스로 전환하기 위해서는

bg 명령어를 사용하거나, [ Ctrl ] + [ z ] 키 조합을 사용합니다.

 

포그라운드 작업을 종료할 때는 [ Ctrl ] + [ c ] 키 조합을 사용합니다.


25. 다음 중 [ctrl]+[c] 키 조합으로 발생하는 시그널의 번호 값으로 알맞은 것은?

    1

    2

    15

    20

 

[ Ctrl ] + [ c ] 키 조합으로 발생하는 시그널은 2번의 SIGINT입니다.

 

시그널 목록을 확인하는 명령과 옵션은 아래와 같습니다. (Signal의 종류는 OS마다 차이가 있을 수 있습니다.)

kill -l

 

주요 시그널 번호 목록은 아래와 같습니다.

1 SIGHUP 터미널에서 접속이 끊겼을 때 보내지는 시그널. (kill -1 옵션)
2 SIGINT [ Ctrl ] + [ c ]. 실행 중지 시그널.
3 SIGQUIT [ Ctrl ] + [ \ ]. 실행 중지 시그널.
9 SIGSEGV 프로세스 강제 종료 시그널. (kill -9 옵션)
15 SIGTERM 프로세스 정상 종료 시그널. kill 명령의 디폴트 시그널. (kill -15 옵션)
20 SIGTSTP [ Ctrl ] + [ z ]. 실행 정지 후 다시 실행을 계속하기 위해 대기시키는 시그널.

26. 작업번호가 2번인 백그라운드 프로세스를 종료하려고 한다. 다음 ( 괄호 ) 안에 들어갈 내용으로 알맞은 것은?

# kill ( 괄호 )

    2

    &2

    +2

    %2

 

작업 번호로 프로세스를 종료할 때는 작업번호의 앞에 "%"를 붙입니다.

 

kill 명령어의 형식 및 주요 옵션은 아래와 같습니다.

 # 형식
kill [옵션] [시그널번호 or 시그널명] [PID or %작업번호]
옵션 설명
-l 시그널 리스트(종류) 출력
-s 시그널 번호
-s 시그널명
전달할 시그널의 종류 지정
-1 프로세스 재시작. (HUP; HangUP)
-9 프로세스 강제 종료

27. 프로세스아이디(PID) 1222 bash 프로세스의 우선순위(NI)값이 0이다. 다음 중 이 프로세스의 NI값을 10으로 변경하여 우선순위를 높이는 명령으로 알맞은 것은?

    nice 10 1222

    nice -10 1222

    nice 10 bash

   ④ nice -10 bash

 

NI 값을 음수 10으로 변경하려면 아래와 같이 명령어를 사용합니다.

nice --10 bash

 

nice의 형식 및 옵션에 대한 설명은 아래와 같습니다.

 # 형식
 nice [옵션] 프로세스명
옵션 설명
-n 조정수치
-조정수치
--adjustment 조정수치
명령의 우선권에 조정수치를 더함
(양수 값 : - )
(음수 값 : -- )

28. cron을 이용해서 해당 스크립트를 매주 월요일 오전 10 2분에 주기적으로 실행하려고 한다. 다음 ( 괄호 ) 안에 들어갈 내용으로 알맞은 것은?

( 괄호 ) /etc/check.sh

    1 10 * * 2

    2 10 * * 2

    1 10 * * 1

    2 10 * * 1

 

cron을 이용하여 script를 주기적으로 실행하는 형식은 다음과 같습니다.

분 (min) 시 (hour) 일 (day) 달 (month) 요일 명령어

( 분 - 시 - 일 - 달 - 요일 - 명령어 )

따라서 2분, 10시, 월요일(1) 순서로 설정합니다.

분 (min) 시 (hour) 일 (day) 달 (month) 요일 명령어
2 10 * * 1 /etc/check.sh
2 10 * * 1 /etc/check.sh

29. 다음 중 백그라운드로 실행시킨 프로세스의 우선순위값을 확인하는 명령으로 알맞은 것은?

    jobs -p

    jobs -l

    ps aux

    ps l

 

( 백그라운드로 실행시킨 프로세스를 확인하는 명령어 "jobs" 와 혼동 주의 )

( jobs의 -l 옵션은 프로세스 그룹 ID를 state 필드 앞에 표시해주는 옵션 )

 

프로세스의 "우선순위값"을 확인하려면 ps 명령어와 -l 옵션을 사용해야 합니다.

ps 명령어는 현재 실행 중인 프로세스의 상태를 보여주는 명령어입니다.
ps의 -l 옵션은 자세한 정보를 출력하는 옵션입니다.

 

아래는 ps 명령과 ps -l 명령의 출력 예시입니다.

[root@localhost ~] # ps
PID	TTY		TIME	CMD
2561	pts/0	  00: 00: 00	bash
2773	pts/0	  00: 00: 00	ps
[root@localhost ~] # ps -l
F S	UID	PID	PPID	C	PRI	NI	ADDR	SZ	WCHAN	TTY	      TIME	CMD
4 S	  0    2561     2553	0	80	0	-	29107	do_wai	pts/0	00: 00: 00	bash
0 R	  0    2798     2561	0	80	0	-	38331	-	pts/0	00: 00: 00	ps

ps -l 명령의 " PRI "가 바로 실행 우선순위 값으로, 값이 작을수록 우선순위가 높습니다.


30. 다음 ( 괄호 ) 안에 들어갈 내용으로 알맞은 것은?

CentOS 7 버전 리눅스에서는 부팅을 시작하면 커널이 ( ㉠ ) (이)라는 최초의 프로세스를 발생시키고, 이후 시스템 운영에 필요한 데몬을 비롯한 다른 프로세스들은 ( ㉡ ) 방식으로 ( ㉠ ) 프로세스의 자식 프로세스를 생성하게 된다.

   ① ㉠ init,  exec

   ② ㉠ init,  fork

   ③ ㉠ systemd,  exec

   ④  systemd,  fork

 

CentOS 7 리눅스의 최초 프로세스명은 "systemd"입니다.

이후 다른 프로세스들은 "fork" 방식으로 systemd의 자식 프로세스를 생성합니다.


31. 다음 중 GNC 프로젝트의 일환으로 만들어진 셸로 알맞은 것은?

    ksh

    bash

    dash

   ④ csh

 

GNC...?

bash 셸은 GNU 프로젝트의 일환으로 개발되었습니다.


32. 다음은 환경변수를 이용해서 로그인 셸을 확인하는 과정이다. ( 괄호 ) 안에 들어갈 내용으로 알맞은 것은?

$ echo ( 괄호 )

    $HOME

    $SHELL

    $LOGIN

    $TERM

 

사용자의 로그인 셸을 확인하는 방법으로 SHELL 변수의 내용을 확인하는 방법이 있습니다.

SHELL 변수의 내용을 확인하려면 echo $SHELL 명령을 사용합니다.

 

로그인 셸을 확인하는 방법은 아래와 같습니다.

1) /etc/shells 확인

  > /etc/shells 파일에서 사용할 수 있는 셸들을 확인할 수 있습니다.

2) /etc/passwd 확인

  > /etc/passwd 파일에서 계정마다 할당된 셸을 확인할 수 있습니다.

3) echo $SHELL 명령어 사용

  > echo $SHELL 명령어를 사용하여 현재 로그인한 사용자가 사용하고 있는 셸을 확인할 수 있습니다.


33. 다음 중 선언된 셸 변수를 확인하는 명령으로 가장 알맞은 것은?

    chsh

   ② set

    unset

    env

 

선언된 셸 변수(지역 변수)를 확인하는 명령은 " set " 입니다.

 

환경 변수 및 셸 변수에 대한 설명은 아래와 같습니다.

환경 변수  (전역 변수) 셸 변수  (지역 변수)
> 전체 셸에서 사용 가능한 전역 변수
> 서브 셸에 기능 상속 가능
> 환경 변수 확인 명령 : env
> 현재 로그인 셸에서만 사용 가능한 지역 변수
> 서브 셸에 기능 상속 불가능
> 셸 변수 확인 명령 : set

34. 다음 중 현재 시스템에서 사용 가능한 셸의 정보를 저장하고 있는 파일로 알맞은 것은?

    /etc/shells

   ② /etc/bashrc

    /etc/passwd

   ④ /etc/profile

 

현재 시스템에서 사용 가능한 셸의 정보를 저장하고 있는 파일은 /etc/shells 파일입니다.

(chsh 명령어의 -l옵션 (chsh -l 명령)은 /etc/shells 파일 안에 지정된 셸을 보여줍니다.)

 

/etc/bashrc와 /etc/profile은 전역 설정 파일입니다.

bash 셸 관련 설정 파일들에 대한 설명은 아래와 같습니다.

환경 설정 파일 기능
전역 설정 파일 /etc/profile > 모든 사용자의 셸 환경을 제어하는 전역적인 시스템 설정 파일
> 환경 변수와 bash가 수행 시 실행되는 프로그램을 제어
> 관리자만 설정 가능해야 하며 모든 사용자들에게 반영되어야 함
/etc/bashrc > 별칭(alias)과 bash가 수행 시 실행되는 함수를 전역적으로 제어
> 생략되기도 하며 /etc/profile에 내용이 포함되기도 함
지역 설정 파일 ~/.bash_profile > 개인 사용자의 셸 환경을 제어하는 지역적인 시스템 설정 파일
> PATH, 환경 변수 등을 설정 또는 변경할 때 사용
> 로그인 시 로딩
~/.bash_history > 사용자가 명령어나 키보드로 입력한 내용들을 파일 안에 기록
> 위/아래 방향키를 사용하여 사용했던 명령어 검색 가능
> 전에 입력했던 명령어의 재사용이 가능하게 함
~/.bashrc > 별칭(alias)과 bash가 수행 시 실행되는 함수를 지역적으로 제어
~/.bash_logout > 로그아웃하기 직전에 실행되는 시스템 설정 파일

35. 다음 중 ls 명령어에 설정된 에일리어스(alias)를 해제하는 명령으로 알맞은 것은?

    alias ls

    alias c ls

    ualias ls

    unalias ls

 

에일리어스(alias; 별칭) 기능은 자주 사용하는 명령어를  특정 문자로 입력해 두고

간편하게 사용할 수 있게 하는 기능입니다.

 

ls 명령어에 설정된 alias를 해제하는 명령은 unalias ls 입니다.

 

alias 사용법에 대한 설명은 다음과 같습니다.

명령어 설명
alias 설정되어 있는 별명들 확인
alias 별명 = '명령어 정의' 새로운 별명 정의
unalias 별명 지정된 별명 해제

36. 다음은 root 권한으로 ihduser 사용자가 실행한 명령의 목록 정보를 확인하는 과정이다. ( 괄호 ) 안에 들어갈 내용으로 가장 알맞은 것은?

# cat ( 괄호 )

    ~ihduser/.history

    ~ihduser/.profile

    ~ihduser/.bash_history

    ~ihduser/.bash_profile

 

~/.bash_history 파일은 지역 설정 파일로, 사용자가 명령어나 키보드로 입력한 내용들이 기록되는 파일입니다.

 

현재 로그인된 계정의 실행 명령 목록 정보를 확인하려면 ~/.bash_history 파일을 확인합니다.

 

root 권한으로 ihduser 사용자의 실행 명령 목록 정보를 확인해야 하기 때문에

~ihduser/.bash_history 파일을 확인해야 합니다.

즉 cat ~ihduser/.bash_history 명령을 사용하면 됩니다.

 

bash 셸 관련 설정 파일들에 대한 설명은 아래와 같습니다.

환경 설정 파일 기능
전역 설정 파일 /etc/profile > 모든 사용자의 셸 환경을 제어하는 전역적인 시스템 설정 파일
> 환경 변수와 bash가 수행 시 실행되는 프로그램을 제어
> 관리자만 설정 가능해야 하며 모든 사용자들에게 반영되어야 함
/etc/bashrc > 별칭(alias)과 bash가 수행 시 실행되는 함수를 전역적으로 제어
> 생략되기도 하며 /etc/profile에 내용이 포함되기도 함
지역 설정 파일 ~/.bash_profile > 개인 사용자의 셸 환경을 제어하는 지역적인 시스템 설정 파일
> PATH, 환경 변수 등을 설정 또는 변경할 때 사용
> 로그인 시 로딩
~/.bash_history > 사용자가 명령어나 키보드로 입력한 내용들을 파일 안에 기록
> 위/아래 방향키를 사용하여 사용했던 명령어 검색 가능
> 전에 입력했던 명령어의 재사용이 가능하게 함
~/.bashrc > 별칭(alias)과 bash가 수행 시 실행되는 함수를 지역적으로 제어
~/.bash_logout > 로그아웃하기 직전에 실행되는 시스템 설정 파일

37. 다음 중 셸에서 실행 후 저장되는 history 개수를 확인할 수 있는 환경변수명으로 알맞은 것은?

    HISTORY

    HISTORYSIZE

    HISTSIZE

    HISTFILESIZE

 

환경변수 HISTSIZE 는 저장할 수 있는 명령어의 최대 개수입니다.

즉, 셸에서 실행 후 저장되는 history 개수를 확인할 수 있습니다.

[root@localhost ~]# echo $HISTSIZE
1000

38. 다음 중 ihduser 사용자의 로그인 셸을 확인하는 명령으로 알맞은 것은?

    chsh ihduser

    chsh l ihduser

    grep ihduser /etc/passwd

    grep ihduser /etc/shells

 

로그인 셸을 확인하는 방법은 아래와 같습니다.

1) /etc/shells 확인

  > /etc/shells 파일에서 사용할 수 있는 셸들을 확인할 수 있습니다.

2) /etc/passwd 확인

  > /etc/passwd 파일에서 계정마다 할당된 셸을 확인할 수 있습니다.

3) echo $SHELL 명령어 사용

  > echo $SHELL 명령어를 사용하여 현재 로그인한 사용자가 사용하고 있는 셸을 확인할 수 있습니다.

 

특정 사용자의 로그인 셸을 확인하려면 /etc/passwd 파일을 확인합니다.

 

grep ihduser /etc/passwd 명령의 사용 예시는 다음과 같습니다.

[root@localhost ~]# grep ihduser /etc/passwd
ihduser:x:1003:1003::/home/ihduser:/bin/bash

39. 다음 중 파일이나 디렉터리의 허가권 값을 변경하는 명령으로 알맞은 것은?

    chmod

    chgrp

    umask

    chown

 

chmod :
파일의 모드(mode)를 변경하는 명령어입니다.
읽기 권한(r), 쓰기 권한(w), 실행 권한(x)의 권한 여부 및
소유자(U), 그룹(G), 그 외 사용자(O)의 파일 접근 권한을 변경할 수 있습니다.

 

( 자세한 내용은 아래의 포스팅으로 )

>> [Linux] 허가권과 소유권_2 <<


40. 다음은 마운트된 /backup 영역을 마운트 해제하는 과정이다. ( 괄호 ) 안에 들어갈 맹령어로 알맞은 것은?

# ( 괄호 ) /backup

    umount

    unmount

    eject

    nohup

 

umount :

마운트된 파일 시스템을 해제하는 명령