2011. 1. 26. 15:00ㆍ99. 정리전 - IT/13. Unix 얇팍지식
## REDIRECTION ##
1.표준출력 저장
- ps > psout.txt
2.표준에러출력
- cc -c src1.c 2> err.txt
3.표준출력과 표준에러의 저장
-kill -1 1234 > killout.txt 2> killerr.txt
-kill -1 1234 > killouterr.txt 2>&1
4.재지향 입력
more < killout.txt
5.예제
- ps -a | sort | uniq | grep -v sh | more
=> ps 명령의 결과를 sorting 하고서(sort) 중복 자료를 제거한후(uniq) 'sh'가 들어간 문자를 제외하고서(grep -v ) 페이지단위로 봄(more)
재지향 2
cat > t.txt << AA
t.txt파일을 만들면서 AA 가 들어올때가지 stdin으로 입력받는다.
즉 입력으로 AA가 입력되면 t.txt 생성되는것이다.
-----------------------------------------------
현재 진행중인 프로세스의 pid 만 찾기
-----------------------------------------------
ps -ef | grep process | grep -v grep | awk '{print $2}' ( 2번째 컬럼만 취한다)
s -ef | grep susm022 | grep -v grep | awk '{print $2}'
-----------------------------------------------
현재 진행중인 프로세스의 pid 만 찾아 kill 하기
-----------------------------------------------
ls -ltr inar2*.pc | awk '{print $9}' | sort -k 1 xargs | so
------------------------------------------------------
파일 찾아서 문자열 찾기
find ./ -name "inar*.pc" -print | xargs grep "aaaa" # 속도 훨씬 빠름,파일이름도 나옴
find . -name "파일명" | awk '{print $1}'
find / -name '*.*' -exec grep 'EXEC' {} \; #속도 느림
find / -name '*.pc' -exec grep 'EXEC' {} \; #처리할 범위(확장자등을 주면)속도 빠름
---------------------------------------------------
찾은 파일에서 문자열 찾기
find ./ -name "*.pc" | grep "aaa"
---------------------------------------------------
*.eml 라는 파일을 다 지우고 싶을때.
rm -rf `find . -name "*.eml" `
find / -name "*.eml" -exec rm -f {} \;
---------------------------------------------------
디렉토리 크기 보기
du #disk used
du -k #kilobyte단위로 보기
du -k | sort -n # 디렉토리크기를 정렬해서 보기
du -k | sort -rn #크키를 반대로 정렬해서 보기
---------------------------------------------------
가장큰파일찾기
ls -lR | sort +4n # 파일록록 결과중 4포지션 뒤부터 정렬
ls -lR | sort -k 5 # 파일록록 결과중 5를 키로 해서 정렬
ls -al | grep "^d" #디렉토리만 빠르게 검색(정규식을 이용한거임)
---------------------------------------------------
실행할 binary가 있는지 찾기
[prompt] whereis bin_name # bin_name 이 있으면 이름만 보여줌
[prompt] which bin_name # bin_name 이 있으면 경로도 보여줌
[prompt] whereis bin_name # bin_name 이 있으면 이름만 보여줌
---------------------------------------------------
무지큰 로그보기
vi 로그파일명. 실행시 로그파일이 수백메가씩이라면 무지느림 그럴땐 less를 사요
[prompt] less to_day001.log
그상태에서 vi 쓰듯이 문자열 검색하면 됨
---------------------------------------------------
system 상태관련
[promt] uname -a #유닉스의 현재 버젼과 종류 그리고 라이센스등을 알려주는 명령어
[prompt] netstat -an | grep LISTEN #열려있는 포트 알아내기
[prompt] netstat -rn # 라우팅설정된 상태확인
[prompt] netstat -rn | grep 210.11.12.13(포트번호 9000) #210.11.12.13 ip(포트9000)가 사용되는지 확인
[promt] w #사용자가 어디에서 무엇을 하는지 알아내기
[promt] finger #사용자와 사용자 ip 보기,보안땜에 보통 막아놈
[prompt]who #현재 시스템에 접속한 사용자 계정과 tty 번호 로긴시간 ,ip정보
[prompt] who am i # 자신계정에 대한 정보를 보여줌,
[prompt] whoami #자신의 계정만 보여줌
#############################################
▣내가 돌린 백그라운드 프로세스 죽이기
a.백그라운드로 작업돌리기
[mktmst1@mss1:/data4/mktmst/bin] tail.sh &
b. jobs 명령어로 확인
[mktmst1@mss1:/data4/mktmst/bin]jobs
[2] + Running tail.sh > t &
[1] - Running tail.sh > t &
c.죽이기( kill)
[mktmst1@mss1:/data4/mktmst/bin]kill %1
[mktmst1@mss1:/data4/mktmst/bin]kill %2
d. 확인
[mktmst1@mss1:/data4/mktmst/bin]jobs
[2] + Terminated tail.sh > t &
e. 포 그라운드로 전환하기
[mktmst1@mss1:/data4/mktmst/bin]fg %1 -> 1번 작업을 포그라운드로 전환한다.
f.nohup으로 작업돌리기
-일반적으로 터미널 화면을 종료하면 그 수행하던 작업은 종료된다.특정시간이나 긴 작업처리시 터미널이 종료되도 작업을 진행시킬 수 있다
[prompt:] nohup tail.sh & # nohup 명령으로 tail.sh 작업을 백그라운드로 실행한다.
* 자세한 명령어는 유닉스 책 참고 하세요 *
▣ 오라클 sql 실행하기.
#ptcn
. /mslb/mktdev2/.profile >/dev/null; #null 파일로 출력을 보낸다.즉 아무것도 출력안한다는 뜻
sqlplus ptcn/ptcn @/mslb/rscy.sql `date +%y%m` # oracle sqlplus로 로긴해서 rscy.sql 를 당일 시스템날짜를 입력받아 실행시킨다.
츨처 : http://blog.daum.net/_blog/BlogTypeView.do?blogid=0JlXK&articleno=2804974&categoryId=331090®dt=20080314135346#ajax_history_home