업무상 파일을 찾아서 삭제해 주는게 있었는데.. 일일이 삭제 하기도 참.. 거시기 하고..

해서 생각해보니 우리의 만능 맨 쉘이 있었으니~~



[code type=bash]listFile=`find . -name "*.txt" -print`

for i in `echo $listFile`
do
        rm $i
done[/code]




요렇게 하면된다~ 정말 쉽죠~?
크리에이티브 커먼즈 라이선스
Creative Commons License

'프로그래밍 > etc..' 카테고리의 다른 글

쉘 스크립트 활용 - 검색하여 찾은 파일 삭제  (2) 2007/03/13
Cron ....  (0) 2006/10/31
Regular Expressions.. 정규식..  (0) 2006/10/13
find 명령어 사용하기  (0) 2006/10/09
Vi Editor 사용법  (0) 2006/09/18
JavaScript 부모창 새로고침..  (0) 2006/09/01

Cron ....

프로그래밍/etc.. | 2006/10/31 21:13 | Posted by taesuz

■ CRON


  → 같은 작업을 주기적으로 반복할수 있도록 해준다.

      보통 /etc/rc.d/init.d/crond 데몬에 의해 실행된다.

      설정은 /usr/bin/crontab 명령어를 사용한다.


  ♠ 관련명령어 및 파일

       

      1.crontab

         ▶ cron작업을 설정하는 명령이다. 실행시키면 기본vi편집기가 실행된다.

         ▶ option

            -l   : 현재 crontab 에 의해 설정된 내용을 출력한다.

            -e  : crontab 의 내용을 작성하거나 수정한다.

            -r   : crontab 의 내용을 삭제한다.

            -u  :  root권한자가 해당사용자의 crontab 파일을 다룰때 사용한다.

          ▶ 예제

              [root@linux root]#crontab -l

                 → 작업목록을 보여준다.

              [root@linux root]#crontab -e -u bluetree

                 → bluetree 사용자의 crontab 을 작성하거나 수정한다.

               [root@linux root]#crontab aaa

                 → aaa 란 파일을 crontab 으로 사용한다.

                     aaa 에는 이미 crontab 형식에 맞에 입력되어 있어야한다.

           ▶ crontab 의 작업형식

                 → 5개의 날짜필드와 1개의 명령필드로 구성되어있다.

        

                MM HH DD mm d  command

                    MM : 분을 의미한다 ( 0 ~ 59까지 사용)

                    HH  :  시를 의미한다. ( 0 ~ 23 까지 사용)

                    DD   :  날짜를 의미한다 ( 1 ~ 31까지 사용)

                    mm  : 달을 의미한다.( 1 ~ 12까지 사용)

                    d     : 요일을 의미한다.( 0 ~ 7 까지 사용, 0 과 7은 일요일을 나타낸다)

                    command : 실행할 명령을 입력한다.

                  ※ 참고

                       위 형식에서 시간을 나타내는 각 필드에서 와일드 카드 '*'를 사용할수 있고

                       각각의 요일을 구분할 때 ',' 를 사용하고 연일을 나타낼때는 '-'를 사용한다.

                       즉 월요일과 수요일은 '1,3' 월요일부터 금요일까지는 '1-5' 로 표시할수있다


      2./etc/crontab

           → 시스템이 정기적인 작업이 수행될수 있도록 기본적으로 설정되어있는 파일이다.


      3./var/spool/cron 디렉토리

           → 각각의 사용자가 등록한 crontab은 이 디렉토리아래에 각 사용자이름으로 저장된다.

 

  ♠ crontab 내용 설정예


      0 12 * * 1-5 /home/bluetree/start

      → 월요일부터 금요일까지 /home/bluetree/start 란 스크립트를 실행시킨다.


      0 12 1 1-12/2 * /home/bluetree/babo

      → 1월부터 12월까지 2개월마다 /home/blutree/babo 란 화일을 실행시킨다.


      0 4 * * 1,3,5 cat /root/notice | mail -s "notice" bluetree75@naver.com

      → 월,수,금 오전 4시에 notice 라는 문서의 내용을 메일로 발송한다.


  ♠ cron 사용자 제한    


      ※ /etc/cron.allow (허가목록) 과 /etc/cron.deny(거부목록) 을 참조하게된다.

            1./etc/cron.deny 만 존재하는경우

               → 기본적으로 모든사용자가 사용가능하고 cron.deny 에 등록된 사용자만

                    사용불가능하다.

            2./etc/cron.allow 만 존재하는 경우

                → cron.allow 파일에 등록된 사용자만 사용가능하다.

            3. 두 파일 모두 없을경우

                → 모든 사용자가가능하다

            4. 두 파일 모두 있을경우

                → cron.deny 내용을 무시하고 cron.allow 명기된 사용자만 사용가능하다  

(출처 : 'LINUX 스케쥴링 CRON' - 네이버 지식iN)


크리에이티브 커먼즈 라이선스
Creative Commons License

'프로그래밍 > etc..' 카테고리의 다른 글

쉘 스크립트 활용 - 검색하여 찾은 파일 삭제  (2) 2007/03/13
Cron ....  (0) 2006/10/31
Regular Expressions.. 정규식..  (0) 2006/10/13
find 명령어 사용하기  (0) 2006/10/09
Vi Editor 사용법  (0) 2006/09/18
JavaScript 부모창 새로고침..  (0) 2006/09/01
TAG cron, crontab

Regular Expressions.. 정규식..

프로그래밍/etc.. | 2006/10/13 12:55 | Posted by taesuz
알아두면 너무 편리한 에디트 플러스에서 사용하는 정규식..

잃어버리기 전에 하나씩 메모..


^ 는 라인의 제일 처음을 말한다.

$ 는 정규식에서 라인의 제일 마지막을 말한다. (주위 : 원래 ^, $ 는 정규식에서 데이터의 시작과 끝을 의미)

| 는 and를 의미한다. 이 기호의 양쪽에 있는 두 글자를 모두 찾습니다. (ex. java|jsp|servlet)

\t 탭 문자를 찾습니다.

\n 줄 바꿈 문자를 찾습니다

. 모든 문자를 찾습니다.

[] 대괄호 범위의 모든 문자를 찾습니다.  (ex. "[ab]" 는 "a"와 "b"를 모두 찾습니다. "[a-z]" a부터 z까지입니다.)
      - 한글검색: 한글의 범위는 "ㄱ-ㅎ, 가-힣" 입니다.

[^] 대괄호 범위의 모든 문자를 제외한 문자를 찾습니다. (ex. "[^a-z]" a~z까지의 문자를 제외합니다.)
            - 주의: 괄호안에서 ^와 괄호밖에서 ^의 용도를 잘 생각하라..
* 0번 또는 그 이상의 문자를 찾습니다. (ex. "j[a*]" 는 java, jad ... 의 ja를 검색합니다.)

() 식을 해석하는 순서를 바꾸거나 식을 태그로 표시할 때 사용합니다.



참고.. (http://blog.naver.com/satmania?Redirect=Log&logNo=90008546174)

"ab*" a뒤에 0 이상의 b가 있는 문자열 ("a", "ab", "abbb", 등)
"ab+" 위와 동일 하지만 최소한 하나 이상의 b가 있어야 함 ("ab", "abbb", 등)
"ab?" b가 하나 있을 수도 있고 없을 수도 있음 (ab 또는 a)
"ab{2}" a뒤에 2개의 b가 있는 문자열 ("abb"); "ab{2,}" a뒤에 최소한 2개 이상의 b가 있는 문자열 ("abb", "abbbb", 등.); "ab{3,5}" a뒤에 3개에서 5개 사이의 b가 있는 문자열 ("abbb", "abbbb", 또는 "abbbbb").
{ }를 사용할 대는 반드시 첫 번째 숫자는 적어야 됨을 유의합니다. ((O) "{0,2}", (X) "{,2}"). 또한 '*', '+', '?'는 각각 "{0,}", "{1,}", "{0,1}"와 같습니다.

이제 ()를 사용해서 하나의 문자가 아닌 여러 문자를 지정하는 방법을 알아봅니다.

"a(bc)*": a 뒤에 "bc"가 0또는 그이상의 수만큼 있는 문자열
"a(bc){1,5}": a 뒤에 "bc."가 1에서 5번 들어 있는 문자열

또 다른 특수문자로는 OR 연산을 하는 '|'를 들 수 있습니다.

"hi|hello": "hi"나 "hello"가 들어 있는 문자열
"(b|cd)ef": "bef" 또는 "cdef"
"(a|b)*c": a와 b가 섞여서 여러번 나타나고 그뒤에 c가 붙어있는 패턴

'.' (period)는 어떤 한 문자를 의미합니다.

"a.[0-9]": a뒤에 한 문자와 숫자가 붙어 있는 패턴

"^.{3}$": 3문자로만 되어 있는 문자열

[]표현은 문자열의 해당 위치에 사용될 수 있는 문자를 표현하는데 사용합니다.

"[ab]": a또는 b ("a|b"와 동일한 표현);

"[a-d]": 소문자 'a'에서 'd'까지 ("a|b|c|d"또는 "[abcd]"와 동일);

"^[a-zA-Z]": 영문자로 시작하는 문자열

"[0-9]%": % 문자 앞에 하나의 문자가 붙어 있는 패턴

",[a-zA-Z0-9]$": 영문자, 숫자로 끝나는 문자열 패턴

[]에서 '^'를 표현의 가장 처음에 사용하면 나타나서는 안 되는 문자를 지정할 수 있습니다. (예> "%[^a-zA-Z]%" 두 % 사이에 영문자가 없는 패턴)

"^.[$()|*+?{"같은 특수 문자는 백슬레쉬('')를 사용해서 escape될 수 있습니다( 역자 주 : escape 이란 다른 말로 literal로 탈출한다라고 할 수 있습니다 즉 특수문자로 인식되지 않고 일반 문자로 인식되게 합니다). 사용하는 관점에서 보면 백슬레쉬도 PHP3의 문자열에서 escape되어야 하기 때문에 예를 들어 "($|?[0-9]+"같은 정규표현식은 ereg("(\$|?[0-9]+", $str) 와 같이 사용됩니다 (이 표현식은 무얼 검사하는 걸까요? ^^;(이건 역자가 한 말이 아닙니다))

하지만 []안에서는 특수문자가 모두 효력을 읽게 되기 때문에 이 법칙을 벗어남을 기억하세요 []안에서는 백슬레쉬를 포함한 모든 특수문자들이 그 힘을 읽습니다 (예> "[*+?{}.]"는 말그대로 '*', '', '+', '?', '{', '}', '.' 문자를 의미합니다. 그리고 regex man 페이지에 나오듯이 ']'문자 자체를 포함하려면 문자들 리스트의 첫 번째에 위치시킵니다('^'가 있으면 '^'뒤에). '-'를 포함하려면 첫 번째 또는 마지막 문자로 지정하고 '-'문자가 영역의 경계 (예> a에서 -까지)일 경우 영역지정 문자의 두 번째 경계로 지정([a--])합니다.

완벽한 설명을 하려면 대조 순서(collating sequences), 문자 클래스(character classes), 동일 클래스(equivalence classes)에 대해서도 다루어야 하지만 이 글에서는 별 상관관계가 없기 때문에 regex man 페이지를 참고하도록 합니다.



활용

(ja+)[a-zA-Z]*  :  ja로 시작하는 모든 문장을 찾습니다.

more..



* 정규식에 관한 것들
jakarta project 의 Regexp 패키지에 관한글  http://www.superuser.co.kr/jsp/jsp02/page24.htm
php에서의 정규식 http://blog.naver.com/hbini?Redirect=Log&logNo=80029262521
java의 공식적 정규식 문서 http://java.sun.com/developer/technicalArticles/releases/1.4regex/

크리에이티브 커먼즈 라이선스
Creative Commons License

'프로그래밍 > etc..' 카테고리의 다른 글

쉘 스크립트 활용 - 검색하여 찾은 파일 삭제  (2) 2007/03/13
Cron ....  (0) 2006/10/31
Regular Expressions.. 정규식..  (0) 2006/10/13
find 명령어 사용하기  (0) 2006/10/09
Vi Editor 사용법  (0) 2006/09/18
JavaScript 부모창 새로고침..  (0) 2006/09/01

find 명령어 사용하기

프로그래밍/etc.. | 2006/10/09 11:20 | Posted by taesuz

유닉스에서 find 기능 이용하기

등록: 한빛미디어()


저자: 드루 라빈, 역 이호재

find
명령어는 유닉스 시스템에서 가장 강력한 유틸리티중의 하나임에 틀림없습니다.

이번 기사에서 find 명령의 문법에 대해 알아보고, 실질적인 예제를 살펴보도록 하겠습니다.

명령어 자체는 매우 간단한 문법을 지니고 있습니다.

find where_to_search expressions

expression 부분은 처음 find를 사용할 때 상당히 혼란스러운 부분입니다. 또한 이 부분은 유닉스마다 조금씩 다른 문법을 가지고 있습니다. 그래서 새로운 시스템에서 find를 이용하고자 한다면 find의 맨페이지를 살펴봐야 합니다. FreeBSD에서 많이 사용되는 expression은 다음과 같습니다.

-name

와일드카드와 함께 사용될 때에는 반드시 따옴표로 묶어야 함

-type

예를 들면 f=file d=directory l=link

-user

이름이나 UID

-group

이름이나 GID

-perm

권한을 지정

-size

다음 512바이트 블럭까지 찾음. byte로 지정하기 위해서는 c를 사용

-atime

파일이 읽힌 가장 최근 시간

-ctime

파일의 소유자나 권한이 바뀐 가장 최근 시간

-mtime

파일이 수정된 가장 최근 시간

-newer

주어진 파일보다 나중에 만들어진 파일을 찾음

-delete

찾은 파일을 삭제

-ls

ls -dgils 와 같은 결과를 출력

-print

find 명령의 실행 결과를 출력

-exec command {} \;

command를 실행. 문법에 주의

-ok

명령어가 실행되기 전 exec대신 사용

-depth

주어진 디렉토리의 루트 디렉토리가 아닌 그 디렉토리의 가장 낮은 레벨에서부터 시작

-prune

어떤 서브 디렉토리를 제외하고자 할 때 사용


위와 같은 표현식을 어떻게 사용하고 결합하는가에 대한 예제를 곧 알아보도록 하겠습니다
. 이를 알아 보기 전에 find가 어떤 목적에 쓰여지는가에 대해 알아볼 필요가 있습니다. find가 무엇인지를 알기 위해 whatis 명령어를 사용해 본다면, 답변은 놀랍게도 다음과 같을 것입니다.

whatis find

find(1)          - walk a file hierarchy

대략적으로 보자면, find는 당신이 선택한 어떤 표현식에 맞는 파일들을 찾기 위해 디렉토리를 재귀적으로 검색하는 것을 의미합니다. 이러한 기능이 별것 아닌 것처럼 보일수 있지만, 디렉토리와 그 모든 서브 디렉토리를 검색할 수 있는 유닉스 유틸리티는 많지 않습니다. 이러한 유용한 기능은 파일을 찾는 것뿐만이 아니라 다른 일도 할 수 있습니다.

이제 간단한 예제를 살펴보고 좀 더 어려운 표현식에 대해서 살펴보도록 하겠습니다. 가장 간단한 find 사용법은 다음처럼 간단합니다.

find . -print

"."는 당신의 현재 디렉토리를 의미하기 때문에, find 명령어는 현재 이 명령어가 실행되고 있는 디렉토리와 그 모든 서브 디렉토리에 있는 파일을 찾아서 화면에 출력할 것입니다.

FreeBSD
시스템에서 -print default 옵션입니다. 그렇기 때문에 아래의 명령어는 위와 똑같은 결과를 보여줍니다.

find .

하지만 -print 옵션을 default로 하지 않는 시스템도 있기 때문에 -print 옵션을 쓰는 습관을 들이는게 좋습니다.

만약 당신이 home 디렉토리에 있는 모든 파일을 찾고자 한다면, 먼저 지금 현재 home 디렉토리에 있는지 확인한 후 find 명령을 내려야 합니다. (아래 참조)

cd

find . -print

cd 명령어는 당신을 home 디렉토리로 이동시켜 줍니다. find 명령어를 통해서 매우 강력한 일을 할 수 있기 때문에, find 명령을 실행시킬 디렉토리로 우선 이동한 후 작업을 시작하는 것이 좋은 습관입니다. 지금부터 필자는 당신이 home 디렉토리에 있다고 가정할 것이고, 이는 부주의로 인해 home 디렉토리 이외의 다른 파일에 나쁜 영향을 끼치는 것을 방지할 것입니다.

위에서 살펴본 예제는 find 명령어가 얼마나 사용하기 쉬운지를 보여주기 위해 쓰여졌습니다. 하지만, 보통 find 명령을 내릴 때에는 특정한 조건에 맞는 것을 찾길 원할 것입니다. 이제 다른 표현식이 나올때가 된 것입니다. 특정한 이름을 갖는 파일을 찾아보도록 합시다.

touch file1

find . -name file1 -print            

./file1

위의 명령어를 하나하나 살펴보도록 하겠습니다. 먼저 touch 명령어를 이용해서 이름이 file1인 빈 파일을 하나 생성하였습니다. 그리고나서 find 명령을 내릴때 현재 디렉토리(".")에서부터 찾을 것이며 파일이름(-name) file1인 것을 찾고 그결과를 화면에 출력하라는 옵션을 주었습니다. 위의 결과에서 file1이 하나 출력되었기 때문에 필자는 현재 디렉토리와 그 하위 디렉토리에 파일이름이 file1인 것은 단 하나 존재한다고 말할 수 있습니다.

보통 find 명령어를 사용해 파일을 찾을 때 찾는 파일이 하나 이상일 것입니다. 예를 들면 특정한 확장자를 갖는 모든 파일을 찾는 것입니다. 필자는 .pdf 파일들을 많이 다운로드하는 경향이 있는데, 그 파일들이 어디에 존재하는지는 잘 기억하지 못합니다. 이제 그것들을 모아서 기존에 존재하는 pdfs라는 디렉토리에 넣고자 합니다. 필자의 home 디렉토리와 그 하위 디렉토리에서 확장자가 .pdf인 모든 파일을 찾고자 한다면 다음과 같이 명령을 내리면 됩니다.

find . -name "*.pdf" -print

./pdfs/50130201a.pdf

./pdfs/50130201b.pdf

./pdfs/50130201c.pdf

./pdfs/IWARLab.pdf

./pdfs/DoS_trends.pdf

./pdfs/Firewall-Guide.pdf

./2000_ports.pdf

최근에는 필자가 비교적 정리를 잘 한 것 같습니다. pdfs이외의 디렉토리에 있는 pdf파일이 하나밖에 없으니까요.

한가지 주목해야 할 점은 위의 명령어를 사용할때 *.pdf를 항상 인용부호로 감싸줘야 한다는 것입니다. *.pdf 대신 "*.pdf"를 사용해야 합니다. 인용부호로 감싸는 방법이 두가지 더 있습니다. 다음의 두 명령어는 똑같은 결과를 출력합니다.

find . -name \*.pdf -print

find . -name '*.pdf' -print

이의 명령어에 명령어를 추가해보고 결과가 어떻게 바뀌는지 살펴보도록 합시다. 만약 pdfs 디렉토리 내에 있지 않은 pdf 파일만을 찾고자 한다면 어떻게 해야 할까요? 위의 명령어의 결과를 pipe를 통해 grep에게 전달하면 됩니다.

find . -name "*.pdf" -print | grep -v "^\./pdfs/"

./2000_ports.pdf

...위의 명령어는 동작을 합니다만 문법이 꽤 이상해 보입니다. 이를 분석해 보도록 하겠습니다. grep에서 -v는 역필터를 설정하는 옵션입니다. grep -v 다음에 나오는 것과 반대되는 것을 보여주는 것입니다. 이번 예에서 ./pdfs/에 들어있는 파일들은 필요 없기 때문에 ./pdfs/에 들어 있지 "않은" 파일을 찾아야 했고 그래서 -v 옵션을 사용했습니다. 또 전체 표현식을 인용부호로 감싼 것을 볼 수 있습니다. 그리고 추가적인 문자인 ^\ 를 볼 수 있습니다. ^ grep에게 표현식이 각 라인의 1열에서부터 일치한 것만을 찾으라고 말하는 것입니다. \는 .를 특별한 문자로 해석하지 못하게 하기 위해 쓰인 추가적인 인용부호입니다. 표현식 전체는 grep에게 ./pdfs/ 디렉토리에 있지 않는 파일들을 보여달라는 것을 의미합니다. 그래서 원하는 결과를 얻었습니다.

용감하게도 좀더 유용하고 복잡한 것을 찾고 있습니까? find는 파일을 찾는 일 뿐만이 아니라 파일을 올바른 디렉토리로 옮기는 일도 할 수 있습니다. 다음의 예제를 살펴보도록 하겠습니다.

find . -name "*.pdf" -print | grep -v "^\./pdfs/" | xargs -J X mv X ./pdfs/

이 명령어가 정확하게 작동했는 지를 알아보기 위해 원래의 find 명령어를 반복하겠습니다.

find . -name "*.pdf" -print

./pdfs/50130201a.pdf

./pdfs/50130201b.pdf

./pdfs/50130201c.pdf

./pdfs/IWARLab.pdf

./pdfs/DoS_trends.pdf

./pdfs/Firewall-Guide.pdf

./pdfs/2000_ports.pdf

위에서 볼 수 있듯이 정확하게 동작하였습니다. 왜 그런지 살펴보도록 하겠습니다. 일단 grep find 의 결과를 필터링 하였습니다. grep의 결과값이 pipe를 통해 xargs 명령어로 전달이 되었고 우리가 원하는 일이 완료되었습니다. J 스위치는 xargs 명령어에게 stdin으로 들어오는 모든 파일들을 소스로, 명령어 다음에 나오는 파일을 목적지로 가정하게 합니다. 예를 들면 필자가 find 명령을 내리기 전에는 얼마나 많은 파일들을 옮겨야 하는지 알 수 없었습니다. 하나일수도 있고 여러개일수도 있기 때문입니다. 필자는 찾은 파일이 몇개인지 상관없이 xargs가 해당 파일 모두를 pdfs 디렉토리로 옮기게 하고 싶었습니다. 이러한 일종의 마법같은 작업이 J 스위치로 인해 가능합니다. 또한 J 스위치가 올바르게 작동하기 위해서 X라는 문자열을 정의하였고 mv 다음에 삽입하였습니다.


유닉스 파일은 확장자가 없을 수 있다는 것을 기억해야 합니다. 그래서 좀 더 복잡한 패턴에 일치하는 파일을 찾을 수 있어야 합니다. 예를 들면 파일 이름안에 "bsd"가 들어 있는 것을 찾고 싶다면 다음과 같은 명령어를 내리면 됩니다.

find . -name "*bsd*" -print

./.kde/share/icons/favicons/www.freebsd.org.png

./.kde/share/icons/favicons/www.freebsddiary.org.png

./.kde/share/wallpapers/bsdbg1280x1024.jpg

./mnwclient-1.11/contrib/freebsd

우리는 물론 파일이름뿐만 아니라 다른 것으로도 파일을 찾을 수 있습니다. 예를 들면, 여러분이 읽은지 30일 이상이 지난 파일들을 찾고자 한다면 다음과 같이 하면 됩니다.

find . -atime +30 -print

수정하지 않은 파일을 찾고자 한다면 -mtime을 사용하면 됩니다. 그리고, 소유권을 변경하지 않은 파일을 찾고자 한다면 -ctime을 사용하면 됩니다. + 다음의 숫자는 날짜를 의미합니다. 오늘 변경된 파일을 찾고자 한다면 다음과 같이 하면 될 것입니다.

find . -mtime -1 -print

이는 24시간내에 수정된 파일을 찾아서 보여줍니다. 이번 예제에서는 하루 이전의 파일에 관심이 있기 때문에 - 옵션을 사용한 것에 주목하시기 바랍니다.

시간에 관한 또다른 스위치는 -newer 입니다. 위에서 알아본 3가지 시간에 관한 스위치는 모두 24시간 단위로만 사용이 가능합니다. 좀 더 작은 시간 단위에서 작업을 하고자 한다면 - newer 스위치를 이용할 수 있습니다. 이를 이용해 1분 단위로 파일의 접근이나 수정, 변경을 비교할 수 있습니다. 예를 들면 여러분이 .cshrc 파일을 수정한 이후에 수정된 .으로 시작하는 파일을 찾고자 한다면, 다음과 같이 하면 됩니다.

find . -type f -name ".*" -newer .cshrc -print

여기에 -type이란 새로운 스위치가 있습니다. 이는 파일의 타입을 지정하는 스위치인데 디렉토리가 아닌 파일만을 찾기 위해 -type f를 추가했습니다. 그리고 -name 스위치를 통해 이름이 .으로 시작하는 파일을 찾고자 했으며 마지막으로 -newer 스위치를 이용해 .cshrc 파일을 수정한 이후에 수정된 파일들을 찾도록 하였습니다.

여러 스위치를 결합해서 사용할때 -o 나 논리 or를 사용하지 않는다면 모든 결과는 논리적인 and 의 결과입니다. 위에서도 모든 스위치가 논리적 and로 결합되어 있기 때문에 find는 이러한 조건(타입이 파일이고 어떤 특정한 이름을 가지고 있고 .cshrc파일보다 이후에 수정된)을 모두 만족하는 것을 찾아줄 것입니다.

논리적 and 와 논리적 or의 차이를 알아보도록 하겠습니다. 만약 필자의 홈디렉토리에 있는 7일이상 접근하지 않고 크기가 10MB이상인 파일을 찾고자 한다면 다음과 같이 하면 됩니다.

find . -atime +7 -size +20480 -print

하지만 만약 7일 이상 접근하지 않은 파일 이거나 크기가 10MB이상인 파일을 찾고자 한다면 다음처럼 해야 합니다.

find . -atime +7 -o -size +20480 -print

여기서 -size 스위치를 사용하기 위해서 약간의 계산이 필요하다는 것을 알 수 있습니다. 이는 -size가 크기를 512바이트 단위로 인식하기 때문입니다. 하지만 다음과 같이 한다면 계산은 필요없습니다.

find . -atime +7 -o -size +`expr 10 \* 1024 * 2` -print

위의 예제에서 backquotes(`) 사이에서 우리가 필요로하는 계산을 한다는 것을 주목해야 합니다. (`는 키보드의 가장 왼쪽 상단에 있습니다.) 우리는 10MB 이상의 파일을 찾길 원하기 때문에 backquotes 앞에 +가 여전히 존재합니다. find 명령어 앞에 echo를 더해서 그 결과가 무엇인지 미리 알아볼 수도 있습니다.

echo find . -atime +7 -o -size +`expr 10 \* 1024 * 2` -print

find . -atime +7 -size +20480 -print

위와 같이 복잡한 명령어를 실행할 때에는, backquote를 한 것이 올바른 결과를 출력하는지 등을 미리 검사해 보는 것이 좋은 습관입니다.

드루 라빈은 킹스톤에 있는 사립 공과 대학에서 네트웍을 가르치고 있습니다. 그녀는 하나의 테스트 컴퓨터에서 얼마나 많은 운영체제를 멀티 부팅할 수 있는지 알아보는 것으로 유명합니다.

크리에이티브 커먼즈 라이선스
Creative Commons License

'프로그래밍 > etc..' 카테고리의 다른 글

Cron ....  (0) 2006/10/31
Regular Expressions.. 정규식..  (0) 2006/10/13
find 명령어 사용하기  (0) 2006/10/09
Vi Editor 사용법  (0) 2006/09/18
JavaScript 부모창 새로고침..  (0) 2006/09/01
TUXEDO의 기본개념..  (0) 2006/08/18
TAG find, Unix

Vi Editor 사용법

프로그래밍/etc.. | 2006/09/18 11:20 | Posted by taesuz

VI 에디터 사용법

(1)  입력 모드
- i : Insert, 현재 커서의 위치에 글자를 삽입
- I : Insert, 커서가 있는 줄(line)의 맨 앞에 글자를 삽입
- a : Append, 현재 커서 위치의 다음 칸에 글자를 추가
- A : Append, 커서가 있는 줄(line)의 맨 뒤에 글자를 추가
- o : Open line, 현재의 줄 다음에 새로운 줄을 삽입
- O: Open line, 현재의 줄 앞에 새로운 줄을 삽입
영/한 변환은 Shift+Spacebar를 입력하면 됩니다.
편집은 대부분 명령모드 상태에서 이루어 집니다.

(2)  명령 모드
입력 모드에서 명령 모드로 다시 전환하려면 Esc 키를 누르기만 하면 됩니다. 명령모드는 편집모드라고도 하는데, 글을 입력시키는 방법이 아닌 수정과 편집을 할 수 있는 상태임을 기억해 두어야 합니다. 즉, 명령모드에서는 복사,삭제, 붙이기. . .등의 작업이 이루어 집니다. 또한, 입력모드를 통해 삽입 등 잘못된 명령을 내렸을 때 'u'라는 명령어를 통해서 Undo, 즉 복구가 가능하게 할 수 있습니다.


(3)  콜론 모드

명령모드에서 콜론 모드로 전환하려면 ':'명령을 실행시키면 됩니다. 콜론 모드는 vi에서 사용할 수 있는 명령어들을 이용하는 곳입니다. 윈도우 환경에서라면 메뉴 바와 같은 역할을 한다고 볼 수 있습니다. 파일을 저장하거나 vi를 종료하는 등의 일을 수행할 수 있습니다. 콜론 모드로 들어가려면 Esc를 누른 후 ":"를 누르면 됩니다. 콜론 모드에 들어가게 되면 화면 아래쪽에 ':' 표시가 나타나게 되며, 여기서 원하는 작업에 해당하는 명령을 입력하고 Enter 키를 치면 됩니다.

* 정규표현식의 특수 기호들
-? : 한글자를 대표하는 기호 
- * : 여러개의 문자를 동시에 대표하는 기호
- ^ : 줄의 처음시작
- $ : 줄의 맨끝
- % : 처음줄부터 끝줄까지
- \ : 특수한 기호들이 가지는 뜻을 없앨 때 사용
- [^] : 묶여진 문자를 제외한 아무것이나 대응합니다
- [A-Z] : A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z 를 대표
- [AB] : A 또는 B
- p[aeiou]t : pat, pet, pit, pot, put 를 대표
- [0-9] : 0,1,2,3,4,5,6,7,8,9 를 대표

*명령 모드(ESC 모드)에서 사용되는 몇가지 기호
- G : 화일의 맨끝으로
- ^ : 현재줄의 맨앞 (빈칸무시)으로
- 0 : 현재줄의 맨앞으로
- $ : 현재줄의 맨 뒤로
- % : 짝을 이루는 기호 확인
- w : 다음 단어로
- b : 이전 단어로
- e : 현재 단어의 끝 글자

*커서 움직이기
- h : 커서를 왼쪽으로 이동하는 명령
- j : 커서를 아래로 이동하는 명령
- k : 커서를 위로 이동하는 명령
- l : 커서를 오른쪽으로 이동하는 명령
- ^ : 빈칸을 무시하고, 커서를 현재 줄의 첫글자로 이동하는 명령
- 0 : 커서를 현재줄의 처음으로 이동하는 명령
- $ : 커서를 현재줄의 맨끝으로 이동하는 명령
- + : 커서를 다음줄의 처음으로 이동하는 명령
- - : 커서를 이전 줄의 처음으로 이동하는 명령
- n| : 현재위치의 n 번째 열로 (n은 임의의 숫자)
- H(Home) : 커서를 화면상에 처음줄로 이동하는 명령
- M(Middle) : 커서를 화면상에 중간줄로 이동하는 명령
- L(Last) : 커서를 화면상의 마지막줄로 이동하는 명령
- nH : 화면상의 처음줄로부터 n 줄 밑으로 이동(n은 임의의 숫자)
- nL : 화면상의 마지막줄로부터 n 줄 위로(n은 임의의 숫자)
- G (Go) : 파일의 마지막 줄로 이동하는 명령
- nG : n번째 줄로 건너뛰는 명령
- w(word) : 커서를 다음단어의 첫글자로 이동하는 명령
- b(back) : 커서를 이전단어의 첫글자로 이동하는 명령
- e(end) : 커서를 다음단어의 끝 글자로 이동하는 명령
- vi에는 스크롤 기능이 없는 대신 화면 단위로 이동하는 명령어들이 있습니다.
- Control + f (Forward) : 한화면 밑으로 이동
- Control + b (Backward) : 한화면 위로 이동
- Control + d (Down) : 반쪽화면 밑으로 이동
- Control + u (Upon) : 반쪽화면 위로 이동
*편집하기
복사, 붙이기, 합치기
- y (Yank) : 복사하기
- yy : 한 줄 전체의 내용을 복사한다
- 2yy : 두줄복사
- nyy : 현재 줄 이하로 n개의 줄을 복사한다 (n은 임의의 숫자, 2yy는 2줄 복사)
- yw : 한단어 복사

- ynw : n개의 단어를 복사한다(y2w는 두 개의 단어를 복사)
- y2w : 두단어 복사
- y$ : 현재 위치에서 그 줄의 끝까지 복사한다
- y0(y^) : 현재 위치에서 그 줄의 처음까지 복사한다
- yG : 현재 위치에서 파일의 끝까지 복사한다(G는 파일의 마지막 줄)
- Y : 한 줄 전체의 내용을 복사한다 (yy 와 동일)
마지막 명령어의 반복

-. : 마지막에 수행한 명령어를 반복한다.
-2. : 명령어를 2번 반복한다.
- p (Put or Paste) : 붙이기
- P : 위로(왼쪽으로) 붙이기
- xp : 두 문자를 바꾸는 명령
- ddp : 두 줄을 바꾸는 명령
- J(Join) : 여러 줄의 내용을 한 줄로 합친다
- dnw : n개의 단어를 지운다
- d$(D) : 커서가 있는 위치에서 그 줄의 끝까지 지우기
- dd : 현재커서가 위치한 줄의 전체를 삭제합니다.
- ndd : n줄지우기 (n 은 임의의숫자)
- dw : 한단어 지우기
- d0(d^) : 그줄 처음까지 지우기
- dG : 커서가위치한 곳으로 부터 문서 끝까지 지우기
- :line d : 지정한 줄을 삭제
- :line, line d : 지정한 범위를 삭제
- u (Undo) : 되살리기 명령으로 버퍼에 저장되어 있는 원래의 내용을 복구
- c (Change) : 바꾸기
- cc : 한줄 바꾸기
- ncc : n개의 줄 바꾸기(n은 임의의 숫자)
- cw : 한단어 바꾸기
- c2w : 두단어 바꾸기
- c$ : 그 줄 끝까지 바꾸기
- c0(c^) : 현재 위치에서 파일의 끝까지 바꾼다
- r (Replace) : 한글자 바꾸기
- 2r : 두글자 바꾸기
- R : 바꾸면서 삽입이 아닌 수정(modify) 모드로 들어간다. 윈도에서 Insert 키를 누르고 수정 상태로 들어가는 것과 같다
- s : 한글자 지우고 insert 모드로 - cl 와 동일
- S : 한줄지우고 insert 모드로 - cc 와 동일
- ~ : 대문자 < - > 소문자 바꾸기 - 영문자에만 해당

- /요 : 현재 위치에서 아래쪽 방향으로 '요'라는 단어를 찾는다
- ?요 : 현재 위치에서 위쪽 방향으로 '요'라는 단어를 찾는다
- n : 단어 찾기를 반복한다(아래쪽 방향으로)
- N : 단어 찾기를 반복한다 (위쪽 방향으로)
찾기와 편집명령의 응용
- d/simple : simple 이라는 단어가 나올때까지 지우기
- d/^scully : 줄의 맨앞에 scully 라는 단어가 나올때까지 지우기
- y/yahoo : yahoo 라는 단어가 나올때까지 복사하기

ex 명령어 익히기
vi서 사용하는 ex 명령어는 이전 ex 편집기에서 지원하던 기능들입니다. ex 모드(콜론 모드)에서 사용하는 명령어는 열기(Open), 저장(Save), 다른 이름으로 저장(Save as) 등의 명령을 수행합니다. ex 모드는 Esc 키를 누르고 ':' 키를 입력하여 들어갈 수 있다는 것과 종료시의 명령어에 대해서는 앞에서 설명하였기에 생략하기로 하겠습니다.

예)
- :1,10 co 50 : 1 줄 부터 10 줄 까지를 50 줄 이후로 복사
- :34,50 d : 34 줄 부터 50 줄 까지 삭제
- :.,$ d : 현재줄부터 끝까지 지우기
- :.,+20 co -4 : 현재줄부터 20줄을, 4줄 위에 복사하기
- :-,+ t 0 : 위, 아래로 한줄(총 3줄)씩을, 문서 맨위에 복사하기
- :/pattern/ d : pattern 이 들어있는 줄 지우기
- :/pattern/ -nd : pattern 이 들어있는 줄로부터 n 번째 윗줄 지우기
- :/pattern/ +nd : pattern 이 들어있는 줄로부터 n 번째 아랫줄 지우기
- :/pattern1/,/pattern2/d : pattern1 이 들어있는 줄부터, pattern2 가 들어있 는 줄까지 지우기
- :.,/pattern/ m 23 : 현재줄부터 pattern 이 들어있는 줄까지, 23번줄 이 후로 옮기기


저장 및 종료하기
- :w : 저장하기 (write)
- :q : 종료하기 (quit)
- :wq : 저장하고 종료하기
- :w! : 강제로 저장하기 (read-only 로 열었을경우)
- :q! : 편집한 내용을 저장하지 않고 종료하기
- :w new_file_name : 새로운 파일이름으로 저장하기
- :w %.new : 현재화일 이름에 .new 를 붙여서 새로운 화일로 저장
- :230,$ w file_name : 230 줄부터 끝줄까지 file_name 으로 저장하기
- :.,600 w file_name : 현재줄부터 600줄까지 file_name 으로 저장하기
- :1,10 w new_file : 1줄부터 10줄까지 new_file 로 저장하기
- :340,$ w >> new_file : 340줄부터 끝줄까지 new_file 에 추가하기


읽기
- :r[ead] filename : 현재위치에 filename 읽어들이기
- :r /usr/local/data : 현재위치에 /usr/local/data 읽어들이기
- :185 r /usr/local/data : 185줄 이후에 /usr/local/data 읽어들이기
- :$r /usr/local/data : 맨끝줄 이후에 /usr/local/data 읽어들이기
- :0 r /usr/local/data : 맨윗줄에 /usr/local/data 읽어들이기
- :/pattern/ r /usr/local/data : pattern 이 존재하는 줄에 /usr/local/data 읽어들이기


다중편집하기
vi file1 file2 :file1과 file2라는 두 개의 문서를 읽어들인다. 먼저 읽는 문서는 file1이다
- :n :두 번째 문서(file2)를 편집할 수 있다
- :e # :이후부터는 ':e #' 명령을 사용하여 문서를 번갈아 열며 편집할 수 있다
- :prev[ious] :이전화일로 돌아간다
주의 - 편집중인 화일이 저장되지 않으면 다음 화일로 넘어갈수 없다
* * 새로운 파일 편집하기
- :e file1:새로운 파일(file1)을 읽어들여 편집한다
- e[dit] file_name :새로운 file_name 편집하기
- :e! :현재의 편집중인 내용을 무시하고 가장 최근에 편집한 내용을 다시편집하기

* * 프로그램 소스 코드에서 괄호 짝 찾기
프로그램이나 HTML 소스에는 수많은 괄호(< >, ,…)가 사용되게 마련입니다. 때문에 편집을 하다 보면 괄호의 짝을 잃어버려 프로그램 오류가 나는 경우도 빈번합니다. 이럴 때 vi는 편리한 기능을 제공합니다. 해당 괄호 위에 커서를 놓은 후 %키를 누르면 짝이 되는 괄호의 위치로 이동합니다.

예기치 않은 시스템 다운후 되살리기
- vi -r :되살릴수 있는 모든 파일의 이름을 보여준다.
- vi -r file :vi에디터를 실행하여 지정한 파일을 되살리는 옵션이다

디스플레이 제어
:set number : 내부의 줄번호로 내용을 불러온다
:set nonumber : 내부의 줄번호로 내용을 되 불러 오지 않게 하는 옵션이다

패턴에 의한 치환
- :s/pattern/replace/ : 현재 줄을 치환한다
- :lines/pattern/replace/ : 지정한 줄을 치환한다
- :line,lines/pattern/replace/ : 지정한 범위를 모두 치환한다
- :%s/pattern/replace/ : 모든 줄을 치환한다


데이터 읽기
- :line r file : 파일의 내용을 지정한 줄 다음에 삽입한다
- :r file : 파일의 내용을 현재줄 다음에 삽입한다
- :line r !command : 명령의 결과를 지정한 줄 다음에 삽입한다
- :r !command : 명령의 결과를 현재줄 다음에 삽입한다
- u : 수정했던 마지막 명령을 취소한다
- . : 마지막 명령을 반복한다
- x : 커서가 있는 문자를 삭제한다

크리에이티브 커먼즈 라이선스
Creative Commons License

'프로그래밍 > etc..' 카테고리의 다른 글

Regular Expressions.. 정규식..  (0) 2006/10/13
find 명령어 사용하기  (0) 2006/10/09
Vi Editor 사용법  (0) 2006/09/18
JavaScript 부모창 새로고침..  (0) 2006/09/01
TUXEDO의 기본개념..  (0) 2006/08/18
AXIS 기본 명령어..  (0) 2006/08/18
TAG Vi Editor

JavaScript 부모창 새로고침..

프로그래밍/etc.. | 2006/09/01 10:22 | Posted by taesuz
  • 자식창에서 opener.location.reload()
  • opener.parent.location.href = reload시키려는 페이지
  • 크리에이티브 커먼즈 라이선스
    Creative Commons License

    '프로그래밍 > etc..' 카테고리의 다른 글

    Regular Expressions.. 정규식..  (0) 2006/10/13
    find 명령어 사용하기  (0) 2006/10/09
    Vi Editor 사용법  (0) 2006/09/18
    JavaScript 부모창 새로고침..  (0) 2006/09/01
    TUXEDO의 기본개념..  (0) 2006/08/18
    AXIS 기본 명령어..  (0) 2006/08/18

    TUXEDO의 기본개념..

    프로그래밍/etc.. | 2006/08/18 16:01 | Posted by taesuz
    TUXEDO 개념(정의)

    Ø       TUXEDO 프로세스 간의 통신을 가능하게 , 보통 시작 프로세스는 클라이언트이고, 통신을 받는 프로세스는 서버

    Ø       TUXEDO 분산, 미션-크리티컬(mission-critical) 어플리케이션을 단일 환경으로 설계, 구성, 관리 가능 하게

    Ø       1978 미국의 AT&T 전화회선 교환 업무를 위해 개발되어, 다양한 온라인 업무에 사용 실적을 갖고있는 TP 모니터

    Ø       IBM 메인프레임에서 CICS TP-모니터라고 하면, TUXEDO 오픈 분산분산 환경에서의 온라인 TP-모니터라고 있음

    Ø       메인 프레임 환경에서 운영되는 OLTP 업무를 UNIX 환경에서 운영 가능하게 하는 솔루션

    Ø       현재 BEA Systems Inc. 회사 제품 .

    Ø       현재 Version 8.1 릴리즈

    n         TUXEDO 주요 기능

    성능 측면

    q     서버의 부하 조절(Load Balancing) 서비스의 우선 순위(Priority) 기능

    q     사용자 증가 시에 funneling 시킴으로써 H/W 또는 DB 리소스 효율적 사용 가능

    확장성

    q     기종 H/W 기종 데이터 베이스에 대한 전역 트랜잭션 보장

    q     X/OPEN DTP 모델 지원함으로써 확장성 보장

    데이터 정합성 측면

        q  2단계 커밋(Commit) 통한 분산 데이터에 대한 정합성 보장

    관리 측면

    q     Domain 관리로 지역별, 기능별 응용 프로그램 구성 통합의 편리성

    q     응용(서버) 프로세스들을 중앙에서 관리 통제 가능

    q     비정상 종료된 프로세스에 대해 자동으로 복구 시킴

    q     트랜잭션 report 출력 기능(서비스 수행 시간 수행 출력 )

    가용성 측면

    q     장애 발생시 OLTP 업무를 백업 머신으로 이동하여 중단 없는 서비스 제공

    표준 지원

        q   X/OPEN 표준 환경 지원

    개발 향상성 측면

    q     명명(Naming) 서비스 제공함으로써 서비스명 정보로 해당 서비스 호출 가능

    q     입력된 데이타 값에 따른 경로(Routing) 지원

    q     UNIX, MS-DOS, WINDOWS(3.1 95), WINDOWS-NT, Macintosh, OS/2에서 동일한 API 제공함으로써 프로그램 이식성 보장

    보안 측면

    q     Security 관리를 위한 ACL(Access Control List) 기능 제공

    q     전송되는 메시지에 대한 암호/복호화 지원

    TUXEDO 주요 모듈

    BEA TUXEDO 크게 5개의 모듈(컴포넌트) 구분 지을 있다.

    n         BEA TUXEDO System (또는 /T)

    : TUXEDO 중심적인 역할을 하는 모듈. 프로세스 간의 통신, 트랜잭션 지원, 어플리케이션 관리 등의 기능을 하는 모듈

    n         BEA TUXEDO Workstation (또는 /WS)

    : 원격 클라이언트(또는 워크스테이션) 서버 간의 연결을 담당하는 모듈

    n          BEA TUXEDO /Q

    : 저장 & 전달(store-and-forward) 방식의 -메커니즘 기능 지원하는 모듈

    n         BEA TUXEDO Domain (또는 /Domain)

    : TUXEDO 시스템의 도메인과의 연결 또는 TP-모니터 ( TOPEND ) 연결을 담당하는 모듈

    n         BEA TUXEDO TxRPC

    : IDL RPC(원격 함수 호출) 위한 기능을 지원하는 모듈

    위의 5개의 모듈은 별도 패키지된 또는 별도 판매하는 모듈이 아니고, BEA TUXEDO 제품에 포함되어 있는 모듈들이다.

    프로세스 설명

    TUXEDO  구성 process

    프로세스

     

     

    DBBL

    MASTER 노드에서만 기동되는 프로세스로서 분산되어 있는 노드(BBL) 관리함

    MP 환경의 Master 머신에 위치함

    BBL

    공유 정보 관리 관리/응용 프로세스들을 관리 하는 프로세스

    BRIDGE

    원격 노드와의 데이터 .수신 채널 담당하는 프로세스

    MP 환경인 경우에만 기동됨

    WSL

    클라이언트와의 접속을 담당하는 프로세스

    WSH

    실질적으로 클라이언트와 세션을 유지시켜 데이타를 주고 받는 프로세스

    TMS

    트랜잭션 처리를 담당하는 프로세스

    XA 사용하는 환경에서 필요

    tlisten

    원격 노드를 중앙에서 관리하기 위해 원격 노드에 관리 전에 기동되는 데몬 프로세스

    MP 환경인 경우에만 기동됨

    TU
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    '프로그래밍 > etc..' 카테고리의 다른 글

    Regular Expressions.. 정규식..  (0) 2006/10/13
    find 명령어 사용하기  (0) 2006/10/09
    Vi Editor 사용법  (0) 2006/09/18
    JavaScript 부모창 새로고침..  (0) 2006/09/01
    TUXEDO의 기본개념..  (0) 2006/08/18
    AXIS 기본 명령어..  (0) 2006/08/18
    TAG tuxedo, WAS

    AXIS 기본 명령어..

    프로그래밍/etc.. | 2006/08/18 15:55 | Posted by taesuz
    OS : AIX
    종류 : KORN / BOURNE SHEEL
         UNIX에서 제공되는 표준으로 타 플랫폼으로 전환이 용이

    ---------------------------------------------------------
    FILE과 DIRECTORY 관리 명령
    ---------------------------------------------------------
    * cp/mv/rm
      - cp : 파일 복사
      - mv : 파일 이동
      - rm : 파일 삭제
            rm -r  (디렉토리나 파일의 제거)

    * mkdir / rmdir  
      - mkdir : 디렉토리의 생성
      - rmdir : 디렉토리의 삭제
     
    * cat
      - 파일 보기
      - 예제) 파일을 보거나 두 개이상의 파일을 하나의 파일로 만들 때
             cat file1$ cat file1 | more
    * du
      - 디렉토리나 파일들에 의하여 얼마만큼의 디스크 공간이 사용되는지 볼 때
      - 예제) du -k
     
    * df
      - 파일 시스템에서 사용된 양과 free인 양을 볼 때
      - 예제) df -k


    * compress
      - 파일을 압축할 때
      - 예제) aixfile.dat을 압축
            compress aixfile.dat

    * uncompress
      - 압축된 파일을 원래의 파일로 복원할 때
      - 예제) aixfile.dat.Z을 압축 풀때
             uncompress aixfile.dat.Z

    * chmod
      - chmod 절대모드 파일이름
      - 예제) chmod 절대모드 파일이름
     
    * chgrp 
      - 파일의 그룹을 바꿀 때
      - 예제) chgrp group-id file1

    * chown 
      - 파일의 소유자를 바꿀 때
      - 예제) chown user-id file1

    * cmp 
      - 파일의 비교
      - 예제) cmp file1 file2
     
    * file
      - 파일형식 알아보기
      - 예) aixfile.dat의 형식 보기
          file aixfile.dat

    * more
      - 화면별 나눠서 보기
      - 예) cat aixfile.dat | more
     
    * find
      - 패턴에 맞는 파일 찾기
      - 예) 현재 디렉토리에서 파일 갯수
           find [파일갯수를 찾고자하는 디렉토리] -type [type (ex:f ->파일타입)] | wc -l
           find . -type f -ls | wc -l

    * tail
      - 파일내용 중 마지막 부터 특정 라인 수 만큼 보기
      - 예제) file1의 내용을 끝에서 부터 20라인 표시
            tail -n 20 file1
      - 예제) file1의 내용이 추가될 때마다 화면에 실시간으로 표시
            tail -f file1
           
    * head
      - 파일내용 중 처음부터 특정 라인 수 만큼 보기
      - 예제) file1의 내용을 끝에서 부터 20라인 표시
            head -n 20 file1
    * tee
      - 화면출력을 하면서 화면출력의 결과를 동시에 파일로 저장
      
    ---------------------------------------------------------
    TEXT 처리 명령
    ---------------------------------------------------------
    * awk
      - text에서 패턴을 이용해 특정 부분을 추출한 후 어떤 동작을 수행한다
      - 예제) ls명령으로 LPP가 들어간 파일들을 찾아서 압축함.
       ls | grep LPP | awk '{print "tar cvf LPP.tar",$1}'
       
    * diff
      - 파일 비교
      - 예제) file1을 기준으로 file2와 비교하여 변경사항 보여줌
            diff file1 file2

    * grep
      - 문자열 찾기
      - 예제) aixfile.dat라는 파일에서 "aix"라는 문자열을 검색
            grep "aix" aixfile.dat
      - 예제) TIME 또는 0:을 제외한 줄
            egrep -v "TIME|0:"

    * sort
      - sort, merge, sequence check
     
    * wc
      - word count,  갯수 구할때

    ---------------------------------------------------------
    SYSTEM 명령
    ---------------------------------------------------------
    * date
      - 현재 시간 보기
      - 예) date

    * env  : 현재의 환경변수를 display

    * id
      - 현재 실행중인 사용자 id와 그룹 id 출력
      - 예) id

    * r
      - 명령어 다시수행하기  
      - 예) r
      - history 토글 기능
       set -o vi (이것을 환경파일에 등록해 두면 ESC+K, ESC+J 로 history 명령어 재수행 가능
      
    * kill
      - ProcessID 번호에 해당하는 프로세스 종료
      - 예)  kill PID
            kill -9 PID  (강제 종료시)
    * mail
      - mail 보기
      - 예) mail
     
    * ps
      - 프로세스 보기
      - 예) 현재 실행중인 모든 프로세스 목록에 대한  상세 보기
           ps -ef
      - 예) 메모리 사용량 보기
           ps aux | grep tail         
           example)
    USER        PID %CPU %MEM   SZ  RSS    TTY STAT     STIME  TIME COMMAND
    test      48488  0.0  0.0  188  220  pts/7 A     12:05:17  0:00 tail -f inaudit
    * 6번째가 메모리 사용(프로세스의 실제 메모리), (1KB 단위)

    * pwd
      - 현재 디렉토리 표시
      - 예) pwd
     
    * stty
      - 현재 표준 입력 장치에 대한 특정 I/O 옵션을 설정
      - 예) tty 장치에서 표준 입력을 재지정
          stty -a </dev/ttyx

    * who
      - 현재 접속한 user 리스트 보기
      - 예) 현재 접속한 사람의 수
           who | wc -l

    * whoami
      - 현재 접속한 User 보기
      - 예) 현재 접속한 User 보기
           whoami
          
    * finger
      -  특정 user의 자세한 정보 보기
     
    * write
      - 서버내에 로긴한 특정 사용자에게 메세지를 보낼 때
      - 예) user01이라는 사용자에게 메세지를 보낼 경우
           write user01
      - 참고
       . 한라인씩 입력에따라 전송되며(라인입력후 엔터를 치면 전송)
       . 여러줄을 연속하여 전송가능하고 전송이 끝나면 ctrl + D 로 프럼프트로 빠져나옴
       . wall은 broadcast용으로 현재 서버에 로긴중인 모든 사용자에게 메세지를 보낼경우 사용

    * &
      - background에서 명령어나 작업을 수행
      - 예)  <명령어> &      

    * jobs
      - 정지상태나  수행중인 작업  번호를  활동  상태의 작업 list 출력
      - 예)  jobs

    * sleep
      - 일정 간격 동안 명령어의 수행을 일시 중단 시키는 명령어
      - 예) 60초 동안 실행을 일시 중단
           sleep 60       
          
    * traceroute
      - 해당 IP 또는 도메인 명으로 라우팅 tracing
      - 예) www.yahoo.com으로 라우팅정보 디버깅
           traceroute www.yahoo.com
    크리에이티브 커먼즈 라이선스
    Creative Commons License

    '프로그래밍 > etc..' 카테고리의 다른 글

    Regular Expressions.. 정규식..  (0) 2006/10/13
    find 명령어 사용하기  (0) 2006/10/09
    Vi Editor 사용법  (0) 2006/09/18
    JavaScript 부모창 새로고침..  (0) 2006/09/01
    TUXEDO의 기본개념..  (0) 2006/08/18
    AXIS 기본 명령어..  (0) 2006/08/18
    TAG AIX, IBM