Bash란 무엇이고 왜 중요한가?
- Bourne Again Shell에서 나온 단어
- 80년대에 개발되었고, 유닉스 기반 시스템에서 매우 중요한 역할을 한다.
- 명령을 하나 하나 복사해서 쓰지 않고 파일 하나로 구성해서 명령 수행을 할 수 있다.
- Bash scripting을 하기 전, 이전에 배운 명령어들을 기억해야함
egrep 또는 grep
: 정규식 패턴 매칭을 사용해 입력 내용을 필터링한다.
cat
: 줄 단위로 사용할 파일 내용을 연다.
tail 또는 head
: -n플래그를 사용하여 마지막 또는 맨 앞에서부터의 내용을 보여준다.
wc
: -w, -l과 함께 사용하여 단어나 줄 수를 센다.
sed
: 정규식 패턴 매칭을 사용하여 문자열 대체를 한다.
예제
- fruits.txt
banana apple carrot
grep 'a' fruits.txt
grep 'p' fruits.txt
[]
를 사용하여 집합을 만들고^
를 사용하면 제외하는 패턴을 찾을 수 있다.
줄이 많은 파일은 파이핑해서 정렬하고 고유한 데이터 카운트를 수행한다.apple carrot
cat new_fruits.txt | sort | uniq -c | head -n 3
14 apple 13 banana 12 carrot
- 상위 n개의 과일을 원하면
wc
명령에-l
옵션을 사용하여head
로 상위 데이터를 출력한다. grep '[pc]' fruits.txt
apple
banana apple carrot
단어 여러개를 찾고 싶으면 다음과 같이 사용한다.
egrep 'Sydney Carton|Charles Darnay'
Bash Script 핵심
bash script는 대개 #!/usr/bash
로 시작한다.
bash 위치를 확인할 때, which bash
를 사용하여 위치를 확인하고 일반적으로 /usr/bash
를 사용한다.
일반적으로 배쉬파일의 확장자는 .sh
이다.
- 예제(eg.sh)
#!/usr/bash echo "Hello world" echo "Goodbye world"
$ ./eg.sh Hello world Goodbye world
- 예제
- animals.txt
magpie, bird emu, bird kangaroo, marsupial wallaby, marsupial shark, fish
- group.sh
#!/usr/bash cat animals.txt | cut -d " " -f 2 | sort | uniq -c
$ ./group.sh 2 bird 1 fish 2 marsupial
- animals.txt
Standard streams & arguments
arguments는 스크립트에 입력되는 모든 인수를 의미한다.
$
표시를 사용하여 인수에 접근한다.
모든 인수는 $@
또는 $*
로 표현하고 인수의 길이(개수)는 $#
으로 표현한다.
- 예제(args.sh)
#!/usr/bash echo $1 echo $2 echo $@ echo "There are " $# "arguments"
$ bash args.sh one two three four five one two one two three four five There are 5 arguments
Uploaded by Notion2Tistory v1.1.0