Linux
1. 일반적인 명령어


#netstat 명령어 : 현재 서버에 접속해있는 IP 상태
-->127.0.0.1 을 제외한 IP목록중 많은 점유율을 가지고 있는 IP를 차단프로그램으로 차단(ex pop3로 치고들어오는 메일등 경우) -->TIME_WAIT 는 대기중인 것들(봐야함), ESTABLISHED 는 처리된것들

#내무망으로 전송 scp 명령어
--> scp -r 파일1 파일2 tlsheet4f@192.168.0.1:. (파일1,파일2를 192.168.0.1 206으로 전송)
-->telnetID@192.168로 시작하는 내부IP :.(내부망으로전송)

# top cd1 -- 진행중인 프로세서 보기
# 톰캣 리스타트시 아파치의 로그 폴더 로그 파일(dbconectionManager.log)을 지운 후(최신로그를 보기 위함) /usr/local/tomcat/bin .....으로 바로 이동한다. cd /usr/local/.....로 가지 말기!!!

생성, 복사, 삭제, 이동:
# -- scp -r tlhtml/내부ip :. ---> 내부아이피로 파일전송(파일하나만 해당됨..여러파일 전송시 압축해서..)
예) scp -r tlhtml/192.168.0.6:. -->tlhtml은 서브디렉토리(root로 경로설정 안됨)
$ mkdir -p # 여러단계의 디렉토리 만들기
$ mkdir -m 755 # 디렉토리 만들면서 퍼미션 주기
$ cp -a # 하위디렉토리+링크된것+속성 까지 포함하여 복사(-dpR와 같음)
$ rm -rf # 하위 디렉토리 까지 질문없이 지운다 (폴더지우기!)
$ ln -s 'filename' 'linkfilename' # 링크 만들기
리스트(히스토리 사용법):
# du -h ==> 용량보기
$ history 10 # 이전 명령어 10개 보기
$ !639 # 이전 명령어에서 639번째 명령어 실행
$ !ifco # 이전 명령어에서 ifco로 시작하는 명령어 실행
$ !! # 바로 직전 명령어 실행
$ cd !$ # 이전 명령의 뒷부분 !$
편집:
$ ctrl-a # 처음으로 이동
$ ctrl-e # 끝으로 이동
$ ctrl-w # 왼쪽편 한단어 지우기
$ ctrl-u # 왼쪽편 모두 지우기
$ ctrl-k # 오른쪽편 모두 지우기
$ ctrl-l # 화면 전체 지우기
보기.찾기:
$ ls -F --show-control-chars --color=auto # 한글 파일명을 볼수 있게 해준다.
# /etc/bashrc파일에 환경설정 alias ls='ls -F --show-control-chars --color=auto'
$ which 'execfilename' # 실행 파일 찾기
$ find . -name 'filename' -print | more # 서브디렉토리에서 특정 파일 찾기
$ find . -type f | xargs grep 'word' # 서브 디렉토리의 모든 파일에서 특정 단어 찾기
$ find . -name 'word' -exec grep recursive {} \; -print # 서브디렉토리에서 grep 하기
$ find . -depth -print | cpio -pmdvl '/home/copy' # 파일시스템 모두 복사하기
$ grep 'word' * # 현재 디렉토리의 모든 파일에서 특정 단어 찾기
$ ls -p | grep / # 현재 디렉토리에서 디렉토리만 찾기
# alias ld='ls $LS_OPTIONS -p | grep /'
$ ls -l | grep '^d' # 현재 디렉토리에서 디렉토리만 찾기
$ diff file1 file2 # 두개의 파일 비교 해서 다른 것 찾기
$ cmp -l file1 file2 # 두개의 파일 비교
압축:
# 하나의 파일만 압축 한다.
(압축)$ gzip test.txt -> test.txt.gz
(풀기)$ gunzip test.txt.gz -> test.txt
# 여러개 파일을 묶기만 한다.(파일/디렉토리 모두)
(압축)$ tar cvf test.tar Test/ -> test.tar
(풀기)& tar xvf test.tar

# 여러개 파일을 묶고 압축까지 한다.(파일/디렉토리 모두)
(압축)$ tar cvzf test.tar.gz Test/ -> test.tar.gz
(풀기)$ tar xvzf test.tar.gz
$ compress 'filename' # 파일 압축 filename.Z
$ uncompree *.Z # 소스 파일을 지우면서 압축해제
$ jar xvf *.jar # 자바 압축파일 풀기
# bzip2 다운로드:http://www.digistar.com/bzip2/index.html
# 문서:http://kldp.org/HOWTO/mini/html/Bzip2/Bzip2.html
$ bzcat *.tar.bz2 | tar xvf -
$ bzip2 -dc *.tar.bz2 | tar xvf -
$ tar xvjf *.tar.bz2 # .bz2 압축파일 풀기.
$ tar xvfI *.tar.bz2
권한변경:
$ chown -R root:root 'dirname' # 서브 디렉토리의 소유자 변경
$ chmod u,g,o,a+-r,w,x 'filename' # user, group, owner, all, +add, -del, read, write, exec
$ chmod 705 `find . -name ".cgi" -print` # 하위디렉까지 찾아서 특정파일의 chmod 바꾸기
$ find . -name *.cgi -exec chmod 705 {} \; # 하위디렉까지 찾아서 특정파일의 chmod 바꾸기


2. 네트워크 명령어

$ lsmod # 로드 된 모듈 보기
$ cat /proc/interrupts, ioports, meminfo # IRQ 밑 포트 보기
$ ifdown eth0, eth1; ifup eth0, eth1 # 랜카드 살리고 죽이고
$ ifconfig eth0, eth1 # 랜카드 정보 보기
$ route # 라우트 정보 보기
$ netstat -nr # 네트워크 정보 보기
$ dmesg # 네트워크 정보 보기(종합)
$ nslookup www.yahoo.com # 네임 서버 추적
$ traceroute www.yahoo.com # 인터넷 경로 보기
$ smbclient \\\\639\\pub # 특정 컴퓨터와 삼바 공유 하기
# smbclient '\\639\pub'
$ smbclient -L 192.168.1.1 # 특정 주소의 공유 된 것 보기

3. 시스템 명령어

파워:
$ reboot # 재부팅
$ shutdown -h,r now # -h halt 종료, -r reboot 재부팅
$ ctrl+alt+del # 종료
하드웨어 정보:
$ df # 하드디스크 상태 보기
$ free # 메모리와 스왑 크기 보기
$ hwdiag # 부착된 하드웨어 장치를 보여주는 유틸리티
$ du 'dirname' # 특정 디렉토리 크기 보기
$ size 'filename' # 특정 파일 크기 보기
프로세스:
$ top # 종합 모니터링
$ ps, ps -e, ps -ef # 프로세스 보기
$ ps -e a # 프로세스 자세히 보기
$ kill -9 proccessid # 프로세스 확실히 죽이기
$ killall -HUP(-1) process # 관계된 프로세스 다 죽이기
# 해당데몬의 모든 프로세스 한번에 kill 시키기. 10-15는 해당 프로세스 ID 필드
$ ps -ef|grep 'proccess name' | cut -c '10-15' | xargs kill -9
마운트(하드디스크 연결):
$ fdisk -l # 파티션 정보 보기
$ mount # 현재 마운트 된 것들을 보여준다
$ umount /mnt/cdrom # 마운트 해제
$ mount /dev/hdb5 /mnt/disk # 특정 파티션의 마운트
$ mount -t msdos /dev/hdb5 /mnt/disk # 도스 파티션 마운트
$ mount -t msdos /dev/fd0 /mnt/floppy # 플로피 마운트
$ mount -t iso9660 /dev/cdrom /mnt/cdrom # 시디롬 마운트
$ mount -t vfat /dev/hda1 /mnt/win98 # fat32 체제 마운트
$ mount -t ntfs -o ro /dev/nt /mnt/nt # NT 체제 마운트

시스템 셧다운 : shutdown -h now

시간 맞추기:
$ vi /etc/rc.d/rc.local
1.rdate -s time.kriss.re.kr # 한국표준원 타임서버와 동기화 된다.
혹은 rdate -s time.bora.net
$ date 070317302000 # date 월일시분년
2.rdate로 시간 맟춘후 서버에 맟춘시간을 적용한다.
--> /sbin/hwclock --systohc
#### 항상 rdate 명령어로 시간맟춘후 시스템에 적용 해야함

4. 기타

$ bas[tab] # 몇글자 치고 탭키를 누르면 그에 맞는 단어를 자동으로 찾아준다
$ bas* # 몇글자 치고 스타키를 누르면 실제 있는 그에 맞는 파일과 같다
$ cd - # 바로 이전에 작업 했던 디렉토리로 바로 이동한다
$ env # path 환경 설정 보기
$ time -v sh -c 'java hello' # 특정 프로그램이 시작되고 끝나는데 걸리는 시간 보기
$ import -window root root.jpg # Xwindow screenshot 그림 덤프
$ mc # 도스 커맨더와 같은 모양의 파일 관리기
----------------------------------------------------------------------------

*. ls 명령

-a : 도트파일(hidden file)을 포함한 모든 파일을 보여준다.
-C : 다중 칼럼으로 결과를 보여준다.
-F : 파일의 종류를 보여준다. / : 디렉토리, * : 실행파일, @ : 심볼릭 링크
-l : long의 약자로 그 파일의 모든 속성(만든 날짜. 크기 등)을 보여준다.
-m : 컴마(,)로 파일들을 분리해서 보여준다.
-s : 파일의 크기를 보여준다.
-1 : 한 열(칼럼)로 파일을 보여준다.
-d : 디렉토리 자체의 정보를 보여준다.
-t : 파일의 정렬을 최근에 사용한 순서대로 보여준다.
-x : 파일을 가로로 정렬해서 보여준다. 기존의 정렬은 위에서 아래로 다시 왼쪽에서 오른쪽
으로 정렬되었지만, 이 플래그를 쓰면 왼쪽에서 오른쪽으로 다시 위에서 아래로 정렬하여 보여준다.


*. chmod 명령

허가 2진수 10진수
rwx 111 7
rw- 110 6
r-x 101 5
r-- 100 4
-wx 011 3
-w- 010 2
--x 001 1
--- 000 0

drwxrwxrwx 1 hmekjw student 24 3월 17일 11:34 bbs
① ② ③ ④ ⑤ ⑥ ⑦ ⑧
① 파일의 종류와 허가권을 표시
② 링크수
③ 파일의 소유권. 즉, 파일을 만든 사용자
④ 사용자가 속한 그룹
⑤ 파일의 크기
⑥ 파일을 마지막으로 저장한 날자
⑦ 파일을 마지막으로 저장한 시간
⑧ 파일 이름

허가 상태(허가 스트링) d rwx rwx rwx
① ② ③ ④
① 파일 구분 : 파일의 종류가 무엇인가를 나타낸다.
② 소유자 : 파일의 소유자(만든 이)에 대한 허가권
③ 그룹 : 소유자가 속한 그룹에 대한 허가권
④ 그 밖의 사람들 : 소유자와 그룹 이외의 사용자에 대한 허가권

파일의 종류
- : 일반적인 파일
d : 디렉토리
l : 심볼릭 링크
b : 블록형 특수 파일
c : 문자형 특수 파일

소유자의 허가 상태
r(read) : 읽기 허가
w(write) : 쓰기 허가
x(execute) : 실행하기 허가
- : 허가를 불허한다

예제)
-rwxr-xr-x
소유자는 읽기, 쓰기, 실행의 기능이 모두 주어져 있으며
그룹과 다른 이들은 읽기와 실행의 기능만이 주어져 있다. 그러므로 소유자를 제외한 모든 이들은
이 파일을 읽을 수 있고 실행할 수도 있지만 쓰거나 지울 수는 없다는 것이다.

-r-x------
소유자는 읽기, 실행 허가가 주어져 있으며, 다른 이들에게는 어떠한 허가도 주어져 있지 않다.
즉, 다른 사용자는 그 파일이 어떠한 파일인가 내용을 볼 수조차 없는 것이다.
이렇게 위와 같은 허가 상태를 준다면 그 파일에 대한 보안은 좋을 것이다.


Posted by 탐색시간