1. 서브 디렉토리까지 파일안의 문자열 모두 검색
find ./ -name "*" -exec grep 'abc' {} ; -print
find . -name -print -exec grep abc {} ;
grep -r abc *
2. haha와 huhu가 동시에 들어있는 행 뽑기
grep haha foo.txt | grep huhu
3. 찾아서 지우기
find / -name "*.eml" -exec rm -f {} ;
4. 공사중에 로그인 막기
/etc/nologin 이라는 파일을 만들어,공사중 또는 Under Construction이라는 공지를 넣으면 됨
5. 크기가 가장 큰 파일, 디렉토리 찾기
du -S | sort -n
6. 가장 큰 파일을 찾으려면
ls -lR | sort +4n
7. 현재 디렉토리의 크기만을 파악할때
# du -c -h --max-depth=0 *
8. 시스템 정보 감추기
/etc/inetd.conf 파일을 열어서,
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
9. 어떤 프로세스가 메모리를 가장 많이 잡아먹고 있는지 알아내기
ps -aux | sort +4n 또는 ps -aux | sort +5n
10. FTP로 들어온 사용자 확인하기
ftpwho,ftpcount
11. 원하지 않는 사용자 죽이기
skill -KILL sunny
위의 명령을 내리면 sunny 라는 사용자를 완전히 추방시킬수 있습니다.
그런데 이렇게 완전히 추방시키는게 아니구, 특정 터미널에 접속해있는 사용자만 추방시켜야 할 때도 있겠죠? 그럴때는
skill -KILL -v pts/14
이런식으로 하면 된다 그럼 pts/14 에 연결되어 있는 사용자가 죽게 됩니다.
12. less 결과를 vi로 보기
less상태에서 v를 누르면 바로 vi로 감
13. vi에서 블럭 설정하기
alt+v 하면, 라인 단위로 블럭 설정을 할 수 있으며, 해제 하시려면 Esc를 누르면 됩니다.
또한 ctl+v를 하시면, 블럭 단위로 블럭을 설정하실 수 있습니다. 블럭을 설정 하신 뒤,
삭제를 하려면 x 복사를 하려면 y 붙여넣기는 p
14. man 페이지 프린트하기
man -t vi 0.0.0.15 ping 무시하기
echo 1 0.0.0.16 LILO 다시 살리기
boot : vmlinuz root=/dev/hda6
17. 특정 사용자 ftp 접근 막기
/etc/ftpusers 파일에 로그인 네임을 추가하면 됩니다.
18. X 윈도우에서 TV보기
리눅스에서 TV보기 위해서는 드라이버 파일과 TV를 보는 프로그램이 필요합니다.
이 글에서는 미지 리눅스 OS에 탑재된 bttv 칩셋을 사용하는 TV 카드를 기준으로 설명합니다.
만일 커널을 새로 컴파일 하실 분은 반드시 Character devices -
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 를 실행하십시오.
19. ls라는 파일이 포함된 rpm패키지 찾기
일단 ls의 절대경로를 알아야 한다. which lswhich로 알아낸 ls의 절대경로로 rpm질의를 한다.
rpm -qf /bin/ls
[root@piruks /etc]# which ls
/bin/ls
[root@piruks /etc]# rpm -qf /bin/ls
fileutils-4.0i-2mz
20. 현재 rpm패키지의 의존패키지
rpm -qR 패키지명
21. 현재 디렉토리크기
du -h --max-depth=1 .
22. 바로 이전 디렉토리로 가기
cd -
23. 프로세스명으로 프로세스 죽이기
killall 프로세스명
kill -9 `pidof 프로세스명
24. 하드웨어 시계맞추기
배포본을 설치하고 나면 시간이 맞지 않는 경우가 많다. 간단히 어느정도 정확한 시간을 설정하는 방법이다.
[root@dev /down]# rdate -s time.kriss.re.kr
[root@dev /down]# clock -w
25. 원격에서 리모트서버의 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
26. 링크 파일
ln -sf 링크할디렉토리 링크로 만들어질 디렉토리 참고로 링크를 걸기만 한다고 접근가능한것은 아니고,링크가 걸린 디렉토리의 퍼미션도 허용으로 바꿔야 한다. 링크로 만들어질 디렉토리는 저절로 생성되고 퍼미션 777로 잡혔음.
ln -sf /www/dir_1/r_photo /www/dir_2/r_photo
27. ^M 문자 없애기
a = 1^M
def vartest(a):^M
a = a + 1^M
return a^M
a = vartest(a)^M
print a^M
Unix류 기계에서는 그냥 ^J 하나만을 개행문자로 사용하는데 PC에서는 MJ 이렇게 두 제어문자가 연속으로 사용되어야 개행문자로 받아들이죠. (그래서 PC쪽에서 만들어진 txt문서를 유닉스 기계로 불러와 vi 등을 실행하면 줄 끝마다 보기싫은 ^M이 붙습니다. 뭐 vi에서 요거 지우는건 간단하지만요.)
PC에서 Unix에서 작성한 텍스트 문서를 보통 ftp로 받아오거나 하면 워드패드 등에서 봤을 때 전혀 개행이 되어있지 않지요. 하지만 MS Word 등 좀더 강력한 편집기에선 대개 잘 처리해서 잘 보여줍니다.
위는 간단한 Python 소스입니다. 위의 경우 처럼 ^M문자가 있을때, dos2unix라는 유틸리티를 많이 사용하기도 하죠. 하지만 vi에서 간단하게 모두 삭제할수도 있습니다. dos2unix가 없거나 빠져나가서 지우는게 귀찮을때 좋겠죠.
명령은 :%s/(ctrl+v)M//g 입니다. (ctrl+v)M 이거는 ctrl과 v를 눌러준후, ctrl키를 떼지 말고 바로 m을 눌러주시믄 됩니다. 위는 정규표현식을 이용한것이고, 형식은 %s/이것을/요걸로/g 입니다 그럼 문서안의 모든 "이것을" "요걸로" 바꾸게 되죠. 단, M의 경우 ctrl+M의 뜻인데 단순히 문자로 M을 바꾸라도 해도 인식을 못하기 때문에, 위처럼 (ctrl+v)M 으로 해주셔야 합니다.
28. 비어있는 행을 찾기
#grep -n '^$' filename
정규표현 의미 ^ 행의 처음 $ 행의 끝 . 임의의 한 문자 [...] ... 안의 임의의 한 문자. a-z,0-9 같은 범위도 사용 [^..] .. 안에 없는 임의의 한 문자. 범위 사용가능 r* 0회 이상 r 반복 r+ 1회 이상 r 반복 r? 0 혹은 1회의 r r{n,m} n회 이상 m회 이하 r 반복 r1|r2 r1 혹은 r2 (egrep 만) (r) r 의 정규표현(egrep 만)
30. 각자가 사용하는 컴퓨터의 정보를 알고 싶을때
[root ...]#more /proc/cpuinfo
위와 같이 치면 사용자의 컴퓨터 정보를 볼수 있으며,
[root ...]#more /proc/meminfo
라고 치면 사용자의 메모리 정보를 볼수 있습니다.