Grep : Grep 터미널 명령을 사용하여 셸 스크립팅 학습

grep 명령

터미널 명령을 사용하여 쉘 스크립팅 학습 : grep

GNU / Linux와 같은 무료 운영 체제의 "grep"명령은 매우 가치 있고 유용한 명령입니다. 이름은 영어로 된 "Global Regular Expression Print"구에서 유래되었으며 검색 패턴 또는 하나의 파일 또는 여러 텍스트 파일의 정규식을 찾고, 일치시키고, 표시하는 작업을 수행하는 데 사용됩니다.

기본적으로«grep»명령은 명령 명령의 매개 변수에 표시된 패턴을 검색하고 명령 명령의 매개 변수 표시에 따라 얻은 결과를 인쇄합니다., 화면 또는 출력 파일 일 수 있습니다.

"grep"명령 소개

이«와 같은 동일한 블로그의 다른 이전 간행물에서 이미에 대한 몇 가지 기본 명령 ...»이 위대한 명령의 기본 사용에 대해 언급했지만 이 출판물에서는 특정 실제 작업을 용이하게 할 수있는 기능적이고 유용한 명령 내에서 "grep"명령을보다 중급 및 고급 사용하는 방법을 살펴 봅니다. 수행 할 특정 작업에 대해보다 즉각적인 결과를 얻기 위해 쉘 스크립트 내에서 또는 터미널에서 직접.

실용적인 예

위치 / 위치보기

인쇄 그래픽 디렉토리 트리를 사용하여 현재 디렉토리의 내용 :

ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'

예 :

Grep : 나무와 같은 디렉토리

30 자 길이의 임의 비밀번호 생성

/ dev / urandom 내에서 임의의 문자열을 생성 한 다음 모든 줄 바꿈을 제거하는 처음 1 자의 크기 조건으로 영숫자 문자에 대해서만«grep»명령이있는 필터를 사용하여 단일 (30)을 선택하고 표시합니다. .

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

예 :

Grep : 비밀번호 생성

연결에 대한 그래픽 요약 생성

그래픽 형식 (표)으로보고 지정된 시간에 호스트의 "netstat"명령으로 감지 된 내부 및 외부 네트워크 연결 수를 요약합니다.

netstat -an | grep ESTABLISHED | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | awk '{ printf("%s\t%s\t",$2,$1) ; for (i = 0; i < $1; i++) {printf("*")}; print "" }'

예 :

Grep : Netstat 연결 그래프

또한 아래와 같이 연결 유형별 연결 수 요약 테이블을 생성하는 데 사용할 수도 있습니다.

netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

예 :

Grep : Netstat를 사용한 요약 테이블

경로 내에서 문자열 (패턴) 찾기

파일 이름이나 파일 내용에서 일치하는 모든 패턴을 찾아 표시합니다. 이를 달성하기위한 매개 변수의 사용은 다음과 같습니다. -R (하위 디렉토리에 대한 반복), -n (일치하는 행 번호 표시), -i (대소 문자 무시), -s (Suppress '가 존재하지 않음 메시지 "And"는 읽을 수 없습니다. "), -I (검색시 바이너리 무시).

grep -RnisI  *

Grep : 파일 및 폴더에서 패턴 검색

미리 정의 된 파일 형식 내에서 패턴을 찾기 위해 "find"명령과 함께 명령 프롬프트 내에서 사용되는 경우보다 고급 방식으로 사용할 수도 있습니다. 아래 그림과 같이:

find /opt/MilagrOS -name "*.txt" -exec grep -RnisI "MilagrOS" {} \;

Grep : 파일에서 패턴 검색

RAM 메모리의 데이터 양 파악

이는 하드 디스크에 기록되기 위해 대기중인 데이터 (정보)의 양을 정확히 아는 데 유용하며 컴퓨터를 강제로 다시 시작하거나 종료해야합니다.

grep ^Dirty /proc/meminfo

Grep : RAM의 데이터

WAN IP 주소 파악

터미널에서 자동으로 WAN IP를 파악한 다음 해당 매개 변수를 다른 자동화 된 작업에 전달하는 것은 항상 매우 유용합니다. 이 예에서는 DynDNS 서비스를 사용하여 가져옵니다.

curl -s http://checkip.dyndns.org/ | grep -o "[[:digit:].]\+"

Grep : WAN IP 파악

네트워크 세그먼트에 연결된 장비 나열

"ping"명령과 함께 for 루프를 사용하고 "grep"명령으로 결과를 필터링하면 NMap 도구 없이도 ping 서비스를 활성화하여 네트워크에 연결된 컴퓨터의 유효성을 검사 할 수 있습니다.

for i in {1..10}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done

예 :

추적 된 IP 주소 필드를 나열하려면 아래에 표시된 것처럼 "awk"및 "cut"명령을 사용하여 "grep"명령의 결과를 필터링하여이 줄을 더 많이 사용할 수 있습니다.

for i in {100..110}; do ping -c 1 -W 1 192.168.0.$i | grep 'from'; done | awk '{ print $4 }' | cut -d ":" -f 1

예 :

Grep : LAN IP 목록

grep 명령을 사용하는 명령 줄의 예입니다. 또한 콘솔에서 직접 사용하거나 스크립트에 삽입하여 간접적으로 사용할 수 있습니다 (자동화 된 작업).

Shell Scripting에 대한 다음 게시물에서는 다른 명령을 살펴 보겠습니다.

«grep»명령에 대해 자세히 알아 보려면이 링크를 방문하십시오«DEBIAN 위키»또한 자체 블로그에서 Shell Scripting에 대해 자세히 알아보고 싶다면, 여기를 클릭하여 주제에 대한 다른 출판물을 볼 수 있습니다. 스크립팅 DesdeLinux


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.

  1.   레안드로

    기사는 훌륭합니다. 대단히 감사합니다.

  2.   Linux 설치 후

    천만에요, 반갑습니다! 이제 Sed 명령을 사용합니다.