'분류 전체보기'에 해당되는 글 148건
- 2007.10.12
- 2007.09.21
- 2007.09.21
- 2007.09.21
- 2007.08.30
- 2007.08.22
- 2007.08.17
- 2007.08.17
- 2007.07.31
- 2007.07.03
class rrr
{
public:
void setR(int r) { _rr = r;}
int getR() {return _rr;}
int _rr;
};
class mmm
{
public:
mmm(rrr * rr) : _rr(rr) {}
void setR(rrr * r) { _rr = r;}
rrr * getR() {return _rr;}
rrr * _rr;
};
class sss
{
public:
sss() : _m(&_r) { _m.setR(&_r); }
rrr & getR() {return _r;}
mmm * getM() {return &_m;}
rrr _r;
mmm _m;
};
int main(int argc, char* argv[])
{
rrr r1;
sss s2;
sss * s1 = &s2;
s1->getR().setR(10);
cout << s1->getR().getR() << endl;
cout << s1->getM()->getR()->getR() << endl;
s1->getR().setR(15);
cout << s1->getR().getR() << endl;
cout << s1->getM()->getR()->getR() << endl;
s1->getM()->getR()->setR(20);
cout << s1->getR().getR() << endl;
cout << s1->getM()->getR()->getR() << endl;
심하게 깔끔해 보이진 않지만... 테스트겸 간략하게 짠 코드니까..ㅋㅋ
결과는뭐 당연하게 잘되지만...
왜 실제 코드에선 버그가 있는거지..
어디서 물고 있는게냐?
중복 실행 방지. (0) | 2007.10.23 |
---|---|
[강좌] 기초적인 압축 알고리즘 하이텔 퍼옴.. (0) | 2007.10.23 |
IOCP (IOCompletionPort) 분석 (0) | 2007.09.21 |
프로그래밍 :: 오라클 강좌 (0) | 2007.08.17 |
Oracle 10g의 Recycle Bin의 기능에 대해서... (0) | 2007.08.17 |
http://csourcesearch.net/
소스코드만 전문적으로 찾아서 검색해주는 친구입니다.
여러분 참고 하세용
출처 : 울트라 초특급 슈퍼 커널 프로그래머이신 미친감자님으로 부터...
비트 연산으로 구현한 곱셈 (0) | 2007.10.23 |
---|---|
[CElapsedTimer] 프로파일링에 유용하게 사용 (0) | 2007.10.23 |
MFC 더블버퍼링 (0) | 2007.06.25 |
문자열(스트링) 전격 분석 2부 2강(끝) (0) | 2007.01.05 |
문자열(스트링) 전격 분석 1부 (0) | 2007.01.05 |
Error code Stop 0x0000000A or IRQL_NOT_LESS_OR_EQUAL
ː내 용 1. 프로세서 및 메모리관리나 데이터 입출력 하드웨어제어 등의 IRQL(interrupt request level)인터럽트 요청 레벨이 너무높을때 발생하는 오류이다.
2. 메모리로 접근을위한 커널모드가 퍼미션을 가지지 못할 때 생기는 오류이다.
3. 일반적으로 이 메시지는 하드웨어나 소프트웨어 호환성 문제 때문에 생긴다.
ː문제해결 방법 - 드라이버나 펌웨어를 설치하는데 실패할 때 발생한다. 문제를 해결하기 위해 실패한 드라이버를 삭제하거나 드라이버 롤백기능을 사용한다.
- 윈도우 XP를 업그레이드하는 동안 이오류가 나타나면 호환성부족 드라이버나 바이러스를 체크 해본다.
Error code Stop 0x0000001E or KMODE_EXCEPTION_NOT_HANDLED
ː내 용 1. 커널 오류중 하나이며 0×A오류와 거의 같다.
2. 메모리 부족 때문에 발생하는 오류이다.
ː문제해결 방법 - 잘못된 드라이버를 설치하거나 메모리와 IRQ충돌시 이런 문제가 나타난다.
- 바이러스 백신이나 멀티미디어 응용프로그램 백업 프로그램등과 같이 필터프로그램을 사용하는 소프트웨어를 업데이트한다.
- 원격 제어프로그램의 win32k.sys 파일이 손상되었을 경우나 다른회사의 원격제어 프로그램을 설치할 경우에 발생될 수 있다.
- 안전모드로 접근을 못하는 경우 Recovery Console을 이용하여 문제를 해결한다.
- 시스템 펌웨어의 호환성부족으로 발생할수 있으며 바이오스 업그레이드로 문제를 해결해 본다.
- 디스크 공간이 부족할 때 발생되는 오류중하나이며 chkdsk.exe autochk.exe의해 발생되는 인터넷케쉬파일이나 temporary files(*.tmp files) 응용프로그램 백업파일을 삭제해 준다.
Error code Stop 0x00000024 or NTFS_FILE_SYSTE
ː내 용 1. 이 오류메시지는 NTFS파일 시스템 드라이버들을 쓰거나 읽는데 필요한 드라이버파일인 ntfs.sys 가 깨지거나 삭제되었을 경우 발생한다.
ː문제해결 방법 - SCSI나 ATA 하드웨어드라이버의 부조화로 발생하는 에러이다.
스카시인 경우 termination문제 케이블을 체크한다.
- event viewer에서 시스템 로그 안에 SCSI나 FASTFAT 과 관련된 에러사항을 체크한다.
- 시스템 제조회사에서 제공하는 하드웨어 진단프로그램과 진단 소프트웨어로 테스트해본다.
Error code Stop 0x0000002E or DATA_BUS_ERROR
ː내 용 1. 시스템 페러티 에러나 메모리모듈 Level2 cache 나 비디오메모리 손상으로 발생되는 에러이다.
2. 바이러스로 인해 발생할수있다.
ː문제해결 방법 - 드라이버를 잘못설치한 경우 발생할 수 있다. 파일이름을 보여주면 제거하거나 롤백 기능을 사용하여 문제를 해결한다.
- 램의 물리적인 손상일 경우가 많으므로 데이터가 주소에 제대로 접근 못하는경우가 많다. 이럴경우는 램을 교체해본다.
- 크랙된 응용프로그램을 설치한 경우에 발생할 수 있다.
Error code Stop 0x0000003F or NO_MORE_SYSTEM_PTES
ː내 용 1. 이 에러는 여러 가지 원인에 의해 발생될수 있다.
주로 PTEs(page table entries)-시스템의 입출력수행의 과도현상 PTEs(메모리공간에대한정보)가 부족하거나 파손되는경우에 발생할수 있는 에러이다.
2. 잘못된 드라이버 설치시 발생할수 있다.
ː문제해결 방법 - 응용프로그램들이 요구하거나 이용할 수 있는 충분한 크기의 메모리 블록이 부족한경우에 발생하는 에러이다.
- 응용프로그램의 드라이버를 업데이트해본다.
- 윈도우 xp 는 PTEs의 수를 늘리기위해 registry entry,system pages를 제공한다.
Error code Stop 0x00000050 or PAGE_FAULT_IN_NONPAGED_AREA
ː내 용 1. 요청된 데이터가 메모리에 상주되어 있지 않을때 발생하는 에러이다.
2. 호환이 잘 안되는 소프트웨어 설치시(원격 엑세스, 바이러스 백신)들이 에러를 일으키는 원인이 된다.
3. 결함이있는 메모리(메인 메모리,L2케시 메모리,video RAM)
ː문제해결 방법 - 잘못된 드라이버 설치시 에러를 발생시킬수 있다. 드라이버를 삭제하고 업데이트된 드라이버를 재설치 한다.
- 만약 제조회사에서 드라이버를 찾지못한다면 비슷한 종류의 드라이버로 교체한다.
Error code Stop 0x00000077 or KERNEL_STACK_INPAGE_ERROR
ː내 용 1. 이 에러는 페이징 (가상 메모리)파일로부터 요구된 커널 데이터의 페이지가 메모리에서 읽거들이거나 발견되지 않았을때 생기는 오류이다.
2. 디스크 데이터 충돌이나 바이러스 감염에 의해서도 생기는 오류이다.
ː상태 코드 - 0xC000009A, or STATUS_INSUFFICIENT_RESOURCES 리소스부족을 가르킨다.
- 0xC000009C, or STATUS_DEVICE_DATA_ERROR,하드디스크의 베드블럭,섹터로 요청된 데이터를 찾지 못할때
- 0xC000009D, or STATUS_DEVICE_NOT_CONNECTED, 결함있는 파워케이블, 스카시 터미네이션 ,하드디스크 컨트롤러
- 0xC000016A, or STATUS_DISK_OPERATION_FAILED, 결함있는 하드디스크의 베드섹터
- 0xC0000185, or STATUS_IO_DEVICE_ERROR, 결함있는 파워케이블 ,스카시 터미네이션 ,하드디스크 컨트롤러 두가지 디바이스장치가 동일한 시스템 리소스를 사용해서 생기는 오류
Error code Stop 0x00000079 or MISMATCHED_HAL
ː내 용 1. 하드웨어추상화계층(Hardware Abstraction Layer)-입출력 인터페이스, 인터럽트 제어, 다중 프로세서 통신을 구현하는 데 필요한 하드웨어 종속적인 세부 사항을 처리하는 루틴과 커널타입이 맞지 않아 생기는 오류이다.
2. 주로 ACPI 펌웨어 설정이 변경되었을때 자주일어나는 오류이다
출처 : support.microsoft.com
TCPDUMP 요약글입니다. (0) | 2007.10.30 |
---|---|
TCPDUMP 사용법 (0) | 2007.10.30 |
HP-UX 쉘 명령어 총정리 (0) | 2007.08.22 |
gcc와 make 강좌 (0) | 2007.05.01 |
vi 사용법의 모든것 !!! [리눅스] (0) | 2007.05.01 |
오늘은 회사 창립기념일이어서 기분이 좋습니다.^^ 예전에 IOCP에 대해서 공부할려고 작성했던 문서를 찾았습니다. 한번 읽어보세요. 예전에 이 자료 만들때는 IOCP자료 찾기가 많이 힘들었는데 요즈음에는 구글에서 찾으면 좋은 자료가 너무 많아서 찾기가 힘들죠^^;;;
----------------------------------------------------------------------------------------
1. 목적
Winsock2 IOCP를 분석한 것입니다. 이 문서는 크게 두 가지를 설명 하고 있습니다. 전자는 일반적인 IOCP에 대해서 설명합니다. 후자는 IOCP란 무엇이고 장단점은 무엇인지 입니다.
2.IOCP란?
위에서 보는 것처럼IOCP의 기본적은 구성은두개의 쓰레드로 만들어 진다. 왼편에 있는 루프는 보통 main() 함수에서 있는 루프고 오른쪽에 있는 루프는 main함수가 루프를 들어가기 전에 생성해야 하는 쓰레드로 보통 Worker쓰레드라고 한다. 권장하는 Worker쓰레드의 수는 하나의 CPU당 두개로(Send/Recv) 되어 있다. 또한 2번에서 3번으로의 데이터 전송은 전역변수를 이용하거나 Worker쓰레드를 생성할 때, 포인터를 전송하여 두 루프가 변수를 공유하는 방법이다. 이에 대해서는 달리 자세히 설명하지는 않겠다.
(1) Wait for client to connect
이 과정에 이전에 이미IOCP 핸들과 소켓 초기화, 클라이언트의 접속을 대기하는 소켓, 접속한 클라이언트들의 정보를 가지는 배열( 물론, 자료구조는 자신의 선택이다. )을 생성해 두어야 한다.여기는 클라이언트의 접속을 대기하는 소켓에 Accept()를 호출하여 클라이언트가 접속하기를 기다리는 과정이다.
(2) Open communication channel for client
1번 과정에서 클라이언트가 접속을 하면 여기서는 올바른 소켓인지 판단하고, 접속한 소켓을 클라이언트 정보를 저장하는 배열에 저장하고, IOCP에 해당 소켓을 등록하고, 소켓에 읽기 작업을 신청한다. ( 읽기를 먼저 신청하는 이유는 대해서는 설명하지 않겠다. ) 이 때 중요한 것은 현재 WSARecv(), ReadFile()함수를 사용하여 읽기 작업을 신청했지만, IOCP는 작업의 완료 시에 읽기 작업을 끝냈는지 쓰기 작업을 끝냈는지 가르쳐 주지 않는다는 것이다. 따라서,OVERLAPPED구조체를 상속( C관점에서는 새로운 구조체를 선언할 때, OVERLAPPED구조체를 제일 첨에 위치하는 멤버로 선언하여 사용할 수 있다.)하여 읽기 작업을 하는 건지 쓰기 작업을 하는 건지에 대한 흔적을 남겨야 한다.
(3) Read Request from client
이 과정에서GetQueuedCompletionStatus() 함수를 사용하여 현재 등록된 소켓들 중에 읽기나 쓰기 작업이 완료된 것이 있는지 확인한다. 이 때,IOCP가 알려주는 정보는 2번 과정에서 등록 할 때, 소켓과 같이 입력했던 KEY와 I/O작업을 신청할 때, 인자로 넘겨주었던 OVERLLAPPED 구조체( 확장을 시켰다면 확장 구조체형으로 캐스팅 해주면 된다.)의 주소이다.
(4) Excute request locally
이제3번 과정에서 받은 key와 OVERLAPPED구조체를 가지고 I/O작업을 신청했을 때, 만약 작업이 끝나면 했었을 작업을 해주면 된다.
(5) Return result to client
이 과정은 사실4번 과정과 같이 포함되는 부분이다. 즉, 채팅을 예로 들면, 어떤 사용자가 메시지를 입력했을 때, 4번과정의 If( pOverlapped->mode == 읽기 ) {} 블록안이 실행될 것이고, 어떤 메시지인지 확인한 후, 접속한 모든 사용자에게 메시지를 보내게 된다.
3. IOCP 장단점
ü 장점
A. 2번(IOCP)에서 빨간색 문자색으로 써 있는 것 처럼 적은 수의 쓰레드로 윈속2 서버를 구성 할 수 있다. 윈속 2 API중에서 가장 적다.
B. 윈속2 API중에서 CPU 점유율이 가장 낮다. 이 점은 적은 수의 쓰레드를 사용하므로 얻는 이점이다. 쓰레드 숫자가 적으므로 당연히 ThreadContext Switch도 적게 일어난다.
C. 윈속2 API 중에서 가장 확장성과 성능이 뛰어나다.
ü 단점
A. 프로그램이 어렵다. 즉, 개념 파악이 어렵다.
B. 플랫폼이 제약이 있다. 윈속2이상과 윈도우 NT이상만 지원한다. 정확하게는 윈도우 2000이상에서 개발 하는게 낫다.
- www.codeproject.com, msdn.Microsoft.com,www.codeguru.com
- PlatformSDK, Network Programming For Microsoft Windows
출처: 예전에 다른분 홈페이지에서 그림을 가져왔는데 지금 잘모르겠습니다.^^;;; 나머지는 제가 공부하면서 정리 했습니다.^^;;;
[강좌] 기초적인 압축 알고리즘 하이텔 퍼옴.. (0) | 2007.10.23 |
---|---|
class 들의 단계적 참조 관계 (0) | 2007.10.12 |
프로그래밍 :: 오라클 강좌 (0) | 2007.08.17 |
Oracle 10g의 Recycle Bin의 기능에 대해서... (0) | 2007.08.17 |
리눅스 기본명령어 (0) | 2007.07.03 |
-----------------------------------------------------------------------------------
... 을 누르고 좀전에 새로 만든 html파일(index.html)을 찾아서 열어줍니다.
그리고 다음으로 넘어갑니다
Add...로 웹폰트로 전환하려하는 폰트를 찾아서 클릭하시고 OK 해주세요.
폰트를 클릭하신후에 Subset....을 클릭해주세요.
Subset Editor에서 Load.. 를 누른 후 파일타입을 All files 로 바꾸고 받아두었던 fontface.sub 를 선택합니다. 그리고 Language를 Hangul 로 선택하시면 글씨가 짙어집니다. 만약 그렇게 안되시면 fontface.txt를 복사해서 show font 옆에 ctrl+v 로 붙여 넣으세요.
그리고 OK를 누르고 다음으로 넘어갑니다.
Edit...를 클릭하시면 Mirror Sites 가 나옵니다 본인의 홈주소를 적어넣으신후에
Add를 하시면 됩니다. 한 개뿐만아니라 여러개를 추가하셔도 됩니다.
이제 아까 만들어 두었던 html 이 있는 폴더에 eot 파일이 만들어져 있습니다.
원하는 이름으로 바꿔서 사용하세요.
"진중권 VS 이문열" Ver.2000 (0) | 2008.06.18 |
---|---|
자전거 교통사고 급증 (0) | 2007.07.31 |
영화 "향수"를 통해 본 "보안"의 허와 실 (0) | 2007.05.15 |
상대성이론과 평행우주론 - 데자뷰(Deja vu,2006) (1) | 2007.04.24 |
나는 맵기위해 존재한다~ 119를 불러주세요~ 불닭.. (0) | 2006.11.24 |
UNIX 명령어 총정리
1. addbib - 도서목록 형식의 데이터베이스를 만들거나, 확장
2. apropos - 사용설명서의 키워드 검색
3. ar - 라이브러리 만들기, 관리
아카이브 화일에 있는 화일의 그룹들을 유지 관리하는 명령어
문법 ar [drqtpmx] [vuaiblc] afile files ...
options
d 아카이브 화일에 있는 특정화일을 삭제
r 아카이브 화일에 있는 화일을 교체 ; 문자 n 와 함께 쓰면 수정되는 날짜보다 뒤의 화일만을 교체
q 특정 화일을 아카이브 화일의 맨 뒤에 첨가
t 아카이브 화일내의 목록을 출력
p 아카이므 화일내의 지정된 화일 내용을 출력
m 아카이브 화일의 맨 끝에 특정 화일을 이동시킨다 ; 인수 a, b 또는
i와 함께 사용하면 posname으로 위치를 지정할 수 있다
x 특정화일을 추출
c afile을 생성
l system 내의 임시 directory인 /tmp 대신에 local directory에 있는 임시 화일을 둔다
v 새로운 아카이브 화일 생성에서 기술된 정보를 화일별로 출력. 인수
t와 함께 사용하며 화일에 관한 모든 정보의 목록을 출력할 수 있으며 인수 x와 함께 사용하면 화일명이 먼저 출력
afile 아카이브 filename
4. at, batch - 원하는 시간에 원하는 명령을 실해하게 하는 명령
사용자가 원하는 시간에 프로그램 스케쥴링을 할 수 있는 명령어. 또한 앞으로 사용될 작업들을 확인해볼수 있으며(atq), 취소(atrm)도 가능하다. 주로 이것은 시스템 관리자가 시스템을 정리하고자 할 때이용하고 있는 사용자에게 메시지를 전달하는 등 비교적 규칙적으로 서버에서 일어날 수 있는 일에 자주 사용된다.
일정 시간이 지난후에 명령어를 실행 시깁니다. 따라서 자리를 비우고 30분후에 시스템을 다운 시킨다든지 하는 등 명령어에 타이머를 달수 있습니다.
옵션 -l at queue 를 보여 줍니다.
-d 번호 queue 에서 삭제 합니다. 즉 예약 명령 취소
ex) 10:20 분에 시스템을 정지 하는 것을 예약하고 싶은 경우
#at 10:20 ; 10:20 분을 줍니다.
at>halt ; 프롬프트가 at> 로 바뀌면, halt 명령을 예약합니다. .
ctrl-D ; ctrl+D 로 빠져나옵니다. ( ctrl-C, ctrl-Z 로 빠져나오면 예약이 안 됩니다. )
5. awk - 패턴 검색과 언어 처리
program file에서 기술된 pattern들중 일치되는 line 을 찾기 위해 입력 화일을 검색하는 명령어
문법 awk [-Fc] [profile] [file] ...
또는
awk [-Fc] [-f profile] [file] ...
options
-Fc 입력필드의 구분기호로서 c를 이용
-f progam file로서 다음 인수 사용
6. banner - 큰 글자(배너) 만들기
10문자이내의 문자열을 확대문자로 표준출력\
문법 banner string
7. basename - 경로 이름에서 마지막에 있는 이름만 출력
8. bdiff - 매우 큰 화일을 비교하는 diff 명령어
문법 bdiff file1 file2 [u] [-s]
options
file1,file2 비교하는 filename
n segment 수를 지정하여 생략시 default로 3500임
-s 진단적 message를 표준 출력하지 않는다
9. bfs - 매우 큰 화일을 scan하는 명령어
문법 bfs [-] name
options
- file의 크기를 출력하지 않음
name 읽기만 하는 화일을 scan 할 때 사용되며 name 은 filename
10. biff - 자신에게 편지가 배달되면 알려주는 명령
11. bin-mail, binmail - 예전에 사용한 전자우편 프로그램
12. cal - 달력보기
13. calendar - 간단한 일정표
현재 directory 내의 calendar file로부터 매일의 메모를 print하는 명령어
문법 calendar [-]
options
- login directory에 calendar file을 가지는 각 사용자에 이 화일 중의 오늘과 내일 날짜를 포함하는라인을 전자우편(mail)으로 보낸다
14. cat - 파일 병합과 내용 보기
파일의 내용을 화면에 출력하거나 파일을 만드는 명령( 도스의 TYPE명령)
% cat filename
15. cb - 간단한 C 프로그램 beautifier
16. cc - C 컴파일러
17. cd - 작업 디렉토리 바꾸기
디렉토리를 변경
% cd cgi-bin : 하부 디렉토리인 cgi-bin으로 들어감.
% cd .. : 상위디렉토리로 이동
% cd 또는 cd ~ : 어느곳에서든지 자기 홈디렉토리로 바로 이동
% cd /webker : 현재 작업중인 디렉토리의 하위나 상위 디렉토리가
아닌 다른 디렉토리(webker)로 이동하려면 /로 시작해서 경로이름을 입력하면 된다.
18. checknr - nroff 또는 troff 입력 파일 검사; 오류를 보여준다
19. chgrp - 파일의 사용자 그룹 바꾸기
20. chmod - 파일의 접근 권한 바꾸기
화일 permission 변경
유닉스에서는 각 화일과 디렉토리에 사용권한을 부여.
예) -rwxr-xr-x guestbookt.html
rwx :처음 3개 문자 = 사용자 자신의 사용 권한
r-x :그다음 3개 문자 = 그룹 사용자의 사용 권한
r-x :마지막 3개 문자 = 전체 사용자의 사용 권한
읽기(read)---------- 화일 읽기 권한
쓰기(write)---------- 화일 쓰기 권한
실행(execution)---------- 화일 실행 권한
없음(-)---------- 사용권한 없음
명령어 사용법
chmod [변경모드] [파일]
% chmod 666 guestbook.html
: test.html 화일을 자신에게만 r,w,x 권한을 줌
% chmod 766 guestbook.html
: 자신은 모든 권한을 그룹사용자와,전체사용자에게는 읽기와 쓰기 권한만 줌
21. clear - 터미날 화면 깨끗이 하기
22. cmp - 두 파일을 바이트 단위로 비교
두 개의 화일 내용을 비교하는 명령어
문법 Cmp [-l] [-s] file1 file2
options
-l 두 화일 내용을 비교함에 있어 틀린곳마다 byte 수 (10진수)와 틀린 byte 수(8진수)를 출력
-s 틀린 화일의 내용을 출력하지 않고 return code 만 변환한다
23. colcrt - troff 파일의 밑줄 속성 문자 처리
24. comm - 지정 두파일의 줄 단위 비교와 그 처리
두 개의 정렬(sort)된 화일에서 공통된 line을 선택하거나 삭제하는 명령어
문법 comm [-123] file1 file2
options
1 file1에만 있는 line을 출력하지 않는다
2 file2에만 있는 line을 출력하지 않는다
3 file1, file2 양쪽 화일에 있는 line을 출력하지 않는다
25. compress, uncompress, zcat - 파일 압축관련 유틸리티들
확장자 .Z 형태의 압축파일 생성
% compress [파일명] : 압축시
% uncompress [파일명] : 해제시
26. cp - 파일 복사
화일 복사(copy)
% cp index.html index.old
: index.html 화일을 index.old 란 이름으로 복사.
% cp /etc/*.* .
: etc 디렉토리내의 모든 화일을 현 디렉토리로 복사
27. cpio - copy file archives in and out
아카이브 화일을 복사하여 입출력하는 명령어
문법 cpio -o [abcv]
cpio -i [Bdmtuvsb] [patterns]
cpio -p [adlmv] directory
options
-o 복사 출력: 화일을 path명과 정보 상태를 함께 출력
-i 복사 입력: 표준 입력 화일로 부터 pattern에 일치하는 화일을 추출
-p *directory 내에 file 을 조건부로 작성하고 복사
a *file 복사후 입력 화일의 최종 접근 시간을 reset한다
B 입출력을 5,120 byte의 레코드로 블럭화한다
c ASCII 문자로 헤드 정보를 쓴다
d 필요에 따라 directory를 생성
m 존재하는 최종 화일 수정 시각을 보존
r 대화 문법으로 화일명을 변경
t 입력 화일명 목록을 출력하여 화일은 작성되지 않는다
u 무조건 복사
v 화일명 목록을 출력
28. cpp - C 언어 전처리기
29. crontab - 지정된 시간에 유저의 crontab 파일을 관리하는 명령어
지정한 화일을 입력으로 받아 user의 크론탭 화일을 관리 및 directory로 복사하는 명령어
문법 crontab [file]
options
-r user crontab을 crontab directory로 부터 삭제
-l 호출한 user crontab fule을 출력
file 등록되는 화일명을 지정
30. csh - C 문법과 비슷한 쉘 스크립트 문법과 기타 여러 기능이 내장된 쉘
31. ctags - ex 나 vi 편집기에서 사용될 tag 파일을 만드는 명령
32. cut - 파일이 각 line에서 선택된 필드를 절단하는 명령어
화일이 각 line에서 선택된 필드를 절단하는 명령어
문법 cut -clist [file1 file2 ...]
cut -flist [-d char] [-s] [file1 file2 ...]
options
list - 사용으로 페이지 범위를 지정할수 있으며 정수의 필드 번호를 컴마로 분리하고 증가순서로 나열
clist 문자위치를 지정
(예로서, -(1-72)는 각 line에서 첫 72문자이다)
-d char -d의 문자는 필드구분 문자이며 -f 옵션에서만 필요
flist 구분문자에 의해 분리되는 필드 목록
(예로서, -f1,7은 첫번째와 일곱번째 필드를 복사)
-s 필드 구분문자가 없는 line은 무시
33. date - 시스템 시간 보기나 지정하기
34. dbx - 소스 수준의 디버거
35. deroff - nroff, troff, tbl, eqn 관련 내용 지움
36. df - disk free: 디스크의 남은 용량 보기
이용가능한 디스크블럭수를 출력하는 명령어
문법 df [-f] [-t] [file sysytem]
options
-f 디스크내의 자유리스트내의 정확한 블럭수를 출력
-t 사용가능 블럭 및 i-node와 할당된 전체블럭과 i-node가 출력
37. diff - 두 파일의 차이점 비교
두개의 화일중에서 다른 라인을 출력하는 명령어
문법 diff [-befh] file1 file2
options
-b 비교할 때 라인의 마지막에 있는 탭(tab)과 공백을 무시
-e file1으로부터 file2를 재생성. ed 편집을 위한 a,c 그리고 d 명령어의 script를 만든다
-f 비슷한 script를 만들지만 역순이기 때문에 ed 편집에서는 사용할 수 없다
-h 정밀도가 없어도 빠른 속도를 처리하고자 할 때 사용하며 -e와 -f와 함께 사용할수 없다
문법 diff3 [-ex3] file1 file2 file3
options
-e file1에 file2와 file3의 차이 비교를 기록
-x file1에 3개 화일 모두의 차이 비교를 기록
-3 file1에 file3과 차이 비교되는 부분만 기록
38. dircmp - 디렉토리를 비교하는 명령어
문법 dircmp [-dsw] directory1 directory2
options
-d 두 directory내의 화일명을 비교후 그 차이점을 diff문법으로 출력
-s 비교 일치된 화일에 대한 메세지 출력 안함
-Wn 출력되는 화면의 폭(n)을 변경
**) directory1, directory2는 비교되는 디렉토리명
39. du - disk used : 디스크 사용량 보기
디스크 사용을 요약 출력하는 명령어
문법 du [-ars] [files]
options
-a 각 화일에 대한 entry 출력
-r 읽을 수 없는 directory 또는 열 수(open) 없는 화일에 대해 메세지
를 출력
-s 이름으로 지정된 각각에 대한 총계 블럭수만을 출력
40. echo - 인자를 표준 출력으로 출력
echo명령어는 외부 프로그램과 내부 쉘명령어 사이에 있으며 echo의 인수는 공백에 의해 구분되어지며new line으로 종료하는 각 인수를 화면에 표준출력하는 명령어
문법 echo [-n] [arg] ...
options
-n new line이 없는 것은 추가로 출력
41. ed, red - 기본 줄 편집기
표준 텍스트 편집기 (라인 편집기)
문법 ed [-] [-x] [file]
options
- 문자 e,r과 w의 명령어의 출력을 없앤다
-x x 명령어는 암호와 선택 항목 인수이다
42. env - UNIX 명령어를 수행하기 위한 환경을 설정하는 명령어
문법 env [-] [name=value] ... [command arg]
options
- 기존 환경을 무시하고 지정된 환경으로 명령어를 수행
name=value 명령 수행 전의 원래 환경을 지정
command arg 수행하고자 하는 명령어 지정
43. eqn, neqn, checkeq - 수식 표현 포멧 도구
44. error - 컴파일러 오류 메시지 목록
45. ex, edit, e - 줄 편집기
ed 기능을 강화한 텍스트 편집기
문법 ex [-] [-trRV] [+command] name ...
options
- 대화형 사용자를 위해 feed-back을 억제
-t tag tag를 갖는 화일을 편집후 편집기를 그 화일의 위치에 지정
-r file file을 복구
R 읽기 허가만 된 모드로 한다
+ command 지정한 명령어를 수행하고 편집
46. expand, unexpand - TAB 문자를 공백문자로 바꿈, 또는 그 반대로
47. expr - 인자를 수식으로 처리
48. fgrep - 문자열에 따라 화일 검색
문자열에 따라 화일 검색(fgrep [option] string [file .. ) fgrep은 문자열에 따라 화일을 검색하여지정한 문자열이 있는 모든 행을 출력하며 정규식(영문,숫자,특수문자의 부분집합을 사용하는 식)을 사용 하는 grep와는 차이가 있다.
-b: 각 행의 선두에 그 행이 발견된 블럭번호를 넣어줌.
-c: 일치하는 패턴을 갖고 있는 행의 수 만을 출력함.
-l: 일치하는 행이 있는 화일의 화일명만을 복귀개행으로 구별시켜 출력하는데, 화일내에 패턴이 몇 개나 포함되어 있어도 화일명은 한 개밖에 출력하지 않음.
-n: 각 행의 선두에 화일내의 행번호를 넣음.(1 라인은 1임)
-i: 비교시 소문자와 대문자의 차이를 무시
-v: 일치하는 행을 제외한 모든행을 출력.
49. file - 파일 형식 알아보기
화일 형태를 결정하는 명령어
문법 file [-f] file ...
options
-f 다음 인수를 조사하고 싶은 화일명을 포함하는 화일로 간주
50. find - 파일 찾기
각 경로명에 대해서 계층적 directory를 순환적으로 내림차순으로 불(Boolean)표현식과 일치하는 화일을 찾는 명령어
문법 find pathname-list expression
options
-atime n 만약 화일이 n 날짜 이내에 접근되면 참
-cpio device 현재의 화일은 cpio(1)의 문법(5120byte 레코드)으로 장치에 써넣는다
-ctime n 화일이 n 날짜내에 변경되면 참
-exec cmd 지정한 명령어를 수행하고 종료상태로서 0의 값이 반환되면 참
-group gname 화일에 gname에 포함되어 있으면 참
-links n 화일이 n 개의 링크가 있으면 참
-mtime n 화일이 n 날짜 이내에 수정되면 참
-name file 화일이 현재의 화일명과 일치하면 참
-newer file 현 화일이 인수화일보다 최근에 수정되어 있으면 참
-ok cmd 명령어 라인을 의문부호를 선두에 부과하여 화면에 출력하며 만약 사용자가 y를 칠 경우에만실행 가능
-perm onum 화일의 허가 그래프가 9진수 onum과 일치하는 경우이면 참
(chmod(1) 참조)
-print 항상 참 ; 현재의 패스명을 출력
-size n 화일의 길이가 n 블럭(블럭당 512byte)이면 참
-type c 화일의 형태가 이면 참이며 여기서 말하는 c는 블럭형태인 특수화일,
문자형 특수화일, 디렉토리, 파이프 또는 일반화일을 각각 b,c,d,p,
또는 f로 표시
-user unname 화일이 사용자 unname에 속하면 참
(expression) 괄호내의 식이 참이면 참
1. 특정파일을 모두 찾아서 각각 "ls -l"하여 정보확인하기
[root@kebia_1 /root]# find / -name .searchfile -exec ls -l {} \;
2. 특정파일을 모두 찾아서 각각 파일내용 확인하기
[root@kebia_1 /root]# find / -name .searchfile -exec cat {} \;
51. finger - 사용자 정보 알아보기
who 명령을 보충하는 명령이 finger입니다. 특정 사용자에 대한 정보를 알려면 finger username(또는사용자가 다른 컴퓨터에 있으면 finger username@domain)을 입력합니다.
52. fmt, fmt_mail - 간단한 문서나, 편지 포멧 도구
53. fold - 긴 줄 출력 방법 지정
54. ftp - 파일 전송 프로그램
55. gcore - 실행 중인 프로세스의 core 이미지를 구한다.
56. gprof - call-graph profile data(?)를 보여줌
57. grep - 문자열 찾기
화일의 패턴을 검색하는 명령어
문법 grep [option] expression [file]
options
-b 각 라인의 첫머리에 블럭번호를 넣는다
-c 라인에 일치되는 수를 출력
-e expression a로 시작되는 식일 때 사용
-f file 규칙적인 식(grep) 또는 리스트열(fgrep)이 화일로부터 취한다
-l 일치되는 라인의 화일명만 출력
-s 읽지못하는 화일이거나 존재하지 않는 화일에 대한 에러 메세지 출력을 억제
-v 일치되는 라인을 제외한 모든 라인을 출력
-x 정확히 일치되는 라인을 출력 (fgrep만 사용)
58. groups - 사용자의 그룹을 보여줌
59. gzip - 확장자 .gz, .z 형태의 압축파일 생성
확장자 .gz, .z 형태의 압축파일 생성
% gzip [파일명] : 압축시
% gzip -d [파일명] : 해제시
60. head - 파일의 앞 부분 보기
% head -n filename : n줄 만큼 위세서부터 보여줌
61. history - 이전 명령 보기
62. hostname - 현재 시스템 이름을 보여줌
63. imake - makefile 만드는 프로그램
64. indent - C 프로그램 소스 파일을 들여쓰기 하는 포멧 도구
65. install - 파일 설치
66. ipcs - process 상호간의 통신에 대한 상태를 출력하는 명령어
문법 ipcs [-copqt]
options
-c 사용자의 로그인 명과 그룹명을 출력
-o 사용 상황 상태에 대한 정보를 출력
-p 프로세서 번호에 대한 정보를 출력
-q 수행중인 메세지 큐(Queue)에 대한 정보를 출력
-t 시간에 대한 정보를 출력
67. join - 관계형 데이터베이스 연산자
68. kill - 프로세스 죽이기
프로세스를 강제 종료하는 명령어
문법 kill [-signo] process id ...
options
1 hang up
2 인터럽터
3 정지
4 정확하지 않는 명령
5 trace trap
6 IOT
7 EMT
8 부도소수점 expression 발생
9 강제 종료
10 버스 에러
11 세그먼트 위배
12 bad system 콜
13 읽는 사람없이 파이프에 써 넣음
14 경보 신호
15 Software 종료
69. last - 사용자가 마지막 접속 상태를 보여줌
70. ld, ld.so - 링크 편집기, 동적 링크 편집기
71. leave - 자신의 접속 종료 시간을 알려줌
72. less - more 명령의 확장
73. lex - 어휘 분석 프로그램 생성기
74. link - 파일 및 디렉토리 링크 명령어
75. lint - C 프로그램 verifier
76. ln - 파일의 하드, 심벌릭 링크 명령
77. login - 시스템 접속 명령
78. look - 시스템 디렉토리나, 정열된 목록에서 단어 찾기
79. lookbib - 도서목록형 데이타베이스에서 찾기
80. lorder - 오브젝트 라이브러리의 관계 찾기
81. lp, cancel - 인쇄 시작, 취소
특정화일 및 정보를 프린터로 출력하는 명령어
문법 lp [-c] [-d lest] [-m] [-nnumber] [-0 option] [-s] [-t title]
[-w] files
options
-c 프린터가 끝나기전에 화일 변경이 가능하도록 프린트할 화일을 복사
-d dest 프린터 또는 프린터 클라스를 dest로 지정
-n 프린트 후 전자우편을 보낸다
-n number 프린트 할 매수를 지정
-s 메세지 출력을 억제
-w 프린트 후 사용자의 단말장치에 메세지를 보낸다
82. lpq - 인쇄 작업 상황 보기
83. lpr - 인쇄
84. lprm - 인쇄 작업 지우기
85. ls - 디렉토리 내용 보기
directory의 내용을 화면에 출력하는 명령어
문법 ls [-aAcCdDfFgimngrRstuxl] file ...
options
-a .file을 포함한 전 entry를 출력
-A -a option과 유사하지만 .또는 ..을 포함하는 화일은 출력 억제
-c 마지막 변경된 i-node의 시간을 출력
-C 멀티칼럼으로 출력하며 디폴트로는 CRT에 출력
-d directory명만 출력하며 내용은 출력하지 않는다
-D directory만 출력
-f 인수를 directory로 해석하며 각각의 슬롯에 있는 directory 및 file
명을 출력
-F system에 있는 화일이 directory면 /를 실행가능한 화일이면 *를 붙
인다
-g 옵션 -l과 같으나 소유자명이 출력되지 않는다
-i 첫 칼럼에 i-number를 출력
-l 화일 및 directory 상태 정보를 long 문법으로 출력
-m 스트림 문법의 출력
-n 소유자명과 그룹명 대신에 UID 번호와 GID 번호가 출력되는 것을 제
하고는 옵션 -l과 같다
-g 비도형문자를 ?문자로 출력
-r 화일명이나 수정시간을 알파벳 또는 오래된 역순으로 출력
-R 발견되는 sub-directory의 내용을 순환적으로 출력
-s 간접블럭을 내포하는 블럭수를 출력
-t 화일명 대신에 수정된 시간으로 분류
-u -t 또는 -l option으로 분류하는 중에서 최종접근 시간을 사용
86. mail, Mail - 전자 우편 프로그램
87. make - 실행 파일을 만들거나, 특정 작업 파일을 만들 때 사용하는 도구
88. man - 온라인 사용자 설명서를 보는 명령
원하는 명령어의 사용방법을 CRT 화면에서 알고자하는 명령어
문법 man [option ... ] [chapter] title ...
89. mesg - 메시지 수신 상태를 보거나 지정
90. mkdir - 디렉토리 만들기
디렉토리 생성
% mkdir download : download 디렉토리 생성
91. mkstr - C 소스 파일을 참조로 오류 메시지 파일을 만듬.
92. more, page - 텍스트 파일 보기 명령
cat 명령어는 실행을 시키면 한 화면을 넘기는 파일일 경우 그 내용을 모두 볼수가 없다. 하지만 more명령어를 사용하면 한 화면 단위로 보여줄 수 있어 유용.
% more <옵션>
옵션은 다음과 같습니다.
Space bar : 다음 페이지
Return(enter) key : 다음 줄
v : vi 편집기로 전환
/str : str 문자를 찾음
b : 이전 페이지
q : more 상태를 빠져나감
h : 도움말
= : 현재 line number를 보여줌
93. mount - file system을 mount하는 명령어
file system을 mount하는 명령어
문법 mount [special directory [-r]]
options
special directory에 있는 블럭형 특수장치를 말한다
directory special이나 resource를 위한 적재 directory를 가리킨다
-r special이나 resource를 읽기허가하여 적재하도록 한다
94. mountall - 여러개의 file system을 mount하는 명령어
여러개의 file system을 mount하는 명령어
문법 mountall [-] file system
mountall [-k]
options
- 입력되는 데이타가 표준입력
-k 화일을 open시키고 프로세서를 찾은 다음 SIGKILL 시그널을 보낸다
95. mv, mvdir - 파일 이동이나, 이름 바꾸기
파일이름(rename) / 위치(move)변경
% mv index.htm index.html
: index.htm 화일을 index.html 로 이름 변경
$ mv file ../main/new_file
: 파일의 위치변경
96. nawk - 패턴 검색과 언어 처리
97. nice - 낮은 우선권에서 명령 실행
문법 nice [- number] command [arguments]
options
- number 우선 순위를 1에서 19까지로 지정하며 디폴터로는 10
98. nm - 심블 이름 목록 보기
99. nroff - 문서 포멧 도구
100. od - 8진수, 10진수, 16진수, ascii 덤프
8진수로 덤프하는 명령어
문법 od [-bcdox] [file] [[+[x]] offset [.] [b]]
options
-b 8진수로 byte를 해석
-c ASCII code로 byte를 해석
-d 10진수로 단어를 해석
-o 8진수로 단어를 해석
-x 16진수로 단어를 해석
101. passwd, chfn, chsh - 비밀번호, 핑거정보, 쉘 바꾸기
102. paste - 여러파일의 서로 관련 있는 줄 연결시키기
103. pr - 문서 파일 양식화 도구
104. printenv - 현재 환경 변수들의 내용과 그 값 알아보기
105. prof - profile 자료 보기
106. ps - 현재 프로세스 정보 보기
실행중인 프로세스에 관한 정보를 출력하는 명령어
문법 ps [options]
options
-a 프로세스 그룹의 리더 및 단말장치와 관계없는 프로세스를 제외한 빈번하게 사용되는 모든 프로세스에 관한 정보를 출력
-d 프로세스 그룹의 리더(rearder)를 제외한 모든 프로세스에 대한 정보를 출력
-e 현재 system내에서 실행중인 모든 프로세스 정보를 출력
-f 프로세스 관한 전부의 정보를 출력
-l 프로세스에 관한 정보를 long(롱)으로 출력
-n name list system 내의 name list 화일의 이름을 지정
-u uidlist 지정한 사용자 ID번호 또는 login명을 갖고있는 프로세스에 관한 정보만을 출력
107. ptx - permuted(순열화된?, 교환된?) 색인 만들기
108. pwd - 현재 작업 디렉토리 보기
109. quota - 한 사용자에게 지정된 디스크 할당량보기
110. ranlib - archive를 random 라이브러리로 변화
111. rcp - 리모트 카피
112. rcs - RCS 파일 속성 바꾸기
113. rcsdiff - RCS revisions 비교
114. rev - 한 줄의 문자열 꺼꾸로
115. rlogin - 리모트 로그인
116. rm, rmdir - 파일, 디렉토리 지우기
% rm test.html : test.html 화일 삭제
% rm -r <디렉토리> : 디렉토리 전체를 삭제
% rm -i a.*
: a로 시작하는 모든 파일을 일일이 삭제할 것인지 확인하면서 삭제
117. roffbib - 도서목록형 데이터베이스 보기 또는 양식화
118. rsh - 리모트 쉘
119. rup - 로칼 머쉰의 호스트 상태 보기(RPC version)
120. ruptime - 로칼 머쉰의 호스트 상태 보기
121. rusers - 현재 접속자 보기 (RPC version)
122. rwall - 모든 사용자에게 알림(RPC)
123. rwho - 현재 접속자 보기
124. sccs - Source Code Control System (SCCS)
125. sccs-admin, admin - SCCS 사용 내역 파일을 만들고, 관리
126. sccs-cdc, cdc - SCCS 델타의 델파 주석을 바꿈
127. sccs-comb, comb - SCCS 델타 조합
128. sccs-delta, delta - SCCS 파일에 데해 델타를 만듬
129. sccs-get, get - SCCS 파일 버전확인
130. sccs-help, help - SCCS 오류나 경고 메시지 검색
131. sccs-prs, prs - SCCS 사용내역의 선택된 부분 보기
132. sccs-prt, prt - SCCS 파일에서 델타 테이블 정보를 봄
133. sccs-rmdel, rmdel - SCCS 파일에서 델타를 지움
134. sccs-sact, sact - SCCS 파일의 편집 상태를 봄
135. sccs-sccsdiff, sccsdiff - SCCS 파일들의 버전 비교
136. sccs-unget, unget - SCCS 파일의 미리 얻은 것(?)을 취소한다.
137. sccs-val, val - SCCS 파일 유요화
138. script - 화면 갈무리
139. sdiff - 라인 단위의 차이를 비교하는 diff 명령어
문법 sdiff [losw] file1 file2
options
-r 라인 내용이 같으면 왼쪽만 출력
-o output 사용자가 지정한 문법으로 file1과 file2를 합병하고 같은 내용의 라
인을 output으로 지정한 화일에 복사
-s 같은 내용의 라인을 출력하지 않음
-Wn 인수 n 만큼 출력 라인의 폭을 지정
140. sed - stream editor
문법 sed [-efn] files
options
-e script 편집 명령어의 script를 지정
-n 이 옵션 생략시 출력하지 않음
-f sfile 화일 sfile에 script를 취하여 편집
-files 편집할 화일 지정
141. sh - 유닉스 표준 쉘
142. size - 오브젝트 파일의 크기들을 보여줌
143. sleep - 지정한 시간 만큼 실행 보류
초단위로 정의된 시간을 n 초 동안 실행을 정지시키는 명령어
문법 sleep time
144. sort - 줄 정열과 검색
모든 화일의 라인을 함께 소트(sort)하여 그 결과를 화면 또는 지정한 장소에 출력하는 명령어
문법 sort [-cmu]
[-o output]
[-ykmem]
[-zrecsz]
[-dfiMnr]
[-btx]
[+pos1 [pos2]] [files]
options
-b 필드비교시 앞에 붙는 공백을 무시
-c 입력화일이 순서대로 소트 되어있는지를 검사하여 소트되어 있지 않
으면 출력하지 않는다
-d 사전식 순서비교
-f 대문자와 소문자를 구별하지 않는다
-i 인쇄불가능 문자를 무시
문자비교에 있어 ASCII코드 040-0176의 문자만 유효
-r 역순으로 소트
-o output 출력화일명을 output으로 지정
-m 화일을 합병(merge)한다
-u 화일내의 같은 라인은 한 라인만 남기고 삭제
145. sortbib - 도서목록형 데이터베이스 정열
146. spell, hashmake, spellin, hashcheck - 맞춤범 검사(물론 영어겠지요)
147. split - 파일 나누기
system의 화일을 분할하는 명령어
문법 split [-n] [file [name]]
options
-n 화일을 n라인씩 분할하며 이 옵션을 생략하면 1000라인씩 분할
148. strings - 오브젝트 파일이나, 실행 파일에서 문자열 찾기
149. strip - 오브젝트 파일에서 심벌 테이블과 중복된 비트 삭제
150. stty - 터미날 설정
단말장치의 옵션의 설정상황을 출력한다
문법 stty [-a] [-g] [options]
options
-a 모든 옵션의 설정사항을 출력
-g 현재의 설정사항을 출력
151. su - super-user, 임시적으로 새 ID로 바꿈
152. sum - 화일 check sum과 블럭수를 나타내는 명령어
문법 sum [-r] file
options
-r 알고리즘을 check sum계산에 사용
file sum 처리를 하는 화일명
153. symorder - 심벌 순서 바꿈
154. tabs - 터미날 tab 크기 지정
155. tail - 파일의 끝 부분 보기
% tail -n filename : n줄 만큼 아래에서부터 보여줌
156. talk - 다른 사용자와 이야기하기
157. tar - 여러 파일 묶기 또는 묶긴 파일 풀기
.tar, _tar로 된 파일을 묶거나 풀때 사용하는 명령어
(압축파일이 아님)
% tar cvf [파일명(.tar, _tar)] 압축할 파일(또는 디렉토리): 묶을때
% tar xvf [파일명(.tar, _tar)] : 풀 때
(cf) cvfp/xvfp 로 하면 퍼미션 부동
아카이브 화일을 자기테이프에 저장하는 명령어
문법 tar [crtuxNbf lmgvw] [file ... ]
options
c 새로운 테이프에 새로 저장
r 지정한 화일을 테이프의 마지막부터 저장
t 지정한 화일이 테이프에 검출될 때마다 화일명 및 정보를 출력
x 지정한 화일을 테이프에서 꺼집어 낸다
158. tbl - nroff 또는 troff의 도표 작성 도구
159. tee - 표준 출력으로 방향 전환
160. telnet - TELNET 프로토콜을 이용한 원격 리모트 호스트 접속
161. test - 주워진 환경이 참인지, 거짓인지를 돌려줌
162. tftp - 간단한 ftp.
163. time - 명령 실행 시간 계산
164. touch - 파일 날짜 관련 부분을 바꿈
파일이나 디렉토리의 timestamp를 업데이트시키는 명령어이다. 현존하는 특정 파일을 지정하지 않으면,해당 이름의 비어있는 파일이 생성된다
165. troff - 문서 양식화 도구
166. true, false - 쉘 스크립트에서 사용되는 참/거짓을 리턴하는 명령
167. tsort - topological sort
168. tty - 현재 터미날 이름 보기
169. ue - MICROemacs
170. ul - 밑줄 속성 문자 표현
171. umask - 시스템 파일이 만들어질 때 허가권의 기본값을 정하기 위해 사용되는 명령어
172. unifdef - cpp 입력 줄에서 ifdef 부분 바꾸거나 지움
173. uniq - 중복되는 빈줄 지우기
문법 uniq [-dcu [+n] [-n]] [input [output]]
options
-c 각 라인 앞의 중복된 횟수를 나타낸다
-d 중복된 라인의 첫째 라인만 출력
-u 중복되지 않은 라인만 출력
input 입력화일 지정
output 출력화일 지정
174. units - 프로그램 변환도구
175. uptime - 시스템 부팅 기간 보기
176. users - 현재 접속 사용자 보기
177. uucp, uulog, uuname - 시스템 간의 복사
178. uuencode, uudecode - 이진 파일을 아스키파일로 인코딩, 반대로 디코딩
179. uusend - 리모트 호스트에 파일 보내기
180. uux - 리모트 시스템 명령 실행
181. vacation - 자동으로 편지 답장하기
182. vgrind - grind nice program listings
183. vi, view, vedit - ex 바탕의 편집기
184. vtroff - 문서 양식화 도구
185. w - 현재 누가 접속해 있으며, 무엇을 하고있는지
186. wait - 프로세스가 마치기를 기다림
프로세스의 종료를 기다린 후 그 결과를 출력하는 명령어
문법 wait [n]
options
n 대기하는 백그라운드 프로세서 ID를 지정
187. wall - 모든 사용자에게 알림
UNIX sysytem을 사용하는 모든 사용자에게 메세지를 전달하는 명령어
문법 wall login name
188. wc - 단어, 줄, 바이트 계산
화일에 있는 단어 ,라인,문자수를 계산하는 명령어
문법 wc [-clw] [file ... ]
options
-c 문자수만 계산
-l 라인수만 계산
-w 단어수만 계산
189. what - 파일에서 SCCS 버전 정보 알아냄
190. whatis - 명령의 간단한 설명 보여줌
191. whereis - 찾는 명령의 실행파일, 소스, 맨페이지가 어디 있는지 경로를 보여줌
192. which - 명령만 찾음.
193. who - 시스템에 접속되어 있는 사람만 보여줌
194. whoami - 현재 사용하고 있는 자신이 누군지 보여줌
195. write - 다른 사용자의 화면에 특정 내용을 알림
다른 사용자에게 메세지를 전달하는 명령어
문법 write user [line]
options
user 메세지를 보내는 사용자명
line 접속할 라인이나 terminal을 지정
196. xargs - 명령행 인자 처리 명령
197. xstr - extract strings from C programs to implement shared strings
198. yacc - yet another compiler-compiler: 파싱(형태소분석) 프로그램 생성기
199. yes - 항상 yes만 응답하는 명령
200. zcat - 압축 파일 내용보기
TCPDUMP 사용법 (0) | 2007.10.30 |
---|---|
블루스크린 ErrorCode Define 값입니다. (0) | 2007.09.21 |
gcc와 make 강좌 (0) | 2007.05.01 |
vi 사용법의 모든것 !!! [리눅스] (0) | 2007.05.01 |
리눅스 명령어 모음 !!! (0) | 2007.05.01 |
프로그래밍 :: 오라클 강좌
★ SQL 의 종류
1.DDL (Data Definition Language): 데이터와 그 구조를 정의 합니다. |
SQL문 | 내 용 |
CREATE | 데이터베이스 객체를 생성 합니다. |
DROP | 데이터베이스 객체를 삭제 합니다. |
ALTER | 기존에 존재하는 데이터베이스 객체를 다시 정의하는역할을 합니다. |
|
SQL문 | 내 용 |
INSERT | 데이터베이스 객체에 데이터를 입력 |
DELETE | 데이터베이스 객체에 데이터를 삭제 |
UPDATE | 기존에 존재하는 데이터베이스 객체안의 데이터 수정 |
SELECT | 데이터베이스 객체로부터 데이터를 검색 |
|
SQL문 | 내 용 |
GRANT | 데이터베이스 객체에 권한을 부여 합니다. |
REVOKE | 이미부여된 데이터베이스객체의 권한을 취소합니다. |
★ 사용자의 생성
새로운 USER를 생성하기 위해서는CREATE USER문을 이용하면 됩니다.
USER를 생성하기 위해서는USER생성 권한이 있는 사용자로 접속해야 합니다.
사용자 생성 문법(Syntax) -user_name: 사용자 이름 -BY password: 사용자가데이터베이스에 의해 인증되도록 지정하며,데이터베이스 유저 로그온시 사용하는 비밀번호 입니다. -EXTERNALLY: 사용자가운영 체제에 의해서 인증되도록 지정합니다. -DEFAULT TABLESPACE는사용자 스키마를 위한 기본 테이블 스페이스를 지정합니다. -TEMPORARY TABLESPACE는사용자의 임시 테이블 스페이스를 지정합니다. -QUOTA절을 사용하여사용자가 사용할 테이블 스페이스의 영역을 할당합니다. -PASSWORD EXPIRE: 사용자가 SQL*PLUS를 사용하여데이터베이스에 로그인할 때 암호를 재설정하도록 합니다.(사용자가 데이터베이스에 의해 인증될 경우에만 적합한 옵션입니다.) -ACCOUNT LOCK/UNLOCK: 사용자 계정을 명시적으로 잠그거나 풀 때 사용할 수 있습니다.(UNLOCK이 기본값입니다.) -PROFILE:자원 사용을 제어하고 사용자에게 사용되는 암호 제어 처리 방식을 지정하는데 사용됩니다. ※ 여기선 간단한 유저생성에 대해서만 알아보고 자세한 유저관리와 PROFILE 관리는 어드민에서 설명 하겠습니다. ※ 참고 1 -임시 테이블스페이스를 지정해 주지 않으면 시스템 테이블스페이스가 기본으로 지정되지만시스템 테이블스페이스에 단편화가 발생할 수 있으므로사용자를 생성할때 임시테이블스페이스를 따로 지정해 주는 것이 좋습니다. - 또한DEFAULT TABLESPACE도 사용자를 생성할때 지정해 주지 않으면 기본적으로 시스템 테이블스페이스가 지정이 됩니다.하지만사용자를 생성할때 DEFAULT TABLESPACE를 지정을 해서 사용자가 소유한 데이터와 객체들의 저장 공간을 별도로 관리를 해야 합니다. 시스템 테이블스페이스는 본래의 목적(모든 데이터 사전 정보와, 저장 프로시저, 패키지, 데이터베이스 트리거등을 저장)을 위해서만 사용되어져야 하지 일반사용자의 데이터 저장용으로 사용 되어서는 안됩니다. ※ 참고 2 테이블 스페이스란? -오라클 서버가 테이터를 저장하는 논리적인 구조입니다. - 테이블스페이스는하나 또는 여러개의 데이터파일로 구성되는 논리적인 데이터 저장 구조입니다. 테이블 스페이스에 대한 자세한 내용는 오라클 어드민의 테이블스페이스 강좌에서 학습하겠습니다. |
|
SQL PLUS를 실행시키고 SCOTT/TIGER로 접속을 합니다. |
새로 생성한 USER로 접속해 볼까요.. |
★ User의 변경 및 삭제
USER 변경하기 위해서는ALTER USER문을 사용합니다..
● ALTER USER문으로 변경 가능한 옵션
- 비밀번호
- 운영체제 인증
- 디폴트 테이블 스페이스
- 임시 테이블 스페이스
- 테이블 스페이스 분배 할당
- 프로파일 및 디폴트 역할
|
|
|
|
※CASCADE를 사용하게 되면사용자 이름과 관련된 모든 데이터베이스 스키마가 데이터 사전으로부터 삭제되며 모든 스키마 객체들 또한 물리적으로 삭제 됩니다. |
|
|
★시스템 권한(System Privileges)
오라클에서 권한(Privilege)은 특정 타입의 SQL문을 실행하거나 데이터베이스나 데이터 베이스
-system_privilege: 부여할시스템 권한의 이름 -role: 부여할데이터베이스 역할의 이름 -user, role: 부여할사용자 이름과 다른 데이터 베이스 역할 이름 -PUBLIC:시스템 권한, 또는 데이터베이스 역할을 모든 사용자에게 부여할 수 있습니다. -WITH ADMIN OPTION:권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로 부여할 수 있게 되며,만약 사용자가 WITH ADMIN OPTION과 같이 역할을 부여 받는다면 부여된 역할은 그 사용자에 의해 변경 또는 삭제 될 수 있습니다. |
|
|
|
문법(Syntax) |
|
|
|
WITH ADMIN OPTION을 사용하여 시스템 권한을 부여했어도 시스템 권한을 취소 할 때는 연쇄적으로 취소 되지 않습니다.
|
★객체 권한(Object Privileges)
◈Object Privileges(객체 권한)
객체권한 | 테이블 | 뷰 | Sequence | Procedure |
ALTER | ○ |
| ○ |
|
DELETE | ○ | ○ |
|
|
EXECUTE |
|
|
| ○ |
INDEX | ○ |
|
|
|
INSERT | ○ | ○ |
|
|
REFERENCES | ○ |
|
|
|
SELECT | ○ | ○ | ○ |
|
UPDATE | ○ | ○ |
|
|
-object_privilege: 부여할 객체권한의 이름 -object: 객체명 -user, role: 부여할사용자 이름과 다른데이터 베이스 역할 이름 -PUBLIC: 오브젝 권한, 또는 데이터베이스 역할을모든 사용자에게 부여할 수 있습니다. -WITH GRANT OPTION:권한을 부여 받은 사용자도 부여 받은 권한을 다른 사용자 또는 역할로 부여할 수 있게 됩니다. |
|
|
- 객체 권한의 철회는그권한을 부여한 부여자만이 수행할수 있습니다. -CASCADE CONSTRAINTS: 이 명령어의 사용으로 REFERENCES객체 권한에서 사용된 참조 무결성 제한을 같이 삭제 할 수 있습니다. -WITH GRANT OPTION으로 객체 권한을 부여한 사용자의 객체 권한을 철회하면,권한을 부여받은 사용자가 부여한 객체 권한 또한 같이 철회되는 종속철회가발생합니다. |
|
|
|
WITH GRANT OPTION을 사용하여 부여한 객체 권한을 취소하면 취소 작업이 연쇄적으로 수행 됩니다.
|
|
★롤(Role)
|
★ 테이블의 생성
이번 강좌는 오라클 테이블해 대해서 설명을 하겠습니다.
테이블은 실제로 데이터들이 저장되는 곳 이라고 생각하면 쉽게 이해 할 수 있습니다.
CREATE TABLE명령어를 이용해서 테이블을 생성 할 수 있습니다.
아래의 내용은 테이블에 대한 보충 설명입니다.
테이블 이란? 1. 테이블은 오라클 데이타베이스의기본적인 데이타 저장 단위입니다. 2. 데이타베이스 테이블은 사용자가 접근 가능한 모든 데이타를 보유하며레코드와 컬럼으로 구성 됩니다. 관계형 데이타베이스가 아닌 예전의 데이타 베이스 용어에서는 파일과 테이블이, 필드와 컬럼이, 그리고 레코드와 행이 동일시 되었습니다. 3. 테이블은 시스템내에서 독립적으로 사용되길 원하는 엔티티를 표현할수 있습니다. 예를 들면, 회사에서의 고용자나 제품에 대한 주문은 테이블로 표현 가능합니다. 4. 테이블은 두 엔티티간의 관계를 표현할 수 있습니다. 즉 테이블은 고용자와 그들의 작업 숙련도 혹은 제품과 주문과의 관계를 표현하는데 사용될 수 있습니다. 테이블내에 있는 외래 키 (ForeIgn Key)는 두 엔티티 사이의 관계를 표현하는데 사용됩니다. 5. 비록 "테이블" 이라는 말이 더 많이 사용되지만 테이블의 형식어는 "릴레이션" 입니다. 컬 럼 - 테이블의 각 컬럼은 엔티티의 한 속성을 표현한다 행(ROW, 레코드) -테이블의 데이타는 행에 저장됩니다 |
|
- 테이블 이름과 컬럼은 항상 알파벳 문자로 시작해야 하며A~Z까지의 문자, 0~9까지의 숫자, |
-테이블의 컬럼 이름은30자를 초과할수 없고,예약어를 사용할수 없읍니다. |
- 오라클 테이블한 계정안에서 테이블 이름은 다른 테이블 이름과 달리 유사해야 합니다. |
- 한 테이블 안에서 컬럼이름은 같을수 없으며 다른 테이블에서의 컬럼이름과는 같을수 있습니다. |
테이블의 생성 문법 |
[Syntax]
|
테이블의 생성 예제 |
emp2와 dept2테이블을 생성하는 예제입니다. |
유저가 소유한 모든 테이블 보기 |
USER_TABLES데이터사전을 조회 하면유저가 소유한 테이블을 확인 할 수 있습니다. -- SQL*Plus에서 실행해 보세요.. SQL>SELECT table_name FROM USER_TABLES; TABLE_NAME ------------ BONUS CRETABLE DEPT DUMMY EMP EMP2 SALGRADE 위와 같이 테이블 목록이 조회 됩니다. |
★ 테이블의 제약조건
제약조건 (Constraint)
제약조건이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러 가지 규칙을 적용해 놓는거라 생각하면 됩니다. 간단하게테이블안에서 테이터의 성격을 정의하는 것이 바로 제약조건 입니다.
★데이터의 무결성 유지를 위하여 사용자가 지정할 수 있는 성질입니다.
★모든 CONSTRAINT는 데이터 사전(DICTIONARY)에 저장됩니다.
★ 의미있는 이름을 부여했다면 CONSTRAINT를 쉽게 참조할 수 있습니다.
★ 표준 객체 명명법을 따르는 것이 좋습니다.
★ 제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 구조변경(ALTER)명령어를
통해서도 추가가 가능합니다.
★ NOT NULL제약조건은 반드시 컬럼 레벨에서만 정의가 가능합니다.
|
여기서emp_nn_ename은 (테이블이름_제약조건이름_컬럼이름)형식으로 CONSTRAINT_NAME |
|
|
|
|
|
SQL>CREATE TABLE emp( |
|
※ 기본키는 그 데이터 행을 대표하는 컬럼으로서의 역할을 수행하여다른 테이블에서 UNIQUE 조건과 마찬가지로 기본키를 정의하면 자동으로 인덱스를 생성하며 |
|
SQL>CREATE TABLE emp( |
|
|
제약 조건의 확인 |
★ 테이블의 관리
테이블의 관리는 테이블의 컬럼 관리와 테이블 정보 관리로 나누어서 설명 하겠습니다.
① 테이블 컬럼의 관리
테이블의 컬럼은 ADD, MODIFY, DROP연산자를 통해서 관리 할 수 있습니다.
ADD연산자 :테이블에 새로운 컬럼을 추가할 때 사용 합니다.
SQL>ALTER TABLE empADD(addr VARCHAR2(50)); |
|
|
|
|
② 테이블 정보의 관리 |
한번 실습해 보세요.. SQL>CREATE TABLE emp2 AS SELECT * FROM emp; 테이블이 생성되었습니다. |
|
STORAGE-CLAUSE에 들어올 수 있는 스토리지 파라미터를 정리하면 아래와 같습니다. - NEXT 다음 번 생성될 익스텐트의 크기를 Byte단위로 지정합니다. 이후의 익스텐트 크기는 PCTINCREASE만큼씩 증가 됩니다. - PCTINCREASE 마지막 생성된 익스텐트의 바로 다음에 생성될 익스텐트의 증가율을 퍼센트지로 지정합니다. - MINEXTENTS 최초 생성되는 익스텐트의 수를 지정합니다. - MAXEXTENTS 생성될 수 있는 최대 익스텐트의 수를 지정합니다. 기타 블록관련 파라미터는 테이블의 생성 강좌를 참고하세요.. |
|
-- 한번 실습해 보세요. SQLPLUS scott/tiger SQL>ALTER TABLE emp MOVE TABLESPACE test; 테이블이 변경되었습니다 |
|
|
|
SQL>DROP TABLEemp ; SQL>DROP TABLEempCASCADE CONSTRAINT; CASCADE CONSTRAINT :외래키에 의해 참조되는 기본키를 포함한 테이블일 경우 기본키를 참조하던 외래 키 조건도 같이 삭제 됩니다. |
★ 데이터의 삽입, 수정, 삭제
▣ INSERT |
|
◈모든 데이터를 입력할 경우 SQL>INSERT INTODEPT SELECT* FROM SCOTT.DEPT ; 직접 데이터를 입력해 봅시다. 오라클을 설치하면 SCOTT/TIGER USER에 기본적으로 EMP, DEPT테이블이 있습니다. 그 데이터를 TEST/TEST USER에 생성한 EMP, DEPT테이블에 INSERT하겠습니다. SQL>INSERT INTODEPT SELECT* FROM SCOTT.DEPT ; 4 개의 행이 만들어졌습니다. SQL> COMMIT; 커밋이 완료되었습니다. SQL> INSERT INTO EMP SELECT * FROM SCOTT.EMP; 15 개의 행이 만들어졌습니다. SQL> COMMIT; 커밋이 완료되었습니다. |
|
SQL>UPDATEEMP |
|
SQL>DELETEFROMEMP |
★ Select문 및 연산자
SELECT문은데이터베이스로부터 저장되어 있는 데이터를 검색하는데 사용합니다.
[Syntax]
SQL>SELECTempno 사번, ename 성명 |
▣ IN, NOT IN 연산자 |
IN 연산자 SQL> SELECT empno, ename FROM emp WHERE empnoIN (7900, 7934); --> 사번이 7900, 7934번인 사원의 사번과 성명 출력 EMPNO ENAME --------- ------------- 7934 MILLER 7900 JAMES 2 개의 행이 선택되었습니다. |
NOT IN 연산자 |
|
BETWEEN 연산자 |
|
구 분 | 설 명 |
LIKE 'A%' | 컬럼이 'A'로 시작하는 데이터들만 검색됩니다. |
LIKE '%A' | 컬럼이 'A'로 끝나는 테이터들만 검색됩니다. |
LIKE '%KIM%' | 컬럼에 'KIM' 문자가 있는 데이터 들만 검색됩니다. |
LIKE '%K%I%' | 컬럼에 'K' 문자와 'I'문자가 있는 데이터 들만 검색됩니다. |
LIKE '_A%' | 컬럼에 'A'문자가 두 번째 위치한 데이터 들만 검색됩니다. |
|
|
|
SQL> SELECT empno, ename |
★ 예명(Alias)
테이블 예명(Alias)
-테이블 alias로column을 단순, 명확히 할 수 있습니다.
-현재의 SELECT 문장에 대해서만 유효합니다.
- 테이블 alias는 길이가 30자 까지 가능하나짧을수록 더욱 좋습니다.
- 테이블alias는 의미가 있어야 합니다
- FROM절에 테이블 alias설정시 해당 테이블 alias는 SELECT문장에서 테이블 이름 대신에
사용해야 합니다.
|
★Equi Join, Non_Equi Join, Self Join
조인(Join) ?
◈둘이상의 테이블을 연결하여 데이터를 검색하는 방법입니다.
◈보통 둘 이상의 행들의 공통된 값 Primary Key 및 Foreign Key 값을 사용하여 조인합니다.
◈그러므로 두 개의 테이블을 SELECT문장 안에서 조인하려면 적어도 하나의 컬럼이
그 두 테이블 사이에서 공유 되어야 합니다..
|
|
|
SQL>SELECT e.ename, d.dname |
|
SQL>SELECT e.ename, d.dname |
|
SQL> SELECT concat(a.ename,' ') ||' : \'|| b.sal 급여 이름과 급여를 연결시켜서 보여줍니다. |
★Outer Join (LEFT, RIGHT, FULL OUTER JOIN)
◈Out(외부) Join
- equijoin 문장들의 한가지 제약점은 그것들이 조인을 생성하려 하는 두 개의 테이블의 두 개
컬럼에서 공통된 값이 없다면 테이블로부터 테이터를 Return하지 않는 다는 것입니다.
- 정상적으로 조인 조건을 만족하지 못하는 행들을 보기위해 outer join을 사용합니다.
Outer join 연산자 "( + )"입니다.
-조인시킬 값이 없는 조인측에 "( + )"를 위치 시킵니다.
- Outer join 연산자는 표현식의 한 편에만 올 수 있습니다.
|
Oracle9i부터는 ANSI/ISO SQL표준인LEFT OUTER JOIN,RIGHT OUTER JOIN,FULL OUTER JOIN를 지원 합니다. |
☞LEFT OUTER JOIN 왼쪽 테이블에 조인시킬 컬럽의 값이 없는 경우 사용합니다. SQL>SELECT DISTINCT(e.deptno), d.deptno FROM dept dLEFT OUTER JOINemp e ONd.deptno = e.deptno; ☞RIGHT OUTER JOIN - 오른쪽에 테이블에 조인시킬 컬럽의 값이 없는 경우 사용합니다. SQL>SELECT DISTINCT(a.deptno), b.deptno FROM emp aRIGHT OUTER JOINdept b ONa.deptno = b.deptno; ☞FULL OUTER JOIN 양쪽 테이블에 다 outer join을 거는것을 TWO-WAY OUTER JOIN 또는 FULL OUTER JOIN이라 합니다. SQL>SELECT DISTINCT(a.deptno), b.deptno FROM emp aFULL OUTER JOINdept b ONa.deptno = b.deptno; -- 위 세 문장의 결과는 아래와 같습니다. DEPTNO DEPTNO ---------- ---------- 10 10 20 20 30 30 40 LEFT OUTER JOIN과 RIGHT OUTER JOIN의 테이블 순서를 바꾸어 가면서 테스트를 하시면 쉽게 이해를 하실 수 있습니다. |
★Commit과 Rollback 예제
Commit 과 Rollback
이전의 커밋(COMMIT)이 일어난 뒤부터 다음의 커밋(COMMIT) 전까지의 작업이 하나의 트랜
잭션 이며, 커밋과 롤백(ROLLBACK)은 이러한 트랜잭션 단위로 데이터 베이스에서 발생한
작업을 저장, 삭제하는 일입니다.
- Automatic commit:DDL(Create, Alter, Drop), DCL(Grant, Revoke)
- Automatic Rollback:비정상적인 종료, system failure
커밋과 롤백 예제입니다.
|
|
SQL>INSERT INTO emp(empno, ename, hiredate) VALUES(10000, 'test2', sysdate ); |
★숫자함수(Number Functions)
숫자함수(Number Functions)
|
SQL>SELECTABS(-10)Absolute FROM dual ; |
|
SQL>SELECTCEIL(10.1)TEST FROM dual ; SQL>SELECTCEIL(-10.1)TEST FROM dual ; |
|
|
SQL>SELECTFLOOR(10.1)TEST FROM dual ; SQL>SELECTFLOOR(-10.1)TEST FROM dual ; |
|
|
SQL>SELECTMOD(9, 4)TEST FROM dual ; |
|
SQL>SELECTPOWER(4, 2)TEST FROM dual ; |
|
SQL>SELECTROUND(192.123, 1)TEST FROM dual ; SQL>SELECTROUND(192.123, -1)TEST FROM dual ; |
|
|
|
SQL>SELECTTRUNC(7.5597, 2)TEST FROM dual ; |
CEIL COS COSH EXP FLOOR LN LOG MOD POWER ROUND (number) SIGN SIN SINH SQRT TAN TANH TRUNC (number) WIDTH_BUCKET |
★문자열 처리 함수(Character Functions)
문자열 처리 함수(Character Functions)
|
SQL>SELECTCONCAT('Oracle', ' Korea')NAME FROM dual ; |
|
SQL>SELECTINITCAP('kim jung sick')NAME FROM dual ; |
|
SQL>SELECTLOWER('KIM JUNG SICK')NAME FROM dual ; SQL>SELECTUPPER('kim jung sick')NAME FROM dual ; |
|
SQL>SELECTLPAD('JUNG-SICK', 10, '*')NAME FROM dual ; |
|
SQL>SELECTRPAD('JUNG-SICK', 10, '*')NAME FROM dual ; |
|
SQL>SELECTSUBSTR('JUNG-SICK', 3, 3)NAME FROM dual ; -- 뒤에서부터 자를 |
|
SQL>SELECTLENGTH('JUNG-SICK') TESTFROM dual ; |
|
|
|
|
|
|
|
Character Functions |
CHR CONCAT INITCAP LOWER LPAD LTRIM NLS_INITCAP NLS_LOWER NLSSORT NLS_UPPER REPLACE RPAD RTRIM SOUNDEX SUBSTR TRANSLATE TREAT TRIM UPPER ASCII INSTR LENGTH |
★날짜 처리 함수(Date Functions)
LAST_DAY(d)
LAST_DAY함수는 달의 마지막 날의 날짜를 반환합니다
SQL>SELECT SYSDATE TODAY,LAST_DAY(SYSDATE) LASTDAYFROM dual ; |
|
SQL>SELECT TO_CAHR(ADD_MONTHS(SYSDATE,3),'RRRR/MM/DD' LASTDAY) "date" |
|
SQL>SELECTMONTHS_BETWEEN(TO_DATE('2000/06/05') , TO_DATE('2000/09/23')) "Date" |
|
SQL>SELECTROUND(TO_DATE('1998/09/11'), 'YEAR') FROM dual ; |
☞ 날짜에 대한 산술 연산
|
★ 변환 함수(Conversion Functions)
TO_CHAR
TO_CHAR함수는 DATE형, NUMBER형을 VARCHAR2형으로 바꺼 줍니다.
SQL>SELECTTO_CHAR(SYSDATE, 'MONTH') CHARTESTFROM dual ; |
|
SQL>SELECTTO_DATE('2000/06/16','RRRR/MM/DD')FROM dual ; |
|
SQL>SELECTTO_NUMBER('1210616')FROM dual ; |
★General Functions
NVL |
SQL>SELECT empno,NVL(comm, 0) |
|
SQL> SELECT deptno, DEPTNO DECODE(DEP |
★기타 함수들
DUMP: DUMP는 바이트 크기와 해당 데이터 타입 코드를 반환합니다.. |
SQL>SELECT ename,DUMP(ename, 16) "16진수" |
|
SQL>SELECTGREATEST(10, 100, 5, -7) FROM DUAL; |
|
SQL>SELECTLEAST(10, 100, 5, -7) FROM DUAL; |
|
SQL> SELECTUSER, UIDFROM DUAL; |
|
SQL> SELECTUSERENV('LANGUAGE') FROM DUAL; |
|
SQL> SELECTVSIZE(ename), ename |
★Group Function의 종류
☞ 그룹함수란 ?
- 그룹 함수란여러 행 또는 테이블 전체의 행에 대해 함수가 적용되어 하나의 결과값을 가져오는
함수를 말합니다..
-GROUP BY절을 이용하여그룹 당 하나의 결과가 주어지도록 그룹화 할 수 있습니다.
-HAVING절을 사용하여그룹 함수를 가지고 조건비교를 할 수 있습니다.
-COUNT(*)를 제외한 모든 그룹함수는 NULL값을 고려하지 않습니다.
-MIN, MAX그룹함수는모든 자료형에 대해서 사용 할 수 있습니다.
☞그룹 함수의 종류
COUNT
COUNT 함수는 검색된 행의 수를 반환합니다.
SQL>SELECTCOUNT(deptno) FROM DEPT ; |
|
SQL>SELECTMAX(sal) salary FROM emp ; |
|
SQL>SELECTMIN(sal) salary FROM emp ; |
|
SQL>SELECTROUND(AVG(sal),1) salary FROM emp WHERE deptno = 30 |
|
SQL>SELECTSUM(sal)salary FROM emp WHERE deptno = 30; |
|
SQL> SELECTROUND(STDDEV(sal),3)salary FROM emp WHERE deptno = 30 ; |
★Group By절과 Having절
GROUP BY
- 특정한 컬럼의 테이터 들을 다른 데이터들과 비교해유일한 값에 따라 무리를 짓습니다.
-GROUP BY절을 사용하여한 테이블의 행들을 원하는 그룹으로 나눕니다.
- Column명을 GROUP함수와 SELECT절에 사용하고자 하는 경우 GROUP BY뒤에 Column명을
추가 합니다.
부서별로 그룹을 지은 검색 결과 값이며 |
☞ Group By 예제 |
|
HAVING절 예제 |
★인덱스(Index)
|
자동 인덱스:프라이머리 키또는uinque 제한 규칙에 의해자동적으로 생성되는 인덱스입니다. |
※ Index를 생성하는 것이 좋은 Column |
※ 오라클 인덱스는B-tree(binary search tree)에 대한 원리를 기반으로 하고 있습니다. |
|
SQL>CREATE BITMAP INDEXemp_deptno_indx |
|
SQL>CREATE UNIQUE INDEXemp_ename_indx |
|
SQL>CREATE INDEX dept_dname_indx |
|
SQL>CREATE UNIQUE INDEXemp_empno_ename_indx |
※ 인덱스의 삭제 |
※ 인덱스에 대한 정보는USER_INDEXES뷰 또는USER_IND_COLUMNS뷰를 통해 검색할 수 |
SQL> SELECTindex_name , index_type |
★ VIEW 테이블
뷰란? |
|
-FORCE:기본 테이블 유무에 관계없이 VIEW를 생성 -WITH CHECK OPTION:VIEW에 의해 엑세스될 수 있는 행만이 입력되거나 변경될 수 있음을 지정 합니다. -WITH READ ONLY:SELECT만 가능한 VIEW의 생성 - VIEW를 정의하는 질의어에는ORDER BY절을 사용 할 수 없습니다. -함수를 사용한 컬럼은 반드시 ALIAS를 지정해야 합니다. |
SQL> CREATE OR REPLACE VIEWName_Query |
|
|
|
SQL> CREATE OR REPLACE VIEWRead_Only |
|
|
★SEQUENCE(시퀀스)
|
START WITH:시퀀스의 시작 값을 지정합니다. n을 1로 지정하면 1부터 순차적으로 시퀀스번호가 증가 합니다. INCREMENT BY:시퀀스의 증가 값을 말합니다. n을 2로 하면 2씩 증가합니다. START WITH를 1로 하고 INCREMENT BY를 2으로 하면 1, 3, 5,7,.. 이렇게 시퀀스 번호가 증가하게 됩니다. MAXVALUE n | NOMAXVALUE : MAXVALUE는시퀀스가 증가할수 있는 최대값을 말합니다. NOMAXVALUE는 시퀀스의 값을 무한대로 지정합니다. MINVALUE n | NOMINVALUE : MINVALUE는시퀀스의 최소값을 지정합니다. 기본값은 1이며, NOMINVALUE를 지정할 경우 최소값은 무한대가 됩니다 |
|
START WITH는 수정할수 없습니다. START WITH 절이 없다는 점을 빼고는 CREATE SEQUENCE와 같습니다. |
|
★SYNONYM(동의어)
시노님은 오라클 객체(테이블, 뷰, 시퀀스, 프로시저)에 대한 대체이름(Alias)를 말합니다.
Synonym은 실질적으로 그 자체가 Object가 아니라 Object에 대한 직접적인 참조 입니다.
시노님을 사용하는 이유는..
①데이터베이스의 투명성을 제공하기 위해서 사용 한다고 생각하면 됩니다.
시노님은 다른 유저의 객체를 참조할 때 많이 사용을 합니다.
② 만약에 실무에서 다른 유저의 객체를 참조할 경우가 있을 때 시노님을 생성해서 사용을 하면은
추후에 참조하고 있는 오프젝트가 이름을 바꾸거나 이동할 경우 객체를 사용하는 SQL문을 모두
다시 고치는 것이 아니라 시노님만 다시 정의하면 되기 때문에 매우 편리 합니다.
③객체의 긴 이름을 사용하기 편한 짧은 이름으로 해서 SQL코딩을 단순화 시킬 수 있습니다.
④또한 객체를 참조하는 사용자의 오브젝트를 감추 수 있기 때문에 이에 대한 보안을 유지할 수
있습니다.
시노님을 사용하는 유저는 참조하고 있는 객체를에 대한 사용자의 object의 소유자, 이름, 서버이름을 모르고 시노님 이름만 알아도 사용 할 수 있습니다.
Synonyms을 사용하는 경우
-오브젝트의 실제 이름과 소유자 그리고 위치를 감춤으로써 database 보안을 개선하는데 사용됩니다
- Object에의 Public Access를 제공 합니다.
-Remote Database의 Table, View, Program Unit를 위해 투명성을 제공합니다.
-Database 사용자를 위해 SQL 문을 단순화 할 수 있습니다.
시노님에는 두가지 종류가 있습니다.
①Private Synonym
- 전용 시노님은특정 사용자만 이용할수 있습니다.
②Public Synonym
- 공용 시노님은 공용 사용자 그룹이 소유하며 그Database에 있는 모든 사용자가 공유 합니다.
시노님 생성 문법(Syntax)
- PUBLIC : 모든 사용자가 접근 가능한 시노님을 생성 합니다.
PUBLIC 시노님의 생성 및 삭제는 DBA만이 할 수 있습니다.
|
class 들의 단계적 참조 관계 (0) | 2007.10.12 |
---|---|
IOCP (IOCompletionPort) 분석 (0) | 2007.09.21 |
Oracle 10g의 Recycle Bin의 기능에 대해서... (0) | 2007.08.17 |
리눅스 기본명령어 (0) | 2007.07.03 |
4. Net8 클라이언트측의 기본적인 구성 (0) | 2007.05.07 |
ORA-38301: can not perform DDL/DML over objects in Recycle Bin
SQL> show recyclebin
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
MEMBER BIN$7ibiCGZXF4PgMOabUJ0qBQ==$0 TABLE 2005-01-21:11:48:19
MEMBER BIN$7hq6upeqF+TgMOabUJ0hlg==$0 TABLE 2005-01-20:21:18:20
PICTURES BIN$7ibiCGZLF4PgMOabUJ0qBQ==$0 TABLE 2005-01-21:11:48:18
SQL> FLASHBACK TABLE PICTURES TO BEFORE DROP;
FLASHBACK COMPLETE.
SQL> purge recyclebin;
Recyclebin purged.
SQL> drop table PICTURES purge;
IOCP (IOCompletionPort) 분석 (0) | 2007.09.21 |
---|---|
프로그래밍 :: 오라클 강좌 (0) | 2007.08.17 |
리눅스 기본명령어 (0) | 2007.07.03 |
4. Net8 클라이언트측의 기본적인 구성 (0) | 2007.05.07 |
3. Net8 서버측의 기본적인 구성 (0) | 2007.05.07 |
[한겨레] 김광호(40)씨는 1년차 ‘자출족’이다. 경기 안양의 집에서 서울 마포에 있는 직장까지 왕복 66㎞를 자전거로 출퇴근한다. 김씨는 “자전거·보행자 겸용도로에선 이어폰을 끼거나 대화를 나누며 걷는 보행자들이 어디로 움직일지 몰라 사고위험이 높다”며 “딸랑이(경적)를 울려도 잘 듣지를 못한다”고 말했다.
지난 29일 서울 강북구 우이천변 자전거·보행자 겸용도로에선 자전거를 타고 가던 박아무개(55)씨가 길가에 서 있던 홍아무개(67)씨를 들이받았다. 홍씨는 바닥에 쓰러지며 머리를 다쳤고, 병원으로 옮겨졌지만 숨졌다. 박씨는 교통사고처리 특례법 위반 혐의로 구속됐다.
자전거로 출퇴근 하는 사람(자출족)들이 늘면서 자전거로 인한 인명피해 교통사고도 빠르게 늘고 있다.(그래픽 참조) 경찰청과 도로교통안전관리공단 자료를 보면, 지난해 자전거 관련 교통사고는 모두 1117건이 일어나 65명이 숨지고 1128명이 다쳤다. 이 가운데 자전거가 사람을 친 사고는 △횡단 중 51건 △차도 통행 중 29건 △길 가장자리 통행 중 33건 △보도 통행 중 58건 △기타 74건 등 모두 245건으로, 3명이 숨지고 249명이 다쳤다. 눈에 띄는 것은 보도 통행 중 발생한 사건이 58건으로 가장 많다는 점이다.
자전거는 도로교통법에 따라 차로 분류돼, 사람을 치면 자동차 교통사고와 똑같이 법 적용을 받는다. 인도에 페인트 등으로 자전거 도로를 표시한 자전거·보행자 겸용도로에서 사람을 치면 일반 교통사고로 처리된다. 특히, 겸용도로가 아닌 인도에서 자전거를 몰다 사고를 내면 교통사고 10대 중요 항목 가운데 ‘보도 통행방법 위반’에 해당돼, 교통사고처리 특례법에 따라 5년 이하의 금고, 또는 2천만원 이하의 벌금형을 받을 수 있다. 서울 영등포경찰서 교통사고조사반의 송상철 조사관은 “아직까지 사람들은 자전거를 차가 아니라 이동을 위한 간편한 기구로만 생각해 인도 등으로 다니는 경우가 많다”며 주의를 당부했다.
하지만 자출족들은 “자전거를 차로 ‘확실히’ 대접하라”고 요구하고 있다. 사고 때만 차와 똑같이 ‘대우’하지, 정작 자전거 전용도로 등은 제대로 갖춰지지 않은 탓이다.
자출족의 인터넷 동호회 게시판엔 겸용도로로 갑자기 굴러온 축구공에 자전거가 쓰러져 운전자가 숨지거나, 한강변을 달리다 낚시꾼의 낚시바늘에 걸려 자전거가 넘어지는 등 온갖 사고 제보가 하루에도 몇 건씩 올라온다. 박천수 삼성교통안전문화연구소 책임연구원은 “차도와 인도에서 분리된 자전거 전용도로가 이상적이지만 서울시의 경우 구청들이 도로여건과 예산 등의 문제로 인도에 자전거 겸용도로를 설치해, 자전거와 보행자 충돌사고는 흔히 발생할 수 있다”고 말했다.
그는 “사고 당사자들이 신고를 하지 않아 자전거 사고는 통계에 잡힌 것보다 훨씬 많을 것”이라며 “우측통행 등 주의운전이 가장 우선이며, 자동차보험과 같은 보험상품 개발도 생각해 볼 수 있다”고 말했다.
"진중권 VS 이문열" Ver.2000 (0) | 2008.06.18 |
---|---|
웹폰트 eot 파일 만들기.. (0) | 2007.08.30 |
영화 "향수"를 통해 본 "보안"의 허와 실 (0) | 2007.05.15 |
상대성이론과 평행우주론 - 데자뷰(Deja vu,2006) (1) | 2007.04.24 |
나는 맵기위해 존재한다~ 119를 불러주세요~ 불닭.. (0) | 2006.11.24 |
기본적인 명령어
#ls (-l,-a):각 루트상에서 디렉토리 및 파일을 출력한다. 도스의 dir과 같은 명령..
#pwd 현재 디렉토리경로
#df :리눅스파티션을 보고자할 때 사용.
#cd ..상위디렉토리로 이동
#cd 폴더/해당디렉토리로 이동
#vi 편집명령어
#cat 내용출력
#du -sh 남은 용량확인법
#chmod 권한설정
#tar :압축명령(옵션)
#gzip :이중압축명령(옵션)
디렉토리 이동명령
일반적으로 디렉토리나 파일이 많을 경우 자신이 어디에 위치에 있는지 그리고 직접적으로 디렉토리로 다이렉트로 이동해야 하는경우가 많아진다... 디렉토리 이동명령을 통해 바로이동할수있는 것이 숙제
예) # cd /home 홈디렉토리로 바로이동하기.....
# ls -l 홈디렉토리 내용살피기
# cd master1 마스터1의 디렉토리안으로 이동하기...
목록보기
목록보기에는 대부분 ls를 사용하는데 여기에도 다양한 옵션으로 다양한 결과물을 볼수가 있다....가장많이 쓰는 명령이니만큼 다양한 특징을 안다면 작업하는데 굉장히 편리할 것이다.
#ls -l 세로배열로 결과물을 출력해준다....
#ls -al 가능모든 파일을 결과물로 통해 세로배열로 보여준다.
#ls -al |more:파일의 내용이 많을 때 한단계씩 보여준다(dos:dir/p)와 같은 효과이다.
스페이스바를 누르면 다음결과물을 보여주고 Q를 누르면 빠져나간다.
#ls -l /etc/group:특정파일을 다음과 같은 명령으로 찾아볼 수 있다.
#ls -F :이명령은 실일파일여부를 확인하는 명령이다. 실행파일일 경우 *이붙어서 나온다
그밖에 많은 옵션이 있지만 생략한다.(#ls --help)를 보면 여러 가지 옵션을 볼 수 있다.
디렉토리생성과 삭제
디렉토리를 생성과 또 삭제하는데 필요한 명령을 알아보자
대체적으로 생성하는 명령은 mkdir명령을 쓴다.
특정디렉토리에서 #mkdir kkk라치면 그특정디렉토리하위에 kkk라는 디렉토리가 생성이 된다. ls로 확인을 하여보자.
또한 특정한 곳에 디렉토리를 생성하고싶은면 이렇게 하면된다.
#mkdir /home/webmaster/kkk라치면 홈밑에 웹마스터란 방밑에 kkk를 생성한다는 뜻이다.
디렉토리를 삭제하는 명령또한 동일하다.
홈디렉토리밑에 kkk란 디렉토리가 있다면 이디렉토리를 삭제하는 방법이다.
#rmdir kkk라치면 kkk란 디렉토리가 삭제된다.
#rmdir /home/webmaster/kkk라치면 홈밑에 웹마스터란 방밑에 kkk를 삭제한다는 뜻이다.
하지만 하위디렉토리에 내용이나 또다른 디렉토리가 있다면 삭제가 되질않는다...
이때는 rm이란 명령으로 삭제를 한다....옵션 또한 여러 가지가 있지만....
가장많이 쓰는 명령만 간단히 소개한다.
#rm -r kkk라치면 먼저 하위디렉토리로 들어가서 지울지여부를 물어본다....삭제하고자한다면 y(yes)를치면 그해당파일은 삭제가 된다.
하지만 이과정을 모두 생략하기를 원한다면 다음과 같이 입력하면 삭제가 된다.
#rm -rf kkk이렇게 치면 깨끗이 삭제가 된다....
하지만 지우면 복귀할수 없으므로 정말 신중에 신중을 기하여 삭제하길 바란다.
복사명령과 이동명령
리눅스에서 도 파일을 복사하는 명령이 있다.....통상적으로 도스에서는 copy,diskcopy명령으로 복사를 했지만 리눅스에서는 cp로 사용한다...별반 다를게 없으므로 작업을 해보면 쉽게 이해할수 있다...
임의의 디렉토리를 하나 생성한다. 여기서는 webmaster밑에 webm01이란 디렉토리를 예로 한다.
#cd ~webm01이라 입력을 하면 바로 특정디렉토리로 이동을 할 수 있다.
만약 이동을 하지않는다면 webm01이란 방이 없거나 경로가 잘못되어서 그러므로 경로를 바꾸어주면 된다.... 경로바꾸는 것은 위에서 설명하였으므로 생략한다.
#cd _webm01로 이동
#touch test1:테스트1이란 빈파일을 만든다는 뜻이다(touch:빈파일만들기)
#vi test1:vi 편집기를 통해 test1에 임의의 내용을 입력하고 저장하고 나온다.
#cp test1 test2:test1을 test2란 파일로 복사한다는 뜻이다.
#vi test2:이파일을 열어 test1안에 적힌 내용과 같은지 확인한다.(같다면 성공이다.)
이번엔 test란 디렉토리를 만들어 방법만든 test1,2파일을 디렉토리에 복사하여 넣어보자..
#mkdir test란 디렉토리생성한다.
#cp test1 test2 test/라 입력하면 test1,test2파일이 test디렉토리에 복사된다.확인하여보자(ls)
다음은 하위디렉토리에서 특정디렉토리로 복사하는 법을 알아보자
여기서는 하위디렉토리에서 홈디렉토리로 복사하는법을 설명한다.
#cp -r test /home:여기서 -r은 디렉토리째로 복사한다는 뜻이다. test란 디렉토리를 home에 복사를 한다. 확인하여보자.....
다음은 동시에 여러개의 빈파일을 만드는 방법이다.
#touch aaa bbb ccc ddd eee fff:여기서 나온 파일을 동시에 만든다는뜻이다. 당연히 더많이도 생성가능하다..... 파일이 만들어졌는지 확인하여보자.
다음은 특정파일만 삭제
#rm -r a*:이말은 a로 시작하는 모든 파일을 삭제한다는 뜻이다.
다음은 이동명령 mv를 알아보자 이명령은 디렉토리나 파일을 이동할때사용하면 파일의이름을 변경할때는 적용이된다.
#mv test test2:이말은 옮긴다는 뜻이아니라 test test2로 명명한다는 뜻이다.
#mv test /home/webmster:이말은 test란 디렉토리를 홈밑에 웹마스터방밑에 이동한다는 뜻이다. 자 한번 실습해보기 바란다.
일정한 자료찾기 명령
#find / -name skell -> 일정한 자료찾기를 할 수 있다.
간단한 vi편집기명령알기(cat)동일
cat의 경우 수정,변경,저장할 수는 없다 단지출력명령.
vi 명령을 쓰면 일정텍스트상의 내용을 수정 변경 저장할 수 있다.
일반적인 명령을 예로 들어보자
예)
#vi /etc/group ->etc밑에 그룹의 내용을 보거나 수정한다는 내용이다.
텍스트가 출력이 되면 수정하고자하는 부분이 있을 경우 insert키를 눌려 수정하고자하는 셀로 이동을 한다.... 만약수정하였으면 esc키를 눌려 insert키를 해제시키고 콜론이누른다.(shift+:)그러면 하위에 콜론이 생성이되는데....저장하고자 한다면 qw(종료저장),저장하지않고 그냥종료시킨다면, q!를 누르면 된다...자 이제 활용을 해보자.
리눅스 설치에서 파티션나누기...
리눅스는 일반 윈도우와는 달리 각각에 대한 루트계정을 만들어 주어야 한다.
윈도우즈의 경우는 포맷과 운영체제설치와 동시에 모든 디렉토리생성 및 응용프로그램설치를 아무곳에서나 가능하나 리눅스는 이와는 다른다....
/:최상위 디렉토리로 운영자가 직접관리 및 운용할수있는공간
/boot:
/usr : 현재 시스템에서 사용하는 응용프로그램을 이곳에 설치를 한다.윈도우즈의 경우 programs files디렉토리에 설치를 하듯이곳에 리눅스 패키지가 설치된다.
/home : 이곳엔 일반인에게 계정을 부여하고 일정의 공간을 할당해주는 역할을 한다.
웹호스팅을 사용해본 유저라면 쉽게 이해하리라 생각이 든다.
/swap : 일반적으로 swap이란 가상메모리를 뜻하는데 리눅스에서 이렇게 램이 아닌 가상메모리지원해 줌으로써 램이 적더라도 swap메모리를 할당해주어 램과 같은 역할을 하여준다.
swap메모리를 활용을 하면 최상의 시스템구축이 가능하다. 일반적으로 자신의 램의 2배를 지정해주는 것이 좋다고 한다.
가상콘솔(ctrl+alt_f1) x-window에 들어가지 않고 바로 가상콘솔로접속
[root@note/root}#:#를 bash sell이라 함...
콘솔과 터미널:콘솔 :서버앞에서 직접작업을 하는 것을 콘솔이라하며, 터미널이란 멀리서 원격으로 접속을 하여 작업을 하는 것. 또한 가상콘솔작업은 root계정으로 작업을 하면 이것은 보안문제 때문에 다른계정으로 작업을 많이한다. 터미널의 경우 root작업은 치명적인 보안문제 때문에 일반계정으로 접속하여 작업을 많이함.....
단축키명령
(ctrl+alt_f1):가상콘솔 작업
(ctrl+alt_f2)
(ctrl+alt_f3):초기화 로그인
(ctrl+alt_f7):x-windows로 들어가기
콘솔상의 작업종료:exit,logout명령이 있으면 shutdown의 경우 시스템을 종료할 때 사용한다.
옵션명령 : -r 재부팅 -h 시스템종료 -c shutdown명령을 취소
시간타임 : now지금 즉시 지정된 shutdown명령실행
+m m분후에 지정된 shutdown명령을 실행
hh:mm hh시 mm분에 지정된 shutdown명령을 실행
메세지 :현재 접속되어 있는 로그인 사용자들에게 언제쯤 종료를 한다고 알리는 메시지 기능을 제공(중요사항)
예)shutdown -r now지금 즉시종료시행 shutdown +5 now 5분후 종료....
새로운 사용자를 추가(계정)을 부여하기 위해 사용한다.
일반적으로 adduser/useradd 명령을 사용한다.(사용법은 완전히 동일하다.)
예)# adduser master1
# passwd master1
# 패스워드 입력
# 재입력.......
(패스워드의 경우 숫자와 일반글자를 조합하는 것이 좋으며 나쁜패스는 시스템에서 받아 들이지 않는다....)
등록을 성공하면 successfully메세지가 나온다....이메세지가 나오면 성공....
자 /home디렉토리로 이동을 하면 새롭게 추가된 계정을 확인할수 있다. 자 (ls -l)
(사용자이름을 생략하고 passwd를 실행하면 현재 로그인한 사용자의 패스워드를 변경할 수 있다.
패스
#vi /etc/passwd를 실행하면 리스트가 출력이 된다.
리스트중에 다음의 글이있을 것이다.
root : x : 0 : 0 : root: /root: /bin /bash(bash)란쉘을 뜻함.
root:사용자명
x:비밀번호
0:uid
0:gid(그룹아디)
root:선명(전화)comment
root:홈디렉토리
shadow:특정계정을 추가한후 패스파일을 암호화한 파일을 말한다.
#useradd mask1
#passwd mask1
암호를 준후
#vi /etc/passwd확인
#vi /etc/passwd확인후 암호화(shadow)를 확인.
일반계정부여와 함께 자동 홈페이지방 만들기...
리눅스상에서 방을 부여하면 홈페이지를 만들수 있는 방이 필요하다...
이것이 public_html이란것인데 이것을 계정부여와 동시에 만드는 방법을 배워본다.
#cd /etc/skel
#ls -l
#pwd
#mkdir mail
#mkdir public_html
#ls -l
이렇게해주면 계정부여와 동시에 자동으로 sand mail과 public_html이 자동으로 만들어진다.
그룹생성명령(group)
그룹이란 일정한 시스템에서 여러사람이 그사용자성격상 비슷한사람들이 그룹으로 나우어 관리를 하는 경우 사용한다. 그룹을 잘이용하면 여러모로 전문적성격을 지닌 시스템으로 활용을 할 수 있다.
예) 그룹생성과 일반계정으로 그룹에 등록시키는 내용
#groupadd wm --->그룹명을 wm으로 지정을 하였다.
#vi /etc/group --->vi편집기를 통해 group내용을 확인변경할수 있다.
#useradd --help -->옵션을 활용할 때 이렇게하면 옵션사항을 출력하여 볼 수 있다.
그룹에 등록시키는법
#useradd -g wm web1 : web1이란 아이디를 wm이란 그룹에 등록한다는 내용이다
#useradd -g wm web1 : web2역시 wm이란 그룹에 등록
#vi /etc/passwd --> 등록이 잘되었는지 확인할 수 있다.
모드설정변경
리눅스에서 모드설정이란 text모드 x-windows등등 이있는데 이기본모드를 수정할 때 사용한다.
먼저 #cat /etc/inittab : $more를 출력하면 리스트가 출력이 되는데...
출력에 보면 id (숫자):initdefault란곳에 숫자를 바꾸어주면 된다.
x-windows:5번
single :1번
text : 3번으로 구성이 되어있다.
특정그룹추가하기
일반계정을 그룹화하여 같은 폴더에서 관리하면 관리하기도 좋고 여러모로 편하다.
그러나 그룹추가는 추상적이기 때문에 폴더개념과는 다르다.
이점을 유의하기바란다. 그룹명을 지정해주고 그룹명과 같은 폴더를 만들어줄 때
비로서 그룹화 된다고 보면된다.
#groupadd (그룹명) :그룹은 만들어지었으나 폴더는 만들어지지않았다.
#mkdir 폴더(일반적으로 그룹명과 동일하면 좋다):그룹과 폴더가 모두만들어지었다
자 일반계정을 추가하여 방금만들어진 그룹에 추가하여보자
#useradd -D -b /home/wm:초기 디렉토리의 경로를 지정해준다.
#useradd -g wm wm01:-g는 그룹에 추가한다는 옵션명이고,wm은 그룹명이다
그리고 wm01은 일반계정자이다..즉 wm01은 wm에소속되도록 -g(그룹화)하여 준다는 뜻이다.
#passwd wm01 :이제 wm01의 패스워드를 추가하면 된다.
userdel(유저삭제명령)
일반계정을 추가하고 나면 나중에 삭제또한 하게 된다. 싶게 하위디렉토리까지 삭제하는법을 알아보자.
#userdel (지울계정명):이렇게 지정하면 모두삭제된다.
하위에 디렉토리가 없을 경우
#rm -rf 계정명:으로 깨끗이 삭제할 수가 있다.
usermod(일반생성 계정에 대한 편집명령),groupmod(그룹에 대한 편집명령)
적용예(uid,향,comment,home,shell)
#usermod -c bbb web02: (web02를 bbb로 바꾼다는 것이다. (단 폴더가 바뀌는 것이 아니라 .comment가 바뀐다는 것이다. 명령에 -c는 comment란 뜻이다.
확인할려면, vi /etc/passwd로 확인을 해보라....
#usermod -d /home/wm
#vi /etc/passwd
#usermod -n webm web:(web이란 그룹을 webm으로 변경하라...
#vi /etc/group:이곳으로 가면 바뀐내용을 확인할수 있다.
su명령의 아름다운반란(사용자 대체)
su란 여러 계정을 오고가며 작업을 하는 것이다.
리눅스의 묘미를 맛볼수 있는 것이기도 하다...또한 root가 어느정도로 막강한지를 쉽게 알수가 있다... 자 이제 실행하여보자
보통 터미널로 작업을 할때에는 root로 로그인이 불가능하는 하지만 su를 통해 가능하여진다 먼저 일반계정으로 접속을 하여 #su root로 변환하여주면 가능하다...
하지만 일반계정에서#su root를 실행하면 root의 패스워드를 묻게된다.패스를 모르면 끝장이다. 그냥 집에가야 될듯......흐흐흐
패스를알고있다면 입력. 성공메세지가 출력되고 root로 작업환경이 변환된다.
이번엔 root권한으로 일반계정으로 변환하여 작업을해보자
#su webm01이렇게 하면 패스워드를 묻지않고 바로작업에 들어갈수가 있다....요것이 root만의 권한.....
이번엔 일반계정에서 일반계정으로 변경작업하여보자
#su webm02라실행하면 역시 패스워드를 묻는다....모르면 찌그러지고 알면 들어가서 작업하면된다.
즉 정의하자면 root는 su명령을 통해 어떠 계정에도 접속하여 작업을 할수있으나 일반작업자의 경우 root로 작업을변환할 때 패스워드를 알아야 하며,역쉬 일반계정끼리의 작업또한 패스워드를 알아야 작업이 가능하다는 것이다. 이권한을 chmod로 뚫을수있을까...
에러발생시 대책법
윈도우즈의 경우 에러가 발생하면 강제종료를 시키면 scandisk가 바로잡아준다.
리눅스의 경우도 그러하지만 이건 바람직하지가 않다. 에러가 발생하면 나름대로 에러를
잡는 법을 알아보자.
먼저 에러가 발생을 하면 read읽기 기능만으로 자동으로 변환이 된다.
이를 바꾸기위해선 다음과 같은 명령을 수행하면 된다.
먼저 readolny가 나오면 이건 읽기기능만이 수행된다는 뜻이다.
lilo에서 ctrl+x로 text모드로 들어간다. 아이디와 패스를 입력하고
#mount -n -0 remount , rw(읽고쓰기로 변환한다는 뜻이다.) /dev/hda5(리눅스가 깔린장치명)입력하면된다.
초기부팅화면 설정변경
멀티부팅시 dos모드나 linux모드중 어느것을 먼저택할건지 지정해주는 것이다.
역시 명령어는 다음과 같다.
#cat /etc/lilo.conf 엔터를 치면 리스트출력 하면 수정부분이 눈에 들어온다.
단 cat명령어는 출력명령어 이므로 vi로 바꾸어 출력을 하면된다. 역시 수정하고 저장하고 나오면 된다.)
로그인 패스워드변경법
lilo화면에서 ctrl+x키로 누르면 된다.
먼저 linux 1이나 single로 입력을 한후
passwd를 입력한다...암호를 임의로지정을 하고 반복암포를 누르고 빠져나온다.
자한번 테스트해보자.
한템창에서의 멀티작업시 에러메세지....
통상적으로 리눅스에서는 여러개의 한텀창을 띄어놓고 작업을한다.
하지만 열어본작업을 닫지않고 다른창에서 또같은 작업을 병행하면 swap메모리를 먹기 때문에 좋지않다...또한 여러 가지 메시지를 동반하므로 귀찮기 짝이없다.
한번쯤 이런 경험을 해보셨을거라 믿는다.....
참고로 편집도중 ctrl+z를 사용하면 꼬옥 창이 닫힌것처럼 결과가 나오는데...
이건 창이 완전히 닫힌게 아니라 잠시 숨겨두는 것이다.
ctrl+z를 누른후 #jobs라 쳐보자 그러면 작업중인게 한 개가 있다는 메시지가 나온다.
완전히 해제시킬려면 #kill %1이라 치면 완전 종료된다.
아니면 첨부터 윈도창에서 닫임단추를 누르면 종료된다.
프로그래밍 :: 오라클 강좌 (0) | 2007.08.17 |
---|---|
Oracle 10g의 Recycle Bin의 기능에 대해서... (0) | 2007.08.17 |
4. Net8 클라이언트측의 기본적인 구성 (0) | 2007.05.07 |
3. Net8 서버측의 기본적인 구성 (0) | 2007.05.07 |
2. 기본적인 NET8 구조 (0) | 2007.05.07 |