Skip to content

Instantly share code, notes, and snippets.

@onmoving
Last active December 11, 2015 08:58
Show Gist options
  • Save onmoving/4576486 to your computer and use it in GitHub Desktop.
Save onmoving/4576486 to your computer and use it in GitHub Desktop.

#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

  • grep : 파일 전체를 뒤져 정규표현식에 대응하는 모든 행들을 출력한다.
  • egrep : grep의 확장판으로, 추가 정규표현식 메타문자들을 지원한다.
  • fgrep : fixed grep 이나 fast 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 파일에 에러 메시지를 출력하지 않고 콘솔에 출력한다.

마지막의 &는 백그라운드로 실행하도록 한다.

  • n >&m: 표준출력과 표준에러를 서로 바꾸기.

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 으로도 같은 효과를 낼 수 있다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment