본문 바로가기

IT/프로그램

리눅스 기본명령

## 리눅스 기본명령어 정리 ##

/*******************************************************************************************************/


## 로그 ##


[메일 로그]

/var/log/maillog

- 메일과 관련된 로그를 기록한다. 이 파일을 이용하여 어떤 메일들이 오고 갔는지 확인할 수 있고, 메일이 오고 간 시간, 호스트, 데몬, 유저, 크기 등을 확인할 수 있다.


[메시지 로그]

/var/log/messages

- 메일, 뉴스 등을 제외한 전체적인 로그를 기록하는 파일


[접속기록 로그]

/var/log/secure

- 유저에 대한 접속을 기록


[로그인 로그]

/var/log/lastlog

- 계정사용자들이 마지막으로 로그인한 정보를 기록한다. 기록된 사항들은 lastlog 명령어를 사용하여 확인 가능하다.


[부트 로그]

/var/log/boot.log

- 부팅 시 서비스 데몬들의 실행 상태를 기록


[부팅메시지 로그]

/var/log/dmesg

- 시스템이 부팅할 때 출력되는 메시지들 기록. dmesg 명령어 사용 가능


[cron 로그]

/var/log/cron

- cron과 관련된 메시지 기록, 이 파일을 통해 예약한 작업이 정상적으로 실행되고 있는 확인 가능


[사용자 접속정보 로그]

/var/log/wtmp

- 사용자들이 접속한 정보를 기록한다. 로그의 확인은 last 명령어를 이용하여 확인할 수 있다. 쉘프롬프트에 last를 입력하면 전체 접속정보를 확인할 수 있다.

- 특정사용자의 정보를 확인하려면 "last 사용자명"을 입력한다.

- root의 최근 접속정보를 10개만 출력하려면 "last -n 10 root"


[FTP 데이터 전송 로그]

/var/log/xferlog

- FTP서버의 데이터 전송 관련 로그를 기록한다. 이 파일을 이용하면 불법파일이 전송되었는지 여부를 확인할 수 있으며, 전송상황을 모니터링 할 수 있다.








/*******************************************************************************************************/


## 디렉토리 구조 ##


bin 일반 사용자들을 위한 명령어들이 있다.

boot 부트로더와 부팅을 위한 파일들이 있다.

dev 장치파일들이 있다.

etc 시스템 혹은 프로그램들의 환경설정 파일들이 있다.

lib 공유 라이브러리와 커널 모듈이 있다.

media 이동식 디스크가 마운트 되는 곳이다.

mnt 파일시스템이 임시로 마운트 되는 곳이다.

opt 응용프로그램이 설치되는 곳이다.

sbin 시스템 관리 명령어들이 있다.

srv 시스템이 제공하는 서비스를 위한 파일들이 있다.

tmp 임시 파일들이 저장되는 곳이다.

usr 응용프로그램이 설치되는 곳이다.

var 시스템 운영 중 자주 변경되는 파일들이 있다.


/*******************************************************************************************************/


/etc/fstab 파일시스템 관리

/etc/group 유저 그룹 관리

/etc/inittab init 관리

/etc/passwd 유저 관리

/etc/services 포트정보 관리

/etc/issue 로그인 메시지 관리

/etc/sysconfig/i18n 시스템 언어 설정

/etc/sysconfig/iptables 방화벽 설정

/etc/sysconfig/network-scripts/ifcfg-eth0 네트워크 카드 설정


/*******************************************************************************************************/


/proc/cpuinfo cpu의 정보

/proc/devices 현재 커널에 설정되어 있는 장치의 목록

/proc/dma 현재 사용중인 DMA 채널

/proc/filesystems 현재 커널에 설정되어 있는 파일시스템 목록

/proc/interrupts 현재 사용중인 인터럽트에 대한 정보

/proc/ioports 현재 사용중인 I/O 포트 정보

/proc/kmsg 커널이 출력하는 메시지

/proc/kallsyms 커널이 사용하는 심벌표

/proc/loadavg 시스템의 평균 부하량

/proc/meminfo 메모리 정보

/proc/modules 현재 사용되고 있는 커널 모듈 목록

/proc/stat 시스템 상태

/proc/uptime 시스템이 켜져있는 시간

/proc/version 현재 커널의 버전

/proc/net/ 네트워크 관련 정보를 볼 수 있는 파일들이 있는 디렉토리


/*******************************************************************************************************/


/usr/bin 응용프로그램의 실행파일들이 있다.

/usr/include C언어의 헤더파일이 있다.

/usr/lib /usr/bin과 /usr/sbin에 있는 실행 파일들을 위한 라이브러리들이 있다.

/usr/local 대부분의 일반적인 프로그램은 이곳에 설치한다.

/usr/share/man 메뉴얼 페이지를 저장하고 있는 곳이다.

/usr/sbin 시스템 관리를 위한 명령어들이 있다.

/usr/src 대부분의 RPM, 소스파일들을 이곳에 저장하여 사용한다.

/usr/X11R6 X-window 시스템에 관련된 파일들이 있다.


/*******************************************************************************************************/



/*******************************************************************************************************/

[파일관리]

/*******************************************************************************************************/


touch

파일의 시간정보를 변경하는 명령어지만, 크기가 0인 파일을 생성하는 용도로 자주 사용된다.


사용방법

touch [옵션] 파일이름


옵션

-a : 최근 파일 사용 시간만 변경한다.

-c : 파일이 이미 존재하지 않는다면, 파일을 생성하지 않는다.

-d 시간 : 현재 시간 대신 지정한 시간을 사용한다.

-m : 최근 파일 변경 시간만 바꾼다.

-r 파일 : 현재시간 대신 지정한 파일의 시간으로 변경한다.

-t MMDDhhmm[[CC]YY][.ss] : 현재 시간 대신 지정한 시간으로 변경한다.


크기가 0인 파일 생성 방법

touch myfile1


/*******************************************************************************************************/


퍼미션

drwxr-xr-x 2 root root 4096 Desktop

-rw-r--r-- 1 root root 0 myfile1


리스트의 맨 앞 부분으로 구분


d : 디렉토리

- : 파일

l : 링크


소유자, 같은그룹, 그외


r 4

w 2

x 1

- 0


/*******************************************************************************************************/


cp


사용방법

cp [옵션] 원본 사본


옵션

-a : 원본 파일의 속성, 링크 정보들을 그대로 유지하면서 복사한다.

-b : 복사할 대상이 이미 있을 경우 기존 파일을 백업하고 복사한다.

-d : 만약 복사할 원본이 심볼릭 링크일 때 심볼릭파일 자체를 복사한다.

-f : 만약 복사할 대상이 이미 있으면 강제로 지우고 복사한다.

-i : 만약 복사할 대상이 이미 있으면 사용자에게 물어본다.

-l : 하드링크 형식으로 복사한다.

-P : 원본파일 지정을 경로와 같이 했을 경우 그 경로 그대로 복사된다.

-p : 파일의 소유자, 그룹, 권한, 시간 정보들이 그대로 보존되어 복사된다.

-r : 원본이 파일이면 그냥 복사되고 디렉토리면 디렉토리 전체가 복사된다.

-s : 파일을 심볼릭 링크 형식으로 복사한다. 원본파일 이름을 절대경로로 지정해야 한다.

-u : 복사할 대상이 있을 때 이 파일의 변경 날짜가 같거나, 더 최근의 것이면 복사하지 않는다.

-v : 복사 상태를 보여준다.

-x : 원본과 대상파일의 파일시스템이 다를 경우에는 복사하지 않는다.

-R : 디렉토리를 복사할 경우 그 안에 포함된 모든 하위경로와 파일들을 모두 복사한다.


/*******************************************************************************************************/


mv


사용법

mv [옵션] 원본 목적지


옵션

-b : 목적지로 파일을 옮길 경우 같은 이름의 파일이 존재한다면 기존 파일을 백업한 뒤에 파일을 복사한다.

-f : 덮어쓸 때 물어보지 않고 바로 쓴다.

-i : 덮어쓸 때 물어본다.

-v : 무엇을 했는지 표시한다.


/*******************************************************************************************************/


rm


사용방법

rm [옵션] 파일이름


옵션

-f : 삭제할 파일이 없을 경우 아무런 메시지를 보여주지 않고 그냥 넘어간다.

-i : 파일을 삭제할 것인지 사용자에게 물어본다.

-r, -R : 일반파일이면 그냥 지우고 디렉토리일 경우 그 하위경로와 파일을 모두 지운다.

-v : 삭제되는 파일의 정보를 보여준다.


/*******************************************************************************************************/


cat


파일의 내용을 화면에 출력한다.


사용방법

cat [옵션] 파일


옵션

-b : 줄번호를 화면 왼쪽에 나타낸다. 공백은 제외한다.

-e : 제어 문자를 ^ 형태로 출력하면서 각 행의 끝에 $를 추가한다.

-n : 줄번호를 화면 왼쪽에 나타낸다. 공백을 포함한다.

-s : 중복되고 겹치는 빈 행은 하나의 빈 행으로 처리한다.

-v : tab과 행바꿈 문자를 제외한 제어 문자를 ^ 형태로 출력한다.

-E : 각 행마다 끝에 $ 문자를 출력한다.

-T : 탭(tab) 문자를 출력한다.

-A : -vET 옵션을 사용한 것과 같은 효과를 가진다.


/*******************************************************************************************************/


more


화면 단위로 분할해 출력한다.


사용방법

more [옵션] 파일명


옵션

-n : 여기서 n은 숫자를 의미하여 수자는 출력 윈도우의 행수를 지정한다.

-c : 위에서부터 한 행씩 지운 후 한 행씩 출력한다. 보통은 화면 전체를 지운 후 각 행을 출력하기 시작한다.

-d : 스페이스나 q키를 누르라는 프롬프트를 출력한다.

-f : 화면의 행이 아닌 논리적인 행 수를 계산한다. 보통은 긴 칼럼의 행은 화면에서 행바꿈을 하여 새로운 행으로 계산된다. -f 옵션을 사용하면 이런 행은 계산하지 않는다.

-s : 여러 개의 빈 공백행은 하나로 취급한다.

-p : 스크롤하지 않는다. 대신 화면을 지우고 출력한다.

-u : 밑줄치기를 금지한다.


/*******************************************************************************************************/


less


more를 좀 더 보완한 명령어


사용방법

less [옵션] 파일명


옵션

-? : less에서 사용할 수 있는 명령들에 대한 도움말을 제공한다. 이 옵션이 사용되면 다른 인수는 무시되고, 도움말 화면을 보여준다.

-a : 마지막 라인이 화면에 출력되고 나서 탐색을 시작한다.

-c : 필요할 때 전체 화면을 다시 갱신한다.

-C : -c 옵션과 같지만 갱신할 때 화면 전체를 지우고 시작한다.

-e : 두 번째로 파일의 끝에 도달하면 자동적으로 종료한다.

-E : 파일의 끝에 도달하기만 하면 자동적으로 종료한다.

-i : 대소문자를 구분하여 탐색한다.

-n : 행번호를 추가한다.

-q : 특정 에러가 발생하지 않으면 아무 소리도 내지 않고 조용히 동작한다.

-Q : 결코 아무 소리도 내지 않는다.

-s : 연속되는 공백 라인은 하나의 행으로 처리한다.

-x 숫자 : 수치를 지정해서 탭 간격을 조정한다. 기본값은 8이다.


/*******************************************************************************************************/


find


사용방법

find [시작 디렉토리] [각종 문법]


주어진 디렉토리에 [각종 문법]에 해당하는 내용과 일치하는 파일을 찾아 보여준다. 부모 디렉토리에서부터 시작해서 하위 디렉토리에 있는 모든 파일들을에 대해서 검색하며, 시스템 내의 모든파일들을 찾고자 할 때는 [시작 디렉토리]를 '/'(root)로 지정한다.


-name "문자열"

파일이름이 문자열과 일치하는 파일을 찾는다.


문자열에는 다음과 같은 형식으로 사용할 수 있다.

"log" : 파일이름이 log인 파일

"*log" : 마지막 문자열이 log로 끝나는 모든 파일

"log*" : log로 시작하는 파일

"*log*" : log라는 문자가 어디든 상관없이 들어있는 파일

"?log" : 첫 글자 하나는 어떤 문자라도 상관없고 뒤의 문자열이 log인 파일

"??log" : 앞에 두 글자는 어떤 문자라도 상관없고 뒤의 문자열이 log인 파일

"l?g" : 가운데 글자만 어떤 문자라도 상관없고 첫 문자 l, 마지막 문자가 g인 파일

"log???" : 앞의 문자열은 log이고 뒤의 세 개 문자열은 어떤 문자라도 상관없는 파일


-user "유저이름"

특정 유저의 소유권인 파일을 찾을 때 사용한다.


-perm "퍼미션"

명시된 퍼미션으로 된 파일을 찾는다.


-exec [사용할 명령]

해당 문법들로 검색된 파일을 입력값으로 해서 명령을 수행한다. find가 검색해 낸 파일의 이름을 인수로 사용하고 싶다면 그 위치에 {}를 사용한다.


ex) -exec rm -rf {} \;

검색된 파일을 rm 명령어에 -rf 옵션을 주어 입력값에 넣는다. 즉, rm -rf 검색된 파일


-type ?

형태가 같은 파일을 찾는다. 물음표(?) 부분에 디렉토리는 d, 파이프는 p, 심볼릭 링크는 l, 소켓은 s, 블록 파일은 b, 일반 파일은 f 등의 기호를 사용한다.


-links ?

특정 개수의 링크를 가진 파일을 찾는다.  물음표 부분에 링크의 숫자를 표기한다.


-size ?

파일의 크기가 일치하는 것을 검색한다. 파일 크기는 블록단위로 물음표 부분에 지정한다. 한 블록은 512바이트로 내정되어 있지만 블록 숫자 뒤에 단위로 k자를 붙이면 1킬로바이트 크기의 블록 숫자로 간주한다.


-atime ?

최근 며칠 내에 엑세스한 파일을 검색한다. 날짜 수는 ?에 명시한다.


-newer 파일

어떤 파일보다 최근에 갱신된 모든 파일을 검색한다.


/*******************************************************************************************************/


grep


파일 내에서 또는 입력값에서부터 특정패턴을 검색한다.


사용방법

grep [옵션] 표현 파일(들)


옵션

-v : 일치되는 내용이 없는 라인을 표시한다.

-c : 일치되는 내용이 있는 행의 개수를 표시한다.

-l : 일치되는 내용이 있는 파일의 이름만 표시한다.

-h : 일치되는 내용을 찾은 파일의 이름을 표시하지 않는다.

-n : 일치되는 내용이 있는 행은 행번호와 함께 표시한다.

-i : 대소문자 구분을 하지 않는다.

-e 표현 : 표현이 하이픈 문자로 시작될 때 사용한다.

-f 파일 : 찾으려는 문장이나 표현이 있는 파일을 지시한다.


ex) install.log에 zlib을 포함하는 라인을 출력

grep "zlib" install.log


/*******************************************************************************************************/


파이프 |

프로그램의 실행결과를 다른 프로그램의 입력으로 연결한다. 이렇게 둘 이상의 명령을 함께 사용하고, 한 명령어의 출력결과를 다른 명령어의 입력으로 전환하는 것을 파이프라 한다.


ex) grep -n "i386" install.log | less


/*******************************************************************************************************/


리다이렉션 >, >>, <

리다이렉션을 이용하면 명령의 출력을 변경할 수 있다. 기본적으로 명령어의 결과는 모니터에 출력된다. 하지만 리다이렉션을 이용하여 파일에 기록할 수 있다.


명령어 > 파일 : 파일이 없다면 생성하고, 있다면 기존의 내용을 지운다.

명령어 >> 파일 : 파일이 없다면 생성하고, 있다면 기존의 내용에 추가한다.

명령어 < 파일 : 파일에서 표준입력 받는다.


echo는 주어진 문장을 화면에 출력하는 명령어다.


echo "Hello" > hello.txt

hello.txt에 저장

기존에 파일이 존재하면 기존 내용 대신에 Hello 라는 문자가 저장


echo "World" >> hello.txt

World 라는 문장을 hello.txt에 추가


/*******************************************************************************************************/


chmod


파일의 퍼미션을 변경


사용방법

chmod [옵션] 퍼미션 파일


옵션

-c : 변경된 파일만 자세하게 보여준다.

-f : 변경되지 않은 파일에 대해서 오류메시지를 보여주지 않는다.

-v : 작업상태를 자세히 보여준다.

-R : 경로와 그 하위 파일들을 모두 변경한다.

--help : 도움말을 출력한다.

--version : 버전정보를 보여준다.


/*******************************************************************************************************/


chown


파일의 소유자나 소유그룹을 변경하기 위한 명령어


사용법

chown [옵션] 소유자:소유그룹 파일명 또는 chown [옵션] 소유자.소유그룹 파일명


옵션

-c : 변경된 파일만 자세하게 보여준다.

-f : 변경되지 않은 파일에 대해서 오류메시지를 보여주지 않는다.

-v : 작업상태를 자세히 보여준다.

-R : 경로와 그 하위 파일들을 모두 변경한다.

--help : 도움말을 출력한다.

--version : 버전정보를 보여준다.


/*******************************************************************************************************/


chgrp


파일의 사용자 그룹을 변경한다.


사용법

chgrp [옵션] 그룹 파일


옵션

-c : 변경된 파일만 자세하게 보여준다.

-f : 변경되지 않은 파일에 대해서 오류메시지를 보여주지 않는다.

-v : 작업상태를 자세히 보여준다.

-R : 경로와 그 하위 파일들을 모두 변경한다.

--help : 도움말을 출력한다.

--version : 버전정보를 보여준다.


/*******************************************************************************************************/


tar


파일을 압축하고 해제하는 명령어


사용법

압축해제 : tar [옵션] 파일명

압축 : tar [옵션] 생성파일 압축할파일


옵션

-z : gzip으로 압축하거나 해제한다.

-x : 압축된 파일로부터 압축을 해제한다.

-h : 심볼릭 링크를 묶지 않는다. 심볼릭링크가 가리키는 파일을 묶는다.

-j : bzip2 필터를 사용하여 .bz2 파일을 해제한다.

-c : 새 저장 파일을 만든다.

-m : 파일의 변경 시간 정보를 유지하지 않는다.

-N, --after-date DATE, --newer DATE : 주어진 DATE보다 새로운 파일만 저장한다.

-p : 모든 퍼미션 정보를 유지한다.

-P : 파일 이름의 맨 앞 / 문자를 버리지 않는다.

-s : 저장 파일 목록과 똑같은 순서로 압축을 해제한다.

-v : 처리중인 파일을 자세하게 보여준다.

-Z : compress로 압축하거나 해제한다.

-f, --file [HOSTNAME:]F : 저장 파일 혹은 장치 파일 F에 저장한다.

--version : tar 프로그램의 버전 정보를 출력한다.

--totals : -c로 만들어진 바이트 총합을 출력한다.


gzip 사용

[압축] tar -cvzf home.tar.gz /home

[해제] tar -xvzf home.tar.gz


bzip2 사용

[압축] tar -cvjf home.tar.bz2 /home

[해제] tar -xvjf home.tar.bz2


/*******************************************************************************************************/


RPM파일 기본구성

패키지이름-버전-릴리즈.아키텍쳐.rpm


릴리즈 : 한 버전의 패키지를 몇 번 빌드했는지 알 수 있다.

아키텍처 : 패키지가 사용가능한 시스템을 말한다.


rpm


사용법

rpm [옵션] 파일


옵션

-i : 설치옵션이며, 이전 버전이 설치되어 있을 경우 설치하지 않는다.

-U : 이전 버전이 설치되어 있다면 업그레이드를 하고, 설치되어 있지 않다면 새롭게 설치

-F : 이전 버전이 설치되어 있을 경우에만 설치하고, 설치되어 있지 않다면 설치하지 않는다.

-v : 설치 중 메시지를 출력한다.

-h : 진행과정을 #으로 표시한다.

-e : 패키지를 제거한다.

-q : 패키지가 설치되어 있는지 검색한다. 설치되어 있다면 패키지 이름과 버전을 출력한다.

-qa : 현재 설치된 모든 패키지 목록을 찾는다.

-qi : 현재 설치된 패키지의 간략한 정보를 출력한다.

-ql : 현재 설치된 패키지의 간략한 정보와 설치된 파일을 출력한다.

-Vf : 현재 설치된 파일을 검증한다.

-Va : 전체 패키지를 검증한다.

-Vp : 한 패키지만 검증한다.

--force : 패키지가 설치되어 있거나, 충돌이 일어나는 것을 무시하고 설치한다.

--nodeps : 의존성 문제를 무시하고 설치하거나 삭제한다.


rpm 설치

rpm -ivh mc-4.6.1a-34.el5.i386.rpm

rpm -ivh http://isoredirect.centos.org/centos/5/os/i386/CentOS/mc-4.6.1a-34.el5.i386.rpm


rpm 패키지 정보보기

rpm -qa mc 기본 정보보기

rpm -qi mc 더 자세항 정보보기


rpm 패키지 제거

rpm -e mc


/*******************************************************************************************************/


yum


yum은 인터넷을 통하여 RPM 패키지가 저장된 서버에 접속하고 설치하고자 하는 RPM을 다운로드하여 설치한다. 또한 의존성을 가지는 다른 RPM 패키지까지 알아서 다운로드하여 설치한다.


사용법

yum [옵션] [모드] 패키지


옵션

-y : 설치여부를 묻지 않고 바로 설치한다.


모드

install : 패키지를 설치한다.

check-update : 설치된 패키지 중에서 업데이트가 가능한 패키지의 목록을 출력한다.

update : 패키지를 업데이트한다.

remove : 패키지를 삭제한다.

info : 패키지의 정보를 출력한다.

localinstall : 다운로드한 RPM 패키지를 설치한다.


yum 로그는

cat /var/log/yum.log


/*******************************************************************************************************/


df


디스크의 남은 공간 확인


사용법

df [-옵션] [--세부 옵션]


옵션

-a : 파일시스템의 크기가 0인 것도 모두 보여준다.

-i : 블록 사용정보 대신 inode 사용정보를 보여준다.

-k : 용량 단위를 KB 단위로 보여준다.

-m : 용량 단위를 MB 단위로 보여준다.

-T : 파일시스템의 종류를 보여준다.

-t : --type='파일시스템 종류'와 함께 써야하며, type에 지정한 파일시스템 정보만 보여준다.

-h : 용량 단위를 1K, 234M, 2G 등의 형태로 읽기 쉽게 보여준다.


/*******************************************************************************************************/


du


디렉토리별 사용량 확인


사용법

du [-옵션] [--세부옵션] [경로]


옵션

-a : 모든 파일들의 정보를 출력한다.

-b : 표시단위를 기본 KB 대신 Byte로 출력한다.

-k : 표시단위를 KB 단위로 출력한다.

-h : 사용량을 1K, 234M, 2G 등의 형태로 읽기 쉽게 보여준다.

-c : 모든 파일의 디스크 사용정보를 보여주고 나서 합계를 보여준다.

-s : 총 사용량만 표시한다.

-x : 체크하는 경로 안에 다른 파일시스템이 있으면 생략한다.

-D : 심볼릭 링크 파일이 있을 경우 원본의 값을 보여준다.

-L : -D 옵션과 같다.


/*******************************************************************************************************/


fsck


손상된 파일시스템 복구


사용법

fsck [-AVRTNP] [-s] [-t 파일시스템 종류] 파일시스템


옵션

-A : /etc/fstab 파일에 있는 모든 파일시스템을 한 번씩 모두 점검한다.

-R : -A와 함께 사용되면 / 파일시스템은 제외한다.

-T : 시작할 때 제목은 표시되지 않는다.

-N : 실행은 하지 않고 어떤 작업을 할 것인지만 보여준다.

-P : -A와 함께 사용되면 / 파일시스템과 다음 파일시스템을 병렬처리하여 점검한다.

-s : fsck 동작을 시리얼화 한다. 여러 파일시스템을 점검해야 할 때 유용하다.

-V : 자세한 정보가 출력된다.

-t 파일시스템 유형 : -A와 함께 사용되면 선택한 파일시스템 유형에 맞는 것만 점검한다. 파일시스템 유형 앞에 no를 붙이면 선택한 파일시스템 유형을 제외한 모든 파일시스템을 점검한다. 만약 -t 옵션을 선택하지 않으면 기본값인 ext2가 사용된다.


/*******************************************************************************************************/


mount


사용방법

mount [-fnrvw] [-t 파일시스템 종류] [-o 옵션] 장치 디렉토리


옵션

-v : 자세한 내용을 출력한다.

-f : 실제로 마운트를 하지 않고 마운트를 할 수 있는지 점검한다.

-n : /etc/mtab 파일에 쓰기 작업을 하지 않고 마운트 한다.

-r : 읽기만 가능하게 마운트한다. -o ro 와 같다.

-w : 읽기/쓰기 모드로 마운트한다. 기본설정값이다. -o rw

-t 파일시스템 종류 : 파일시스템 종류에는 ext3, iso9660 등 파일시스템 종류를 적어준다. 만약 이 옵션을 사용하지 않으면 파일시스템의 수퍼블럭을 조사하여 자동으로 파일시스템이 선택된다.

-o 옵션 : 이곳에는 마운트 옵션들을 적어준다. 입력하지 않으면 기본적으로 defaults가 선택된다.

  defaults : rw, suid, dev, exec, auto, nouser, async의 옵션이 선택된다.

  async : 파일시스템에 대한 입출력이 비동기적으로 이루어지게 한다.

  auto : -a 옵션으로 마운트 가능하게 한다.

  dev : 파일시스템의 문자, 블럭 특수장치를 해석한다.

  exec : 바이너리의 실행을 허가한다.

  noauto : -a 옵션으로는 마운트 되지 않으며 명시적으로만 마운트 가능하다.

  noexec : 바이너리의 실행을 허가하지 않는다.

  nosuid : set-UID, set-GID를 무시한다.

  nouser : 일반 사용자가 마운트 할 수 없게 한다.

  remount : 이미 마운트된 파일시스템을 다시 마운트 한다.

  ro : 읽기전용으로 마운트한다.

  rw : 읽기/쓰기 모두 가능하게 마운트 한다.

  suid : set-UID, set-GID를 사용한다.

  sync : 파일시스템에 대한 입출력을 동기화 한다.

  user : 일반 사용자가 마운트 할 수 있게 한다.


/*******************************************************************************************************/


umount


사용법

umount [-nv] 장치 또는 디렉토리


옵션

-n : /etc/mtab 파일을 갱신하지 않고 마운트를 해제한다.

-v : 자세한 정보를 보여준다.

-a : /etc/mtab 파일에 명시된 모든 파일시스템의 마운트를 해제한다.

-t 파일시스템 종류 : -a 명령어와 함께 사용되며 이 옵션이 지정되면 /etc/mtab 파일에 명시된 모든 파일시스템 중 유저가 입력한 파일시스템만 마운트를 해제한다.


/*******************************************************************************************************/


uname -a

커널버전 확인


cat /etc/redhat-release

배포판 확인


/*******************************************************************************************************/


ps


현재 실행되고 있는 프로세스의 목록을 보여준다.


사용법

ps [옵션]


옵션

-l : 자세한 형태의 정보를 출력한다.

-u : 각 프로세스의 사용자 이름과 시작 시간을 보여준다.

-j : 작업 중심 형태로 출력한다.

-s : 시그널 중심 형태로 출력한다.

-v : 가상 메모리 중심 형태로 출력한다.

-m : 메모리 정보를 출력한다.

-a : 다른 사용자들의 프로세스도 보여준다.

-x : 로그인 상태에 있는 동안 완료되지 않은 프로세스들을 보여준다. 유닉스 시스템은 사용자가 로그아웃하고 난 후에도 임의의 프로세스가 게속 동작하게 할 수 있다. 그러면 그 프로세스는 자신을 실행시킨 쉘이 없이도 계속 자신의 일을 수행한다. 이러한 프로세스는 일반적은 ps 명령으로 확인할 수 없다. 이때 -x 옵션을 사용하면 자신의 터미널이 없는 프로세스들을 확인할 수 있다.

-S : 차일드(child) CPU 시간과 메모리 페이지 결함(fault) 정보를 추가한다.

-c : 커널 task_structure로부터 명령 이름을 보여준다.

-e : 환경을 보여준다.

-w : 긴(wide) 형태로 출력한다. 한 행 안에 출력이 잘리지 않는다.

-h : 헤더를 출력하지 않는다.

-r : 현재 실행중인 프로세스를 보여준다.

-n : USER와 WCHAIN을 위해 수치 출력을 지원한다.


ps -ef


STAT 프로세스 상태표시

P : 수행가능 / 수행중

T : 일시정지

D : 디스크 입출력 대기 같은 인터럽트 할 수 없는 대기상태

S : 20초 미만의 짧은 휴식상태(sleep)

I : 20초 이상의 긴 휴식상태(sleep)

Z : 좀비(zombi) 프로세스


/*******************************************************************************************************/


pstree


프로세스 정보를 트리형식으로 출력


사용법

pstree [옵션]


옵션

-n : PID순으로 정렬한다.

-p : 프로세스명과 함께 PID도 출력한다.


/*******************************************************************************************************/


kill


지정한 프로세스를 종료한다. 시그널을 보내서 프로세스를 조절하는데, 해당 프로세스를 이 kill 명령어로 종료하려면 그 프로세스의 소유자이거나 혹은 슈퍼유저 이어야 한다. 보통은 쉘 자체적으로 정의된 kill을 사용하기 때문에 이 명령을 사용할 필요가 별로 없지만, 한 프로세스를 비정상적으로 종료시켜야 할 필요가 있을 때만 사용한다.


사용법

kill [옵션] 프로세스ID


옵션

-s : 특별히 보낼 시그널의 이름이나 번호를 지정한다.

-p : 시그널은 보내지 않고 그 프로세스의 이름만 보여준다.

-l : 시그널의 목록을 출력한다.


시그널의 종류를 지정하지 않으면 프로세스를 종료시키는 의미로 디폴트 시그널ID 15번을 보내게 된다. 예를 들어 시스템 사용을 마치고 로그아웃 할 때는 시그널ID 1번의 HUP(hang up) 시그널이 시스템으로 전달되고, 이 시그널은 쉘 상태에서 실행중인 모든 프로세스를 종료시키고(앞에서 언급한 nohup에 의한 프로세스는 제외) 로그아웃하게 한다.


특정 프로세스를 강제로 종료하고자 할 때는 아래와 같이 입력한다.

kill -9 "PID"


만약 특정 데몬과 관련된 모든 프로세스를 종료하고 싶으면 killall을 사용한다.

killall "데몬이름"


/*******************************************************************************************************/


top


프로세스의 CPU, MEMORY 사용량 등 시스템의 전반적인 상황을 실시간으로 모니터링하는 프로그램이다.


사용법

top [옵션]


옵션

-d 시간 : 화면 갱신 시간을 지정한다.

-q : 화면을 계속 갱신한다.

-c : 명령행 전체를 보여준다.

-i : idle 상태와 좀비 프로세스는 무시한다.


기본적으로 3초 간격으로 화면이 갱신된다. 프롬프트를 기준으로 상단에는 시스템에 대한 정보가 나타나고 하단에는 프로세스들에 대한 정보가 나타난다.


top 실행중에는 아래의 명령어를 입력할 수 있다.

SPACE : 화면을 갱신한다.

k : kill 명령

r : nice 값 변경

l : top 맨윗줄의 항목 on/off

m : 메모리 항목 on/off

t : 프로세스와 CPU 항목 on/off

c : command line의 옵션 on/off

q : 프로그램 종료


/*******************************************************************************************************/


service


ntsysv 나 chkconfig 는 부팅 시 데몬의 실행여부를 설정하였다. 현재 실행중인 데몬을 제어하려면 service 명령어나 /etc/rc.d/init.d 에 있는 실행 스크립트를 이용하여 제어할 수 있다.


사용법

service [데몬] [상태]


상태

start : 데몬을 실행한다.

stop : 데몬을 종료한다.

restart : 데몬을 재시작한다.

status : 데몬의 상태를 보여준다.


cups 데몬의 상태를 출력한다.

service cups status


cups 정지

service cups stop


cups 시작

service cups start


cups 재시작

service cups restart


/*******************************************************************************************************/


netstat


네트워크 연결, 라우팅 테이블, 네트워크 장치의 통계정보 등 네트워크에 관련된 여러 가지 정보를 확인할 수 있다.


사용법

netstat [옵션]


옵션

-a : 연결된 모든 소켓을 출력한다.

-n : 기호화 된 호스트나 포트이름, 유저이름 대신 숫자로 출력한다.

-p : 소켓에 대한 PID/프로그램을 출력한다.

-r : 라우팅 테이블을 출력한다.

-i : 인터페이스 테이블을 출력한다.

-s : SNMP(Simple Network Managermanet Protocol)와 같은 네트워크 통계를 출력한다.

-c : 계속되는 리스트를 출력한다.

-t : tcp를 이용하여 접속한 리스트를 출력한다.

-u : udp를 이용하여 접속한 리스트를 출력한다.


-r 옵션을 사용하여 현재 시스템의 라우팅 테이블을 확인해보자.

netstat -r


-t 옵션을 사용하면 tcp연결에 대한 정보를 출력한다.

netstat -t


현재 열려있는 포트를 검색해보자.

netstat -ant | grep LISTEN

만약 불필요한 포트가 열려있다면 보안을 위하여 iptables 등을 이용하여 막아야 한다.


/*******************************************************************************************************/


ps -ef | grep apache | wc -l


동시접속자수 보기

apache 1, 2 버전의 접속자수 최대치는 256

이 최대치는 MaxClients 입력가능한 최대치


이 이상 동시접속을 허용하고자 할 때는 아파치를 재 컴파일 해야 함.


**##**


1) pstree 에서의 아파치 프로세스 확인

     |-httpd-+-httpd---7*[{httpd}]

     |       |-httpd---3*[{httpd}]

     |       |-httpd

     |       `-30*[httpd---65*[{httpd}]]


     - 전체 프로세스 값 파악


      # pstree -p |awk '/httpd/{num += 1} END {print num-1}'

        195



 2) 설정값 변경 예


  - 1024 접속자수로 조정하고 싶으시다면 다음과 같이 변경, 저장후 아파치를 재시작


   이때, Max Clients 값은 StartServers x ThreadsPerChild 값입니다.

   ThreadsPerChild는 64가 최대치


< IfModule worker.c>

StartServers         16

MaxClients         1024

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     64

MaxRequestsPerChild  0

< /IfModule>


  - 2048 접속자수로 조정하고 싶으시다면 다음과 같이 변경, 저장후 아파치를 재시작


   이때, Max Clients 값은 StartServers x ThreadsPerChild 값입니다.

   ThreadsPerChild는 64가 최대치


< IfModule worker.c>

StartServers         32

MaxClients         2048

MinSpareThreads     25

MaxSpareThreads     75

ThreadsPerChild     64

MaxRequestsPerChild  0

< /IfModule>



 3) 다음 설명을 참조하셔서 다양한 값으로 변경하면 된다.


StartServers --> 아파치를 처음 시작할때 생성하는 서버 갯수


MaxClients --> ThreadsPerChild * StartServers 값


MinSpareThreads --> 서버 하나가 만들어 낼수 있는 쓰레드의 최소 갯수입니다.

                    보통은 ThreadsPerChild 와 맞추어 줌.


MaxSpareThreads --> 시스템 전체에서 만들어 낼수 있는 쓰레드 갯수의 최대치


ThreadsPerChild --> 서버 하나가 만들어 낼수 있는 쓰레드 갯수 (최대 64개)

                    ThreadsPerChild * StartServers 값이며, 보통 MaxClients 와 맞추어 줌.


MaxRequestsPerChild --> 서버 하나가 만들어 내는 접속의 최대치

                        0 일경우 무한대 이며, 숫자를 적으면 그 숫자만큼 접속되고 나면 서버를 죽였다 살림.



/*******************************************************************************************************/


mysql dump


[백업]

mysqldump -u 사용자명 -p DB이름 > 덤프파일명.sql

mysqldump -u root -p ngoods > webscrap.ngoods.201206011155.sql


[복원]

mysql -u 사용자명 -p -e "source 덤프파일명.sql" DB이름


/*******************************************************************************************************/


'IT > 프로그램' 카테고리의 다른 글

ASP 함수 정리  (0) 2018.12.06
php 함수정리  (0) 2018.12.02
이미지 롤링  (0) 2018.11.28
정규식 정리  (0) 2018.11.24
한글 중국어 일본어 정규식 replace  (0) 2018.11.22