#sudo vi /etc/mysql/my.cnf
#bind-address = 127.0.0.1 (이 라인을 주석 처리)

mysql>mysql -u root -p
mysql>use mysql
mysql>update user set host='%' where user='root';
mysql>commit
mysql>exit

#sudo /etc/init.d/mysql restart

Posted by 오징어~
,

Ubuntu Server 9.04 에서 테스트

#sudo vi /var/lib/locales/supported.d/ko (하단에 아래 추가)
ko_KR.EUC-KR EUC-KR
#sudo dpkg-reconfigure locales

#sudo vi /etc/environment (하단에 아래 추가)
LANG="ko_KR.EUC-KR"
LANGUAGE="ko_KR.EUC-KR"
LC_CTYPE="ko_KR.EUC-KR"
LC_MESSAGES="ko_KR.EUC-KR"

Posted by 오징어~
,
올해부터 한국한의학연구원에서는 한의학 온톨로지 사업(2009~2013)이 시작됩니다.  이 사업에서는 전통의학 지식의 표준화/체계화, 온톨로지 구축, 활용 시스템 개발의 세 세부과제로 나뉘어지며 이들간에 유기적인 연계를 통해 최종적으로 온톨로지 기반 한의학 지능형 정보 인프라를 구축하는 것을 목표로 합니다.


현재 국내에서도 IT나 양방을 중심으로 온톨로지 사업이 진행되어 왔고 진행되고 있습니다.  여기에서 짧은 글로 사업들간의 장단점을 비교하기는 힘들지만, 아뭏튼 본 사업에서는 한의학 분야에서 실제 사용할 수 있는 결과를 내고자 합니다.  그것이 작던 크던간에 그랬으면 좋겠습니다..ㅎㅎ

한의학 도메인은 좀 특수한 성격을 가지고 있습니다.  한의학이 다른 도메인에 비해 일반인들에게 친근하지 못하고, 또한 이렇기 때문에 한의계를 구성하는 한의사들에 의해 많은 영향을 받습니다.  저도 IT를 전공하다 보니 약간의 한계를 느끼기도 합니다.

아뭏튼 큰 사업이니만큼 홍보도 많이 하고 자문도 많이 얻어야 겠습니다.  배가 산으로 가지 않도록..ㅋㅋ
Posted by 오징어~
,

오늘 하루종일 물고 늘어져서 간신히 설치했다..ㅋ;
시스템 설치가 다 그렇듯이.. 간만에 닭질 좀..ㅎㅎ
다음에 똑같은 실수를 하지 말아야겠다는 생각에 정리하는데..
아.. 이미지 뜨기 귀찮군.. 그래서 텍스트로 대충..ㅋㅋㅋ

subversion의 공식 사이트는 아래와 같다.
http://subversion.tigris.org/getting.html


또한 solaris용 subversion 및 관련 프로그램들은 아래에서 다운받을 수 있다.
http://www.sunfreeware.com/programlistsparc10.html

현재 subversion의 버전은 1.4.6이지만 sunfreeware 사이트에서 솔라리스로 패키징된건 1.4.5까지만 나와있다.

subversion 1.4.5를 설치하려면 다음 프로그램이 먼저 설치되어 있어야만 한다.

- apache 2.2.6
- openssl-0.9.8h

둘 다 sunfreeware 사이트에서 구할 수 있으며, sunfreeware 사이트에서 제공하는 프로그램은 모두 솔라리스용으로 컴파일 & 패키징이 되어 있기 때문에 다음과 같이 하기만 하면 쉽게 설치할 수 있다..ㅎㅎ

# gzip -d openssl-0.9.8h-sol10-sparc-local.gz
# pkgadd -d openssl-0.9.8h-sol10-sparc-local

1. openssl 설치
openssl은 위와 같이 pkgadd하면 아주 간단히 설치할 수 있다..ㅋ;

2. apache 2.2.6 설치
(1) apache 설치
apache도 위와 같이 pkgadd하면 디폴트로 /usr/local/apache2에 설치된다.
그 다음에 다음과 같이 httpd.conf를 수정한다.

- User와 Group을 nobody로 설정
- ServerName에 서버 아이피 또는 도메인 설정
- DirectoryIndex 지시자에 index.jsp 추가
- <Directory />에 보면 "Deny from all" 라인이 있다. 이걸 주석 처리한다. (이게 왜 디폴트로 되어 있는지 모르겠군..ㅎㅎ)

# /usr/local/apache2/bin/apachectl start 하면 apache가 뜬다.
# /usr/local/apache2/bin/apachectl stop 하면 종료

이렇게 하면 간단히 되는데.. 나한테는 tomcat하고 연동해야 하는 문제가 있었다..ㅡㅡ

(2) apache와 tomcat 연동
apache와 tomcat을 연동하기 위해서는 apache tomcat connector (http://tomcat.apache.org/connectors-doc/) 가 필요하다.
현재 1.2.26버전이 나와 있는데.. 이걸 컴파일하면 mod_jk.so 라는 모듈이 생성된다.

검색하다보면 mod_jk2.so라는 것도 나오는데 첨에는 2라는 것 때문에 이게 최신일줄 알고 컴파일하는데 잘 안되서 한참 애먹었다.  하지만 나중에 알고보니 이건 옛날 버전이라고..ㅡㅡ;
암튼.. 압축풀고 들어가서 jk 디렉토리 밑에 native 디렉토리로 간다.. (이건 또 왜이리 깊어..)

# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install

인스톨까지 끝내면 /usr/local/apache2/modules에 mod_jk.so 파일이 복사된다.
이제 httpd.conf를 열어 LoadModule들이 있는 부분에 다음 줄을 추가한다.

LoadModule jk_module modules/mod_jk.so

그리고 나서 /usr/local/apache2/conf/extra 디렉토리에 httpd-mod_jk.conf 파일 생성한다.
(예제) (아래에서 적당히 자신의 환경에 맞게 수정해야 합니다..ㅎㅎ; 간단하니 다 아실듯)
Alias /test TOMCAT_HOME/webapps/test
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/extra/httpd-workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /test/servlet/* ajp13
JkMount /test/*.jsp ajp13

또한 httpd-mod_jk.conf에서 참고하는 httpd-workers.properties 파일도 생성한다
(예제)
workers.tomcat_home=TOMCAT_HOME
workers.java_home=JAVA_HOME
ps=/
worker.list=ajp12, ajp13
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1

worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp12, ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
worker.inprocess.cmd_line=start
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stder

이제 이 파일을 httpd.conf 에서 로딩한다.
httpd.conf 파일 아무데나.. 마지막 줄도 되고 다음과 같이 추가한다.

Include conf/extra/httpd-mod_jk.conf

다 되었으면 아파치와 톰켓을 재시작하고 아무 jsp를 실행해본다..
사실 처음에는 httpd-mod_jk.conf하고 httpd-workers.properties 파일을 생성 안했었다.
그래도 apache와 tomcat 모두 잘 뜬다..
그런데 jsp를 호출하면 브라우저에 jsp가 실행되는 것이 아니고 jsp 소스 코드가 그냥 텍스트로 떡하니 나온다.. 헐..
이것 때문에 http 소스를 다운받아 컴파일도 하고 멀쩡한 httpd.conf를 몇시간 동안 만지작거리다가 알고보니 이 파일들을 생성 안해서 생긴 문제였다..

3. subversion 설치
(1) subversion 인스톨
subversion-1.4.5-sol10-sparc-local.gz 파일을 다운받아 1,2번의 경우처럼 설치한다.
# gzip -d subversion-1.4.5-sol10-sparc-local.gz
# pkgadd -d subversion-1.4.5-sol10-sparc-local

pkgadd할때 apache2 모듈과 중복된다고 하는데.. 과감히 yes ㅎㅎ
그럼 파일 몇개가 apache2에 덮어 써진다.

(2) httpd.conf 수정
httpd.conf 파일을 열어서 LoadModule들이 있는 줄에 다음줄 추가
LoadModule dav_svn_module modules/mod_dav_svn.so

맨 마지막 줄에는 다음을 추가한다.
이는 svn 저장소가 /data2/svn/repository 이고 접속 주소는 http://서버IP/svn 이며
/data2/svn/password 파일에 있는 아이디와 패스워드로 인증한다는 의미가 된다.
<Location /svn>
    DAV svn
    SVNPath /data2/svn/repository
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /data2/svn/password
    Require valid-user
</Location>

(3) svn 저장소 생성
# cd /data2/svn
# svnadmin create --fs-type fsfs repository
# chmod -R g+w repository
# chown -R nobody repository
# chgrp -R nobody repository
# /usr/local/apache2/bin/htpasswd -c password username
New password:
Re-type new password:
(사용자를 추가할 경우에는 /usr/local/apache2/bin/htpasswd password username)

이제 svn에 접속하면 끝.. 추가로 나는 eclipse에서 접속하기 때문에 eclipse에서 사용법을 간단히..ㅎㅎ

(4) eclipse svn 연동
- Help -> software updates -> find and install 을 선택하면 창이 뜨는데 search for new features to install를 체크하고 next
- new remote site를 클릭하고 다음을 입력한다음에 next
Name : subclipse
URL : http://subclipse.tigris.org/update
- next, ..., next해서 다 설치하고 eclipse를 다시 부팅하면 SVN Repository perspective가 생성됨
- 서버 접속 및 사용..ㅎㅎ; 뭐 이건 svn을 한번쯤 사용해본 사람은 다 알테니 생략..

Posted by 오징어~
,

4일동안 XML문서를 UTF-8로 처리하도록 수정하면서 얻은 테스트 결과입니다..ㅡㅡ;
이 결과를 얻도록 도움을 준 진광형한테 감사..ㅋㅋ
만약 UTF-8로 선언되지 않고 euc-kr로 선언되었다면 모두 문제 없습니다.

테스트 환경 : AIX5.2, WebLogic 8.1.6, IBM JDK 1.4.2
서버 file.encoding : IBM-eucKR
아래의 방법들 모두 InputSource에 setEncoding("UTF-8")을 해도 영향이 없음

1. UTF-8로 선언 / euc-kr로 인코딩된 XML의 경우

- 읽기
FileInputStream로 읽으면 에러발생 (java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence) (getParsedDocument()의 경우)
FileReader로 읽으면 성공 (getParsedDocument2()의 경우)

- 쓰기
FileOutputStream를 이용하면 UTF-8 쓰기 성공 (getParsedDocument()의 경우)
FileWriter를 이용하면 UTF-8 쓰기 안됨 (시스템 file.encoding으로 쓰기가 됨) (getParsedDocument2()의 경우)


2. UTF-8로 선언 / UTF-8로 인코딩된 XML의 경우

- 읽기
FileInputStream로 읽으면 성공 (saveXML의 경우)
FileReader로 읽으면 에러 (sun.io.MalformedInputException at sun.io.ByteToCharEUC.convert(ByteToCharEUC.java(Compiled Code)))
(saveXML2의 경우)

- 쓰기
FileOutputStream를 이용하면 UTF-8 쓰기 성공 (saveXML의 경우)
FileWriter를 이용하면 UTF-8 쓰기 안됨 (시스템 file.encoding으로 쓰기가 됨)
(saveXML2의 경우)


사용자 삽입 이미지

사용자 삽입 이미지

Posted by 오징어~
,

UTF-8 처리

프로그램 2007. 10. 16. 15:13

UTF-8 처리를 하는게 장난이 아니군..ㅡㅡ;
여기저기 보면서 다양한 케이스마다 UTF-8 처리를 하는 다양한 방법을 모았습니다. (워낙 다양한 곳을 보다보니 출처 정리조차 힘듬을 이해해주시길.. 뭐 그대로 복사한건 아니니까..ㅋ)
UTF-8 처리를 위해 아래를 모두 해야 하는건 아니고 맘에 드는 걸 고르면 되겠습니다..^^;

1. export LANG=ko 또는 export LANG=ko_KR 와 같은 환경 설정
서버의 쉘을 설정하는 부분인데 LANG=UTF-8로 해야하나 이건 다른 프로그램에 영향을 줄 수 있기 때문에 가능한 안하는게 좋음..ㅋ

2. 서블릿 엔진의 file.encoding 값이 UTF-8, EUC_KR, KSC5601 중 하나가 되도록 함
서버 시작 스크립트에서 "java ... -Dfile.encoding=UTF-8 ..." 라고 지정
톰켓의 경우 catalina.sh(또는 bat)에 4군데 정도 있음

3. 서블릿에서 다음과 같은 request, response 인코딩 지정
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=utf-8");

4. JSP 첫째줄에 다음 라인 추가
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

5. GET 방식에서는 URL 인코딩 수행 (이것이 RFC 표준에 따르는 것이라고 함)
자바스크립트에서는 encodeURIComponent()
자바에서는 java.net.URLEncoder의 encode()

자바스크립트의 경우 다음 사이트 참고 http://mwultong.blogspot.com/2006/05/javascript-tools-decodeencode-uri.html

6. UTF-8 변환 함수 호출
public static String Kor2UTF8(String str) {
  if (str== null) {
    return null;
  }
  try {
    return new String(str.getBytes("8859_1"), "UTF-8");
  } catch (Exception e) {}
}

7. UTF-8로 파일 저장
울트라에디트 : 파일 -> 변환 -> ASCII를 UTF-8으로 (Unicode 편집)
에디트플러스 : 파일 -> 새이름으로 -> 인코딩을 UTF-8로 지정 또는
                     문서 -> 인코딩 변경 로드 -> 인코딩 선택을 UTF-8로 지정
이클립스 : Windows->General->Workspace 에서 Text file encoding을 UTF-8로 지정 또는 파일을 선택하고 오른쪽 버튼 클릭->Properties에서 Text file encoding을 UTF-8로 지정
이 때 한글이 깨지는 경우가 있음.  백업을 받아놓아야 함

서버에 올릴때는 바이너리로 올림

8. native2ascii -encoding UTF-8 test.xml test.xml
native2ascii는 자바에 내장된 명령어로 위와 같이 하면 test.xml 파일을 UTF-8로 인코딩해줌
단, 한글은 \u001 ... 이런식으로 깨짐
따라서 에디터로 열어서 수정해주어야 함

9. HttpURLConnection을 이용한 HTTP 통신
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));

10. 웹로직에서 UTF-8 처리
web.xml 에서 다음 추가
<web-app>
...
  <context-param>
    <param-name>weblogic.httpd.inputCharset./*</param-name>
    <param-value>UTF-8</param-value>
  </context-param>
...
</web-app>

weblogic.xml 에서 다음 추가
<weblogic-web-app>
...
  <jsp-descriptor>
    <jsp-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </jsp-param>
  </jsp-descriptor>
...
  <charset-params>
    <input-charset>
      <resource-path>/*</resource-path>
      <java-charset-name>UTF-8</java-charset-name>
    </input-charset>
  </charset-params>
...
</weblogic-web-app>

11. 톰켓에서 UTF-8 처리
web.xml 에서 다음 추가하고 첨부 파일을 %CATALINA_HOME%/common/classes/filters 복사하면 된다고 함..ㅎㅎ
<web-app>
...
  <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
      <param-name>encoding</param-name>
      <param-value>UTF-8</param-value>
    </init-param>
  </filter>
 
  <filter-mapping>
    <filter-name>Set Character Encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
...
</web-app>


server.xml에서 다음과 같이 URIEncoding 추가
<Connector port="8080" maxHttpHeaderSize="8192"
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
    enableLookups="false" redirectPort="8443" acceptCount="100"
    connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />

12. 인코딩 테스트 jsp 참고 (이원영씨 글부분) http://www.javaservice.net/~java/bbs/read.cgi?m=resource&b=servlet&c=r_p&n=1092754975&k=hangul.jsp&d=tb#1092754975

Posted by 오징어~
,

트리거란?

INSERT, UPDATE, DELETE문이 TABLE에 대해 행해질 때 묵시적으로 수행되는 PROCEDURE 입니다.
Trigger는 TABLE과는 별도로 DATABASE에 저장됩니다.
Trigger는 VIEW에 대해서가 아니라 TABLE에 관해서만 정의될 수 있습니다.




- BEFORE : INSERT, UPDATE, DELETE문이 실행되기 전에 트리거가 실행됩니다.
- AFTER : INSERT, UPDATE, DELETE문이 실행된 후 트리거가 실행됩니다.
- trigger_event : INSERT, UPDATE, DELETE 중에서 한 개 이상 올 수 있습니다.
- FOR EACH ROW : 이 옵션이 있으면 행 트리거가 됩니다.

-- 행 트리거 : 컬럼의 각각의 행의 데이터 행 변화가 생길때마다 실행되며, 그 데이터 행의 실제값을 제어할수 있습니다.
-- 문장 트리거 : 트리거 사건에 의해 단 한번 실행되며, 컬럼의 각 데이터 행을 제어할수 없습니다.


간단한 행 트리거 예제

SQL>CREATE OR REPLACE TRIGGER triger_test
BEFORE
UPDATE ON dept
FOR EACH ROW
BEGIN
DBMS_OUTPUT.PUT_LINE('변경 전 컬럼 값 : ' || :old.dname);
DBMS_OUTPUT.PUT_LINE('변경 후 컬럼 값 : ' || :new.dname);
END;
/


SQL> SET SERVEROUTPUT ON ; -- (DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용)

-- UPDATE문을 실행시키면..
SQL>UPDATE dept
SET dname = '총무부'
WHERE deptno = 30

-- 트리거가 자동 실행되어 결과가 출력됩니당.
변경 전 컬럼 값 : 인사과
변경 후 컬럼 값 : 총무부

1 행이 갱신되었습니다.



간단한 행 트리거 예제2 (PLSQL BLOCK이 있는 트리거)

SQL>CREATE OR REPLACE trigger sum_trigger
BEFORE
INSERT OR UPDATE ON emp
FOR EACH ROW

DECLARE

-- 변수를 선언할 때는 DECLARE문을 사용해야 합니다
avg_sal NUMBER;

BEGIN

SELECT ROUND(AVG(sal),3)
INTO avg_sal
FROM emp;

DBMS_OUTPUT.PUT_LINE('급여 평균 : ' || avg_sal);

END;
/

트리거가 생성되었습니다.

SQL> SET SERVEROUTPUT ON ; -- (DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용)

-- INSERT문을 실행합니다..

SQL> INSERT INTO EMP(EMPNO, ENAME, JOB, HIREDATE, SAL)
VALUES(1000, 'LION', 'SALES', SYSDATE, 5000);

-- INSERT문을 실행되기 전까지의 급여 평균이 출력됩니다.
급여 평균 : 2073.214

1 개의 행이 만들어졌습니다.



출처
================================================
   * Oracle Community OracleClub.com 
   * http://www.oracleclub.com
   * http://www.oramaster.net
   * 운영자 : 김정식 (oramaster _at_ empal.com)
================================================

Posted by 오징어~
,

MSSQL 명령어

프로그램 2007. 8. 6. 14:30

시스템에 생성된 테이블 보기
select * from sysobjects where type='U'

버전 알아내기
select @@version

백업
backup database pubs to disk='C:\temp\pubs' with init

복원
restore database pubs from disk='C:\temp\pubs'

DB의 리스트 보기
select * from master..sysDatabases

테이블정보 보기
sp_tables;
sp_columns 테이블이름
select a.* from syscolumns a join sysobjects b on a.id = b.id where b.name = '테이블이름'

Posted by 오징어~
,
[콘솔에서]
mysql 데몬 start 하기
# /usr/local/mysql/bin/mysqld_safe &
또는  # /usr/local/mysql/share/mysql/mysql.server start

mysql 데몬 stop 하기
# /usr/local/mysql/bin/mysqladmin -uroot shutdown 또는
/usr/local/mysql/bin/mysqladmin -uroot -p shutdown
또는   # /usr/local/mysql/share/mysql/mysql.server stop

로컬에서 접속할때 :
mysql -h DB서버명 -u 유저명 -p패스워드 데이타베이스명

외부에서 접속할때 :
mysql -h DB서버명 -u 유저명 -p패스워드 데이타베이스명

백업 :
mysqldump -h DB서버명 -u 유저명 -p패스워드 [백업할 테이터베이스명] > [외부로 저장할 파일명]
ex) mysqldump -h localhost -u DBuser -pPassword MyDB > MyDB.sql

복구 :
mysql -h DB서버명 -u 유저명 -p패스워드 [복구할 테이터베이스명] < [외부로 저장된 파일명]
ex) mysql -h localhost -u DBuser -pPassword MyDB < MyDB.sql

데이터베이스생성 :
create database 데이터베이스명 default charset utf8;

사용자생성 :
grant all privileges on 데이터베이스명.* to 유저명@localhost identified by '패스워드' with grant option;
grant all privileges on 데이터베이스명.* to 유저명@'%' identified by '패스워드' with grant option;
grant reload,process on *.* to 유저명@localhost;

사용자삭제 :
delete from user where user='유저명';

외부 스크립트 실행
source 파일경로/파일명;

루트 패스워드를 잃어버렸을때 :
아래처럼 grant-table 미사용 모드로 mysql을 시작한 후 패스워드 수정
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
update user set password=password('111') where user = 'root';
Posted by 오징어~
,
문서출처 : http://www.lug.or.kr/2005/bbs.php?table=community_tip&query=view&uid=109&p=1


생기는 이유는 도스용 문서를 유닉스에서 보면 ^M이 행 끝에 나와 있는 경우를 볼 수 있다.
또한 editplus, ultraedit 등 문서편집기에서 바로 ftp 에 업로드 하는 경우도 발생 할 수 있다.


Vi(m) 사용시 ^M 없애기

vi(m)을 사용하다보면 윈도우즈에서 작업한 텍스트 파일에 ^M 문자가 붙는 경우를 종종 봅니다.
현재 vim에서는 도스 문서로 문서를 읽게 되면 이 문자가 붙지 않기도 하지만
종종 이 문자 때문에 문서 보기가 상당히 귀찮아 보일 때가 있습니다.
특히, SQL 백업 파일을 볼 때 이 문자가 붙기도 하는데 특정한 내용을 볼 때
이런 문자가 붙은 것을 보기는 상당히 힘들죠.

1. vi(m)이 열린 상태
1.1 문자 치환 명령 이용
다음과 같이 문자 치환 명령으로 이 문자를 없애도록 합니다.
:1,$s/^M//g

1,$ -- 범위지정
s -- substitute(치환)하라
^M -- Control Key 를 누른 상태에서 v key 를 누르고 동시에 m key 를 누릅니다.
// -- 공백문자로 치환
g -- 모든 매치된 case를 치환하라.


물론 이것의 입력은 다음과 같이 하도록 합니다.
:1,$s/[Control]+v+m을 누른다.//g

1.2 파일포맷 변경
vim 5.0 이상에서는 다음과 같이 명령을 내리도록 합니다

:set fileformat=unix
혹은
:set ff=unix
그리고, 저장하고 종료합니다.
:wq

이와 반대로 끝에 ^M붙이려면 다음과 같이 합니다.
:set fileformat=dos

이전버전에서는 다음과 같이 합니다.
:set textmode


2. 프롬프트 상에서
2.1 dos2unix 이용
dos2unix와 unix2dos를 이용하여 변환할 수 있습니다.

다음과 같이 하면 ^M 문자가 없어집니다.
$ dos2unix [문서명](여러 파일의 경우 *.확장자)

그리고 다음과 같이 하면 ^M 문자가 생기죠.
$ unix2dos [문서명]

2.2 cat과 tr을 이용한 방법
다음과 같이 하면 해당 파일의 ^M 문자가 없어집니다.
$ cat dos-file | tr -d ^M > unix-file

2.3 perl 스크립트
다음과 같이 하면 여러파일을 한번에 바꾸게 됩니다.

# perl -i -pe 's/015//g' *.html

3. 다른 에디터의 사용
pico 라는 에디터 아실겁니다. 기능은 별로 없지만 빠르고 간편하죠.
vi나 emacs에서 ^M으로 잡히는 것이 pico에서는 안 잡히는데,
파일을 pico로 열어서 다시 이 문서를 저장합니다.
그리고 vi나 emacs로 읽으면 ^M이 모두 없어진 것을 알 수 있습니다.

4. man 페이지의 ^M, ^H 문자
man 페이지를 일반 화일로 바꾸면 ^M, ^H 등이 생기는데(예, 한컴리눅스 ^H)
다음과 같이 하면 이 문자를 없애고 볼 수 있습니다.

다음은 ls의 예입니다.
4.1 ps 또는 pdf로 변환하기
man -t 변경 시킬 화일 > 변경후 화일명.ps
man -t 변경 시킬 화일 > 변경후 화일명.pdf
예)
man -t ls > ls.ps 또는 ls.pdf로 보시면 됩니다.

4.2 텍스로 변환하기
man 변환시킬화일 | col -b> 변환후 화일명.txt
예)
man ls | col -b > ls.txt
Posted by 오징어~
,