쉘 스크립팅에 대한 초보자 안내서 3 기타 기본 명령 및 체인
스크립트를 만들고, 인수를 사용하고, for 루프를 작성하는 방법을 배웠습니다. 이제 기본 명령, 텍스트 파일 조작 및 입력 및 출력을 파일 및 기타 명령으로 재지 정하는 방법에 대해 살펴 보겠습니다..
몇 가지 기본 유용한 명령
우리는 이미 셸 스크립트와 예제 기반의 for 루프에 대한 기본적인 붕괴를주었습니다 만, 지금까지 셸 스크립팅 가이드를 놓친 경우 해당 기사를 확인하십시오.
명령 줄은 여러 가지 이유로 훌륭하며 리디렉션은 가장 눈에 띄는 기능 중 하나입니다. 다른 명령을 사용하거나 다른 명령을 사용하기 위해 모든 명령의 출력을 메모하고 재생산해야한다면 오래 전에 완전히 미쳐 있었을 것입니다. 리디렉션을 사용하면 출력을 사용하여 저장하거나 즉시 다른 명령의 입력으로 사용할 수 있습니다. 파일을 다른 명령의 입력으로 사용할 수도 있습니다..
계속하기 전에 여러 다른 장소에서 사용할 수있는 몇 가지 기본 명령을 살펴 보겠습니다..
에코 - 이 커멘드는, 인수로서 인수 전체를 출력으로서 출력합니다 (표시합니다).
공백이있는 반향 인수
보시다시피 특수 문자는 "이스케이프"해야 정상적으로 처리됩니다. 이 작업은 문자 앞에 백 슬래시 (\)를 사용하여 수행됩니다. 따옴표를 사용하는 것이 좋습니다. echo 명령은 변수와도 작동합니다..
보시다시피, 작은 따옴표와 큰 따옴표는 다르게 동작합니다. 자세한 정보는 Bash 쉘에서 싱글 쿼트와 더블 쿼트의 차이점을 확인하십시오.?
고양이 - 이 명령은 텍스트 파일의 내용을 출력으로 표시합니다..
cat file_to_be_read
이 텍스트 파일을 nano로 작성한다고 가정 해 보겠습니다.
cat 명령을 파일에 사용하면 결과를 볼 수 있습니다..
grep - 이것은 Linux에서 사용할 수있는 가장 강력하고 유용한 명령 중 하나입니다. 그것은 Global / Regular Expression Print의 약자입니다. 파일을 살펴보고 특정 패턴과 일치하는 모든 행을 인쇄합니다. 이 패턴은 "정규 표현식"을 기반으로하기 때문에 간결한 라인은 일치시킬 많은 패턴을 생성 할 수 있습니다. 그렇지 않다면 검색을 위해 제비 갈매기에 들어갈 수 있습니다..
grep 패턴 파일
나는 grep이 더 많은 일을 할 수 있다고 확신하지만, 지금은 더 쉬운 것들을 고수하도록 노력하겠습니다..
출력 방향 재 지정
명령 출력을 파일로 재지 정하기 위해 특수 문자 (큰 따옴표 (>))를 사용합니다..
목록을 바꿔 보죠. 다음 명령을 입력하십시오.
에코 페퍼로니> 목록
echo가 더 이상 라인을 표시하지 않는다는 것을 알 수 있습니다. "list"파일의 내용을 볼 때, 우리는 거기에 에코 된 것을 봅니다.
또한 "list"의 이전 내용이 제거되었음을 유의하십시오. 다시 시도해보십시오.
이는 파일을 다시 사용하려는 경우에 유용 할 수 있지만 종종 기존 파일에 추가하기 만하면됩니다. 이를 위해 두 개의 연속적인 더 큼 기호를 사용합니다.
에코 옐로 후추 >> 목록
쉬운! 큰 목록을 만들려면이 명령을 사용하십시오.?
우리는 거기에 갈. 왜 그렇게 많은 괴짜가 할 일 목록을 만드는 데 커맨드 라인을 사용하는지 알 수있을 것 같지만,.
명령의 출력을 가져 와서 파일에 넣자.
ls -al /> ~ / rootlist
파일 목록을 만들고, 편집 한 다음 원하는 명령을 실행하는 것이 결코 쉬운 일은 아닙니다. 명령 줄에서 이러한 기본 기능을 수행하는 동안 스크립트에서도 제대로 작동합니다..
배관 또는 체인 연결
파이프는 파이프를 사용하므로 이름이 지어집니다 (대부분의 키보드에서 \ 키와 공유 됨). 본질적으로 한 명령의 출력을 받아 다른 명령으로 직접 전달합니다. 이런 방식으로 매우 특정한 원하는 출력을 얻기 위해 긴 명령 체인을 만들 수 있으며 grep과 같은 명령에 매우 편리합니다.
여러 번 연결될 수 있고 텍스트 파일을 통과 할 필요가 없다는 점에서 효과가 더 일반적이라는 점을 제외하면 ">"와 매우 유사합니다.
보시다시피 grep은 대소 문자를 구분합니다. 대소 문자를 무시하도록 "-i"플래그를 사용할 수 있습니다..
입력 리디렉션
less-than 기호를 사용하여 명령의 파일에서 입력을 가져올 수도 있습니다 (<).
고양이 < list
"그건 논쟁을 사용하는 것과 다르지 않습니다!"라고 말할지도 모릅니다. 이 경우에는 당신이 옳을 것입니다. 입력을 리디렉션하면 실제로 명령을 연결하는 것이 편리합니다..
현재 "list"파일에서 "pep"이 들어있는 단어를 "revisions"라는 새 파일로 필터링하려고한다고 가정 해 봅시다..
grep pep revisions
이 명령을 다시 실행하고 정렬을 추가해 보겠습니다..
grep pep revisions
이것은 "pep"을 입력 파일 "list"의 검색 용어로 사용하고 알파벳 순서 (모든 대문자 용어 뒤에 모든 소문자 용어를 따라)로 정렬 한 다음 "개정판"파일로 출력합니다.
sort 명령을 설명하기 위해 다음 예제를 살펴 보겠습니다.
보시다시피 sort 명령에 "-f"플래그를 추가하면 대소 문자를 무시할 수 있습니다. 이렇게하면 텍스트 파일의 줄을 영문자 순화하고 중요하지 않을 때 대소 문자를 쉽게 무시할 수 있습니다..
간단한 스크립트
다음과 같은 형식의 스크립트를 만듭니다.
스크립트 searchterm listfile
용어를 사용하고 grep을 사용하여 목록 파일을 검색하고 결과를 정렬 한 다음 다른 파일로 출력합니다.
다음은 스크립트를 테스트 할 디렉토리입니다.
그리고 여기에있는 것의 목록을 생성 한 다음 스크립트를 실행할 수 있습니다.
너 거기 간다! 정규 표현식의 규칙을 더 많이 습득할수록 더 정확하게 검색 명령을 조합 할 수 있습니다. 그리고 따옴표 안에 유효한 무엇이든은 너의 첫번째 논쟁을 위해 대체 될 수 있는다.!
정렬에 관한 한 알파벳순으로 정렬하는 것 이상을 할 수 있습니다. 다음 명령 중 일부를 보려면 맨 페이지를보십시오.
- tsort - 고급 토폴로지 정렬 함수
- tr - 특정 문자를 다른 문자로 매핑하고 그 사이에서 문자를 바꿀 수 있습니다..
- uniq - 고유하지 않은 (읽기 : 중복)
- awk - 파일 이름에서 필드를 구분하는 데 사용할 수있는 정말 고급 텍스트 처리 언어 / 함수
- 잘라 내기, 붙여 넣기 / 조인 - 텍스트 파일에서 필드를 분리하고 열에 새 데이터를 추가하는 데 유용한 명령
- look - grep과 같은 검색이지만 lookup을 위해 사용자가 지정할 수있는 사전 파일을 사용합니다.
- wc - 단어 수, 줄 수, 문자 수 등을 얻을 수 있습니다.
스크립트와 마찬가지로 명령 줄에서 유용 할 수있는 몇 가지 기본 사항을 살펴 보았습니다. 텍스트 기반 데이터는 우리가 일상적으로 사용하는 것들의 중심에있는 경우가 많기 때문에 데이터를 사용하고 검색하고 조작 할 수있는 것이 중요합니다..
가장 좋아하는 스크립트는 무엇입니까? 텍스트 기반 파일을위한 특별 사용 스크립트가 있습니까? 의견에서 알고있는 것을 공유하십시오.!