50가지 쉘 스크립팅 인터뷰 질문 및 답변(2025)

다음은 꿈의 직업을 얻기 위한 신입 지원자와 경력 지원자를 위한 Shell Scripting 면접 질문과 답변입니다.

 

Linux 쉘 스크립팅 인터뷰 질문 및 답변

1) 쉘이란 무엇입니까?

셸은 사용자와 커널 사이의 인터페이스입니다. 커널은 하나뿐일 수 있지만, 시스템은 여러 셸을 동시에 실행할 수 있습니다. 따라서 사용자가 키보드를 통해 명령을 입력할 때마다 셸은 커널과 통신하여 명령을 실행한 다음 출력을 사용자에게 표시합니다.

👉 무료 PDF 다운로드: 쉘 스크립팅 인터뷰 질문 및 답변


2) 쉘 스크립팅이란 무엇입니까?

쉘 스크립팅 Unix/Linux 셸에서 실행하도록 설계된 오픈 소스 컴퓨터 프로그램입니다. 쉘 스크립팅은 쉘이 실행할 일련의 명령을 작성하는 프로그램입니다. 길고 반복적인 명령 시퀀스를 언제든지 저장하고 실행할 수 있는 하나의 간단한 스크립트로 결합할 수 있으므로 프로그래밍 노력이 줄어듭니다.

쉘 스크립팅 인터뷰 질문


3) 일반적인 Linux 시스템에서 일반적으로 사용되는 다양한 유형의 셸은 무엇입니까?

csh,ksh,bash,본. 오늘날 가장 일반적으로 사용되는 고급 쉘은 "Bash"입니다.


4) Linux 시스템에 있는 창에 있는 파일 바로가기와 동일한 것은 무엇입니까?

바로가기는 Linux에서 "링크"를 사용하여 생성됩니다. 사용할 수 있는 링크에는 "소프트 링크"와 "하드 링크"라는 두 가지 유형이 있습니다.


5) 소프트 링크와 하드 링크의 차이점은 무엇입니까?

소프트 링크는 파일 이름에 대한 링크이며 다른 파일 시스템에도 있을 수 있습니다. 그러나 하드 링크는 파일의 inode에 대한 링크이며 파일과 동일한 파일 시스템에 있어야 합니다. 원본 파일을 삭제하면 소프트 링크가 비활성화되지만(링크 깨짐) 하드 링크에는 영향을 주지 않습니다(하드 링크는 계속 파일 복사본에 액세스합니다).


6) Linux에서 스크립트에 인수를 어떻게 전달하고 액세스합니까?

인수는 다음과 같이 전달될 수 있습니다.

scriptName “Arg1” “Arg2″….”Argn” 스크립트 내에서 $1 , $2 .. $n 으로 액세스할 수 있습니다.


7) $*와 $@의 차이점은 무엇입니까?

$@는 인용된 각 인수를 별도의 인수로 처리하지만 $*는 전체 위치 매개변수 세트를 단일 문자열로 간주합니다.


8) sed 명령을 사용하여 파일 내용을 교체합니다(tac 명령 에뮬레이트).

예 :

if cat fille
ABCD
EFGH

그러면 O/p는 다음과 같아야 합니다.

EFGH
ABCD

sed '1! G; h;$!d' file1

여기서 G 명령은 패턴 공간에 추가됩니다.

h 명령은 패턴 버퍼를 홀드 버퍼에 복사합니다.

d 명령은 현재 패턴 공간을 삭제합니다.


9) 파일이 주어지면 5에서 "ABC"라는 단어를 모두 "DEF"로 바꿉니다.th "MNO"라는 단어가 포함된 줄만 끝날 때까지 줄

sed –n '5,$p' file1|sed '/MNO/s/ABC/DEF/'

10) 주어진 파일에서 각 단어의 개수를 찾는 명령 시퀀스를 작성하세요.

tr –s  "(backslash)040" <file1|tr –s  "(backslash)011"|tr "(backslash)040 (backslash)011" "(backslash)012" |uniq –c
where "(backslash)040" is octal equivalent of "space"

"(백슬래시)011"은 "탭 문자"에 해당하는 XNUMX진수이며

"(백슬래시)012"는 개행 문자에 해당하는 XNUMX진수입니다.


11) 99를 어떻게 찾을 것인가?th tail 및 head 명령만 사용하는 파일 줄?

꼬리 +99 파일1|머리 -1


12) 10을 인쇄하세요.th tail 및 head 명령을 사용하지 않고 줄을 긋습니다.

sed –n '10p' file1

13) Bash 쉘에서 프롬프트를 '$”현재 작업 디렉터리”:”호스트 이름”> 형식으로 만들고 로그인하자마자 사용자 정의 함수 목록이 포함된 파일을 로드하려고 합니다. 이를 어떻게 자동화할 수 있습니까? ?

Bash 셸에서는 ".profile" 파일을 만들 수 있는데, 로그인하자마자 자동으로 호출됩니다. 그리고 다음 구문을 여기에 입력하면 됩니다.

export PS1='$ `pwd`:`hostname`>' .File1

여기서 File1은 사용자 정의 함수와 "."가 포함된 파일입니다. 현재 쉘에서 이 파일을 호출합니다.


14) 파일의 "s" 권한 비트에 대해 설명해주세요.

"s" 비트를 "set user id"(SUID) 비트라고 합니다.

파일의 "s" 비트는 프로그램 인스턴스 동안 프로세스가 파일 소유자의 권한을 갖도록 합니다.

예를 들어, 현재 비밀번호를 변경하기 위해 "passwd" 명령을 실행하면 소유자가 "root"인 경우에도 사용자는 섀도우 파일에 새 비밀번호를 쓰게 됩니다.


15) 그룹의 모든 사람이 파일을 만들고 그 안에 있는 모든 사람의 파일에 액세스할 수 있지만 자신이 만든 파일이 아닌 다른 파일은 삭제할 수 없도록 디렉터리를 만들고 싶습니다.

다음과 같이 그룹의 모든 사람에게 읽기 및 실행 액세스 권한을 부여하고 고정 비트 "t"를 설정하는 디렉터리를 만들 수 있습니다.

mkdir direc1
 
chmod g+wx direc1
 
chmod +t direc1

16) 시스템이 얼마나 오랫동안 실행되었는지 어떻게 알 수 있나요?

이는 “uptime” 명령을 사용하여 찾을 수 있습니다.


17) 사용자는 기본 쉘, 실제 이름, 기본 디렉토리, 시스템 사용 시기 및 기간과 같은 특정 사용자에 대한 모든 정보를 어떻게 찾을 수 있습니까?

손가락 "loginName" ... 여기서 loginName은 로그인 이름입니다.

정보가 예상되는 사용자입니다.


18) $$와 $!의 차이점은 무엇입니까?

$$는 현재 실행 중인 프로세스의 프로세스 ID를 제공하는 반면 $! 최근 백그라운드로 들어간 프로세스의 프로세스 ID를 표시합니다.


19) 좀비 프로세스란 무엇입니까?

이는 종료되었지만 종료 상태가 여전히 상위 프로세스에 의해 선택되지 않은 프로세스입니다. 이러한 프로세스는 작동하지 않더라도 프로세스 테이블에 프로세스 ID 항목이 있습니다.


20) 한 컴퓨터에서 다른 컴퓨터로 파일을 어떻게 복사합니까?

"ftp", "scp", "rsync"와 같은 유틸리티를 사용하면 한 컴퓨터에서 다른 컴퓨터로 파일을 복사할 수 있습니다.

예를 들어 FTP를 사용하는 경우:

FTP 호스트 이름

> 파일 1 넣기

>안녕

위의 파일 file1은 로컬 시스템에서 호스트 이름이 지정된 대상 시스템으로 복사됩니다.


경험이 풍부한 쉘 스크립팅 인터뷰 질문 및 답변

21) 지속적으로 업데이트되는 로그 파일을 모니터링하고 싶습니다. 이를 가장 효율적으로 달성하려면 어떤 명령을 사용할 수 있습니까?

tail –f filename을 사용할 수 있습니다. 이렇게 하면 std o/p에 기본 마지막 10줄만 표시되어 파일의 업데이트 부분을 지속적으로 보여줍니다.


22) 원격 서버에 연결하여 일부 명령을 실행하고 싶은데 어떻게 해야 합니까?

이를 위해 ssh를 사용할 수 있습니다.

ssh 사용자 이름@서버IP -p sshport

예시

SSH 루트@122.52.251.171 -p 22

위의 명령이 실행되면 비밀번호를 입력하라는 메시지가 나타납니다.


23) 2개의 파일이 있는데 두 파일 모두에 공통적인 기록을 인쇄하고 싶습니다.

다음과 같이 "comm" 명령을 사용할 수 있습니다.

comm -12 file1 file2 … 12는 다음 내용을 억제합니다.

1에 고유st 및 2nd 각각 파일.


24) 피보나치 수열의 처음 10개 요소를 인쇄하는 스크립트를 작성하세요.

  
#!/bin/sh
a=1
b=1
echo $a
echo $b
for I in 1 2 3 4 5 6 7 8
do
c=a
b=$a
b=$(($a+$c))
echo $b
done

25) Linux에서 데이터베이스 서버에 어떻게 연결합니까?

다음과 같이 개방형 클라이언트 드라이버와 함께 제공되는 isql 유틸리티를 사용할 수 있습니다.

isql –S 서버 이름 –U 사용자 이름 –P 비밀번호


26) Linux의 3가지 표준 스트림은 무엇입니까?

0 – 표준 입력1 – 표준 출력2 – 표준 오류


27) file1의 명령에 대한 모든 입력을 읽고 모든 출력을 file2로 보내고 오류는 파일 3으로 보내고 싶습니다. 어떻게 해야 합니까?

명령 파일1 1>파일2


28) exec를 사용하여 명령을 실행하면 현재 프로세스는 어떻게 되나요?

"exec"는 현재 프로세스에 새로 분기된 프로세스를 오버레이합니다. 따라서 exec를 사용하여 명령을 실행하면 새 프로세스를 생성하지 않고 현재 셸에서 명령이 실행됩니다.

예: 실행 중 "exec ls" 명령 프롬프트에서 ls를 실행하고 ls가 종료되면 프로세스가 종료됩니다.


29) awk를 사용하여 wc –l을 어떻게 에뮬레이트할 예정인가요?

awk 'END {print NR} fileName'


30) 주어진 파일에서 "ABC"라는 단어가 포함된 줄의 개수를 찾습니다.

grep –c “ABC” 파일1


31) grep과 egrep의 차이점은 무엇입니까?

egrep은 "+"(이전 문자 1회 이상 발생), "?"(이전 문자 0 또는 1회 발생) 및 "|"와 같은 추가 grep 기능을 지원하는 확장 grep입니다. (대체 매칭)


32) Linux에서 어레이를 설정하는 방법은 무엇입니까?

ksh 구문:

Set –A arrayname= (element1 element2 ….. element)
In bash
A=(element1 element2 element3 …. elementn)

33) "for" 루프의 구문을 적어보세요.

구문 :

for  iterator in (elements)
do
execute commands
done

34) 특정 사용자가 사용하는 전체 디스크 공간을 어떻게 알 수 있나요?

du -s /home/user1 ....여기서 user1은 전체 디스크 공간을 찾아야 하는 사용자입니다.


35) Linux에서 "if" 조건문에 대한 구문을 작성하시겠습니까?

통사론

If  condition is successful
then
execute commands
else
execute commands
fi

36) $의 의미는 무엇입니까?

명령 $? 실행된 마지막 명령의 종료 상태를 제공합니다.


37) 파일의 빈 줄을 모두 삭제하려면 어떻게 해야 하나요?

sed  '^ [(backslash)011(backslash)040]*$/d' file1

여기서 (백슬래시)011은 공백에 해당하는 XNUMX진수이고

(백슬래시)040은 탭과 동일한 XNUMX진수입니다.


38) 100마다 "ABCDEF" 줄을 어떻게 삽입합니까?th 파일 줄?

sed '100i\ABCDEF' 파일1


39) 2일 이내에 수정된 모든 파일을 찾고 각각의 레코드 수를 인쇄하는 명령 시퀀스를 작성하세요.

찾다 . -mtime -2 -exec wc -l {} \;


40) 현재 쉘에서 생성된 모든 파일에 대해 모든 사용자에게 기본 rwx 권한을 어떻게 설정할 수 있습니까?

우리는 다음을 사용할 수 있습니다:

umask 777

그러면 모든 사용자에 대해 생성되는 모든 파일에 대한 기본 rwx 권한이 설정됩니다.


41) 프로세스 ID에서 프로세스 이름을 어떻게 찾을 수 있나요?

우리는 사용할 수 있습니다 "ps –p ProcessId"


42) Linux의 모든 파일 시스템의 네 가지 기본 구성 요소는 무엇입니까?

Bootblock, super block, inode block 및 Datablock은 Linux의 모든 파일 시스템의 기본 구성 요소입니다.


43) 부트 블록이란 무엇입니까?

이 블록에는 시스템 부팅 중에 커널을 로드하는 "마스터 부트 레코드"(MBR)라는 작은 프로그램이 포함되어 있습니다.


44) 슈퍼블록이란 무엇인가요?

슈퍼 블록에는 파일 시스템 크기, 사용 가능한 데이터 블록 수에 사용되는 블록 크기, 사용 가능한 inode 및 데이터 블록 목록과 같은 파일 시스템에 대한 모든 정보가 포함됩니다.


45) 아이노드 블록이란 무엇인가요?

이 블록에는 이름을 제외한 모든 파일 속성과 함께 파일 시스템의 모든 파일에 대한 inode가 포함되어 있습니다.


46) 압축 파일을 첨부하여 메일을 보내려면 어떻게 해야 하나요?

zip 파일1.zip 파일1|mailx –s “subject” 수신자 이메일 ID

이메일 내용

EOF


47) 쉘에서 명령 별칭을 어떻게 생성합니까?

alias Aliasname="별칭을 생성할 명령"입니다.


48) 파일의 "c" 및 "b" 권한 필드는 무엇입니까?

"c"와 "b" 권한 필드 일반적으로 장치 파일과 연관되어 있습니다. 파일이 특수 문자 파일인지 블록 특수 파일인지를 지정합니다.


49) 셔뱅라인의 용도는 무엇인가요?

각 스크립트 상단의 Shebang 라인은 스크립트를 실행하는 데 사용되는 엔진의 위치를 ​​결정합니다.

이 인터뷰 질문은 당신의 비바(구술)에도 도움이 될 것입니다.