#bash 사용하기
###목차
- basic commands summary (기본 명령): basic_commands.md
#bash 사용하기
###목차
#basic commands summary (기본 명령)
##alias 만들기
$ alias ll='ls -alF'
##hexa format
$ xxd -p misc.cpp
###~/bin 폴더에 연결하기
사용자 홈 디렉터리에 bin 폴더가 있는 지 검사하여 없으면 bin 디렉터리를 만든다.
$PATH 환경 변수에 ~/bin이 있으면 bin에 실행파일 사용할 수 있다.
$ echo $PATH
##file 인코딩 확인하기
$ file -i point.cpp
출력메시지:
ansi인 경우
point.cpp: text/x-c; charset=us-ascii
utf-8인경우
point.cpp: text/x-c; charset=utf-8
##grep
아래는 현재 디렉토리 이하의 모든 파일 중 int myfunc (void) {
와 같은 함수 선언과 매칭되는 파일 찾는다.
$ egrep "int[[:space:]]\+myfunc[[:space:]]*\(.*\)[[:space:]]*\{" ./ -Rlz
##2 >& 1
nohup ${DIR}/bin/scheduler scheduler.ini >scheduler.out 2>&1 &
에러 메시지(stderr)은 scheduler.out 파일에 에러 메시지를 출력하지 않고 콘솔에 출력한다.
마지막의 &는 백그라운드로 실행하도록 한다.
0, 1, 2는 각각 표준입력, 표준출력, 그리고 표준에러를 의미한다. 따라서 <&0
은 표준 입력이 된다.
2 >&1는 표준 출력이 전달되는 곳으로 표준에러를 전달한다. Bourne쉘의 연산자이기 때문에 csh에서는 사용할 수 없다.
if ( ls -l $0 | grep $LOGNAME >/dev/null )
위에서 /dev/null로 리다이렉션을 시키면 표준출력을 버리라는 의미이다. 여기서 grep 명령을 사용한 이유는 grep으로 걸러진 내용을 보려는 것이 아니라 일치하는 내용이 있는지 체크하려는 용도이므로 화면에 결과를 출력할 필요가 없다. 이런 경우 화면에 출력을 하지 않도록 하기위해서 /dev/null로 리다이렉션을 시킨다.
grep의 옵션 중, -q, -s 으로도 같은 효과를 낼 수 있다.