2013년 9월 8일 일요일

Perl 제대로 배우기 - 2장 (Scalar Data)

2 Scalar Data


모든 숫자는 내부적으로 동일한 포맷을 사용 :: 배정밀도 부동소수점수


지원 숫자 형식
  • 1.25
  • 7.25e4
  • -6.5e4
  • 12
  • 15
  • -2004
  • 0377 (8진수)
  • -0xff (16진수)


문자열
  • 단일 인용부호 ‘ ‘ : \n (뉴라인)은 인식되지 않는다.
    • ‘hello’  : hello (5개의 문자)
    • ‘don\’t’ : d, o, n , ‘ , t
    • ‘hello
      there’ : hello 뉴라인 there (11문자로 인식)
    • ‘’ : 널 문자열
    • ‘silly\\me’ : silly 백슬래쉬 me
    • ‘hello\n’ : hello 뒤에 백슬래쉬 , 그 뒤에 n (뉴라인으로 보지 않는다.)


  • 이중 인용부호 “ “
  • - 역 인용 부호 ` ` : 외부 명령어 실행



표기
의미
\n
뉴라인
\r
리턴
\t
\f
폼피드
\b
백스페이스
\a
\e
이스케이프
\007
임의의 8진 아스키 값
\x7f
임의의 16진 아스키 값
\cC
임의의 제어문자(여기서 Ctrl+C)
\\
백슬래쉬
\”
이중 인용부호
\l
뒤에 오는 문자는 소문자
\L
\E 전까지 뒤의 모든 문자는 소문자
\u
뒤에 오는 문자는 대문자
\U
\E 전까지 뒤의 모든 문자는 대문자
\Q
\E 전까지 모든 알파뉴메릭이 아닌 것을 이중인용부호로 둘러 쌈
\E
\L,\U,\Q의 종료


숫자를 위한 연산자
  • 2 + 3 #2더하기 3, 혹은 5
  • 5.1 - 2.4 #빼기
  • 3 * 12 # 3 곱하기 12
  • 14 / 2 # 14 나누기 2
  • 10 / 3    # 부동 소수점 나누기
  • 2 ** 3     # 2 ^3 , 2에 3승
  • 10 % 3 # 나머지 1]


문자열을 위한 연산자 ( . ) :: 반드시 명시적으로 호출 해야 함.
  • “hello” . “world” #”helloworld”와 동일]
  • $str .= “ ”; 와 $str = $str . “ “;
문자열 반복 연산자 ( x )
  • “fred” x 3 # “fredfredfred”
  • (3+2) x 4 # “5555”와 동일




숫자와 문자열 비교 연산자
비교
숫자
문자열
동일
==
eq
같지 않음
!=
ne
보다 작음
<
lt
보다 큼
>
gt
보다 적거나 같음
<=
le
보다 크거나 같음
>=
ge


연산자의 결합성과 우선순위 : 높은 것에서 낮은 것으로 (작업중)
결합성
연산자
왼쪽
리스트 연산자 (왼쪽 방향)
왼쪽
-> (메소드 호출 , 디레퍼런스)
비결합
++ , -- (자동증가, 자동감소)
오른쪽
*** (누승)
오른쪽
! , ~ , \ , + , -
논리부정,비트부정,레퍼런스 연산자 , 일원 플러스, 일원 마이너스
왼쪽
=~ , !~ (일치 ,비일치)
왼쪽
*,/,%,x (곱셈,나눗셈,나머지,문자열복사)
비결합
이름붙은 일원 연산자(예:chomp)
왼쪽
&(비트 AND)
왼쪽
|,^(비트 OR, 비트 XOR)
왼쪽
&& (논리 AND)
왼쪽
|| (논리 OR)
비결합
.. , … (비포함(noninclusive),포함 범위)
오른쪽
?:(if-then-else)
오른쪽
=,+=,-=,*=(할당과 이원 할당)
왼쪽
,=> (쉼표와 쉼표-화살표)
비결합
리스트연산자(오른쪽 방향)
오른쪽
not (논리 NOT)
왼쪽
and (논리 AND)
왼쪽
or , xor (논리 OR, 논리 XOR)


chop 함수 : 문자열의 마지막 문자를 제거
chomp 함수 : 마지막 한개의 뉴라인 문자만 제거


대소문자 변환 이스케이프 문자열 사용예제 (추후)


스칼라 값으로서 <STDIN>
$a = <STDIN>;
chomp ($a);
==========================
chomp ($a = <STDIN>);

정의되지 않은 값 (undef) :: 숫자로 사용되면 0 , 문자열로 사용되면 길이가 0인 문자열 이다.

2013년 9월 7일 토요일

Linux CVS 설치 및 설정

CVS 설치 및 설정

설치 및 설정 순서

  1. cvs 설치 여부 확인
  2. cvs 프로그램 설치 (yum을 이용)
  3. cvs 계정 추가
  4. cvs 환경 설정
  5. xinetd 재 구동 하기
  6. cvs 접속 시험

세부 내용 확인

1. cvs 설치 여부 확인 (root 계정)

#cvs -v

존재할 경우
Concurrent Versions System (CVS) 1.11.23 (client/server)
Copyright (C) 2006 Free Software Foundation, Inc.
Specify the --help option for further information about CVS

2. cvs 설치(yum 이용해서)

#yum install cvs
만약 xinted가 설치 되지 않았다면 xinted도 설치 해주어야 한다.
#yum install xinetd
만약 xinetd를 찾지 못한다고 나올 경우 resolv.conf에서 아래 항목을 추가한다.
/etc/resolve.conf
nameserver 168.126.63.1  --> KT olleh
/etc/services에도 등록되어 있는 확인 (없으면 추가)
/etc/services
cvspserver      2401/tcp # CVS client/server operations
cvspserver      2401/udp # CVS client/server operations

3. cvs 계정 추가

작업순서

  1. cvs 그룹 추가
  2. cvs 계정 생성 , 홈디렉토리 /home/cvs
  3. cvs 계정 암호 변경
  4. cvs 저장소 디렉토리 생성
  5. cvs 저장소 초기화
  6. cvs 디렉토리 권한 수정
    1)
    #groupadd cvs  -->cvs Group add
    2)
    #useradd -c CVS_Manager -d /home/cvs -g cvs cvs
    3)
    #passwd cvs
    4)
    #su - cvs
    $mkdir /home/cvs/rdev /home/cvs/sdev
    5)
    $cvs -d /home/cvs/sdev init
    $cvs -d /home/cvs/rdev init
    6)
    $chmod 755 /home/cvs -R

    4. cvs 서비스 관련 파일 생성 (/etc/xinted.d/cvs 혹은 cvspserver파일)

    #/etc/xinted.d/cvs
    service cvspserver
    {
     disable         = no
     flags           = RESUE
     port            = 2401
     socket_type     = stream
     wait            = no
     user            = cvs
     server          = /usr/bin/cvs
     server_args = --allow-root=/home/cvs/rdev --allow-root=/home/cvs/sdev pserver
     protocol        = tcp
     passenv         = PATH
    }

    5.xinetd 서비스 재구동 하기

    #service xinted restart

    6.cvs 접속 시험

    eclipse에서