본문 바로가기
CS/Unix 시스템

리눅스 텍스트 편집, vi 편집기, 파일 찾기와 문자열 검색, 예상 문제

by Renechoi 2023. 12. 1.

편집기

리눅스와 텍스트 파일

  • 리눅스 시스템에서 중요한 설정 정보나 셀 스크립트가 텍스트 파일로 존재함
  • 텍스트 파일의 장점
    • 시스템 간 공유가 쉽고 텍스트 편집기를 이용하여 간단하게 편집할 수 있음

리눅스 텍스트 편집기의 종류

  • gedit
    • GNOME 데스크톱에서 제공하는 작고 가벼운 편집기
  • oemacs
    • 화면 단위 편집기로 다양한 기능을 제공하나 사용법이 어려움
  • vi
    •Vi는 유닉스 계열 운영체제에서 가장 보편적인 화면 편집기 •Vi는 ‘vim’으로 에일리어스 되어 있음
    • vim (Vi Improved)이 vi와 다른 점 -> 형식이 있는 파일의 구문 구조를 표시하기 위해 컬러를 사용 -마우스 지원, 다중 undo, 다중 탭(또는 화면 분할)을 지원, 블특을 선택할 때 비주얼 모드를 지원

vi 시작하기

  • 터미날 창의 셀 프름프트에서 다음을 수행함
    • 모달 편집기로 다른 작업은 수행할 수 없음

  • vi [options] [filename]

$ vi -R test.txt
(읽기 전용 모드로 'test.txt' 파일을 vi 에디터에서 열림)

$ vi -c "se nu" test.txt
('test.txt' 파일이 vi 에디터에서 열리고, 커맨드 'se nu'로 줄 번호를 활성화)

$ vi +10 test.txt
('test.txt' 파일을 vi 에디터에서 열고, 10번째 줄로 이동)
  1. $ vi -R test.txt:

    • vi -R 명령은 파일을 읽기 전용 모드로 열 때 사용한다. 이 경우, 'test.txt' 파일이 변경 없이 읽기만 가능한 상태로 열린다.
  2. $ vi -c "se nu" test.txt:

    • vi -c "command"는 vi 에디터를 열면서 동시에 특정 커맨드를 실행한다. 여기서 "se nu"는 줄 번호를 화면에 표시하는 설정이다.
  3. $ vi +10 test.txt:

    • vi +number 명령은 특정 파일을 열 때 지정한 줄 번호로 직접 이동하게 한다. 이 명령은 'test.txt'를 열고 바로 10번째 줄로 이동한다.

vi 편집기와 세 가지 모드

  • 명령 모드
  • 라인 모드
  • 입력 모드

vi 종료하기

  • 명령 모드에서 키보드 명령을 입력 •ZZ(shift+zz) : 변경 내용들 저장하고 종료
    • 라인 모드에서 종료하는 명령
      •:q -> (변경된 내용이 없는 경우) 종료
      •:q! -> 저장하지 않고 강제 종료
      •:wq [filename] -> 저장하고 종료, :w [filename] 또는 :w! [filename] 은 저장만 하는 명령
      •:x [filename] -> (변경이 있었다면 저장하고) 종료
      •:x! [filename] -> 위와 같으나 같은 이름의 파일이 있으면 덮어씀

vi로 편집하기

텍스트 입력

  • 초기 명령 모드에서 입력 모드로 이동 후 입력이 가능함
  • 입력 모드일 때는 화면의 하단에 '끼위 넣기 --'가 표시됨
  • 입력 모드에서 esc를 누르면 명령 모드로 돌아감
명령 키 설명
a 현재 커서 위치의 오른쪽부터 텍스트를 추가(add)할 수 있음
A 현재 라인의 끝에 텍스트를 추가할 수 있음
i 현재 커서의 위치부터 텍스트를 삽입(insert)할 수 있음
I 현재 라인의 처픔에 텍스트를 삽입할 수 있믐
o 현재 라인의 아래에 라인이 열리고(open) 텍스트를 추가할 수 있음
O 현재 라인의 위에 라인이 열리고 텍스트를 추가할 수 있음

커서 이동 명령

  • 명령 모드에서 화살표 키와 page up, page down 키를 사용할 수 있음
  • 그 외에도 다양한 키가 존재함
명령 키 설명
j k j l 방향키 좌우 위 아래
ctrl + f, ctrl + b page up, page down
w 다음 단어의 첫 자로 이동
b 앞 단어의 첫 자로 이동
O 현재 라인의 첫 칸으로 이동
$ 현재 라인의 마지막 칸으로 이동
20G 20번째 라인으로 이동
G 마지막 라인으로 이동
5J 현재 라인에서 아래로 5라인을 이동

텍스트 삭제 명령

  • 명령 모드에서 텍스트를 삭제하거나 변경함
    • 커서를 적당한 위치로 옮긴 후 삭제함
명령 키 설명
X 커서 위치의 한 문자를 삭제
dw 커서의 위치부터 다음 단어 전까지 삭제
d$ 또는 D 커서의 위치부터 현재 라인의 끝까지 삭제
dO 커서의 왼쪽부터 현재 라인의 처음까지 삭제
dd 현재 라인을 삭제
dG 현재 라인부터 파일의 끝까지 삭제
d20G 현재 라인부터 라인 번호 20까지 삭제
3dw 커서의 위치부터 세 단어를 삭제
5dd 현재 라인부터 다섯 라인들 삭제

텍스트 변경 또는 치환 명령

  • 대개 일정 부분의 텍스트를 삭제하고 입력 모드로 전환됨
  • 삭제, 변경 또는 붙여 넣기를 한 후 커서를 이동하고 도트(.) 명령을 수행하면 앞서 수행한 작업을 반복할 수 있음
명령 키 설명
r 커서 위치의 한 문자를 대치
R 커서의 위치부터 계속 대치할 수 있g. 입력 모드로 전환됨(수정 모드)
s 또는 cl 커서 위치의 문자가 삭제되고 입력 모드로 전환됨(삽입)
S 또는 cc 현재 라인에 존재하는 문자가 삭제되고 현재 라인에서 입력 모드로 전환됨
CW 커서 위치부터 단어의 끝까지 삭제되고 입력 모드로 전환됨
cb 커서 왼쪽부터 단어의 앞까지 삭제되고 입력 모드로 전환됨
c) 커서 위치부터 문장의 끝까지 삭제되고 입력 모드로 전환됨
c} 커서 위치부터 문단의 끝까지 삭제되고 입력 모드로 전환됨

텍스트 복사

  • 텍스트 복사
    • 삭제나 변경을 위한 명령 키를 사용할 때 텍스트가 복사됨
    • 또는 커서를 적당한 위치로 이동한 후 y 명령을 사용하여 복사함

텍스트 붙여 넣기

- P 또는 p 명령을 이용하여 (커서의 왼편/위 라인) 또는 (오른 편/아래 라인)에 붙여넣기를 할 수 있음
명령 키 설명
yy 현재 라인을 복사
5yy 현재 라인부터 다섯 라인들 복사
yw 커서의 위치부터 다g 단어의 앞까지 복사
y$ 커서의 위치부터 라인의 끝까지 복사
yo 커서 왼쪽부터 라인의 앞까지 복사
yA 위와 같으나 라인 앞의 빈칸은 복사하지 않음
yc 현재 라인부터 파일의 끝까지 복사
y) 커서의 위치부터 한 문장들 복사
y} 커서의 위치부터 한 문단을 복사

블록 지정하기

  • v 또는 V 명령을 사용하여 문자 또는 라인 단위로 지정함
    • 블록들 지정하고 싶은 곳에 커서를 이동하고 화살표를 사용하여 블록들 지정하고 삭제(x) 또는 복사(y)함
    • 커서를 이동한 후 p 또는 P 명령들 사용하여 붙여 넣기를 할 수 있음

  • v : 비주얼 모드에서 한 번에 한 문자씩 선택

  • V : 비주얼 모드에서 한 번에 한 라인씩 선택

명령의 취소와 기타 명령

  • 명령 모드에서 다음과 같은 명령을 수행할 수 있음
명령 키 설명
u 이전 변경 작업을 취소(undo)
ctrl + r 앞서 취소했던 작업클 다시 하는 것으로 취소를 취소
:e! 마지막으로 저장한 후의 작업을 취소하고 다시 작업
:n n번째 라인으로 이동
j 또는 :j 현재 라인과 아래 라인을 합침
:!command vi를 사용하다 웰 명령 command! 수행
:sh vi를 잠시 빠져나가 웰 명령클 수행함. 쉘 명령으로 exit클 실행하면 다시 vi 돌아옴
:se nu 화면 좌측에 라인 번호를 표시
ctrl + g 화면 하단에 파일의 이름, 전체 라인 수, 현재 라인의 상대적 위치를 퍼센티지로표시
:r filename 지정된 파일의 내용을 읽어 현재 커서의 아래 졸에 추가

검색 명령

  • 한 라인에서 검색할 때 명령 모드에서 f를 사용
    • 예를 들어 fa 명령은 커서 다음 위치부터 a를 찾음
    • 세미콜론을 사용하여 검색들 반복
  • 파일 전체를 대상으로 검색할 때 다음 명령을 사용
명령 키 설명
/pattern 순방향◦로 pattern® 검색하여 커서를 이동
/pattern/+num patterg 검색하고 그 뒤(+) num번패 라인으로 이동
? pattern 역방향으로 pattern을 검색하여 커서를 이동
?pattern? num pattern 검색하고 그 앞(-) num번패 라인으로 이동
n 이전 검색을 같은 방향으로 반복
N 이전 검색을 반대 방향으로 반복
  • 문자열을 검색할 때 정규식을 사용할 수 있음
    명령 키 설명

| /hello | 순방향으로 단어 hello를 검색하여 커서를 이동|
| ?goodbye | 역방향으로 단어 goodbye를 검색하여 커서를 이동|
|/The.does | 단어 The를 포함하고 그 이후에 단어 does를 포함 하는 라인들 검색함. 점(.)은 임의의 한 문자와 매칭
되며, 애스터리스크 (
) 는 앞의 문자(여기서는 임의 의 한 문자)가 0개 이상 나타날 수 있음을 의미|
|?[pP]rint| 단어 print나 Print를 역방향으로 검색함 [ ]는 안에 포함하는 문자 중 하나와 매칭됨|

검색과 대치

  • 문자열을 검색하여 대치하는 기능
    • :[g] [address]s/pattern/replacement [/option]
      • [g][address]는 검색 범위로, %는 전체이며, 예를 들어 /pine/은 커서 다음에 나오는 pine을 포함하는 한 라인, g/pine/은 pineS 포함하는 모든 라인을 대상으로 함
      • s는 patterr을 찾아 replacement로 대치하라는 연산
      • 마지막 옵션이 생략되면 검색된 라인에서 첫 번패 패턴만 대치하며, 성가 사용되면 모든 패턴을 대치
명령 키 설명
: s/pattern/replacement 커서가 위치한 라인에서 첫 번째 등장하는 patterns replacement로 대치
: %s/pattern/replacement 전체 범위의 라인에서 위와 같은 것을 수행. % 대신에 를 널어도 됨
: %s/ pattern/ replacement/g 위와 같으나 등장하는 모든 pattern들 대치
: 1,10s/pattern/ replacement/g 위와 같으나 1~10 라인에서 수행됨

파일 찾기와 문자열 검색

locate 명령

  • 문자열 패턴이 (기본적으로 /로 시작하는) 파일 이름에 포함될 때, 해당 파일의 이름을 출력하는 명령
    • 절대 경로 상의 디렉터리나 파일 이름에 문자열이 포함되면 출력함
  • locate [options] pattern
    •updatedb 명령에서 만들어진 데이터베이스에서 검색함
    • 접근할 수 없는 파일은 출력이 안됨
    • 옵션 -b(또는 --basename)를 사용하면 절대 경로 중 마지막 이름에서만 검색함
$ locate bin
(/usr/bin, /bin, /usr/local/bin 등 bin이 포함된 경로들이 출력됨)

$ find / -name bin 2> /dev/null
(루트 디렉터리에서 'bin'이라는 이름의 파일 또는 디렉터리를 찾고, 오류 메시지는 무시하며 결과 출력)
  1. $ locate bin:

    • locate 명령은 updatedb 데이터베이스에서 'bin'이 포함된 파일이나 디렉터리의 경로를 찾아 출력한다. 이는 시스템 전체에서 빠르게 검색이 가능하다.
  2. $ find / -name bin 2> /dev/null:

    • find / -name bin 명령은 루트 디렉터리(/)에서 시작하여 'bin'이라는 이름의 파일이나 디렉터리를 찾는다. 2> /dev/null은 발생하는 모든 오류 메시지를 무시하고 출력하지 않게 한다. 이 명령은 실제 파일 시스템을 직접 검색하므로 locate보다 느릴 수 있다.

find 명령

  • 검색 위치에서 조건에 맞는 파일을 찾고, 검색된 파일을 대상으로 명령을 수행할 수 있음
  • 파일의 이름, 소유자, 접근권한, 크기, 수정시간 등의 속성을 조건으로 사용할 수 있음
  • find [pathnames] [expression]
    • pathename(경뢰을 지정하지 않으면 현재 디렉터리(서브 디렉터리 포함)를 기준으로 함
    • expression (조건이나 액션)이 주어지지 않으면 -print가 주어짐

  • • 단순히 find 명령들 수행하면 현재 디렉터리와 서브 디렉터리에 존재하는 모든 파일과 디렉터리의 이름을 라인 단위로 출력함
    • find /etc -iname ‘passwd’는 이름에 passwd를 포함하는 파일을 찾음
    • find ~ | wc -I 은 사용자가 가지고 있는 파일의 총 개수를 출력함

find 명령에서 조건의 지정

조건 설명
-cmin n 파일(또는 디렉터리) 내용이나 파일 속성의 마지막 수정시간이 정확히 n분인 경우이며 이분보다 작음을 의미하려면 시을 사용하고, n분보다 콤을 의미하려면 내을 사용함
-cnewer file 파일(또는 디렉터리)의 내용이나 파일 속성의 마지막 수정시간이 지정된 file보다 최근 것임을 의미
-empty 파일(또는 디렉터리)이 비어 있는 경우를 의미
-name pattern 파일(또는 디렉터리)의 이름이 pattern과 매칭되는 경우
-iname pattern -name과 같으나 대소문자를 구분하지 않음
-nouser 파일(또는 디렉터리)의 소유자가 유효한 사용자가 아닌 경우
-perm mode 파일(또는 디렉터리)의 접근권한이 mode와 같은 경우로 mode는 8진수 표기법이나기호 표기법으로 표시함
-size n 파일(또는 디렉터리)의 크기가 n인 경우이다. 단위로는 b(512바이트 블록), c(바이트), k(킬로바이트), M(메가바이트), G(기가바이트)가 있음
-type c 파일의 타입이 c인 경우이다. 파일 타입으로는 b(블록 디바이스), 이문자 디바이스), d(디렉터리), f(정규 파일), 1(심볼릭 링크) 등이 있음
-user name 파일(또는 디렉터리)의 소유자가 name인 경우로 name은 계정 이름 또는 uid로 표시할 수 있음

find 명령에서 사용되는 액션

  • 검색된 각 파일에 특별한 액션을 수행할 수 있음
    • 이미 정의된 액션 또는 사용자 액션을 적용
액션 설명
-delete 파일을 삭제
-Is 파일(또는 디렉터리)의 정보를 자세히 보여줌
-print 경로를 포함하여 파일 이름들 화면에 출력함. 아무 액션도 주어지지 않으면 기본으로 수행됨
-quit 매칭되는 것이 있다면 종료
-exec command {}; 사용자 정의 액션으로 임의의 command를 수행함. -exec 대신 -ok를 사용하면 확인 과정들 거침

find 명령의 사용 예

$ find /usr/share -size +10M
(10MB보다 큰 파일들의 경로가 /usr/share 디렉터리 내에서 출력됨)

$ find /data -size +500M -size -5G -exec du '{}' \;
(500MB 이상 5GB 미만 크기의 파일들을 /data 디렉터리에서 찾고, 각 파일의 디스크 사용량을 출력)

$ find . -type f -exec file '{}' \;
(현재 디렉터리 및 하위 디렉터리에서 모든 파일을 찾아 파일 형식을 출력)

$ find /home -user chris -ls
(사용자 'chris'가 소유한 파일과 디렉터리를 /home에서 찾아 상세 정보를 출력)

$ find /home -user chris -or -group staff -ls
(사용자 'chris' 또는 그룹 'staff'가 소유한 파일과 디렉터리를 /home에서 찾아 상세 정보를 출력)

$ find /bin -perm 755
(/bin 디렉터리 내에서 퍼미션(permission)이 755인 파일들의 경로 출력)

$ find /home/chris/ -perm -755 -type d -ls
(사용자 'chris'의 홈 디렉터리 내에서 퍼미션(permission)이 최소 755인 디렉터리들을 찾아 상세 정보를 출력)

$ find /bin /usr/bin /sbin /usr/sbin -ctime -3
(/bin, /usr/bin, /sbin, /usr/sbin 디렉터리들에서 최근 3일 이내에 변경된 파일들의 경로 출력)

$ find - \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \)
(현재 디렉터리에서 퍼미션이 0600이 아닌 파일과 0700이 아닌 디렉터리를 찾아 경로 출력)

각 명령에 대한 설명:

  1. find /usr/share -size +10M: /usr/share 디렉터리에서 10MB보다 큰 파일을 찾는다.

  2. find /data -size +500M -size -5G -exec du '{}' \;: /data 디렉터리에서 500MB 이상 5GB 미만의 파일을 찾고, 그들의 디스크 사용량을 출력한다.

  3. find . -type f -exec file '{}' \;: 현재 디렉터리 및 하위 디렉터리에서 모든 파일을 찾아 파일 유형을 출력한다.

  4. find /home -user chris -ls: /home 디렉터리에서 사용자 'chris'가 소유한 파일과 디렉터리를 찾아 상세 정보를 출력한다.

  5. find /home -user chris -or -group staff -ls: /home에서 사용자 'chris' 또는 그룹 'staff'가 소유한 파일과 디렉터리를 찾아 상세 정보를 출력한다.

  6. find /bin -perm 755: /bin 디렉터리에서 퍼미션(permission)이 755인 파일들을 찾는다.

  7. find /home/chris/ -perm -755 -type d -ls: 사용자 'chris'의 홈 디렉터리에서 퍼미션(permission)이 최소 755인 디렉터리들을 찾아 상세 정보를 출력한다.

  8. find /bin /usr/bin /sbin /usr/sbin -ctime -3: 지정된 디렉터리들에서 최근 3일 이내에 변경된 파일들을 찾는다.

  9. find - \( -type f -not -perm 0600 \) -or \( -type d -not -perm 0700 \): 현재 디렉터리에서 퍼미션 0600이 아닌 파일과 퍼미션 0700이 아닌 디렉터리를 찾는다.

grep 명령

  • 파일에서 지정된 문자열 패턴을 포함한 라인을 찾아 출력
    • 파이프(I)를 사용하여 앞 명령의 결과(검색된 파일)를 입력으로 받아검색할 때 grep들 자주 사용함
  • grep [options] pattern[files]
    • pattern은 찾으려는 문자열이며 정규식으로 표현 가능
  • 옵션
    • -「은 파일 대신 디렉터리가 지정될 때, 포함된 모든 파일을 대상으로 검색함
    • 니는 대소문자를 구분하지 않음
    • -V는 매칭이 일어나지 않는 라인을 출력함
$ grep root /etc/passwd
(/etc/passwd 파일 내에서 'root' 문자열이 포함된 라인들이 출력됨)

$ grep -n unix ~/*.txt
(사용자 홈 디렉터리 내의 모든 .txt 파일에서 'unix' 문자열을 포함한 라인들을 찾아 해당 라인 번호와 함께 출력)

$ ip addr show | grep inet
(ip addr show의 결과 중 'inet' 문자열이 포함된 라인들이 출력됨)
  1. $ grep root /etc/passwd:

    • grep root /etc/passwd 명령은 /etc/passwd 파일에서 'root' 문자열이 포함된 라인들을 찾아서 출력한다. 이 파일은 시스템 사용자 계정 정보를 담고 있음.
  2. $ grep -n unix ~/*.txt:

    • grep -n unix ~/*.txt 명령은 사용자의 홈 디렉터리 내의 모든 .txt 파일에서 'unix' 문자열을 포함한 라인들을 찾고, 해당 라인들의 번호와 함께 출력한다.
  3. $ ip addr show | grep inet:

    • ip addr show | grep inet 명령은 ip addr show의 결과 중 'inet' 문자열이 포함된 라인들을 파이프를 통해 grep 명령으로 전달하고, 해당 라인들을 출력한다. 이는 네트워크 인터페이스의 IP 주소 관련 정보를 필터링하여 보여준다.

요약

  1. 리눅스 시스템의 관리자는 텍스트 파일을 능숙하게 작성할 수 있어야 한다.
  2. vi를 사용한 편집 작업은 명령 모드, 입력 모드, 라인 모드의 세 가지 모드로 구분된다.
  3. 명령 모드에서 커서 이동, 텍스트의 삭제 · 변경 · 복사를 위한 명령키를 기억해야 한다.
  4. 명령 모드에서 텍스트 복사와 붙여넣기 명령키, 명령의 반복이나 취소를 위한 명령키를 기억해야 한다.
  5. 라인 모드에서 ‘검색과 대치’를 위한 다양한 기능을 수행할 수 있다.
  6. 파일 이름의 부분 문자열을 가지고 파일을 찾을 때 locate 명령을 사용한다.
  7. 파일이 가진 속성으로 파일을 찾거나 검색된 파일에 대해 특별한 액션을 수행할 때 find 명령을 사용한다.
  8. grep 명령은 지정된 파일에서 문자열을 포함하는 라인을 출력한다.

예상 문제

1. 리눅스 시스템의 관리자가 텍스트 파일을 편집하는데 주로 사용하는 기본 편집기는 무엇인가?

  • A) gedit

  • B) emacs

  • C) vi

  • D) nano

  • 정답: C) vi

  • 해설: vi 편집기는 리눅스 시스템에서 널리 사용되는 기본 텍스트 편집기이다. 명령 모드, 입력 모드, 라인 모드 등의 기능을 제공하여 다양한 편집 작업을 수행할 수 있다.

2. 리눅스 시스템에서 파일의 텍스트 내용을 검색할 때 주로 사용되는 명령어는 무엇인가?

  • A) find

  • B) locate

  • C) grep

  • D) ls

  • 정답: C) grep

  • 해설: grep 명령어는 파일 내에서 특정 문자열 패턴을 검색하여 해당하는 라인을 출력하는데 사용된다.

3. 리눅스에서 파일의 속성을 기준으로 파일을 검색하는 명령어는 무엇인가?

  • A) grep

  • B) find

  • C) locate

  • D) ls

  • 정답: B) find

  • 해설: find 명령어는 파일의 이름, 소유자, 크기, 수정 시간 등 다양한 속성을 기준으로 파일을 검색하는 데 사용된다.

4. vi 편집기에서 현재 파일을 저장하지 않고 강제 종료하는 라인 모드 명령은 무엇인가?

  • A) :wq

  • B) :q!

  • C) :x

  • D) ZZ

  • 정답: B) :q!

  • 해설: ':q!' 명령은 vi 편집기에서 현재 파일을 저장하지 않고 강제로 종료하는 데 사용된다.

5. vi 편집기에서 현재 커서 위치의 한 문자를 삭제하는 명령 키는 무엇인가?

  • A) dd

  • B) X

  • C) dw

  • D) r

  • 정답: B) X

  • 해설: vi 편집기의 명령 모드에서 'X' 키는 현재 커서 위치의 한 문자를 삭제하는 데 사용된다.

6. 리눅스에서 특정 문자열을 포함하는 파일의 위치를 빠르게 찾는 명령어는 무엇인가?

  • A) grep

  • B) find

  • C) locate

  • D) ls

  • 정답: C) locate

  • 해설: locate 명령어는 파일 이름에 특정 문자열이 포함된 파일의 위치를 빠르게 찾는 데 사용된다.

7. vi 편집기에서 현재 커서 위치부터 다음 단어의 끝까지 텍스트를 변경하는 명령 키는 무엇인가?

  • A) cw

  • B) dw

  • C) ciw

  • D) cw

  • 정답: A) cw

  • 해설: vi 편집기의 명령 모드에서 'cw' 키는 현재 커서 위치부터 다음 단어의 끝까지 텍스트를 삭제한 후 입력 모드로 전환하여 변경을 가능하게 한다.

8. vi 편집기에서 파일의 특정 라인으로 바로 이동하는 명령어 형식은 무엇인가?

  • A) :n

  • B) nG

  • C) :goto n

  • D) :nG

  • 정답: B) nG

  • 해설: vi 편집기에서 'nG' 명령 (예: 10G)은 파일의 n번째 라인으로 바로 이동하는 데 사용된다.

9. vi 편집기에서 현재 라인과 아래 라인을 합치는 라인 모드 명령은 무엇인가?

  • A) :j

  • B) :merge

  • C) :join

  • D) :concat

  • 정답: A) :j

  • 해설: vi 편집기의 라인 모드에서 ':j' 명령은 현재 라인과 아래 라인을 합치는 데 사용된다.

10. 리눅스 시스템에서 특정 파일의 내용을 현재 커서 위치 아래에 추가하는 vi 명령은 무엇인가?

  • A) :r filename

  • B) :add filename

  • C) :import filename

  • D) :include filename

  • 정답: A) :r filename

  • 해설: vi 편집기에서 ':r filename' 명령은 지정된 파일의 내용을 현재 커서 위치 아래에 추가하는 데 사용된다.

11. vi 편집기에서 현재 라인의 앞 부분을 모두 삭제하는 명령 키는 무엇인가?

  • A) d0

  • B) d^

  • C) dd

  • D) d$

  • 정답: B) d^

  • 해설: vi 편집기의 명령 모드에서 'd^' 키는 현재 커서 위치의 왼쪽부터 현재 라인의 시작까지 텍스트를 삭제한다.

12. vi 편집기에서 화면을 아래로 스크롤하는 명령 키는 무엇인가?

  • A) ctrl + f

  • B) ctrl + b

  • C) ctrl + d

  • D) ctrl + u

  • 정답: A) ctrl + f

  • 해설: vi 편집기에서 'ctrl + f' (forward) 키는 화면을 아래로 스크롤하는 데 사용된다.

13. vi 편집기에서 특정 패턴을 검색하고 그 결과를 반대 방향으로 반복 검색하는 명령 키는 무엇인가?

  • A) n

  • B) N

  • C) /

  • D) ?

  • 정답: B) N

  • 해설: vi 편집기에서 'N' 키는 이전에 수행한 검색을 반대 방향으로 반복한다.

14. 리눅스 시스템에서 사용자의 홈 디렉터리 내의 모든 파일을 찾아 파일 유형을 출력하는 find 명령 예시는 무엇인가?

  • A) find ~ -type f -exec file '{}' ;

  • B) find /home -type f -exec file '{}' ;

  • C) locate ~ -type f -exec file '{}' ;

  • D) grep ~ -type f -exec file '{}' ;

  • 정답: A) find ~ -type f -exec file '{}' ;

  • 해설: 'find ~ -type f -exec file '{}' ;' 명령은 사용자의 홈 디렉터리(~) 내의 모든 파일을 찾아 각 파일의 유형을 출력한다.

15. vi 편집기에서 현재 라인에 존재하는 문자를 모두 삭제하고 입력 모드로 전환하는 명령 키는 무엇인가?

  • A) S

  • B) dd

  • C) D

  • D) X

  • 정답: A) S

  • 해설: vi 편집기의 명령 모드에서 'S' 키는 현재 라인에 존재하는 모든 문자를 삭제하고 입력 모드로 전환한다.

16. 리눅스 시스템에서 특정 문자열을 포함하지 않는 라인을 출력하는 grep 명령의 옵션은 무엇인가?

  • A) -v

  • B) -i

  • C) -n

  • D) -l

  • 정답: A) -v

  • 해설: grep 명령어에서 '-v' 옵션은 지정된 문자열을 포함하지 않는 라인들을 출력한다.

17. vi 편집기에서 모든 변경을 저장하고 파일을 종료하는 라인 모드 명령은 무엇인가?

  • A) :wq

  • B) :q!

  • C) ZZ

  • D) :x

  • 정답: A) :wq

  • 해설: ':wq' 명령은 vi 편집기에서 모든 변경 사항을 저장하고 파일을 종료하는 데 사용된다.

18. 리눅스 시스템에서 특정 파일의 크기가 500MB 이상인

파일을 찾는 find 명령 예시는 무엇인가?

  • A) find / -size +500M

  • B) find / -size 500M

  • C) locate / -size +500M

  • D) grep / -size +500M

  • 정답: A) find / -size +500M

  • 해설: 'find / -size +500M' 명령은 시스템 전체에서 500MB 이상인 파일을 찾는다.

19. vi 편집기에서 현재 라인의 아래 라인을 열고(open) 입력 모드로 전환하는 명령 키는 무엇인가?

  • A) O

  • B) o

  • C) A

  • D) i

  • 정답: B) o

  • 해설: vi 편집기의 명령 모드에서 'o' 키는 현재 라인의 아래에 새로운 라인을 열고 입력 모드로 전환한다.

20. 리눅스 시스템에서 특정 사용자가 소유한 파일을 찾는 find 명령 예시는 무엇인가?

  • A) find / -user [username]

  • B) find / -owner [username]

  • C) locate / -user [username]

  • D) grep / -user [username]

  • 정답: A) find / -user [username]

  • 해설: 'find / -user [username]' 명령은 시스템 전체에서 특정 사용자([username])가 소유한 파일을 찾는다.

21. vi 편집기에서 현재 커서 위치부터 문장의 끝까지 삭제하고 입력 모드로 전환하는 명령 키는 무엇인가?

  • A) c)

  • B) cw

  • C) c$

  • D) cc

  • 정답: A) c)

  • 해설: vi 편집기의 명령 모드에서 'c)' 명령은 현재 커서 위치부터 문장의 끝까지 삭제하고 입력 모드로 전환한다. 이 명령을 통해 텍스트의 일부를 효율적으로 수정할 수 있다.

22. 리눅스 시스템에서 특정 파일의 내용을 다른 파일로 복사하는 find 명령 예시는 무엇인가?

  • A) find /path -name "filename" -exec cp '{}' /destination/path ;

  • B) find /path -type f -name "filename" -exec mv '{}' /destination/path ;

  • C) locate "filename" -exec cp '{}' /destination/path ;

  • D) grep "filename" -exec cp '{}' /destination/path ;

  • 정답: A) find /path -name "filename" -exec cp '{}' /destination/path ;

  • 해설: 'find /path -name "filename" -exec cp '{}' /destination/path ;' 명령은 지정된 경로(/path)에서 "filename"을 이름으로 가진 파일을 찾아, 해당 파일을 다른 경로(/destination/path)로 복사한다.

23. vi 편집기에서 커서의 위치부터 다음 단어의 앞까지 삭제하는 명령 키는 무엇인가?

  • A) dw

  • B) dd

  • C) d$

  • D) d^

  • 정답: A) dw

  • 해설: vi 편집기에서 'dw' 명령은 커서 위치부터 시작하는 단어의 앞까지를 삭제한다. 이 명령을 사용하여 텍스트를 효율적으로 편집할 수 있다.

24. 리눅스 시스템에서 파일의 마지막 변경시간이 최근 3일 이내인 파일을 찾는 find 명령 예시는 무엇인가?

  • A) find / -ctime -3

  • B) find / -mtime -3

  • C) locate -ctime -3

  • D) grep -ctime -3

  • 정답: A) find / -ctime -3

  • 해설: 'find / -ctime -3' 명령은 시스템의 모든 디렉터리와 파일 중에서 마지막 변경시간이 최근 3일 이내인 것들을 찾는다.

25. vi 편집기에서 현재 라인의 마지막까지 텍스트를 복사하는 명령 키는 무엇인가?

  • A) y$

  • B) yy

  • C) yw

  • D) y^

  • 정답: A) y$

  • 해설: vi 편집기에서 'y$' 명령은 현재 커서 위치부터 라인의 마지막까지 텍스트를 복사하는 데 사용된다.

26. 리눅스에서 파일 내에서 특정 패턴을 검색하고 해당 패턴이 포함된 라인의 번호를 출력하는 grep 명령의 옵션은 무엇인가?

  • A) -n

  • B) -v

  • C) -l

  • D) -i

  • 정답: A) -n

  • 해설: grep 명령어에서 '-n' 옵션은 파일 내에서 특정 패턴을 검색하고, 해당 패턴이 포함된 라인의 번호와 함께 라인을 출력한다.

27. vi 편집기에서 현재 커서 위치부터 라인의 시작까지 텍스트를 삭제하는 명령 키는 무엇인가?

  • A) d0

  • B) d^

  • C) D

  • D) dd

  • 정답: A) d0

  • 해설: vi 편집기에서 'd0' 명령은 현재 커서 위치부터 라인의 시작까지 텍스트를 삭제하는 데 사용된다.

28. 리눅스 시스템에서 특정 문자열을 포함하는 파일을 역방향으로 검색하는 grep 명령의 옵션은 무엇인가?

  • A) -B

  • B) -A

  • C) -v

  • D) -C

  • 정답: A) -B

  • 해설: grep 명령어에서 '-B' 옵션은 특정 문자열을 포함하는 라인을 역방향으로 검색하고, 해당 라인 앞의 라인들을 함께 출력한다.

29. vi 편집기에서 모든 변경 사항을 취소하고 마지막으로 저장된 상태로 되돌리는 라인 모드 명령은 무엇인가?

  • A) :e!

  • B) :q!

  • C) :u

  • D) :wq!

  • 정답: A) :e!

  • 해설: vi 편집기에서 ':e!' 명령은 모든 변경 사항을 취소하고 마지막으로 저장된 상태로 파일을 되돌리는 데 사용된다.

30. 리눅스 시스템에서 사용자의 소유가 아닌 파일을 찾는 find 명령 예시는 무엇인가?

  • A) find / -nouser

  • B) find / -user unknown

  • C) find / -notuser

  • D) find / -nonuser

  • 정답: A) find / -nouser

  • 해설: 'find / -nouser' 명령은 시스템 전체에서 소유자가 지정되지 않은(존재하지 않는 사용자의 소유인) 파일을 찾는다.

31. 리눅스 시스템에서 vi 편집기로 특정 파일을 읽기 전용 모드로 열기 위한 명령어는 무엇인가?

  • A) vi -R filename

  • B) vi -W filename

  • C) vi -O filename

  • D) vi -V filename

  • 정답: A) vi -R filename

  • 해설: vi 편집기에서 'vi -R filename' 명령은 해당 파일을 읽기 전용 모드로 열어서 변경이 불가능하게 한다.

32. 리눅스에서 파일이나 디렉터리의 크기를 확인하기 위해 사용하는 명령어는 무엇인가?

  • A) ls -lh

  • B) du -h

  • C) df -h

  • D) file -s

  • 정답: B) du -h

  • 해설: 'du -h' 명령은 파일이나 디렉터리의 디스크 사용량을 사람이 읽기 쉬운 형식으로 출력한다.

33. 리눅스 시스템에서 파일의 접근 권한이 644인 파일을 찾는 find 명령 예시는 무엇인가?

  • A) find / -perm 644

  • B) find / -type f -perm 644

  • C) locate -perm 644

  • D) grep -perm 644

  • 정답: A) find / -perm 644

  • 해설: 'find / -perm 644' 명령은 시스템 전체에서 접근 권한이 644인 파일을 찾는다.

34. vi 편집기에서 현재 커서 위치부터 문장의 시작까지 삭제하고 입력 모드로 전환하는 명령 키는 무엇인가?

  • A) c0

  • B) c^

  • C) C

  • D) cc

  • 정답: B) c^

  • 해설: vi 편집기에서 'c^' 명령은 현재 커서 위치부터 문장의 시작까지 삭제하고 입력 모드로 전환한다.

35. 리눅스 시스템에서 특정 파일의 마지막 수정 시간을 확인하기 위해 사용하는 명령어는 무엇인가?

  • A) ls -l

  • B) stat

  • C) touch

  • D) chmod

  • 정답: B) stat

  • 해설: 'stat' 명령은 파일의 상세한 정보, 포함된 마지막 수정 시간을 확인하는 데 사용된다.

36. vi 편집기에서 현재 커서 위치에서 다음 단어의 시작까지 이동하는 명령 키는 무엇인가?

  • A) w

  • B) b

  • C) e

  • D) l

  • 정답: A) w

  • 해설: vi 편집기에서 'w' 키는 현재 커서 위치에서 다음 단어의 시작까지 이동하는 데 사용된다.

37. 리눅스 시스템에서 파일이나 디렉터리의 소유자를 변경하기 위해 사용하는 명령어는 무엇인가?

  • A) chown

  • B) chmod

  • C) chgrp

  • D) cp

  • 정답: A) chown

  • 해설: 'chown' 명령은 파일이나 디렉터리의 소유자를 변경하는 데 사용된다.

38. vi 편집기에서 파일 내 특정 단어를 순방향으로 검색하는 명령 키는 무엇인가?

  • A) /word

  • B) ?word

  • C) n

  • D) N

  • 정답: A) /word

  • 해설: vi 편집기에서 '/word' 명령은 파일 내에서 'word'라는 단어를 순방향으로 검색한다.

39. 리눅스 시스템에서 특정 사용자가 소유한 파일 중 접근 권한이 755인 파일을 찾는 find 명령 예시는 무엇인가?

  • A) find / -user [username] -perm 755

  • B) find / -perm 755 -user [username]

  • C) locate -user [username] -perm 755

  • D) grep -perm 755 -user [username]

  • 정답: A) find / -user [username] -perm 755

  • 해설: 'find / -user [username] -perm 755' 명령은 특정 사용자([username])가 소유하고 접근 권한이 755인 파일을 찾는다.

40. vi 편집기에서 현재 커서 위치에서 이전 단어의 시작까지 이동하는 명령 키는 무엇인가?

  • A) w

  • B) b

  • C) e

  • D) l

  • 정답: B) b

  • 해설: vi 편집기에서 'b' 키는 현재 커서 위치에서 이전 단어의 시작까지 이동하는 데 사용된다.

반응형