강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

자주쓰는 명령어 모음
작성자 : 13 김영철
등록날짜 : 2009.01.29 16:27
2,388

자주쓰는 명령어 모음

 

download.asp?FileID=18583832
download.asp?FileID=18583833
공사중에 로그인 막기
시스템을 공사중일 때, root 이외의 다른 사용자를 로그인 못하게 해야 할 때가 있죠?
그럴 때는, /etc/nologin 이라는 파일을 만들어,
공사중 또는 Under Construction이라는 공지를 넣으면 됩니다.

크기가 가장 큰 파일, 디렉토리 찾기
가장 큰 디렉토리를 찾으려면,
du -S | sort -n

cf) 솔라리스의 경우
du -sk `ls -1 | grep '/$'`|sort +n

가장 큰 파일을 찾으려면,
ls -lR | sort +4n

디스크 Full발생시 쓸모없는 파일 제거
오브젝트파일만 제거하는 예제
find . -name '*.o' -print -exec rm -f {} \;

실행파일들 출력
find . -type f -perm +u+x -print

find의 일반적인 용례
name 파일명 지정한 파일명에 해당하는 파일을 검색
메타문자를 사용할 경우 파일명을 ''기호 내에 기입

-size  파일 크기 지정된 크기의 파일을 검색. 크기는 블록 단위, 1 블록 = 512 바이트
-mtime 숫자 지정된 날짜 이전에 수정된 파일을 검색
-ctime 숫자 가장 최근에 변경된 것이 지정된 날짜 전인 파일 검색
-user  사용자명 지정된 사용자 수용의 파일 검색
-print 검색 결과를 화면에 표시
-atime 숫자 지정된 날짜 이전에 접근 된 파일을 검색
-perm  접근권한 지정

-type 파일 유형 지정된 유형의 파일을 검색
b: 블록 특수 파일
c: 문자 특수 파일
d: 디렉토리
f: 일반파일
l: 링크파일
p: 파이프 파일

-exec 명령어 {} \;
실행 결과를 입력 파일로 받아들여 명령어 실행.
명령어의 끝은 \;
{} : 현재 경로명으로 대치

현재 디렉토리의 크기만을 파악할때
[root@dev2 local]# du -c -h --max-depth=0 *
6.4M    apache
35M     bin
43M     dns
1.7M    doc
42k     etc
1.0k    games
42k     geektalkd
1.1M    gnuws
1.1M    include
41k     info
19M     jakarta-tomcat-3.2.3
0       jre
15M     jre118_v3
25M     lib
62k     libexec
1011k   man
1.3M    mm.mysql.jdbc-1.2c
937k    sbin
3.8M    share
1.8M    shoutcast-1-8-3-linux-glibc6
5.2M    ssl
159M    total

시스템 정보 감추기
/etc/inetd.conf 파일을 열어서,
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h


어떤 프로세스가 메모리를 가장 많이 잡아먹고 있는지 알아내기
ps -aux | sort +4n
또는
ps -aux | sort +5n

FTP로 들어온 사용자 확인하기
ftpwho
ftpcount


원하지 않는 사용자 죽이기
[root@dream /root]# skill -KILL sunny
위의 명령을 내리면 sunny 라는 사용자를 완전히 추방시킬수 있습니다.
그런데 이렇게 완전히 추방시키는게 아니구, 특정 터미널에 접속해있는 사용자만 추방시켜야 할 때도 있겠죠?
그럴때는

[root@dream /root]# skill -KILL -v pts/14
이런식으로 하면 된다 그럼 pts/14 에 연결되어 있는 사용자가 죽게 됩니다.

less 결과를 vi로 보기
less상태에서 v를 누르면 바로 vi로 감


vi에서 블럭 설정하기
alt+v 하면, 라인 단위로 블럭 설정을 할 수 있으며, 해제 하시려면 Esc를 누르면 됩니다.

또한 ctl+v를 하시면, 블럭 단위로 블럭을 설정하실 수 있습니다.

블럭을 설정 하신 뒤,

삭제를 하려면 x
복사를 하려면 y
붙여넣기는 p

man 페이지 프린트하기
vi에 대한 매뉴얼을 ps(postscript파일)로 저장
man -t vi > vi.ps

man 페이지를 일반파일로 갈무리하려면 man vi | col -b > aa.txt

ping 무시하기
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

동시에 여러개의 하위 디렉토리 만들기
mkdir -p music/koreanmusic/ost

리로 다시 살리기
boot : vmlinuz root=/dev/hda6

특정 사용자 ftp 접근 막기
/etc/ftpusers 파일에 로그인 네임을 추가하면 됩니다.

X 윈도우에서 TV보기
리눅스에서 TV보기 위해서는 드라이버 파일과 TV를 보는 프로그램이 필요합니다.
이 글에서는 미지 리눅스 OS에 탑재된 bttv 칩셋을 사용하는 TV 카드를 기준으로 설명합 니다.
만일 커널을 새로 컴파일 하실 분은 반드시 Character devices -> Video For Linux -> BT848 Video For Linux 항목을 모듈화 시키거나 커널에 포함하십시오.

TV 카드를 리눅스에 인식시키기 위해서 /etc/conf.modules 파일에 다음과 같은 내용을 삽입하고 컴퓨터를 다시 시작합니다.

alias char-major-81 bttv

# 필립스 튜너의 경우 pre-install bttv modprobe -k tuner

# 알프스 튜너의 경우 pre-install bttv modprobe -k tuner type=9

이제 kwintv나 xawtv 등의 TV 시청 프로그램으로 TV를 볼 수 있습니다.
만약 TV 장치를 찾지 못하는 오류가 있다면 bttv driver 디렉토리에 포함된 MAKEDEV 를 실행하십시오.

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"\n" paste.data1 paste.data2
홍길동
부산
이순신
서울
김유신
대구
[kang@dbakorea test]$ paste -s -d"::\n" 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)

출처 : Tong - ddakzzi님의 SERVER통

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
열람중 자주쓰는 명령어 모음 13 김영철 01.29 2389
2864 [중요함]자동접속 FTP 스크립트 13 김영철 01.29 2562
2863 표준시간 설정법 13 김영철 01.29 2558
2862 호스트간의 데이터 동기화 rsync 13 김영철 01.29 2646
2861 rsync 미러링을 통한 백업기법 13 김영철 01.29 3804
2860 리눅스의 각종 데몬들 13 김영철 01.29 3254
2859 diff 기능 13 김영철 01.29 2501
2858 cron 을 이용한 타임서버 구축 13 김영철 01.29 3163
2857 TOMCAT Context 추가하기 13 김영철 01.29 2899
2856 터미널서비스 세션끊기 | Windows 보안 13 김영철 01.29 2796
2855 unix grep 명령어 사용법2번째 13 김영철 01.29 3863
2854 리눅스 팁 13 김영철 01.29 3541
2853 리눅스 find 명령어 팁 13 김영철 01.29 3211
2852 [AIX]유용한 find 명령어에 대해서... 13 김영철 01.29 4166
2851 '허용되지 않는 부모 경로' (ASP 0131) 에러 발생시 대처법 13 김영철 01.29 2600
2850 윈도우 서버 프롬프트에서 재시작 13 김영철 01.29 2523
2849 Apache 2.2.4 설치 및 php 연동 13 김영철 01.29 2553
2848 php 5.2.3 설치 (windows 용) 13 김영철 01.29 2329
2847 Windows Server 2003 64bit 에서 Mysql 설치 문제~ 13 김영철 01.29 2716
2846 MySQL 5.0.45 설치 13 김영철 01.29 2940
2845 윈도우XP 풍선도움말 없애기 13 김영철 01.29 3856
2844 빠른실행 폴더경로 13 김영철 01.29 2580
2843 xp 멀티부팅 boot.ini 13 김영철 01.29 2356
2842 부팅파일 boot.ini 13 김영철 01.29 2333
2841 CMD 및 실행 13 김영철 01.29 2984
2840 부팅 안되는 XP 복구 : fixmbr 13 김영철 01.29 3307
2839 복구 콘솔 명령어 리스트 13 김영철 01.29 2421
2838 윈도우 복구 콘솔 13 김영철 01.29 2723
2837 Sysprep 버전 2.0 - XP CD 에 있는 윈도우즈 설치 준비 13 김영철 01.29 2680
2836 copy.exe 찾을 수 없습니다, 엑세스가 거부되었습니다 13 김영철 01.29 2831
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취