새싹 6일차(리눅스)

고유진·2024년 5월 21일

새싹

목록 보기
5/9

링크

  • 특정 하나의 파일 또는 디렉토리에 접근을 쉽게할 수 있도록 하는 방법
  • 링크 되어 있는 서로 다른 파일 또는 디렉토리 중 하나를 변경하면 다른 하나의 내용도 똑같이 변경됨.

하드 링크

  • 특정 파일이 디스크에 저장되어있는 위치가 동일 한 곳을 가리키고 있는 포인터
  • 실제 디스크의 위치를 똑같이 가리키고 있기 때문에 아무리 많은 하드 링크 파일을 만든다고 하더라도, 용량은 더 이상 늘어나지 않음.

심볼릭 링크

  • 특정 파일 또는 디렉토리를 가리키고 있는 포인터
  • 운영체제의 바로가기 아이콘의 개념.

파일 내용 검색

grep 명령어

  • 하나 이상의 파일에서 문자패턴을 검색함.
  • grep option pattern filename

    -옵션

    • i : 검색 패턴 대소문자 무시
    • l : 매칭 되는 패턴이 있는 파일 이름 출력
    • n : 매칭 되는 줄 번호 표시
    • v : 검색 패턴을 제외하고 검색
    • c : 검색 패턴과 매칭 되는 줄 개수 출력
    • w : 단어 단위로 검색
  • 메타문자
    -^ : 줄의 시작 지정
    -$ : 줄의 마지막 지정
    -. : 한 문자 대치
    - : 아무것도 없거나 여러 문자 대치
    -[ ] : 패턴중 한 문자 대치
    -[^] : 패턴중 제외할 한 문자

    -^solaris : solaris로 시작하는 줄
    -solaris$ : solaris로 끝나는 줄
    -s.....s : s로 시작하고, 5개의 아무문자, s로 끝남
    -[a-z]
    : 소문자로 시작하는 모든 문자 또는 아무것도 없음
    -[Ss]olaris : Solaris 또는 solaris
    -[^a-r]olaris : 첫 문자가 a에서 r까지 제외하고 s에서 z까지 오는 문자

grep 명령어 실습

  1. 다음 명령어를 실행해서 실습에 사용할 파일을 준비하세요.
# yum install -y words

이후 실습은 /usr/share/dict/words 파일을 대상으로 진행합니다.

  1. hot 라는 문자를 찾아보세요. (대소문자 구분 없이)
grep -i "hot" /usr/share/dict/words
  1. dog 라는 문자를 찾아보세요.(대소문자 구분 없이)
grep -i "dog" /usr/share/dict/words
  1. hot 라는 글자로 시작하는 라인을 찾아보세요.
grep "^hot" /usr/share/dict/words
  1. Dog 라는 문자를 찾아보세요. (대소문자 구분해서)
grep "Dog" /usr/share/dict/words

5.대문자 D 와 소문자 g 사이에 임의의 한글자만 있는 라인을 찾아보세요.

grep "D.g" /usr/share/dict/words
  1. c라는 문자와 t 라는 문자 사이에 임의의 2글자가 있는 라인을 찾아보세요.
grep "c..t" /usr/share/dict/words
  1. 글자 수 관계없이 c라는 글자로 시작하고 t 라는 글자로 끝나는 라인을 찾아보세요.
grep "^c.*t$" /usr/share/dict/words
  1. 숫자 1로 시작하는 라인을 찾아보세요.
grep "^1" /usr/share/dict/words
  1. cat 라는 글자만 있는 라인을 찾아보세요.
grep "^cat$" /usr/share/dict/words
  1. cat라는 단어가 있는 라인을 찾아보세요.
grep -w "cat" /usr/share/dict/words

find 명령어

  • 특정 디렉토리를 기준으로 하위 디렉토리를 검색해줌.
  • find pathname expression aaction

find 명령어 형식

  • 경로(pathname) : 검색을 시작할 절대경로 또는 상대경로
  • 조건(expression) : 검색 조건 지정
  • 동작(action) : 파일 검색 후 동작 지정

find 명령어 조건

-name filename : 특정 파일 이름 지정 (메타문자 사용 가능)
-type : 검색할 파일 종류 지정 (f:파일, d:디렉토리 등)
-perm : 특정 권한을 가진 파일 검색
-user LoginID : 특정 사용자가 소유한 파일 검색
-size [+|-]n : 파일 특정 크기 검색
-atime [+|-]n : 파일에 접근한 시간 검색
-mtime [+|-]n : 파일을 수정한 시간 검색

find 명령어 동작

-print : 기본값, 터미널에 검색한 파일의 경로와 아름을 표시
-ls : 터미널에 검색한 파일의 경로와 이름뿐만 아니라 자세한 정보 표시
-exec command {} \; : 검색한 파일에 특정 명령 수행
-ok command {} \; : -exex와 결과와 비슷하나, 특정 명령을 대화형으로 진행

find 명령어 실습

  1. 시스템 전체에서 passwd 라는 이름의 파일을 검색하세요.
find / -name passwd
  1. /etc 디렉토리 안에서 passwd 라는 이름의 파일을 검색하세요.
find /etc -name passwd
  1. /bin 디렉토리 안에서 파일의 크기가 10k 미만인 파일을 찾으세요.
cd /
cd bin
find . -size -10k 
  1. 현재 작업디렉토리에 10k 라는 이름의 디렉토리를 만드세요.
mkdir 10k
  1. 3번에서 검색한 파일을 모두 4번 디렉토리로 복사하세요.
find . -size -10k -exec cp {} 10k \;
  1. 시스템 전체에서 소유자가 vagrant 인 디렉토리를 모두 찾으세요. (참고로 소유자는 -user 로 검색합니다.)
find / -user vagrant -type d
  1. /root 디렉토리에서 빈파일을 모두 찾아 삭제하세요. (옵션은 메뉴얼페이지에서 찾아보세요)
find / -empty -delete
  1. /usr 디렉토리에서 words 라는 일반파일을 찾아서 자세한 정보들을 출력하세요. (ls -l 처럼)
find /usr -name words -ls
  1. /root 디렉토리에서 파일 이름에 A(대문자)가 들어가는 파일을 찾아보세요.
find / -name "*A*"

vi 편집기 기초

  • command 모드
  • Edit 모드
  • Last Line 모드

1. command 모드

  • vi 편집기의 기본 모드

2. Edit 모드

  • 파일에 내용을 입력할 수 있음.
    • i : 텍스트 앞에 커서를 위치하고 입력을 받습니다.
    • o : 새로운 줄을 생성하여 커서를 위치시키고 입력을 받습니다.
    • a : 텍스트 뒤에 커서를 위치시키고 입력을 받습니다.

3. Last Line 모드

  • 더 추가된 수정 명령어를 사용할 수 있음.
  • Last Line 모드에 접근하기 위해서는 command 모드에서 콜론(:) 기호를 입력해야 함.

0개의 댓글