달력

12

« 2017/12 »

  •  
  •  
  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  •  
  •  
  •  
  •  
  •  
  •  

이 글은 하얀말님의 2009년 12월 9일에서 2009년 12월 10일까지의 미투데이 내용입니다.

신고
Posted by 하얀 말
  • 아이폰 또 물건너 갔구나. 기사에도 나오듯 최근 T옴니아까지 출시한 삼성전자가 꼴 보겠어? 애플은 무조건 이통사의 보조금 통한 전세계 소비자가 199달러가 공급 조건, 근데 T옴니아는 90만원? 100만원? 안마당인 내수까지 아작나는 꼴을 삼성이 볼 리 없지.(뉴스 아이폰 KTF 아이폰물건너가다 그동안다해쳐먹어온울나라이통사입장에서도애플의공급조건은솔직히수용이힘들다)2008-12-24 11:06:25
  • 자사에게 돈 주고 인증 받은 프로그램을 자사 사이트에서만 내려받도록 하고 판매 금액을 개발자와 나누어 먹어온, 정말로 혼자서 다 해먹어온 이통사 입장에서도 자사 인증 없고, 개발자와 애플만 이익 나누는 AppStore를 곱게 볼 리 없다. 즉, 이통사도 아이폰은 계륵.(AppStore 이통사 아이폰)2008-12-24 11:14:51
  • IBM developerWorks AIX Wiki(AIX UNIX IBM Wiki)2008-12-24 13:43:19

이 글은 하얀말님의 2008년 12월 24일의 미투데이 내용입니다.

신고
Posted by 하얀 말

이 글은 하얀말님의 2008년 12월 23일의 미투데이 내용입니다.

신고
Posted by 하얀 말
신고
Posted by 하얀 말
UNIX에서 packet sniffing을 하기 위해서는 iptrace라는 명령을 쓰면 된다. 그런데 iptrace는 binary를 dump하므로 이를 알아먹을 수 있는 text file 형태로 변환하는 것이 있으니 이는 ipreport라는 도구이다. 이 전부를 shell script로 묶어 쓰면 매우 유용하다. 이번에 업무를 수행하며 쓴 이 강력한 packet sniffing 도구를 사용하는 shell script를 기록하여 훗날을 대비한다.

startsrc -s iptrace
\ -a "-a -d ${IP} -b -P tcp -p ${PORTNUM} /home/anytemp/${IP}_${PORTNUM}.tcp"

sleep ${SEC}
stopsrc -s iptrace
ipreport -s /home/anytemp/${IP}_${PORTNUM}.tcp > \
/home/anytemp/${IP}_${PORTNUM}.out

신고
Posted by 하얀 말
우리는 UNIX를 쓸 때 find command을 꽤 많이 사용합니다. 예를 들어 현재 directory 및 하위 directory에서 a*.jar라 하는 file을 찾고, 그 file의 permission 및 생성 일자, 크기 등을 알기 위해서 다음과 같이 칩니다.

find . -name a*.jar -exec ls -l {} \;

-exec option 이후 find command으로 찾은 결과로 검색한 file들에 대해 수행하고 싶은 command을 입력하는 것은 알지만, 도데체 {} \;는 뭐하는 개뼉다귀일까요?

1. {}

아주 간단합니다. find command으로 찾은 file 집합을 표현한 것입니다. {와 } 사이에는 공백이 있으면 안됩니다.

2. \;

위에서 언급한 -exec option 뒤의 command은 ;(semicolon)으로 마치게 되어있습니다. 즉 find command은 -exec option을 만나면 그 option부터 ; 사이를 수행할 command으로 인식합니다. 그런데 문제는 ;가 UNIX에서 특수한 의미를 가지는 문자라는 것입니다. UNIX에서는 두 command 이상을 한 줄에 쓸 때, 각 command 사이를 ;로 구분합니다. 즉 UNIX Shell Prompt에서는 아무 생각 없이 ;만 쓰면 exec command 뒤에 다른 command이 나올 것으로 생각을 하지, exec option의 끝으로는 생각을 하지 않는다는 뜻이죠. 이럴 경우 등장하는 것이 바로 \(backslash)로, \ 뒤에 특수문자가 나오면 그 특수문자의 의미를 무시하고 글자 그대로 인식하게 되죠. 그러다 보니 \;라고 쳐야 하는 것입니다.

아, 하나 더! {}와 \; 사이에는 최소한 공백 문자 하나는 들어가 있어야 한답니다. 이 둘 사이를 딱 붙여서 쓰면 안된다는 뜻이죠.

find command에서 -exec option을 쓰면 끄트머리에 꼭 나오는 {} \;의 의미, 이제는 아시겠지요?
신고
TAG find, Unix
Posted by 하얀 말


티스토리 툴바