'분류 전체보기'에 해당되는 글 152건
- 2024.11.15 크롬 확장기능 : Bulk URL Opener
- 2024.11.15 아웃룩 2013 버전 메일 보내고 자동으로 받은편지함에 복사본 들어가도록
- 2013.07.09 grep으로 특정문자열 제외 + 빈줄제거
- 2013.04.08 awk 로 특정 라인에 특정 문자 삽입하기 2
- 2012.12.21 RGB 추출기
- 2012.12.05 무료 PDF 변환 프로그램
- 2012.12.03 awk 관련 추가 설명 2
- 2012.07.18 사라진 바탕화면 보기 빠른실행 아이콘 만들기
- 2012.07.18 네트워크 패킷 캡쳐 방법 비교
- 2012.07.13 RTP 패킷 에서 걸러내기
- 2012.03.22 CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트
- 2011.09.19 파일 사이즈가 0 인 개수 확인 스크립트
- 2011.09.07 1초 마다 특정 작업을 하는 스크립트
- 2011.09.03 파일 비교 스크립트 8
- 2011.08.05 날짜 표시 쉘 스크립트
- 2011.06.18 솔라리스 PKG 추가 / 제거
- 2011.06.17 파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법
- 2011.05.17 리눅스 여유 메모리 체크 관련 2
- 2011.03.17 솔라리스 계정 aging 관련 ( expire 현상 )
- 2011.03.17 SIGTRAN 구조
크롬 확장기능 : Bulk URL Opener
크롬 브라우져에서
특정 URL 을 여러 개 동시에 열고자 할 때 일일히 복사해서 붙여넣기도 힘들기도 하거니와
시간이 너무 걸리므로
아래의 확장프로그램을 설치해서
URL 리스트만 텍스트로 붙여넣고 실행하면 모든 WEB 을 탭으로 열어주는 확장프로그램이 있다.
Bulk URL Opener
라는 프로그램이다.
크롬 웹스토어에서 검색해서 설치할 수 있다.
설치되고 나서 크롬 우측 상단에 보이도록 설정하고
아이콘 을 클릭해서 실행하면 큰 창에 URL 들을 주욱 입력해주고
아래 "Open Links" 를 클릭하면 탭으로 여러 URL 을 한꺼번에 열어주는 기능이다.
'쓸만한유틸' 카테고리의 다른 글
아웃룩 2013 버전 메일 보내고 자동으로 받은편지함에 복사본 들어가도록 (0) | 2024.11.15 |
---|---|
RGB 추출기 (0) | 2012.12.21 |
무료 PDF 변환 프로그램 (0) | 2012.12.05 |
바탕화면 정리 및 폴더 묶음 fences (0) | 2010.07.16 |
Cygwin 윈도우에서 리눅스환경을 누려보자 (4) | 2009.04.20 |
SFTP 와 FTP 용 클라이언트 Filezilla (0) | 2009.01.21 |
MP3Gain : mp3파일의 음량을 일정하게 조정 (1) | 2008.09.26 |
GMT 별로 알려주는 프로그램 (단순히시계) (0) | 2008.09.11 |
파이어폭스 2.0 에서 자바애플릿 플러그인 설정방법 (2) | 2008.02.28 |
메모리 적게 차지하는 MP3 플레이어 (1) | 2007.08.18 |
아웃룩 2013 버전 메일 보내고 자동으로 받은편지함에 복사본 들어가도록
아웃룩 2013 버전에서
메일 보내기 할때 받은 편지함으로 자동으로 복사본을 보내도록 하는 방법에는 2가지가 있다
메일 규칙을 써서 자동으로 받은편지함에 복사본을 넣어주도록 하거나
아니면 매크로를 써서 메일보내기 할때에 자신의 이메일을 숨은참조로 넣어주거나
이렇게 2가지 방법을 사용할 수 있다.
참고URL : https://gmate.tistory.com/296
여기서 내가 권장하고자 하는 방법은 매크로를 이용해서 숨은참조에 넣어주는게 가장 깔끔한 방법인 것 같다.
추가적으로 보안설정에 들어가서 매크로 동작을 허용해주어야 한다.
'쓸만한유틸' 카테고리의 다른 글
크롬 확장기능 : Bulk URL Opener (0) | 2024.11.15 |
---|---|
RGB 추출기 (0) | 2012.12.21 |
무료 PDF 변환 프로그램 (0) | 2012.12.05 |
바탕화면 정리 및 폴더 묶음 fences (0) | 2010.07.16 |
Cygwin 윈도우에서 리눅스환경을 누려보자 (4) | 2009.04.20 |
SFTP 와 FTP 용 클라이언트 Filezilla (0) | 2009.01.21 |
MP3Gain : mp3파일의 음량을 일정하게 조정 (1) | 2008.09.26 |
GMT 별로 알려주는 프로그램 (단순히시계) (0) | 2008.09.11 |
파이어폭스 2.0 에서 자바애플릿 플러그인 설정방법 (2) | 2008.02.28 |
메모리 적게 차지하는 MP3 플레이어 (1) | 2007.08.18 |
grep으로 특정문자열 제외 + 빈줄제거
grep 으로 특정 문자열 제외 + 빈줄 제거
grep -v "#" | grep -v '^$'
주로 시스템 기본 conf 파일들의 경우 주석이 많은데 해당 주석을 제거하고 보고
동시에 빈줄로 나오는 라인까지 제거 하는 방법
'쉘스크립트' 카테고리의 다른 글
awk 로 특정 라인에 특정 문자 삽입하기 (2) | 2013.04.08 |
---|---|
awk 관련 추가 설명 (2) | 2012.12.03 |
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
파일 사이즈가 0 인 개수 확인 스크립트 (0) | 2011.09.19 |
1초 마다 특정 작업을 하는 스크립트 (0) | 2011.09.07 |
파일 비교 스크립트 8 (0) | 2011.09.03 |
날짜 표시 쉘 스크립트 (0) | 2011.08.05 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
awk 로 특정 라인에 특정 문자 삽입하기
awk 를 통해서 특정 데이터 파일안의 몇번째 라인에
특정 라인을 삽입할 수 있다.
예를 들어 data.txt 라는 파일안에 아래와 같은 내용이 있을 때.
aaa 11
bbb 22
ccc 33
bbb 22 라는 두번째 라인 다음에
test 44 라는 라인을 넣고자 할 때에는 다음과 같이 awk 를 실행시킨다.
[si@localhost script]$ cat data.txt
aaa 11
bbb 22
ccc 33
[si@localhost script]$ awk 'NR==2 {print $0"\ntest 44"}' data.txt
bbb 22
test 44
NR 이라는 옵션은 라인을 지정하는 옵션이며 NR==2 즉 2번째 라인일 경우에는
print $0 즉 2번째 라인은 모든 내용을 출력하고
그 뒤에 "" 로 묶인 내용을 출력한다.
쌍따옴표로 묶인 내용의 시작이 라인 구분 표시자인 \n 으로 시작되기 때문에
라인을 바꾸게 되고
그 뒤에 test 44 를 찍게 된다.
'쉘스크립트' 카테고리의 다른 글
grep으로 특정문자열 제외 + 빈줄제거 (0) | 2013.07.09 |
---|---|
awk 관련 추가 설명 (2) | 2012.12.03 |
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
파일 사이즈가 0 인 개수 확인 스크립트 (0) | 2011.09.19 |
1초 마다 특정 작업을 하는 스크립트 (0) | 2011.09.07 |
파일 비교 스크립트 8 (0) | 2011.09.03 |
날짜 표시 쉘 스크립트 (0) | 2011.08.05 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
컵퓨터 바탕화면의 특정 색깔을 인식해서 RGB 값으로 보여주는 프로그램이다.
가끔씩 필요할 때가 있다.
원본 글 : http://ddiggam.tistory.com/52
프로그램 :
안녕하세요.
잠깐 짬내서 RGB추출 프로그램을 만들어 봤습니다.
비슷한 프로그램이 이미 존재하지만 바이러스가 존재하는 파일들이 많더라구요.
그래서 최대한 가볍게 하나 만들어 봤습니다.
사용방법
1. 클라이언트 프로그램 안에서 마우스 왼쪽버튼을 누른다.
2. 마우스를 누르고 있는 상태에서 RGB추출할 이미지의 픽셀에 마우스를 가져한다.
3. 원하는 값을 확인한다.
업그래이드 할 경우 트위터에 알려드리겠습니다.(@bodling2002)
'쓸만한유틸' 카테고리의 다른 글
크롬 확장기능 : Bulk URL Opener (0) | 2024.11.15 |
---|---|
아웃룩 2013 버전 메일 보내고 자동으로 받은편지함에 복사본 들어가도록 (0) | 2024.11.15 |
무료 PDF 변환 프로그램 (0) | 2012.12.05 |
바탕화면 정리 및 폴더 묶음 fences (0) | 2010.07.16 |
Cygwin 윈도우에서 리눅스환경을 누려보자 (4) | 2009.04.20 |
SFTP 와 FTP 용 클라이언트 Filezilla (0) | 2009.01.21 |
MP3Gain : mp3파일의 음량을 일정하게 조정 (1) | 2008.09.26 |
GMT 별로 알려주는 프로그램 (단순히시계) (0) | 2008.09.11 |
파이어폭스 2.0 에서 자바애플릿 플러그인 설정방법 (2) | 2008.02.28 |
메모리 적게 차지하는 MP3 플레이어 (1) | 2007.08.18 |
무료 PDF 변환 프로그램
doPDF 라는 프로그램으로
프린트로 프로그램이 설치되며
어느 워드든 한글이든 프로그램이든 출력이 지원되는 문서프로그램으로는 PDF 파일로 변환이 가능하다.!!
설치된 이후에는 출력할 때 doPDF v7 이라는 게 보이고
그것을 선택하고 프린트하게 되면
PDF 파일을 어디에 저장할 지 경로를 묻는 창이 뜨게 된다.
적당한 경로를 지정해주고 저장을 누르면 pdf 파일이 만들어진다.
http://www.dopdf.com/download.php
'쓸만한유틸' 카테고리의 다른 글
크롬 확장기능 : Bulk URL Opener (0) | 2024.11.15 |
---|---|
아웃룩 2013 버전 메일 보내고 자동으로 받은편지함에 복사본 들어가도록 (0) | 2024.11.15 |
RGB 추출기 (0) | 2012.12.21 |
바탕화면 정리 및 폴더 묶음 fences (0) | 2010.07.16 |
Cygwin 윈도우에서 리눅스환경을 누려보자 (4) | 2009.04.20 |
SFTP 와 FTP 용 클라이언트 Filezilla (0) | 2009.01.21 |
MP3Gain : mp3파일의 음량을 일정하게 조정 (1) | 2008.09.26 |
GMT 별로 알려주는 프로그램 (단순히시계) (0) | 2008.09.11 |
파이어폭스 2.0 에서 자바애플릿 플러그인 설정방법 (2) | 2008.02.28 |
메모리 적게 차지하는 MP3 플레이어 (1) | 2007.08.18 |
awk 관련 추가 설명
원문 : http://blog.naver.com/PostView.nhn?blogId=jjjhyeok&logNo=20151320029
awk는 명령어를 사용하다보면, 의외로 자주쓰는데, 지금까지 얼추 맞춰서 쓰다가 문서는 찾았습니다만, 위키에 없어서 찾은것들을 정리해서 글을 씁니다. 공개되어있는 문서를 찾아서 했기에, 절대 창작문서가 아닙니다.
1 Awk란?
2 awk의 구조(Model)
3 awk 프로그램
3.1 일반적인 awk 의 용도 및 사용방법(Using Model)
- egrep 및 grep 을 이용한 데이터 파일의 구조 확인을 한다.
- 정규화가 가능한지를 확인하고, sed로 테스트 해본다. awk가 처리할만큼 정규화가 되어 있다면, 바로 awk를 사용한다.
- sed로 정규화된 양식을 awk로 처리한다.
■■■□■■■■□■■■□■■■□■■■■■■□■■■■ |
■■■■□■■□■■■■■■■□■■■■□■■□■■■■ |
■■□■■■■■■■■■□■■□■■□■■■■■■■■□■ |
위의 데이터는 아래의 형식으로 바뀌게 된다.
record1: | ■■■ | ■■■■ | ■■■ | ■■■ | ■■■■■■ | ■■■■ |
record2: | ■■■■ | ■■ | ■■■■■■■ | ■■■■ | ■■ | ■■■■ |
record3: | ■■ | ■■■■■■■■■ | ■■ | ■■ | ■■■■■■■■ | ■ |
Field 1 | Field 2 | Field 3 | Field 4 | Field 5 | Field 6 | |
$1 | $2 | $3 | $4 | $5 | $6 |
(위의 표가 잘 이해되지 않는다면, DB 입문서 등을 읽어보도록 한다.)
3.2 Example 1 - 간단한 awk 사용
# cat exam_result.dat 박종규 95점 이억운 98점 이훈강 99점 엄성기 100점 정영원 97점 박오근 98점
# awk '{print $1}' exam_result.dat 박종규 이억운 이훈강 엄성기 정영원 박오근print 명령은 간단히 처리중에 필요한 내용을 출력하는 함수이다. "$1"은 1st(첫번째) 필드를 지시한다. 마찬가지로 점수를 출력하려면, "$1" 대신에 "$2"를 입력하면 된다. 그러면, 라인의 전체 내용을 출력하려면 어떻게 해야 하는가? "$0"를 사용하면, 라인의 전체 내용을 출력할 수 있다.
# cat sedscr s/점$// # sed -f sedscr exam_result.dat 박종규 95 이억운 98 이훈강 99 엄성기 100 정영원 97 박오근 98자 이제 계산할 수가 있을 듯 하다. 그러면, 프로그램을 짜보자.
# sed -f sedscr exam_result.dat | awk 'BEGIN{ sum = 0; print "총점 출력 프로그램"; } {sum += $2} END {print "합계 : " sum}' 총점 출력 프로그램 합계 : 587위의 내용을 설명하도록 하면 다음과 같다.
#!/bin/awk # # This Program is for Summing of exam_result. # # BEGIN : 프로그램 시작 처리 BEGIN { sum = 0; print "총점 출력 프로그램"; } # ROUTINE : 프로그램 본문 { sum += $2; } # END : 프로그램 마무리 처리 END { print "합계 : " sum; }위에서 첫줄의 #!/bin/awk는 앞으로의 내용들은 /bin/awk 프로그램을 사용해서 번역(처리)을 하겠다라는 지정 구문이다. 쉘스크립트의 "#!/bin/sh"와 같은 역할을 한다고 생각하면 될 것이다. 첫줄 이외에 "#"으로 시작하는 문장들은 모두 주석이다. 프로그램의 설명이나, 함수, 루틴에 대한 설명을 적어둔다. 각 내용은 한줄이 끝날때마다 ";"(세미콜론)을 붙여서 분리를 한다.
$ sed -f sedscr exam_result.dat | awk -f sum.awkawk 스크립트 파일을 호출할 때에는 "-f 파일이름" 옵션을 사용한다는 것을 기억해야 한다.
#!/bin/awk # # This Program is for Summing of exam_result. # # BEGIN : 프로그램 시작 처리 BEGIN { sum = 0; print "총점 출력 프로그램"; } # ROUTINE : 프로그램 본문 { sum += $2; } # END : 프로그램 마무리 처리 END { print "합계 : " sum; average = sum / NR; print "평균 : " average; }실행을 하면 아래와 같이 된다.
$ sed -f sedscr exam_result.dat | awk -f sum.awk 총점 출력 프로그램 합계 : 587 평균 : 97.8333
3.3 awk의 내부변수
FS | 필드 구분자 - Fields Seperator |
RS | 레코드 구분자 - Records Seperator |
NF | 현재 레코드의 필드수(Number of Fields) |
NR | 현재 파일에서 레코드 넘버(Number of Records) |
FNR | 입력파일이 여러개인 경우에 현재 파일에서의 NF를 표시한다. |
OFS | 출력시의 FS(Output Fields Seperator). 이 값을 변경하게 되면, 출력시의 FS 가 바뀌게 된다. |
ORS | 출력시의 RS(Output Records Seperator). 이 값을 변경하게 되면, 출력시의 RS 가 바뀌게 된다. |
3.4 Example 2 - awk 프로그램 응용
# cat cards.dat 백종규 리눅스넷(주) 부산 광역시 연제구 연산동 한창 빌딩 432호 051-851-2761 김진욱 이지시스템 서울시 서초구 방배2동 450-3 3층 02-3473-6282위의 데이터 파일은 한줄이 한 레코드가 되지 않는다는 걸 알수 있다. 한 레코드는 한줄이 비워진 줄, 즉 정규식으로 표현하자면 "\n\n"으로 구분되어 있으며, 레코드내에서 필드의 구분은 개행("\n")으로 구분된다. 따라서, 위의 데이터에서 이름과 전화번호만을 출력하고 싶다면, 다음과 같이 awk 스크립트를 작성할 수 있다.
#!/bin/awk BEGIN { RS = "\n\n"; FS = "\n"; } { print $1, $NF; }위의 스크립트에서 BEGIN 부분에서 RS와 FS를 임으로 "\n\n"과 "\n"으로 변경하였다. 또한 루틴부분에서는 첫번째 필드($1)와 마지막 필드($NF)의 내용을 출력하도록 하였다. NF현재 레코드에서 필드의 숫자를 나타낸다. 여기서 인자값을 호출하는 "$"을 붙이게 되면, 마지막 필드값이 출력이 되는 것이다.
4 또다른 요약 페이지
- awk는 직접 사용자로부터 입력을 받거나 아니면 지정한 파일을 가공하여 표준 출력한다. 표준 출력을 리다이렉션할 수 있다
- 사용법
- awk [옵션] '스크립트' [-v 변수=값] [파일(들)]
- awk [옵션] -f 스크립트 파일 [-v 변수=값] [파일(들)]
- cf) 편집 스크립트 파일의 사용법
- ed : ed -s(script) sourcefile < scriptfile
- sed : sed -f(file) scriptfile sourcefile > outputfile
- awk : awk -f(file) scriptfile sourcefile > outputfile
- 옵션
- -Fc : field separator 지정
- c는 필드 사이를 구분하는 구분자이다
- 직접 지정하지 않으면 공백을 기준으로 한다
- 시스템 변수 FS를 지정하는 것과 같은 효과를 지닌다
- -v 변수 = 값
- 스크립트를 실행하기 전에 미리 변수를 지정하여 준다
- $를 쓰지 않고 변수 이름만 쓰면 된다. C에서 #define처럼 생각하면 될 것이다.
- -f 스크립트 파일
- 스크립트를 파일에서 가져온다
- -f 옵션을 여러번 사용하여 여러개의 스크립트 파일을 동시에 불러와 지정한 파일에 적용할 수 있다
- -Fc : field separator 지정
- 스크립트
- 패턴 { 동작 }
- 커맨드 라인에서는 패턴, 동작 전체를 단일 따옴표로 묶는다
- 패턴만 있는 경우 : 패턴과 일치하는 레코드(라인)를 화면에 출력한다
- 동작만 있는 경우 : 모든 레코드(라인)가 동작의 대상이 된다
- 패턴
- /정규표현식/ sed가 지원하지 않는 +, ?, |, ( ) 등의 메타문자도 지원한다 또한 ^, $를 각 필드의 처음과 끝을 의미하도록 사용할 수도 있다
- 비교연산 숫자 기준, 알파벳 기준 모두 사용 가능하다
- 패턴 매칭 연산 ~ : 일치하는 부분을 나타낸다 !~ : 일치하지 않는 부분을 나타낸다
- BEGIN 첫 번째 레코드가 읽혀지기 전에 어떤 동작을 정의하여 사용하고 싶을 때 사용한다
- END 마지막 레코드가 모두 읽혀진 후 어떤 동작을 정의하여 실행하고 싶을 때 사용한다
- 패턴 { 동작 }
- 동작
- 동작은 모두 { }로 둘러싸야 한다
- 예제
- good이라는 문자열을 포함하는 모든 레코드를 출력할 때 /good/
- 각 레코드의 첫 번째 필드를 출력할 때 { print $1 }
- good이라는 문자열을 포함하는 레코드의 첫 번째 필드를 출력할 때 /good/ { print $1 }
- 두 개 이상의 필드를 가지는 레코드를 전부 출력할 때(비교연산) NF > 2
- 한 라인(\n)을 필드로, 빈 라인("")을 레코드로 구분할 때 BEGIN { FS = "\n" ; RS = ""}
- 첫 번째 필드가 good와 일치하는 레코드에 대해 세 번째 필드를 먼저 출력하고 두 번째 필드를 나중에 출력하고 싶을 때 $1 ~ /good/ { print $3 , $2 }
- good이라는 문자열이 몇 개나 들어가 있는지 계산하여 마지막 부분에서 출력하고 싶을 때 /good/ { ++x } END { print x }
- 두 번째 필드를 모두 합하고 마지막 부분에서 두 번째 필드의 총합계를 출력하고 싶을 때 { total += $2 } END { print "Total of $2: " , total }
- 레코드의 길이가 20자 이하인 것을 출력하고 싶을 때 length($0) < 20
- 네 개의 필드를 가지며 good이라는 단어로 시작하는 모든 레코드를 출력하고 싶을 때 NF == 4 && /^good/
- 빈줄을 제외한 모든 줄을 화면에 출력한다 NF > 0
- awk 시스템 변수
FILENAME 현재 파일명 $0 입력 레코드 FS 입력 필드 구분 디폴트 : 공백 $n 입력 레코드의 N번째 필드 NF 현재 레코드 필드 갯수 ARGC 커맨드 라인의 인자 갯수 NR 현재 레코드 번호 ARGV 커맨드 라인 인자를 포함하는 배열 OFMT 숫자에 대한 출력 포맷 디폴트 : %.6g ENVIRON 환경변수들을 모아둔 관계형 배열 OFS 출력 필드 구분 디폴트 : 빈줄 FNR NR과 동일 단지 현재 파일에 적용된다는 점이 다름 ORS 출력 레코드 구분 디폴트 : newline RSTART 지정한 매칭 연산을 만족하는 문자열의 맨 앞부분 RS 입력 레코드 구분 디폴트 : newline RLENGTH 지정한 매칭 연산을 만족하는 문자열의 길이 - awk 연산자
- 산술 : =, +=, -=, *=, /=, %= 조건 : ? : 논리 : ||, &&, ! 패턴 : ~, !~
- 비교 : <, <=, >, >=, !=,== 증감 : ++, -- 필드참조 : $
- 제어문(C의 제어문과 같다)
- break
- continue
- do {실행} while (조건)
- exit
- for (관계형 배열의 요소) {실행}
- 펄의 foreach와 같다
- if (조건) {실행} else {실행}
- return
- while
- awk 명령어
- 문자열 연산
- gsub(reg,s) 입력 문자열의 전반에 걸쳐 정규표현식 r을 문자열 s로 대치한다.
- gsub(reg,s1,s2) 문자열 s2에서 정규표현식 r을 s1으로 대치한다.
- index(s1,s2) s1에서 s2의 위치를 넘겨준다. 만약 없다면 0을 넘겨준다.
- length(arg) 인자의 길이를 넘겨준다.
- match(s,r) 문자열 s에서 정규표현식 r과 매칭되는 부분의 위치를 넘겨준다.
- split(string,array[,seperator]) 구분자를 기준으로(지정하지 않으면 공백 기준)해서 지정한 문자열을 배열로 만든다 배열[1], 배열[2], .......
- sub(r,s), sub(r,s1,s2) gsub과 동일하다. 단지 정규표현식과 일치하는 문자열이 여러 개라도 처음 문자열만 대치된다
- substr(s,m) 문자열 s에서 m번째 위치에서 끝까지의 문자를 리턴한다
- substr(s,m,n) 문자열 s에서 m번째 위치에서 n번째까지의 문자를 리턴한다
- tolower(str)
- toupper(str)
- 수치 연산
- atan2(x,y) y/x의 arctangent값을 라디안 단위로 넘겨준다
- cos(x)
- exp(arg)
- int(arg)
- log(arg)
- rand() 0과 1사이의 난수를 발생한다
- sin(x)
- sqrt(arg)
- srand(expr) 인자를 가지고 난수를 발생시킨다. 인자가 주어지지 않으면 시간을 가지고 난수를 발생시킨다.
- 입출력/프로세스
- close(filename) 지정한 파일을 닫는다
- close(cmd) 지정한 명령어 파이프를 닫는다
- delete array[element] 지정한 배열 요소를 지운다
- getline() 다음 레코드를 읽어 들인다
- getline[variable] [< "filename"] 파일에서 읽어들인다
- next 다음 레코드(라인)을 입력받는다 getline()과 유사하지만 /패턴/동작을 새롭게 시작한다 getline()은 다음 라인을 읽기만 한다
- print [args] ![> "filename"] 인자를 출력한다
- printf "format" [,expressions] ![> "filename"] 형식에 맞춰 출력한다
- sprintf (format [,expressions]) printf와 마찬가지로 사용하는데 값을 리턴하기만 하고 출력은 하지 않는다.
- system(command) 시스템 내부 명령어를 실행한다
- 문자열 연산
- 간단한 예
- awk ' BEGIN { for (i = 1;i<=7,i++) print int(101*rand()) }' 화면에 1이상 100이하의 난수 일곱 개를 출력한다
- ls -l file1 file2 file3 | awk ' { x += $5 } ; END { print "Total bytes : " x } ' 파일들의 크기를 모두 합하여 총 바이트 수를 표시한다
- awk ' END { print NR } ' filename 지정한 파일의 라인이 몇 개인지를 표시한다
- awk ' NR % 2 == 0 ' 지정한 파일의 짝수번째의 라인만을 출력해 준다
split(string, tmp) for (var in tmp) { new[tmp[var]] = var delete tmp[var] }
[출처] 리눅스 명령어 Awk란?|작성자 jjjhyeok
'쉘스크립트' 카테고리의 다른 글
grep으로 특정문자열 제외 + 빈줄제거 (0) | 2013.07.09 |
---|---|
awk 로 특정 라인에 특정 문자 삽입하기 (2) | 2013.04.08 |
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
파일 사이즈가 0 인 개수 확인 스크립트 (0) | 2011.09.19 |
1초 마다 특정 작업을 하는 스크립트 (0) | 2011.09.07 |
파일 비교 스크립트 8 (0) | 2011.09.03 |
날짜 표시 쉘 스크립트 (0) | 2011.08.05 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
사라진 바탕화면 보기 빠른실행 아이콘 만들기
바탕 화면 보기 아이콘을 직접 다시 만들려면 다음과 같이 하십시오.
- 시작, 실행을 차례로 클릭하고 열기 상자에 notepad를 입력한 다음 확인을 클릭합니다.
- 다음 텍스트를 잘 복사하여 메모장 창에 붙여 넣습니다.[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop - 파일 메뉴에서 다른 이름으로 저장을 클릭한 다음 해당 파일을 "Show desktop.scf"로 바탕 화면에 저장합니다. 바탕 화면에 바탕 화면 보기 아이콘이 만들어집니다.
- 바탕 화면 보기 아이콘을 클릭한 후 빠른 시작 도구 모음으로 끕니다.
'컴퓨터기본' 카테고리의 다른 글
비스타에서 폴더 보기 옵션이 저장 안되는 증상 해결 방법 (0) | 2009.12.17 |
---|
네트워크 패킷 캡쳐 방법 비교
리눅스에서 네트워크 상의 패킷을 캡쳐하기 위한 방법은 몇개가 있습니다
리눅스가 그렇듯 CLI 에서의 패킷 캡쳐가 더 쉽고 편합니다.
물론 바로 보고 마우스로 클릭하는 것도 좋긴 하지만 GUI 접속이 되지 않는 원격지 서버의 경우에는 CLI 명령어가
필요한 경우가 더 많습니다.
tcpdump (CLI)
ethereal (GUI) -> tethereal (CLI)
wireshark (GUI) -> tshark (CLI )
ethereal 은 최신 리눅스에서는 wireshark 로 이름이 바뀌었습니다.
중요한 것은 패킷을 잡고 저장을 하는 방법을 우선 알아야 할 것 입니다.
힘들게 man 페이지 까지를 읽지는 않더라도 --help 로 옵션 정보는 봐주셔야 하겠죠?
[root@localhost ~]# tcpdump --help
tcpdump version 3.9.4
libpcap version 0.9.4
Usage: tcpdump [-aAdDeflLnNOpqRStuUvxX] [-c count] [ -C file_size ]
[ -E algo:secret ] [ -F file ] [ -i interface ] [ -M secret ]
[ -r file ] [ -s snaplen ] [ -T type ] [ -w file ]
[ -W filecount ] [ -y datalinktype ] [ -Z user ]
[ expression ]
(1) tcpdump 로 패킷 캡쳐하고 저장하기
tcpdump -i eth0 -w test.cap
- i 옵션은 물리적 인터페이스를 지정하기 위한 옵션입니다.
만약 모든 인터페이스에서 패킷을 잡기를 원한다면 any 로 지정하면 됩니다.
- w 옵션은 잡은 패킷을 특정 파일로 저장을 하는 옵션입니다.
파일명은 임의로 가능하며 pcap 이나 cap 확장자로 저장하시면 됩니다.
가끔 리눅스에서 PATH 를 잡아주지 않아서 명령어를 못 찾는 경우에는 which tcpdump 명령어로
절대경로로 tcpdump 명령어가 어디에 있는지 확인하고 패킷을 잡아주세요
중지하는 것은 crtl +c 로 중지하면 됩니다.
[root@localhost ~]# which tcpdump
/usr/sbin/tcpdump
[root@localhost ~]# /usr/sbin/tcpdump -i eth0 -w test.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
3 packets captured
3 packets received by filter
0 packets dropped by kernel
[root@localhost ~]#
(2) tethereal 로 패킷 캡쳐하고 저장하기
[root@localhost ~]# tethereal -i eth0 -w test2.cap
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
7
[root@localhost ~]#
위의 tcpdump 명령어와 옵션은 유사합니다.
(3) tshark 로 패킷 캡쳐하고 저장하기
[root@localhost ~]# tshark -i eth0 -w test3.cap
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
4
[root@localhost ~]#
솔라리스에서는 기본적으로 snoop 이란 명령어를 통해서 패킷 캡쳐가 가능합니다.
snoop 은 위에서 언급한 패킷캡쳐 명령어들과 다른 옵션을 가지고 있습니다.
물론 기능적으로는 같지요 패킷 캡쳐 + 저장을 하는 거니깐요
(4) 솔라리스 에서 snoop 으로 패킷 캡쳐하고 저장하기
snoop -d ce0 -o test.cap
- d 옵션은 물리적 인터페이스를 선택
- o 옵션은 캡쳐를 파일로 저장
[root@localhost:/ ] snoop --help
snoop: illegal option -- help
Usage: snoop
[ -a ] # Listen to packets on audio
[ -d device ] # Listen on interface named device
[ -s snaplen ] # Truncate packets
[ -c count ] # Quit after count packets
[ -P ] # Turn OFF promiscuous mode
[ -D ] # Report dropped packets
[ -S ] # Report packet size
[ -i file ] # Read previously captured packets
[ -o file ] # Capture packets in file
[ -n file ] # Load addr-to-name table from file
[ -N ] # Create addr-to-name table
[ -t r|a|d ] # Time: Relative, Absolute or Delta
[ -v ] # Verbose packet display
[ -V ] # Show all summary lines
[ -p first[,last] ] # Select packet(s) to display
[ -x offset[,length] ] # Hex dump from offset for length
[ -C ] # Print packet filter code
[ -q ] # Suppress printing packet count
[ -r ] # Do not resolve address to name
[ filter expression ]
Example:
snoop -o saved host fred
snoop -i saved -tr -v -p19
[root@localhost:/ ]
'리눅스이야기' 카테고리의 다른 글
portsentry를 사용해서 포트스캔 탐지 및 tcp-wrapper 에 자동 기록 (0) | 2007.02.23 |
---|---|
리눅스 보안 IP 접속 차단 (1) | 2007.02.23 |
아파치 서버시에 특정아이피 대역만 허용 (0) | 2007.02.23 |
mysql 백업 스크립트 (0) | 2007.02.23 |
리눅스 백업 방법 3 (0) | 2007.02.23 |
리눅스 백업 방법 2 (0) | 2007.02.23 |
리눅스 서버의 백업 (0) | 2007.02.23 |
RTP 패킷 에서 걸러내기
RTP 패킷에서 comfort noise 찾기
rtp.p_type == 13
RTP 패킷에서 DTMF ( RFC2833 찾기 )
rtpevent
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트
내용을 보시려면 비밀번호를 입력하세요.
파일 사이즈가 0 인 개수 확인 스크립트
#!/bin/bash
ls -l | grep '^-' | awk '{print $9}' > imsy
CNT=0
for i in `cat imsy`
do
if [ -s $i ]
then
CNT=`expr $CNT + 1`
else
shift
fi
done
echo $CNT
rm -rf ./imsy
마지막에 출력되는 CNT 변수가 현재 디렉토리 내의 파일 사이즈가 0 보다 큰 파일들의 개수임.
2. 반대로 파일사이즈가 0 인 것들의 개수를 구하는 스크립트
#!/bin/bash
ls -l | grep '^-' | awk '{print $9}' > imsy
CNT=0
for i in `cat imsy`
do
if [ -s $i ]
then
shift
else
CNT=`expr $CNT + 1`
fi
done
echo $CNT
rm -rf ./imsy
'쉘스크립트' 카테고리의 다른 글
grep으로 특정문자열 제외 + 빈줄제거 (0) | 2013.07.09 |
---|---|
awk 로 특정 라인에 특정 문자 삽입하기 (2) | 2013.04.08 |
awk 관련 추가 설명 (2) | 2012.12.03 |
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
1초 마다 특정 작업을 하는 스크립트 (0) | 2011.09.07 |
파일 비교 스크립트 8 (0) | 2011.09.03 |
날짜 표시 쉘 스크립트 (0) | 2011.08.05 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
1초 마다 특정 작업을 하는 스크립트
1초마다 특정 작업 ( 아래 command 부분만 편집 ) 을 하는 스크립트
현재는 ifconfig 명령어 하나를 수행하게 되어 있음.
남기는 로그 파일은 DATE 를 따라가기 때문에 분단위로 로그를 쌓을 것인지 아니면
시간단위로 할 것인지는 DATE 의 변수를 어디까지 지정하냐에 따라 달림.
ENDTIME 을 지정하여 그 시간 ( 혹은 분단위까지 ) 까지만 수행되고 스크립트 종료됨.
COUNT 를 넣었고 필요하면 COUNT 를 echo 해서 로그파일에 넣을 수도 잇음
#!/bin/bash
### Script Ending time configuration
DATE=`date +%Y%m%d%H`
# Date is 2011090713 this is HOUR setting
#DATE=`date +%Y%m%d%H%M`
# Date is 201109071314 if you want minute setting used this line alse modify the ENDTIME line
ENDTIME=2011090714
### base config
COUNT=0
DIR=$PWD
### loop stage
while true
do
if [ $ENDTIME -eq $DATE ]
then
exit 1 # exit script
else
## Command input stage
ifconfig | tee -a $DIR/Result_$DATE.txt
#echo $DATE > $DIR/Result_$DATE.txt
## Command ending
COUNT=`expr $COUNT + 1`
echo $COUNT >> $DIR/Result_$DATE.txt
sleep 1
fi
done
'쉘스크립트' 카테고리의 다른 글
grep으로 특정문자열 제외 + 빈줄제거 (0) | 2013.07.09 |
---|---|
awk 로 특정 라인에 특정 문자 삽입하기 (2) | 2013.04.08 |
awk 관련 추가 설명 (2) | 2012.12.03 |
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
파일 사이즈가 0 인 개수 확인 스크립트 (0) | 2011.09.19 |
파일 비교 스크립트 8 (0) | 2011.09.03 |
날짜 표시 쉘 스크립트 (0) | 2011.08.05 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
파일 비교 스크립트 8
최종 버전 파일 비교 스크립트
어느 txt 파일이든 사이즈의 크기는 상관없음.
a.txt 와 b.txt 에 담긴 내용을 sort 하여 비교
#!/bin/bash
### sort stage
sort -u a.txt > imsy
cat imsy > a.txt
sort -u b.txt > imsy
cat imsy > b.txt
### compare stage
comm -12 a.txt b.txt > duble.txt
comm -23 a.txt b.txt > a_only.txt
comm -13 a.txt b.txt > b_only.txt
### Result stage
echo "################################"
echo " a_only.txt is existed in a.txt"
echo "################################"
echo "################################"
echo " b_only.txt is existed in b.txt"
echo "################################"
echo "#########################################"
echo " double.txt is existed in a.txt & b.txt"
echo "#########################################"
'쉘스크립트' 카테고리의 다른 글
awk 로 특정 라인에 특정 문자 삽입하기 (2) | 2013.04.08 |
---|---|
awk 관련 추가 설명 (2) | 2012.12.03 |
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
파일 사이즈가 0 인 개수 확인 스크립트 (0) | 2011.09.19 |
1초 마다 특정 작업을 하는 스크립트 (0) | 2011.09.07 |
날짜 표시 쉘 스크립트 (0) | 2011.08.05 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
15. 텍스트 파일 포맷 변경 (2) | 2009.12.22 |
날짜 표시 쉘 스크립트
#!/bin/bash
echo $DATE
echo $DATE2
출력결과는 다음과 같다.
2. 어제 날짜를 출력하는 스크립트
#!/bin/bash
### DATE cal ###
YEAR=`date +%Y`
MON=`date +%m`
DAY=`date --date '1 days ago' +%d`
DATE=${YEAR}${MON}$DAY
echo $DATE
출력결과
[si@localhost temp]$ sh date.sh
20110803여기서는 하루 전의 날짜를 구하는게 어려웠는데 찾아보니 위와 같이 쉽게 표현이 되더군요
더하고 빼고 등등의 귀찮을 작업을 할려고 했지만
위에 처럼 좋은 게 있었네요.
3. 년도/월/일/시간/분 을 따로 구하여 한꺼번에 표시
#!/bin/bash
YEAR=`date +%Y`
MON=`date +%m`
DAY=`date +%d`
HOUR=`date +%H`
MIN=`date +%M`
echo "Now is"\ ${YEAR}${MON}${DAY}${HOUR}${MIN}
출력결과
Now is 201108042346
날짜를 표시하는 것은 여러가지 방법이 있으나 기본적으로 date 명령어를 활용하여 표현하게 됩니다.
DATE 자체로만 쓰이지 않고 주로 로그표시나 파일 생성 등 광범위하게 쓰일 수 있지요.^^
스크립트는 이런 조각조각이 모여서 만든다고 생각하심 좀 더 쉽게 접근할 수 있을 거 같습니다.
'쉘스크립트' 카테고리의 다른 글
awk 관련 추가 설명 (2) | 2012.12.03 |
---|---|
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
파일 사이즈가 0 인 개수 확인 스크립트 (0) | 2011.09.19 |
1초 마다 특정 작업을 하는 스크립트 (0) | 2011.09.07 |
파일 비교 스크립트 8 (0) | 2011.09.03 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
15. 텍스트 파일 포맷 변경 (2) | 2009.12.22 |
14. 지난 파일 압축하고 삭제하기 (2) | 2009.12.18 |
솔라리스 PKG 추가 / 제거
pkgadd 명령어로 해당 패키지를 추가할 수 있다.
패키지는 웹을 통해 다운 받을 수 있다.
http://www.sunfreeware.com/indexsparc10.html
2. 솔라리스 PKG 제거
example) sendmail 패키지 제거
# pkgrm SUNWsndmr
# pkgrm SUNWsndmu
'솔라리스10' 카테고리의 다른 글
솔라리스 계정 aging 관련 ( expire 현상 ) (0) | 2011.03.17 |
---|---|
솔라리스 10 NIC 의 speed / duplex 변경 방법 (0) | 2010.06.23 |
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법
vi 편집기로 들어가서 해당 파일을 수정하여야 한다.
vi test.txt
편집기 들어가 있는 상태에서 라인의 맨 앞에 삽입할 내용( aaa ) 를 다음과 같이 명령어로 입려
:%s/^/aaa/g
2. 라인의 맨 뒤에 특정 단어를 추가하고자 할 경우
vi test.txt
:%s/$/aaa/g
이렇게 입력하면 aaa 라는 단어가 각 라인의 맨 앞 또는 뒤에 추가되는 것을 확인할 수 있다.
'쉘스크립트' 카테고리의 다른 글
CPU 과부하와 MEM 과부하 프로세스 찾는 스크립트 (0) | 2012.03.22 |
---|---|
파일 사이즈가 0 인 개수 확인 스크립트 (0) | 2011.09.19 |
1초 마다 특정 작업을 하는 스크립트 (0) | 2011.09.07 |
파일 비교 스크립트 8 (0) | 2011.09.03 |
날짜 표시 쉘 스크립트 (0) | 2011.08.05 |
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
15. 텍스트 파일 포맷 변경 (2) | 2009.12.22 |
14. 지난 파일 압축하고 삭제하기 (2) | 2009.12.18 |
13. 파일 비교 스크립트 4 (2) | 2009.11.05 |
리눅스 여유 메모리 체크 관련
여유메모리를 판단하는데 그것보다는
free -mt ( Mega 단위로 표시 ) 명령어로 확인하는 것이 더 낫다.
[root@localhost ~]# free -mt
total used free shared buffers cached
Mem: 1769 1641 128 0 176 1351
-/+ buffers/cache: 113 1656
Swap: 4579 0 4579
Total: 6349 1641 4707
여기서 free 항목이 여유메모리이지만
실제로 메모리를 크게 잡아먹지 않는 데몬이 떠 있지 않아도 free 가 매우 적게 보이는 경향이 있다.
하지만 이것은 정상상태이다.
vmstat 1 10 ( 1초마다 10번 통계값을 출력 / 첫번째 출력값은 무시한다 why? 통계이므로 첫번째 값은 무시 )
[root@localhost ~]# vmstat 1 10
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 108 129356 181168 1383480 0 0 4 6 7 11 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1026 139 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1012 97 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1019 126 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1010 108 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 28 1027 160 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1004 87 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1025 157 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1010 97 0 0 100 0 0
0 0 108 129356 181168 1383488 0 0 0 0 1019 124 0 0 100 0 0
여기서 보면 실제로 cashe 메모리가 높게 사용되고 잇는 것을 알 수 있다.
하지만 캐시메모리는 실제로는 free 메모리로 보는 것이 옳다.
리눅스에서는 자동적으로 모든
램의 빈 공간을 버퍼 캐쉬로
사용하여 메모리를 효율성을 높이고 있으며
프로그램에서 많은 메모리를
필요로 하는 경우에는 자동으로 캐쉬의
크기를 줄인다.
그렇다면 위에서 실제로
사용가능한 메모리는 free+buffers+cached 이다.
( 원문 : http://tunelinux.pe.kr/tune/tunning-pse/tunning.html )
'내가쓰는리눅스 강좌' 카테고리의 다른 글
리눅스에서 임의의 파일 생성 (2) | 2010.11.16 |
---|---|
리눅스 VNCSERVER 설정 방법 (3) | 2010.07.14 |
텍스트 파일을 잘라보자. split (0) | 2010.05.31 |
리눅스 시스템의 부팅시 파일무결성 체크 강제로 하기 (0) | 2010.04.19 |
리눅스 dmesg 를 통한 eth 포트의 down / up 구분 (0) | 2010.03.30 |
28. CentOS 에서 yum 수행시 repo 사이트 추가 (0) | 2009.12.23 |
27. CentOS 에서의 한글 설정 (3) | 2009.11.24 |
26. ethtool 사용하기 speed 와 duplex 변경 (6) | 2009.11.23 |
25. sort 명령어 (2) | 2009.11.05 |
24. tar 압축파일에 관해서 (0) | 2009.09.15 |
솔라리스 계정 aging 관련 ( expire 현상 )
--------------------------------
결론적으로 이야기하면 최초 aging 을 설정하는 것은 /etc/default/passwd 파일의
MAXWEEKS=
이것을 적용하고 나서 어느 계정이든 ( 심지어 root 까지 ) MINWEEK 에 설정된 시간이 지나게 되면
해당 계정의 패스워드가 expire 되게 되고
재로그인시 패스워드를 재설정하라는 메시지가 뜨게 됩니다.
하지만 위의 경우는 일반계정의 경우이며 root 패스워드가 expire 가 되었다고 나왓을 때에는
로컬에서 접속하여 변경하여야 합니다.
즉 KVM 같은 것을 사용하여 로컬에서 GUI 를 통해서 root 로그인 시도를 하였을 때
알람이 하나 뜨고 New password 를 물어볼 것입니다.
이때 root 패스워드를 재설정하고 /etc/default/passwd 파일의 MAXWEEKS 와 MINWEEKS 를 값이 없도록 변경한 뒤에, 문제가 된 해당 계정의 /etc/shadow 파일의 4번째 5번째 필드를 지워줘야 한다
shadow 파일의 필드들은 콜론 (:) 으로 구분됩니다.. 콜론은 지우면 안됩니다.
추가적으로 아래는 shadow 파일의 필드 설명입니다.
'솔라리스10' 카테고리의 다른 글
솔라리스 PKG 추가 / 제거 (0) | 2011.06.18 |
---|---|
솔라리스 10 NIC 의 speed / duplex 변경 방법 (0) | 2010.06.23 |
SIGTRAN 구조
No.7 과 Sigtran 을 레이어별로 표시를 한 것입니다.
왼쪽이 전통적인 SS7 또는 No.7 의 레이어이고
오른쪽은 Sigtran 의 레이어입니다.
No7 과 Sigtran 의 가장 중요한 차이점은
No7 은 STP 와 STP 간에 물리적인 실선으로 연결이 되며
SIGTRAN 은 STP 와 STP 간에 아이피 즉 네트워크로 연결이 된다는 차이점입니다.
그 위에 올라가는 상위 레이어들은 같습니다.
즉 SG(signaling gateway) 까지의 연동이 물리적 이냐 ? 아님 네트워크이냐? 에 따라 나뉘는 것이 가장 큰 차이점입니다.