아주 좋 은 12 개의 셸 명령 고전 면접 문제

7758 단어
다음은 면접 과정 에서 자주 만 나 는 셸 스 크 립 트 면접 문제 와 해답 입 니 다.스 크 립 트 를 이해 하거나 최소한 기초 지식 을 아 는 것 이 테스트 엔지니어 에 게 중요 하 며, 작업 환경 에서 많은 임 무 를 자동 으로 완성 하 는 데 도 도움 이 된다.현재 대부분의 테스트 엔지니어 채용 요구 에 Liux 기초 기능 과 기본 적 인 Shell 스 크 립 트 기능 이 필요 하 다 는 것 을 알 게 될 것 입 니 다.
다음은 흔히 볼 수 있 는 셸 스 크 립 트 면접 문제 입 니 다.
1. 텍스트 분석 은 password 에서 셸 이 나타 난 횟수 의 첫 번 째 방법 결 과 를 추출 합 니 다.      4/bin/bash       1/bin/sync       1/sbin/halt      31/sbin/nologin       1/sbin/shutdown 두 번 째 방법 결과:/bin/sync       1/bin/bash       1/sbin/nologin   30/sbin/halt      1/sbin/shutdown  1
2. 파일 정리
employee 파일 에는 작업 번호 와 이름 employee. txt 가 기록 되 어 있 습 니 다. 100 Jason Smith 200 John Doe 300 Sanjay Gupta 400 Ashok Sharma bonus 파일 에는 작업 번호 와 월급 bonus 가 기록 되 어 있 습 니 다. txt: 100 $5, 000 200 $500 300 $3, 000 400 $1, 250 두 파일 을 합 쳐 다음 과 같은 처리 결 과 를 출력 하 라 고 요구 합 니 다. 400 ashok sharma $1, 250 100 jason smith  $5,000 200 john doe  $500 300 sanjay gupta  $3,000
3. 프린터 의 교환 구역 크기 처리 결과: Swap: 1024 M
4. 사용 자 는 현재 로그 인 한 사용 자 를 제외 한 모든 사용 자 를 제거 합 니 다.
처리 결과: 23:00:17 up  1:08,  1 user,  load average: 0.02, 0.05, 0.02 USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT root     pts/1    192.168.1.100    22:15    0.00s 10.75s  0.00s w 이 기 계 는 너 자신 만 남 았 다.)
5. 루트 사용자 가 오늘 로그 인 한 지 얼마나 되 었 습 니까?
처리 결과: root logon today: 0.06 hour
6. 현재 sshd 포트 와 프로 세 스 id 인쇄
처리 결과: sshd Port & pid: 22 5412
7. 이 컴퓨터 가 20000 개의 디 렉 터 리 를 만 드 는 데 사용 되 는 시간 을 출력 합 니 다.
처리 결과: real    0m3.367s user    0m0.066s sys     0m1.925s
8. root 인쇄 는 실행 가능 한 파일 수 를 사용 할 수 있 습 니 다.
처리 결과: root 's bins: 2306
9. 셸 스 크 립 트 를 작성 하여 현재 디 렉 터 리 에서 10K 이상 의 파일 을/tmp 디 렉 터 리 로 옮 깁 니 다.

#/bin/sh 
#Programm : 
# Using for move currently directory to /tmp for FileName in `ls l | awk '$5>10240 {print $9}'` do 
mv $FileName /tmp done ls al /tmp echo "Done! " 

10. 셸 스 크 립 트 를 작성 하여 이 컴퓨터 의 네트워크 주 소 를 가 져 옵 니 다.
예 를 들 어 본 컴퓨터 의 ip 주 소 는 192.168.100.2/225.255.255.0 이 고 그의 네트워크 주 소 는 192.168.100.1/225.255.255.0 방법 1:

#!/bin/bash 
#This script print ip and network 
file="/etc/sysconfig/networkscripts/ifcfgeth0" if [ f $file ] then 
IP=`grep "IPADDR" $file|awk F"=" '{ print $2 }'` MASK=`grep "NETMASK" $file|awk F"=" '{ print $2 }'` echo "$IP/$MASK" exit 1 fi 

11. Shell 프로 그래 밍 으로 파일 이 문자 장치 파일 인지 아 닌 지 판단 하고/dev 디 렉 터 리 에 복사 하면.참고 프로그램:

#!/bin/sh FILENAME= 
echo “Input file name:” read FILENAME if [ c "$FILENAME" ] then 
cp $FILENAME /dev fi

12. 셸 프로그램 을 설계 하고 새 그룹 을 class 1 로 추가 한 다음 에 이 그룹 에 속 하 는 30 명의 사용 자 를 추가 합 니 다. 사용자 이름 의 형식 은 stdxx 이 고 그 중에서 xx 는 01 에서 30 까지 입 니 다.
참고 답안:

#!/bin/sh
i=1 
groupadd class1 while [ $i le 30 ] do 
if [ $i le 9 ] then USERNAME=stu0${i} else 
USERNAME=stu${i} fi 
useradd $USERNAME mkdir /home/$USERNAME 
chown R $USERNAME /home/$USERNAME chgrp R class1 /home/$USERNAME i=$(($i+1)) done

전형 적 인 Shell 스 크 립 트 면접 문제
1. 스 크 립 트 에서 인 자 를 어떻게 사용 합 니까?첫 번 째 인자: $1, 두 번 째 인자: $2
예: 스 크 립 트 는 파일 (arg 1) 을 대상 주소 (arg 2) 로 복사 합 니 다./copy. sh file1. txt/tmp/cat copy. sh\#!/bin/bash cp $1 $2
2. 전달 되 는 인 자 를 어떻게 계산 합 니까?
$#
3. 이전 명령 이 성공 적 으로 실행 되 었 는 지 어떻게 검사 합 니까?
$?
4. 파일 의 마지막 줄 을 어떻게 가 져 옵 니까?
tail -1
5. 파일 의 첫 줄 을 어떻게 가 져 옵 니까?head -1
6. 파일 의 줄 마다 세 번 째 요 소 를 어떻게 가 져 옵 니까?awk'{print $3}'
7. 파일 에 있 는 줄 마다 첫 번 째 요소 가 FIND 라면 두 번 째 요소 awk '{if ($1 = = = "FIND") print $2} 을 어떻게 가 져 옵 니까?
8. bash 스 크 립 트 를 어떻게 디 버 깅 하여 - xv 인 자 를\#!/빈/bash 후
예:\#!/bin/bash �Cxv
9. 예 를 들 어 함 수 를 어떻게 씁 니까?function example { echo "Hello world!"}
10. 어떻게 두 문자열 을 연결 합 니까?V1 = "Hello"V2 = "World"V3 = ${V1} ${V2} echo $V3 HelloWorld 출력
11. 어떻게 두 정 수 를 더 합 니까?V1 = 1 V2 = 2 let V3 = $V1 + $V2 echo $V3 출력 3
12. 파일 시스템 에 어떤 파일 이 존재 하 는 지 어떻게 검사 합 니까?if [ -f/var/log/messages ] then echo "File exists"fi
13. 셸 스 크 립 트 의 모든 순환 문법 을 쓰 시 겠 습 니까?
for 순환: foriin $(ls);do echo item:$i done
while 순환:\#!/bin/bash COUNTER=0 while [ $COUNTER -lt 10 ]; do echo The counter is $COUNTER let COUNTER=COUNTER+1 done
until 순환:\#!/bin/bash COUNTER=20 until [ $COUNTER -lt 10 ]; do echo COUNTER $COUNTER let COUNTER-=1 done
14. 스 크 립 트 마다 시작 하 는\#!/bin/sh 또는\#!/빈/bash 는 무슨 뜻 입 니까?이 줄 은 사용 할 셸 을 설명 합 니 다.\#!/빈/bash 는 스 크 립 트 사용/빈/bash 를 표시 합 니 다.python 스 크 립 트 에 대해 서 는\#!/usr/bin/python.
15. 텍스트 파일 의 10 번 째 줄 을 어떻게 가 져 옵 니까?head -10 file|tail -1
16. bash 스 크 립 트 파일 의 첫 번 째 기 호 는 무엇 입 니까?\#
17. 명령: [- z "] & & echo 0 | | echo 1 의 출력 은 무엇 입 니까?
18. 배경 에서 스 크 립 트 를 어떻게 실행 합 니까?nohup command&
19. "chmod 500 script"은 무엇 을 합 니까?스 크 립 트 소유자 에 게 실행 가능 한 권한 을 부여 합 니 다.
20.  ">"뭐 해요?출력 을 파일 이나 다른 흐름 으로 다시 지정 합 니 다.
21. & 와 & & 는 어떤 차이 가 있 습 니까 & - 스 크 립 트 가 배경 에서 실 행 될 때 사용 하 기 를 바 랍 니 다 & & - 현재 스 크 립 트 가 성공 적 으로 완성 되 어야 뒤의 명령/스 크 립 트 를 실행 할 때 사용 합 니 다.
22. bash 셸 스 크 립 트 에서 설명 할 기호 가 있 습 니까?\#
23. '따옴표 와 어떤 차이 가 있 습 니까?' - 변 수 를 값 으로 바 꾸 고 싶 지 않 을 때 사용 합 니 다. '- 모든 변수의 값 을 계산 하고 값 으로 대체 합 니 다.
24. 스 크 립 트 파일 에서 표준 출력 과 표준 오 류 를 log. txt 파일 로 다시 설정 하 는 방법 은 무엇 입 니까?스 크 립 트 파일 에 "exec > log. txt 2 > & 1"명령 을 추가 합 니 다.
25. 어떻게 echo 명령 으로 문자열 변수의 일부분 만 가 져 옵 니까?echo ${variable: x: y} x - 시작 위치 y - 길이
예: variable = "My name is Petras, and I amdeveloper."echo ${variable: 11: 6}\# Petras 가 표 시 됩 니 다.
26. 어떻게 awk 를 사용 하여 UID 가 100 이하 인 사용 자 를 표시 합 니까?awk -F: '$3<100'/etc/passwd
27. 쓰기 프로그램 은 사용자 에 게 주 그룹 수 를 계산 하고 횟수 와 그룹 이름 cat/etc/passwd | cut - d: - f4 | sort | uniq - c | while read c g do {echo $c; grep: $g:/etc/group | cut - d: - f1;} | xargs - n 2 done
28. 변수 길 이 를 어떻게 가 져 옵 니까? ${#variable}
29. 변수의 마지막 5 자 를 어떻게 인쇄 합 니까?echo ${variable: -5}
30. 어떻게 echo 명령 으로 문자열 의 일부분 만 바 꿉 니까?echo ${variable//pattern/replacement}
31. 로 컬 사용자 수 를 어떻게 계산 합 니까?wc - l/etc/passwd | cut - d "- f1 또는 cat/etc/passwd | wc - l
32. wc 명령 을 사용 하지 않 고 문자열 의 단어 수 를 어떻게 계산 합 니까?set ${string} echo $#
33. 두 번 째 자모 가 a 또는 b 인 파일 을 어떻게 나열 합 니까?ls -d ?[ab]*
34. 어떻게 정수 a 를 b 에 추가 하고 c 에 할당 합 니까?c = $(a + b) 또는 c = ` expr $a + $b ` 또는 c = ` echo "$a + $b"| bc `
35. 문자열 의 모든 빈 칸 을 어떻게 제거 합 니까?echo $string|tr -d ""
36. 출력 숫자 0 에서 100 중 3 의 배수 (0, 3, 6, 9...) 를 쓰 라 는 명령?for i in {0..100..3}; do echo $i; done 또는 for (i = 0; i < = 100; i = i + 3);do echo"Welcome $i times"; done
37. 스 크 립 트 에 전 달 된 모든 인 자 를 어떻게 인쇄 합 니까?echo $* 또는 echo $@
38.  [$a = = = $b] 와 [$a - eq $b] 는 어떤 차이 가 있 습 니까? [$a = = $b] - 문자열 비교 에 사용 합 니 다 [$a - eq $b] - 숫자 비교 에 사용 합 니 다.
39. = 과 = = 은 어떤 차이 가 있 습 니까?
40. 테스트 $a 가 12 보다 큰 명령 을 쓰 시 겠 습 니까?[ $a -gt 12 ]
41. 문자열 이 알파벳 "abc"로 시작 되 는 지 어떻게 검사 합 니까?[[ $string == abc* ]]
42. [[$string = = abc *] 와 [[$string = = abc *]] 는 어떤 차이 가 있 습 니까? [[$string = = abc *] - 문자열 이 알파벳 abc 로 시작 하 는 지 확인 합 니 다 [[[$string = = abc]] - 문자열 이 abc 와 완전히 같은 지 확인 합 니 다.
43. ab 또는 xy 로 시작 하 는 사용자 이름 을 어떻게 표시 합 니까?egrep "^ab|^xy"/etc/passwd|cut-d: -f1
44. bash 중 $!무슨 뜻 이에 요?배경 에서 최근 명령 을 실행 한 PID 입 니 다.
45. $? 무슨 뜻 이에 요?프론트 데스크 의 최근 명령 의 종료 상태 입 니 다.
46. 현재 셸 의 PID 를 어떻게 출력 합 니까?echo $$
47. $* 와 $@ 은 어떤 차이 가 있 습 니까? * $* - 스 크 립 트 에 전 달 된 모든 인 자 를 하나의 문자열 로 출력 합 니 다 $@ - $IFS 를 구분자 로 하여 스 크 립 트 에 전 달 된 모든 인 자 를 표시 합 니 다.
48. 어떻게 bash 에서 배열 을 정의 합 니까?array=("Hi""my""name""is")
49. 배열 의 첫 번 째 요 소 를 어떻게 인쇄 합 니까?echo ${array[0]}
50. 배열 의 모든 요 소 를 어떻게 인쇄 합 니까?echo ${array[@]}
51. 모든 배열 색인 을 어떻게 출력 합 니까?echo ${!array[@]}
52. 셸 스 크 립 트 는 어떻게 입력 한 값 을 가 져 옵 니까?a) 매개 변 수 를 통 해./script param 1 param 2 b) read 명령 을 통 해 read - p "Destination backup Server:"desthost

좋은 웹페이지 즐겨찾기