-리눅스 디렉토리 설명---------------------------------------------------------------------
/━━━┳ usr (윈도우의 frogram files와 동일, {/usr/bin/ = 배치[PATH 변수]디렉토리, /bin/과 같다.})
┣ var (변경이 많은 프로그램 ex: Log, 메일)
┣ bin (배치[PATH 변수]디렉토리. DOS에서 AUTOEXEC.BAT 파일 안에 PATH설정을 해준것과 같다. 안에있는 파일들은 어디서든 실행된다.)
┣ root (최상 관리자 홈디렉토리)
┣ etc (각 시스템의 고유한 설정 파일)
┣ lib (공유 라이브러리 파일)
┣ dev (하드웨어 장치 파일)
┣ mnt (마운트를 하기위한 디렉토리. 일반적으로 CD-ROM, FLOPPY)
┣ tmp (임시 파일 공간.윈도우의 temp와 동일)
┣ proc (가상파일 시스템)
┣ home (유저 홈디렉토리)
┣ .
.
.

-계정, 도움말 관련 명령어---------------------------------------------------------------------------------------
man : 명령어 옵션이나 사용법들을 보여준다.(ex: man ls = ls라는 명령어의 사용법이나 옵션을 보여준다.)
which : PATH변수를 참조하여 명령어를 검색해준다.alias명령으로 단축지정된 것까지 보여준다.(which ls = ls 명령어가 있는 위치를 보여준다.)
whereis: 명령어를 검색해준다. which 명령보다 좀더 넓은 범위에서 메뉴얼 페이지 경로까지 검색해준다.

useradd : 유저계정을 생성한다.
userdel : (옵션: -r) 해당 계정뿐만 아니라 그 계정에 관련된 모든 디렉토리가 삭제된다..
usermod : 유저계정을 수정한다. /etc/passwd 파일을 직접 편집하는 방법도 있다.
groupadd : 그룹을 생성한다.
groupdel : 그룹을 삭제한다.
groupmod : 그룹을 수정한다. /etc/group 파일을 직접 편집하는 방법도 있다.
*계정을 생성하면 1개의 디렉토리 생성과 3개 파일에 정보가 추가된다.
1.새로만든 계정의 홈디렉토리 생성
2./etc/passwd 파일안에 정보 추가
3./etc/group 파일안에 정보 추가
4./etc/shadow 파일안에 정보 추가

chown : 파일에 대한 소유자나 그룹을 변경할수 있으며 오직 root만이 사용 가능하다.(ex: chown 오세헌.안양2동 /etc/root.sh = root.sh란 파일의 소유자는 오세헌 그룹은 안양2동으로 변경한다.)
(옵션: -R) 해당 디렉토리에 포함된 모든 파일과 하위 디렉토리의 소유자나 그룹을 변경할수 있다.
chgrp : 파일에 대한 소유그룹을 변경할수 있으며 오직 root만이 사용 가능하다.
(옵션: -R) 해당 디렉토리에 포함된 모든 파일과 하위 디렉토리의 소유그룹을 변경할수 있다.
chmod : 소유자, 그룹, 그외에 대해서 읽기, 쓰기, 실행 권한(퍼미션)을 설정할수 있다.
*퍼미션 부여방법
파일은 기본적으로 drwxrwxrwx 형식을 가진다.
-맨 앞의 d는 디렉토리를 뜻한다. 링크파일(바로가기)인 경우 l로 표시되며, 일반 파일일 경우는 -로 설정된다.
-맨처음 rwx는 소유자에 대해 읽기, 쓰기, 실행이 설정된 값이다. 공통적으로 r은 4, w는 2, x는 1로써 권한을 주고싶은 목록의 숫자를 다더한 값을 퍼미션으로 설정한다.
-두번째 rwx는 그룹에 대해 읽기, 쓰기, 실행이 설정된 값이다.
-세번째 rwx는 그외에 대해 읽기, 쓰기, 실행이 설정된 값이다.
(ex: chmod 700 aa = aa라는 파일에 대해 소유자만 읽기,쓰기,실행 권한을 갖도록 한다.)
(ex: chmod 751 aa = aa라는 파일에 대해 소유자는 읽기,쓰기,실행 권한을 가지고 그룹에 대해서는 읽기,실행 권한만을 가지며 그외에는 실행 권한만 갖도록 한다.


-프로세서 관련명령어--------------------------------------------------------------------------------
vi /etc/inittab : 부팅모드를 수정할수 있다. 1.치명적인 오류가 났을때,루트암호를 잊어버렸을때 3.디폴트(윈도우의 F8키 눌렀을때와 같다)
vi /etc/farad : 부팅할때 실행할 파일들을 설정한다.(윈도우의 시작프로그램과 동일)
vi /etc/fstab : 부팅할때 마운트할 파티션을 설정한다.
ntsysv : 부팅시 자동으로 실행되는 프로세스(데몬)들을 쉽게 설정 할수 있다.

w : 부팅한지 몇일(UPTIME)되었는지 확인(3계월 재부팅권장), 부하율 확인(2.0이하 권장)

top : 실시간으로 정보(CPU, MEMORY, 하드 스왑 사용률)를 보여준다.
(옵션: -d 1) 정보를 1초 단위로 갱신하여 실시간으로 보여준다.
* m을 누르면 메모리를 가장 많이 소모하는 파일 순으로 맨위에서부터 차례대로 보이게 된다.

ps : (옵션: -ef) 동작하고 있는 프로세스 목록을 보여줌. 대괄호([])가 쳐진 프로세스는 시스템 프로세스
(옵션: aux | more) 동작하고있는 프로세스의 부하율을 보여줌
%CPU = CPU부하율, %MAM = RAM(메모리)부하율

kill : (옵션: -9) 프로세서를 강제적으로 죽인다.

vi /etc/crontab : 매 정해진시간마다(주기적) 실행할 파일들을 설정한다.
* #run-parts 아래에다가 실행할 파일을 적어 넣는다.
* 형식: 분 시 일 달 요일 root run-parts 실행할 파일
(ex: 1 * * * * root run-parts /etc/OSH.conf = 매 1분마다 etc 디렉토리 안에 OSH.conf이라는 파일을 실행한다.)
(ex: */5 * * * * root run-parts /etc/you/OSH.conf = 매 5초마다 etc/you 디렉토리 안에 OSH.conf라는 파일을 실행한다.)
(ex: 0-59/3 * * * * root run-parts /etc/kiki.conf = 매 3초마다 etc 디렉토리 안에 kiki.conf이라는 파일을 실행한다.)

-네트워크 관련 명령어------------------------------------------------------------------------------------
netstat : (옵션: -na) 접속한 주소를 확인 →TCP에 관련된 것만 보임
(옵션: -lnp) 접속한 주소와 포트를 볼수있음(서비스를 대기하고있는 프로그램)
[/etc/hosts 에서 접속했던 IP를 따로 표시할수 있도록 설정 할수있음]
[SNMP프로토콜을 이용하여 netstat에서 나온 정보로 트래픽확인 가능→MRTG를 이용 그래픽모드로 볼수있음.]
*netstat -lnp를 하여 나온 포트 설명
:80 = http
:6666 = httpd - 아파치서버(웹서버)
:873 = 사용률이 적은 데몬을 묶어서 관리,실행하는 슈퍼서버 데몬(xinetd) - rsync(알싱크: 데이타 동기화 프로그램. 백업할때 사용)
:29999 = 결제 프로그램
:783 = 펄(안티 프로그램). 스팸 어세신 프로그램
:7766 = 결제 프로그램(데몬)
:21 = proftpd - FTP
:22 = sshd - ssh
:23 = 사용률이 적은 데몬을 묶어서 관리,실행하는 슈퍼서버 데몬(xinetd) -telnet
:25 = sendmail
:5051 = 시스템 메니저먼트 서버(SMS). 서버의 상태를 알려줌.(zagent) /tcp, udp
:199 = snmpd - 네트워크 메니저먼트 시스템(NMS). 트래픽 모니터링을 할때 필요한 프로토콜.(snmp) /tcp
:161 = snmpd - 네트워크 메니저먼트 시스템(NMS). 트래픽 모니터링을 할때 필요한 프로토콜.(snmp) /udp
:110 = 사용률이 적은 데몬을 묶어서 관리,실행하는 슈퍼서버 데몬(xinetd) -pop3
:53 DNS /udp,tcp
:3306 my-sql /tcp
:3389 telminal /tcp
:8080 = httpsd - 웹기반 설치를 위한 setting
0.0.0.0 = 80포트로 실행하면 전부다 접속 가능
127.0.0.1 = 외부에서 접속 불능
*데몬에는 독립실행형데몬(자주쓰는 프로세서)과 슈퍼서버데몬(자주쓰지않는데몬의 집합)이 있다. 프로세서 마다 메모리를 소모하기 때문에 잘 실행하지않는 데몬들을 묶어서 하나의 데몬처럼 유지하면서 프로세서가 실행할 때마다 슈퍼서버 데몬(xinetd)이 관리 실행토록하여 메모리관리를 효율적으로 해준다.
*tcp는 3way handsh 6, udp는 17또는 11, icmp 1

host : (옵션: -a) 해당 도메인에 대한 모든 호스트 정보를 보여준다. (ex: host -a yahoo.co.kr)

netconfig : 부팅시에 적용할 네트워크를 쉽게 설정할 수 있다.

vi /etc/resolv.conf : resolving DNS 주소를 설정 한다.
vi /etc/named.conf : 네임서버의 주소(zone파일)를 설정한다.
vi /etc/sysconfig/network : 네트워크를 사용할수 있도록 설정한다.
vi /etc/sysconfig/network-scripts/ifcfg-eth0 : 랜카드를 설정할 수 있다.(ip, 도메인등)
cat /etc/modules.conf : 랜카드의 인터페이스가 보임.

ifconfig : (옵션: -a) 현재 장착되어있는 랜카드에 대한 IP주소나 MAC주소, 서브넷마스크등의 모든정보를 볼수 있다.

ping : 외부로 패킷을 날린다.

route : 라우팅 테이블을 볼 수 있다.
traceroute : 해당 주소까지 거처가는 라우터의 정보를 보여준다. (ex: traceroute yahoo.co.kr = 야후 홈페이지까지 거처가는 모든 라우터의 정보가 보여짐)

tcpdump : 해당 서버에 주고받는 노드의 정보가 실시간으로 보여짐.

whois : 특정 도메인 정보나 특정 IP주소, 특정 네트워크를 사용하는 기관명을 조회할 수 있다.
(ex: whois -h whois.arin.net tt.co.kr = tt.co.kr이란 도메인에 대해서 최상위 루트 DNS 서버에 질의를 요청한다.)
(ex: whois -h whois.apnic.net tt.co.kr = tt.co.kr이란 도메인에 대해서 ASIA-PACIFIC 지역 DNS 서버에 질의를 요청한다.)
(ex: whois -h whois.ripe.net tt.co.kr = tt.co.kr이란 도메인에 대해서 유럽 지역 DNS 서버에 질의를 요청한다.)
(ex: whois -h whois.krnic.net tt.co.kr = tt.co.kr이란 도메인에 대해서 국내(대한민국) DNS 서버에 질의를 요청한다.)
*jwhois 란 명령은 일일이 해당 도메인 지역 DNS 서버주소를 치지않아도 질의를 할 수 있도록 해준다.

dig : 도메인명으로 정보를 알아볼 수 있다.
(ex: dig yahoo.co.kr = yahoo.co.kr에 대한 네임서버 정보를 볼 수 있다.)
(ex: dig yahoo.co.kr mx = yahoo.co.kr에 대한 메일 네임서버 정보를 볼수 있다.)
(ex: dig yahoo.co.kr +trace = yahoo.co.kr에 대해 root DNS서버 에서부터 질의하는 과정의 정보를 볼 수 있다.)
(ex: dig @ns1.yahoo.com yahoo.co.kr = yahoo의 DNS 네임서버에 대해서 yahoo.co.kr 을 질의 한다.)

-시스템 관련 명령어------------------------------------------------------------------------------------------------
shutdown -h now : 리눅스를 종료한다. 똑같은 명령어로 halt가 있다.
shutdown -r now : 리눅스를 재부팅한다. 똑같은 명령어로 reboot가 있다.

dmesg : 부팅 메세지를 다시 볼수있다.

finger : 현재 접속해있는 계정을 볼수있다.

df : (옵션: -h) 하드디스크의 파티션 사용량을 보여준다.
fdisk : (옵션: -l) 모든 파티션의 정보를 보여준다
*표시되는 형식
hda1 : h= IDE방식의 디스크를 뜻함. s는 SATA나 SCSI방식의 디스크를 뜻함
d= 드라이브 디스크를 뜻함
a= 첫번째 물리적디스크 드라이브를 뜻함. 두번째 물리적디스크 드라이브는 b, 세번째는 c...
1= 첫번째 파티션을 뜻한다. 두번째 파티션은 2, 세번째는 3...

cat /proc/cpuinfo : CPU 정보를 확인 한다.
cat /proc/meminfo : 메모리 정보를 확인 한다.
vmstat : 가상메모리의 상태를 볼 수 있다. (ex: vmstat 1 5 = 1초마다 한번씩 5번 가상메모리 상태를 보여준다.)
free : 시스템의 메모리 상태를 볼 수 있다.

history : 실행했던 명령어를 순차적으로 보여줌.
last : 서버에 접속했던 계정 및 IP, 머물렀던시간 등을 보여준다.

date : 현재 시간을 확인한다.
rdate -s time.bora.net&&clock -w : 서버시간을 동기화 시킨다.

uname : (옵션: -a) 현재 운영체제와 커널 버젼을 확인 할 수 있다.
cat /etc/*rel* : 리눅스 배포판 버젼을 확인 할수 있다.

mkfs : 파일시스템(포맷)을 만든다.

quota : 디스크 사용량을 제한할 수 있다.
edquota : 디스크 사용량을 수정할 수 있다.

-일반 명령어-------------------------------------------------------------------------------------------------------
cd : (옵션: -) 바로 전으로 돌아간다.
(옵션: --) 무조건 루트로 돌아간다.
* cd ~ 은 현재 로그인한 계정의 홈디렉토리로 이동한다.

pwd : 현재 디렉토리를 보여준다.
ls : (옵션: -l) 현재 디렉토리안에 있는 파일들을 자세하게 보여준다.
(옵션: -a) 현재 디렉토리안에 숨겨져있는 파일까지 보여준다.(파일명 앞에 .이 붙는 파일이 숨겨진 파일이다.)
(옵션: -t) 가장 최근에 등록된 파일부터 차례대로 보여줌.
(옵션: -R) 현재 디렉토리 포함 하위 디렉토리 파일까지 보여줌.

du : (옵션: -h) 현재 디렉토리에 대해서 사용 용량을 보여준다.

clear : 현재 보여지는 화면을 깨끗하게 지운다.

; ← 한줄에 여러 파일을 실행할때(ex: cd /home3/오세헌/ ; mkdir aaaaaa = home3/오세헌 디렉토리로 이동한다음 aaaaaa라는 디렉토리를 생성한다.)
|(하이픈) ← 명령어를 실행하면서 나온 결과값에 대해 다른 파일을 실행해 적용할때(ex: find /etc/ |grep aa = etc디렉토리안에 aa라는 글짜가 포함된 파일만 검색해서 보여줌)
(a ; b 와 a | b 의 차이점: a ; b 는 각각의 a와 b가 독립적으로 실행이 되지만 a | b 는 a가 실행되면서 나오는 결과물을 b에 연계되어 실행이 된다.)

head : 파일내용의 윗부분을 볼수 있다.(ex: head -5 오세헌 = 오세헌이라는 파일 내용의 맨 윗줄에서 5줄 까지만 출력한다.)
tail : (옵션: -f) 문서 파일의 내용전체를 한칸씩 읽어내리듯 출력한다.
more : 많은내용의 문서가 출력될때 한페이지당 끈어서 출력되게 한다. 주로 |(하이픈) 을 붙혀서 많이쓴다.
less : more와 비슷한 명령이나 more는 넘어간 페이지를 다시 되돌려 볼수는 없지만 less 명령은 지나쳤던 페이지를 다시 되돌려 볼수있다.

grep : 지정한 단어가 포함된 파일을 출력한다. 주로 |(하이픈) 을 붙혀서 많이쓴다.
(옵션: -v) 지정한 단어가 포함이 되지않은 파일을 출력한다.
find : 디렉토리에서 여러옵션(파일이름,형식,변경한날짜,만들어진시간)으로 파일을 검색해서 출력한다.
(옵션: -mtime) 파일이 생성(수정)된 시간으로 파일을 검색한다.(ex: fine /etc/ -mtime +3 = etc 디렉토리 안에 마지막으로 수정된 날짜로부터 3일이 경과된 파일들을 출력한다.)
locate : 지정한 단어를 파일뿐만아니라 디렉토리까지 검색해서 출력한다.

vi : 문서 편집기.
(글을 쓸 때에는 Insert 키는 누르고 작성, 저장하려면 ESC 키를 누르고 :w, 종료하려면 ESC 키를 누르고 :q, 강제 종료나 강제 저장을 하고 싶다면 각각 명령어 뒤에 !를 붙인다.)

alias : 변수에 단축키를 지정한다. (ex: ll = 'ls -al' → ll 이라는 변수에 ls -al이라는 명령을 넣어준다.)
*일반적으로 alias 명령으로 만든 단축키는 /.bashrc 파일에 등록하여 리눅스가 시작되었을때 자동으로 단축키가 등록되도록 한다.
ln : (옵션 -s) 링크 파일을 만든다.(ex: ln -s /etc//king/osh osh = cd osh를 치면 자동으로 /etc/king/osh 로 이동한다.

cp : 파일을 복사한다.
mv : 파일을 이동시킨다.
touch : 내용없는 파일을 생성한다.
rm : (옵션: -f) 파일을 삭제할때 확인유무를 묻지않고 바로 삭제한다.
(옵션: -r) 하위 디렉토리까지 모두 삭제한다.
mkdir : 디렉토리를 생성한다.
rmdir : 디렉토리를 삭제한다.


'먹고살기 > Unix' 카테고리의 다른 글

공백제거  (5) 2014.03.21
쉘 스크립트  (0) 2011.06.30
리눅스 명령어  (0) 2011.04.29