간단한 작업들은 Bash 스크립트를 사용해서 명령어를 쭉 나열하기만 하면 된다. 하지만 복잡한 내용의 작업이 필요한 경우 Bash의 유틸리티를 사용하여 작업을 처리하게 된다. 이런 유틸리티의 사용법과 예를 간략히 적어 본다.

  • which
  • bc
  • date
  • openssl

which

$ which [-a] filename ...

해당 파일이 위치하는 곳을 알려준다. 예를 들면 다음과 같이 확인할 수 있다.

$ which ls
/bin/ls
$ which vim git
/usr/bin/vim
/usr/bin/git

이를 이용해서 다음과 같이 사용할 수 있다.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       193G   48G  136G  26% /
...

$ TEST=$(which df)
$ $TEST
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1      202165176 49657540 142215208  26% /
...

$ $TEST -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       193G   48G  136G  26% /
...

이를 이용해서 실행해야 하는 곳에 해당 파일이 존재하지 않을 경우 에러를 내도록 한다거나, 파일 위치를 장황하게 적지 않아도 알아서 찾아 실행할 수 있도록 스크립트를 구성할 수 있다.

단 which는 디스크 전체에서 해당 파일을 검색해 찾는 것이 아니고, which를 실행한 환경 변수 내에서 해당 파일을 찾는 것이다.

bc

bc [ -hlwsqv ] [long-options] [  file ... ]

Bash shell에서 간단한 계산을 위해 다음과 같은 명령을 사용할 수 있다.

$ echo $((4-3))
1

간단한 계산은 위처럼 하면 되겠지만 복잡한 계산이 필요할 때는 bc를 사용하여 처리할 수 있다. 예를 들어 pi를 bash에서 계산하는 경우 다음과 같이 쓸 수 있다.(man bc 발췌)

$ pi=$(echo "scale=10; 4*a(1)" | bc -l)
$ echo $pi
3.1415926532
$ pi=$(echo "scale=20; 4*a(1)" | bc -l)
$ echo $pi
3.14159265358979323844
$ pi=$(echo "scale=30; 4*a(1)" | bc -l)
$ echo $pi
3.141592653589793238462643383276

a(x)는 arctangent를 뜻한다.

bash를 쓸 때 어디서 bc까지 쓸 스크립트를 작성하냐 하겠지만, 은근히 한 번씩 사용하게 된다.

date

$ date [OPTION]... [+FORMAT]
$ date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]