[펌] Linux 정리 #2

|
### http://truth.egloos.com/1283505  ###
Linux 정리 #2
ls라는 파일이 포함된 rpm패키지 찾기
일단 ls의 절대경로를 알아야 한다. which ls
which로 알아낸 ls의 절대경로로 rpm질의를 한다.rpm -qf /bin/ls
[root@piruks /etc]# which ls
/bin/ls
[root@piruks /etc]# rpm -qf /bin/ls
fileutils-4.0i-2mz

현재 rpm패키지의 의존패키지
rpm -qR 패키지명

현재 디렉토리크기
du -h --max-depth=1 .

바로 이전 디렉토리로 가기
cd -

프로세스명으로 프로세스 죽이기
[리눅스]
killall 프로세스명
kill -9 `pidof 프로세스명`

하드웨어 시계맞추기
배포본을 설치하고 나면 시간이 맞지 않는 경우가 많다.
간단히 어느정도 정확한 시간을 설정하는 방법이다.
[root@dev /down]# rdate -s time.kriss.re.kr
[root@dev /down]# clock -w

원격에서 리모트서버의 X application실행시
X윈도 app를 실행할때 다음과 같은 에러가 나면 조치
[kang@dev /home/kang] xclock
Xlib: connection to "211.222.186.170:0.0" refused by server
Xlib: Client is not authorized to connect to Server
Error: Can't open display: 211.222.186.170:0.0

export DISPLAY=211.222.186.170:0
xhost +211.222.186.170

파일내 문자열 치환
mysql에 replace라는 프로그램이 딸려있다.

현재 디렉토리내 모든 파일에서 a를 b로 변경
replace a b -- *

현재 디렉토리내 모든 파일에서 a는 b로, b는 a로 변경
replace a b b a -- *

하위 디렉토리를 포함하여 위의 작업을 할때
replace a b -- `find . -type f -name '*' -print`
or
find . -type f -name '*' -exec replace a b -- {} ;

PERL로 한다면 다음과 같이 해도 된다.
find . -type f -name '*' -exec perl -pi -e 's/a/b/g' {} ;

ex)
find . -type f -name '*.html' -exec /usr/local/mysql/bin/replace myunggyu@orgio.net kang@dbakorea.pe.kr -- {} ;

ISO이미지 만들기
/down/Disk1 디렉토리의 내용을 Linux9i_1.iso라는 ISO이미지파일로 만든다.
mkisofs -r -o Linux9i_1.iso /down/Disk3

위에서 만들어진 Linux9i_1.iso파일을 레코더로 구울때
cdrecord -v -isosize speed=12 dev=0,0 Linux9i_1.iso

XMMS에서 한글출력
메뉴중 옵션-선택사항-폰트'에 다음과 같이 지정
옵션: 폰트셋 사용하기(멀티바이트 지원설정) 체크
연주목록에 다음과 같이 설정
-adobe-helvetica-bold-r-*-*-10-*, -baekmuk-gulimbdf-medium-r-normal-*-*-120-*-*-m-*-ksc5601.1987-0

기본창- X폰트사용 체크 하고 다음과 같이 설정
-adobe-helvetica-medium-r-*-*-8-*, -baekmuk-gulimbdf-medium-r-normal-*-*-120-*-*-m-*-ksc5601.1987-0

ISO파일 처리
CD이미지(ISO 9660) 만들기
dd if=/dev/cdrom of=ora817.iso
or
mkisofs -R -V Oracle817 -o ora817.iso /dev/cdrom

CD이미지(ISO 9660) 마운트
mount -r -t iso9660 -o loop ora817.iso /mnt/iso

CD이미지(ISO 9660) 굽기
cdrecord -scanbus로 가능한 dev파악
cdrecord -v -eject speed=12 dev=0,0,0 ora817.iso


file: 파일의 종류와 정보를 알려준다.

[kang@ns work]$ file signal_reset.c
signal_reset.c: C program text

[kang@ns work]$ file signal_reset
signal_reset: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped


stat: Unix system함수인 stat(fstat)가 가지는 정보를 보여주기 위해 명령어로 구현되어진 것

[kang@ns work]$ stat signal_reset.c
File: "signal_reset.c"
Size: 175 Filetype: Regular File
Mode: (0664/-rw-rw-r--) Uid: ( 512/ kang) Gid: ( 512/ kang)
Device: 3,7 Inode: 96199 Links: 1
Access: Wed Oct 18 21:12:01 2000(00000.00:01:33)
Modify: Wed Oct 18 21:11:43 2000(00000.00:01:51)
Change: Wed Oct 18 21:11:43 2000(00000.00:01:51)

[kang@ns work]$ stat signal_reset
File: "signal_reset"
Size: 11991 Filetype: Regular File
Mode: (0775/-rwxrwxr-x) Uid: ( 512/ kang) Gid: ( 512/ kang)
Device: 3,7 Inode: 96198 Links: 1
Access: Wed Oct 18 21:12:06 2000(00000.00:01:30)
Modify: Wed Oct 18 21:11:50 2000(00000.00:01:46)
Change: Wed Oct 18 21:11:50 2000(00000.00:01:46)


reset: 키보드설정 reset(? 매뉴얼에도 없다. 잘모르겠다.)

[kang@ns work]$ reset
Erase is delete.
Kill is control-U (^U).
Interrupt is control-C (^C).

whatis : whatis데이터베이스에서 완전한 단어를 검색한다.
ex) whatis ls whereis

apropos : whatis데이터베이스에서 문자열을 검색한다. man -k와 같다.
ex) apropos socket

whereis : 바이너리,소스,매뉴얼 파일의 위치 출력
ex) whereis cp

cal : 달력 출력
ex) cal 2004 : 2004년 달력 출력
cal 5 2004 : 2004년 5월 달력 출력

tty : 자신이 사용하는 터미널명을 출력. kill명령으로 해당 터미널유저를 처리할때 쓰도록..




쉘에서...

?은 한문자를 의미
*은 모든 문자를 의미

ls dbakorea[0-9] : dbakorea0 ~ dbakorea9
ls dbakorea[09] : dbakorea0, dbakorea9


SORT
[kang@dbakorea test]$ cat sort.dat
aaa,강명규,관리자
ccc,홍길동,도둑놈
bbb,강감찬,장군
ddd,임꺽정,도적놈
[kang@dbakorea test]$ sort sort.dat
aaa,강명규,관리자
bbb,강감찬,장군
ccc,홍길동,도둑놈
ddd,임꺽정,도적놈
[kang@dbakorea test]$ sort -t , +1 sort.dat 2번째 컬럼을 기준으로 정렬. -t는 필드구분자로 콤마 지정
bbb,강감찬,장군
aaa,강명규,관리자
ddd,임꺽정,도적놈
ccc,홍길동,도둑놈

대소문자 변환
[kang@dbakorea test]$ tr "[a-z]" "[A-Z]" < sort.dat
AAA,강명규,관리자
CCC,홍길동,도둑놈
BBB,강감찬,장군
DDD,임꺽정,도적놈

PASTE
[kang@dbakorea test]$ cat > paste.data1
홍길동
이순신
김유신
[kang@dbakorea test]$ cat > paste.data2
부산
서울
대구
[kang@dbakorea test]$ paste paste.data1 paste.data2
홍길동 부산
이순신 서울
김유신 대구
[kang@dbakorea test]$ paste -d" " paste.data1 paste.data2
홍길동
부산
이순신
서울
김유신
대구
[kang@dbakorea test]$ paste -s -d":: " paste.data1
홍길동:이순신:김유신
[kang@dbakorea test]$

JOIN : DBMS의 조인기능과 유사
[kang@dbakorea test]$ cat > join.data1
maddog:강명규
gildong:홍길동
superman:슈퍼맨
batman:배트맨
[kang@dbakorea test]$ cat > join.data2
maddog:DBA
maddog:Programmer
superman:Hero
batman:American Hero
[kang@dbakorea test]$ join -j1 1 -j2 1 -t: join.data1 join.data2
maddog:강명규:DBA
maddog:강명규:Programmer
superman:슈퍼맨:Hero
[kang@dbakorea test]$


SPLIT
[kang@dbakorea test]$ split -100000 wf_cleaner_20040418.log wf_cleaner_
[kang@dbakorea test]$ ls -l
총 322816
-rw-r--r-- 1 sky other 82509153 4월 21일 16:15 wf_cleaner_20040418.log
-rw-r--r-- 1 sky other 4817168 4월 21일 16:16 wf_cleaner_aa
-rw-r--r-- 1 sky other 4826953 4월 21일 16:16 wf_cleaner_ab
-rw-r--r-- 1 sky other 4819016 4월 21일 16:16 wf_cleaner_ac
-rw-r--r-- 1 sky other 4818664 4월 21일 16:16 wf_cleaner_ad
-rw-r--r-- 1 sky other 4815234 4월 21일 16:16 wf_cleaner_ae
-rw-r--r-- 1 sky other 4826339 4월 21일 16:16 wf_cleaner_af
-rw-r--r-- 1 sky other 4822263 4월 21일 16:16 wf_cleaner_ag
-rw-r--r-- 1 sky other 4814657 4월 21일 16:16 wf_cleaner_ah
-rw-r--r-- 1 sky other 4816299 4월 21일 16:16 wf_cleaner_ai
-rw-r--r-- 1 sky other 4817442 4월 21일 16:16 wf_cleaner_aj
-rw-r--r-- 1 sky other 4807225 4월 21일 16:16 wf_cleaner_ak
-rw-r--r-- 1 sky other 4816881 4월 21일 16:16 wf_cleaner_al
-rw-r--r-- 1 sky other 4805557 4월 21일 16:16 wf_cleaner_am
-rw-r--r-- 1 sky other 4824945 4월 21일 16:16 wf_cleaner_an
-rw-r--r-- 1 sky other 4800172 4월 21일 16:16 wf_cleaner_ao
-rw-r--r-- 1 sky other 4813110 4월 21일 16:16 wf_cleaner_ap
-rw-r--r-- 1 sky other 4795892 4월 21일 16:16 wf_cleaner_aq
-rw-r--r-- 1 sky other 651336 4월 21일 16:16 wf_cleaner_ar
[kang@dbakorea test]$ cat wf_cleaner_a[a-r] > wf_cleaner_orig
[kang@dbakorea test]$

CUT : 컬럼단위 필터링 cf) grep은 행단위 필터링
필드,문자단위로 컬럼 출력
[kang@dbakorea test]$ cat sort.data
aaa,강명규,관리자
ccc,홍길동,도둑놈
bbb,강감찬,장군
ddd,임꺽정,도적놈
[kang@dbakorea test]$ cut -f1,3 -d , sort.data 1,3번째 필드만 출력. 필드구분자는 콤마
aaa,관리자
ccc,도둑놈
bbb,장군
ddd,도적놈
[kang@dbakorea test]$ cut -c5-7 sort.data 5~7컬럼값 출력
강명규
홍길동
강감찬
임꺽정


EGREP
grep과 달리 Regular Expression을 지원한다.

b : 일치되는 행의 블록 번호 출력
c : 문자열을 포함하는 행수 출력
h : 파일 이름을 출력하지 않음
i : 대소문자를 구별하지 않음
l : 문자열을 포함하는 파일 이름만 출력
n : 일치되는 행번호를 함께 출력
s : 오류가 발생할 경우에만 메시지 출력
v : 일치되지 않는 행만 출력
w : 문자열이 하나의 단어인 경우만 검색(grep만 가능)
e 표현식 : 정규 표현식이 - 문자로 시작할 때 유용
e 문자열 : fgrep에서만 사용, 문자열은 단순 문자열을 의미
f 파일명 : 검색문자열을 파일명으로 부터 받아들임

^ : 행의 시작
$ : 행의 끝
. : 임의의 한문자
[] : []속에 표현되는 문자 중 임의의 한 문자
* : * 앞의 정규표현식이 0회 이상 나타남
+ : + 앞의 정규표현식이 1회 이상 나타남(egrep에서만 가능)
? : ? 앞의 정규표현식이 0 또는 1회 나타남(egrep에서만 가능)
: 메타문자의 의미 제거(예 : '*'는 *문자를 의미)
| : 문자열간의 OR연산자(egrep에서만 가능)
() : 정규 표현식을 둘러 쌈(egrep에서만 가능)

[kang@dbakorea test]$ cat sort.data
aaa,강명규,관리자
ccc,홍길동,도둑놈
bbb,강감찬,장군
ddd,임꺽정,도적놈
[kang@dbakorea test]$ egrep '강명규|강감찬' sort.data
aaa,강명규,관리자
bbb,강감찬,장군

This article comes from dbakorea.pe.kr (Leave this line as is)

'Computing > Linux' 카테고리의 다른 글

Subversion 사용 HOWTO  (0) 2007.09.04
[펌] Qmail 메뉴얼  (1) 2007.08.09
리눅스 프로그래머를 위한 가이드  (0) 2007.08.08
[펌] Linux 정리 #1  (0) 2007.08.08
tar 분할 압축하기  (4) 2007.07.23
And