[한화시스템 BEYOND SW캠프 7기] #03. find / grep 및 네트워크

아로롱·2024년 5월 15일

BEYOND SW CAMP 7

목록 보기
3/30
post-thumbnail

2일차 두 번째 게시글.
1일차가 유일하게 숨 쉴 수 있을 거라는 강사님의 말을 증명이라도 하듯
블로그 쓰기에도 너무 길어져 두 개로 나누었다..!


🔍 find / grep

✏️ find

  • 파일이나 디렉토리를 검색하여 위치 출력
    • 기본 사용법
      find [경로] [옵션] [행동]
      • -name 옵션 : 파일명으로 검색
        ex ) .txt / “hello.txt”
      • -type : 타입으로 검색 (f는 파일, d 디렉토리 등 파일타입으로 검색)
        ex) - find. -type f -name "**.txt" : 현재폴더에서 파일타입 중에 .txt로 끝나는 파일명 검색*
    • 활용 예시
      find . -name "*.txt" | xargs grep -n “hello”
      • |(파이프라인)을 통해 그 다음 명령어로 전달
      • xargs는 입력받은 파일 목록을 한줄씩 읽는것을 의미
      • -exec, \, {}
        • exec : find로 찾은 결과에 대해 실행명령.
        • \ : exec의 종료지점을 의미
        • {} : find로 찾은 대상이 담기는 공간을 의미
        • find . -name "*.txt" -exec echo {} \;
          • find로 찾은 파일에 대해 echo명령어 실행
        • find . -name "*.txt" -exec cp {} ./testFolder/ \;
          • 찾은 결과가 {} 안에 담긴다 ⇒ 그 결과를 exec(실행) 하겠다!

✏️ grep

  • 문자열 내에서 특정 패턴이나 문자열을 검색

    • 기본 사용법
      grep [옵션] [패턴] [파일명]

      • -r옵션 : 디렉토리 내 모든 파일에서 검색

      • -i옵션 : 대소문자 구분 없이 검색

      • -n옵션 : 라인수 출력

        ex ) grep -rni "hello" mydir”
        hello 문자열을 라인수와 함께 mydir폴더에서 대소문자 구분 없이 검색
        뒤에 이름 없으면 현재 위치에서 검색

        ex)find ~ | grep -rni “hello”
        | 은 왼쪽 실행문의 결과값을 오른쪽 실행문의 입력값으로 전달

# 파일 또는 디렉토리 검색 : find
find . -name "*.sh" # shell 파일을 찾아준다.
find . -name "*.sh" | grep "hello" # 이 경우 sh 파일 이름에서 hello를 찾게 되므로 아무것도 나오지 않는다.

# 파일 검색 후 해당 내용에서 원하는 문자열 찾을 때
find . -name "*.sh" | xargs grep -rni "hello" # xargs는 입력받은 파일 목록을 한줄씩 읽는것을 의미

# exec 옵션을 통한 find 와 grep
find . -name "*.sh" -exec grep -n "hello" {} \;

📡 네트워크 관련

  • nslookup : 특정 도메인의 IP 주소 매핑을 조회할 때 사용.
  • ifconfig : IP 정보 등 네트워크 설정 정보 출력.
    - 공인 IP / 사설 IP 중 ifconfig를 통해 나온 것은 사설 IP
  • ping [hostname/IP] : 네트워크 연결 상태 확인.
    - ping은 보안상 일반적으로 막아둠에 유의.
    조회 시 xxx.xxx.xxx.xxx 로 조회 됨. (꼭 세 자리 수로 이루어진 것은 아님)
  • nc -zv 또는 telnet : 특정 port(구분자)까지 열려있는지 확인.
    - ex) nc -zv naver.com 443 (443 = https를 의미)
  • netstat : 현재 서버에 연결된 네트워크 정보 출력.

✏️ ssh

  • SSH란 Secure SHell의 약자로써 네트워크상의 다른 컴퓨터에 로그인하여 명령을 실행하고 정보를 보고 받을수 있도록 해 줌.
  • 리눅스는 기본적으로 멀티 사용자 접속을 지원.
  • 원격 호스트와의 터미널 세션을 제공 (=원격 접속)
    ex) ssh [username]@[hostname/IP]
    => ssh tteia@xxx.xxx.xxx (도메인 또는 ip)

✏️ scp

  • SCP는 Secure Copy Protocol의 약자로써 주로 유닉스(unix)나 리눅스(linux) 두 위치 사이에서 파일이나 디렉터리를 안전하게 복사할 수 있도록 해 줌.
    ex) scp [source][destination]
    => source 로컬을 > destination 원격으로 보낸다

✏️ vi에디터

  • 유닉스 기반 시스템에서 가장 오래된 텍스트 에디터 중 하나. 리눅스 기반 OS 설치 시 기본적으로 함께 설치된다.

  • 리눅스에서 vi의 후속 모델인 vim nano 등의 에디터도 많이 사용한다.

  • 명령모드와 입력모드로 구성, esc 로 전환한다.

    • 명령모드 : 텍스트를 편집하는 대신, 커서를 이동하거나 텍스트를 삭제 / 복사 / 붙여넣기 하는 등의 명령을 수행.
    • 입력모드 : 텍스트를 입력하거나 수정.
  • 주요 명령어 (이미지 출처 : BEYOND SW캠프 수업 자료)

  • 파일 열기 : vi 파일명

  • 작성 : vi *.txt 로 열기

    1. 명령모드로 시작
    2. 입력모드(i,a,o)
    3. 명령모드로 전환(esc)
  • 입력 모드

    • i : 현재 커서부터 입력
    • a : 다음 커서부터 입력
    • o : 다음줄커서부터 입력
    • x : 현재 커서가 위치한 단어 삭제
    • dd : 현재 커서가 위치한 행 삭제
    • yy : 현재 커서가 위치한 행 복사
    • p : 현재 행 이후에 붙여넣기
  • 명령 모드

    • esc
    • :w : 파일 저장
    • :q : 저장없이 vi 종료
    • :wq : 저장 후 vi종료
    • G : 파일의 마지막 줄로 이동
    • gg : 파일의 첫 줄로 이동
    • Ctrl + f : 한 페이지 아래로 이동
    • Ctrl + b : 한 페이지 위로 이동
    • / : 검색하기
      • 예를 들어, "hello"를 찾으려면 /hello 입력 후 엔터

📌 today

복습 시간이 수업 시간만큼 길었던 것 같다 ^^;;
후반부 수업에서는 특히 vi 파트가 흥미로웠다.
독학 공부 시에 터미널 사용하다 vi 편집 모드로 들어 갔을 때, 어떻게 사용하는지 몰라 esc, q 등 다양하게 눌러보다 오류가 발생해 터미널 자체를 종료했다가 다시 시작하곤 했었다.
앞으로는 vi 편집기를 좀 더 수월하게 활용할 수 있을 것 같다!

profile
Dilige, et fac quod vis

1개의 댓글

comment-user-thumbnail
2024년 5월 20일

와우..

답글 달기