bash의 유틸리티
간단한 작업들은 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]]