Daniel J Song's page

prev December 2018 next
SunMonTueWedThuFriSat
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

S E A R C H

A R C H I V E S
June 2003
July 2003
August 2003
September 2003
October 2003
November 2003
December 2003
January 2004
February 2004
March 2004
April 2004
May 2004
June 2004
July 2004
August 2004
September 2004
October 2004
November 2004
December 2004
January 2005
February 2005
March 2005
April 2005
May 2005
June 2005
July 2005
August 2005
September 2005
October 2005
November 2005
December 2005
January 2006
February 2006
March 2006
April 2006
May 2006
June 2006
July 2006
August 2006
September 2006
October 2006
November 2006
December 2006
January 2007
February 2007
March 2007
April 2007
May 2007
June 2007
July 2007
August 2007
September 2007
October 2007
November 2007
December 2007
January 2008
February 2008
March 2008
April 2008
May 2008
June 2008
July 2008
August 2008
September 2008
October 2008
November 2008
December 2008
January 2009
February 2009
March 2009
April 2009
May 2009
June 2009
July 2009
August 2009
September 2009
October 2009
November 2009
December 2009
January 2010
February 2010
March 2010
April 2010
May 2010
June 2010
July 2010
August 2010
September 2010
October 2010
November 2010
December 2010
January 2011
February 2011
March 2011
April 2011
May 2011
June 2011
July 2011
August 2011
September 2011
October 2011
November 2011
December 2011
January 2012
February 2012
March 2012
April 2012
May 2012
June 2012
July 2012
August 2012
September 2012
October 2012
November 2012
December 2012
January 2013
February 2013
March 2013
April 2013
May 2013
June 2013
July 2013
August 2013
September 2013
October 2013
November 2013
December 2013
January 2014
February 2014
March 2014
April 2014
May 2014
June 2014
July 2014
August 2014
September 2014
October 2014
November 2014
December 2014
January 2015
February 2015
March 2015
April 2015
May 2015
June 2015
July 2015
August 2015
September 2015
October 2015
November 2015
December 2015
January 2016
February 2016
March 2016
April 2016
May 2016
June 2016
July 2016
August 2016
September 2016
October 2016
November 2016
December 2016
January 2017
February 2017
March 2017
April 2017
May 2017
June 2017
July 2017
August 2017
September 2017
October 2017
November 2017
December 2017
January 2018
February 2018
March 2018
April 2018
May 2018
June 2018
July 2018
August 2018
September 2018
October 2018
November 2018
December 2018

G O T O

L O G I N

Cygwin 

Pages of Cygwin Category: wikiX, Stuffs,

  1. Cygwin 사용하기
  2. cygwin + puttycyg로 윈도우에서 터미널 환경 꾸미기
  3. Cygwin 한글 팁
  4. Cygwin 한글2 bash에서 한글 사용
  5. Cygwin inetd 사용
  6. Cygwin SSHD 설치 팁
  7. Cygwin sshd 설치
    1. 쉘에서 실행
    2. 서비스로 실행하기
  8. 현재 본인의 세팅
  9. vi 기본 파일 포맷을 dos로

Cygwin 사용하기  

http://netj.org/cygwin_setup

cygwin + puttycyg로 윈도우에서 터미널 환경 꾸미기  

Posted at 2010/04/13 19:31
블로그새로 업데이트 한 내용입니다.
puttycyg를 사용하면 터미널을 sshd나 telnet을 올리지 않고도 putty로 쓸 수 있습니다.
매우 깔끔한 방법이니 이 방법을 추천합니다.
http://rommance.net/tc/597

Cygwin 한글 팁  

원문 http://www.whiterabbitpress.com/osp/cygwin/hangul.html

Cygwin에 포함된 소프트웨어들은 기본적으로 영어권을 대상으로 컴파일되거나 설정되있다. 이 글은 최소한의 노력으로 한글을 사용할 수 있게하는 것이 목적이다. 완전한 한글화는 C 라이브러리 등의 제약으로 상당한 노력이 필요하다.

1. 쉘(bash)에서 한글 쓰기 ~/.inputrc 파일을 만들고 다음 내용을 입력한다.

set meta-flag On
set convert-meta Off
set output-meta On

 

2. ls에서 한글 파일명 제대로 보기 ~/.bashrc에 다음 내용을 입력한다.

alias ls='ls -F --color=auto --show-control-char'

 

옵션을 간단히 설명하면, -F는 파일형식에 따라 파일명 뒤에 (디렉토리) /, (실행파일) *, (심볼릭링크) @를 붙이고, --color=auto는 파일형식에 따라 다른 색으로 표시하고, --show-control-char는 한글을 보이게 한다. ~/.bash_profile 대신 ~/.bashrc에 추가하는 이유는 부모쉘의 alias가 자식쉘에 전달되지 않기때문에 alias 정의가 쉘이 시작할때마다 실행되는 ~/.bashrc에 있어야 한다.

정정: ~/.bashrc에만 넣어두면 처음 cygwin을 실행할 때 (즉, login shell) 실행이 안되므로 ~/.bash_profile (혹은 ~/.profile)에도 alias 정의가 있어야 합니다. 제가 ~/.bash_profile에 source ~/.bashrc를 적어두어서 미처 발견하지 못했습니다. (유제환님께 감사 :)

3. vi(vim)에서 화면 안깨지고 한글 쓰기 기본으로 설치된 vi에서 한글을 입력할때마다 화면이 깨지면, vi를 다시 컴파일해야 한다. vim 소스는 http://www.vim.org/에서 받을 수 있다.

./configure에 --enable-multibyte 옵션을 추가해야 한다. (최근 Cygwin의 vim 6.0 버전에서는 다시 컴파일할 필요가 없다. vi --version에서 +multi_byte를 확인할 수 있다.) 설치하면 vim 이름으로만 설치되니, vi로도 링크를 걸어준다. 또 필요하다면 /usr/local/share/vim/vim60/vimrc_example.vim을 /usr/local/share/vim/vimrc나 ~/.vimrc로 복사한후 알맞게 수정한다.

여기서 한 글자가 2바이트인 한글을 올바로 처리하려면, ~/.vimrc에 다음 내용을 추가한다.

__set fileencodings=euc-krv
set encoding=cp949

 

화면 폭보다 긴 줄이 화면에서 제일 아래 줄인 경우 줄 대신 '@' 표시가 나오는데, 이때 한글을 입력하면 화면이 한줄씩 밀리게 된다. 터미널과 관련된 문제로 보이지만 아직 정확한 이유를 찾지못했다. 만약 알고있다면 알려주길 바란다. 대신 편법으로 아래 내용을 ~/.vimrc에 추가하면 한 줄을 넘어서는 부분은 (뒤에 더 있음) >, (앞에 더 있음) <으로 표시된다.

set nowrap
set listchars=extends:>,precedes:<

 

보통 다음도 추가한다. 첫번째 줄은 Tab 간격을 정하고, 두번째 줄은 시끄러운 삐소리를 없앤다. set tabstop=4
set visualbell t_vb=

 

4. 그런데 아직도 vi(vim)에서 한글이 계속 깨져요! 불행히도 Windows command.exe가 제공하는 터미널에 문제가 많아서 한글을 사용할때 불편한 경우가 있다. 구체적으로 행바꿈시 화면에 두칸이 띄어지는 것처럼 보이는 문제, 한글 상태에서 화면정리(Ctrl-L)시 한줄이 밀리는 현상, 긴줄이 화면 밑에 있을때 한줄이 밀리는 현상, 화면이 깨져서 자주 화면정리를 해줘야하는 문제 등이 있다. 아래의 방법으로 부분적으로 해결할 수 있다. 혹시 좋은 방법을 알고 있다면 알려주길 바란다. (Windows 98과 Windows 2000에 포함된 command.exe 혹은 cmd.exe의 경우이다. 혹시 다른 버전의 command.exe에는 이런 문제가 없을 수 있다.)

TERM 환경변수 수정 TERM 환경변수를 기본값인 cygwin이 아닌 다른 값으로 수정하여 문제를 줄일 수 있다. 그러나 Windows command.exe 문제때문에 영어권에서도 ncurses가 완벽하게 동작하지 않음을 볼 때 큰 기대를 가지진말라. 또 다른 프로그램이 정상적으로 작동하지 않을 수도 있다. ~/.bash_profile에 export TERM=ansi-mini와 같이 다른 터미널 이름을 입력하면 된다.

vi(vim) 설정 수정 (Vim 6.0 버전에서는 적용이 안된다.)

위의 두방법은 원격 호스트에서 vi를 사용한다면 해당 호스트의 설정도 수정해야 한다는 단점이 있다. 편집기 서버 기능(vim 도움말 remote.txt 참조)이나 scp, rcp, ftp로 네트웍에서 파일 읽고쓰기 기능(pi_netrw.txt 참조)이 조금 도움이 될 수 있다.

완전히 다른 터미널을 사용하는 방법도 있다. 사실 이 방법들을 더 추천한다.

vim Win32 GUI 사용 vim Win32 GUI를 따로 설치한후 PATH 환경변수에 추가하여 사용한다. (예, ~/.bash_profile에 export PATH=/cygdrive/c/Vim/vim60:$PATH) gvim이란 파일명으로만 설치되므로 vi나 vim 이름으로 심볼링크를 걸거나 alias를 만들어둔다. (alias 예, ~/.bashrc에 function vim() { gvim $1 & }) vim 도움말 gui_win32.txt에 있는 팁들도 유용하다. 단점은 command.exe를 사용할때와 마찬가지로 원격 호스트에서 편집할때 문제가 있다.

telnetd 사용 cygwin의 inetd를 활성화한후 (팁 모음 참조) 터미널 문제가 없는 원격 터미널 에뮬레이터(teraterm 등)를 사용하여 localhost에 접속하여 Cygwin을 사용한다. 경우에 따라 원격 테미널 에뮬레이터에 맞게 TERM 환경변수를 수정할 필요가 있다. (혹시 접근하는데 문제가 있다면 Windows 2000의 '텔넷 서버 관리'에서 서비스를 중지하라.)

rxvt 사용 (재컴파일 필요) rxvt는 cygwin에 기본적으로 포함된 터미널이다. 따로 창이 뜨고 X11은 필요없다. 그러나 폰트 등 2바이트 지원을 위해 새로 컴파일해줘야 한다.

X11에서 hanterm 사용 Windows에 X11 display server(Cygwin/XFree86, Xmanager 등)와 hanterm을 설치하고, hanterm에서 vim을 사용한다. 아니면 vim X11 GUI를 사용할 수도 있다.

Cygwin 한글2 bash에서 한글 사용  

제목: cygwin의 bash에서의 한글 사용

분류: 쉘

글쓴이: 이신재 <lsj0713_at_NOSPAM.yahoo.co.kr>

http://list.kldp.org/pipermail/tip/2002Mar/0399.html

Win32 운영체제 아래서 유닉스 환경을 사용할 수 있도록 도와주는 cygwin은
국내에서도 이미 많은 사람들이 사용하고 있을 것이다(라고 믿는다-_-;)
그런데 cygwin의 bash에서는 한글사용에 약간의 문제가 있다. 이것을
해결하는 방법을 소개하고자 한다. 별로 대단한것은 아니지만...

일단, cygwin를 설치한 뒤 ls를 하면 linux에서와는 달리 흑백으로 보이며,
한글로 된 파일/디렉토리는 모두 ?로 표시된다. ~/.bashrc의 맨 마지막에
다음과 같이 추가하자.

unalias ls
alias ls='ls --color=tty --show-control-chars'

이렇게 해두면 색깔도 제대로 나오고, 한글 이름도 제대로 표시될 것이다.
참고로, 첫번째 줄은 기존에 설정된 ls에 대한 alias를 해제하는 명령어다.
기존에 설정된 alias가 없을 경우 시작할때마다 경고메시지를 만나게 될
것이다. 이것이 기분나쁘면 두번째 줄만 적어줘도 상관없다.

두번째로, cygwin에서는 커맨드 라인에서 한글 입력도 제대로 안되고,
tab키도 한글파일에는 제대로 작동하지 않는다. 이것은 전적으로
bash에서 명령어를 입력받을 때 쓰는 readline라는 놈의 잘못이다.
그러나 이것도 간단한 설정파일을 만들어서 해결할 수 있다. (
http://man.kldp.org/man/man1/bash.1.html 참조)

우선, 자신의 홈 디렉토리(~또는 /home/자기ID)에 .inputrc란 파일을 다음과
같은 내용으로 만든다.

set meta-flag On
set convert-meta Off
set output-meta On

첫번째 옵션은 (터미널 자체의 8비트 문자 지원여부와 상관없이) 8비트
입력을 가능하게 하는 옵션이다. 두번째 옵션은 8비트 문자를 변환하지
않도록 하는 옵션이다. 세번째 옵션은 8비트 문자를 출력할 때 그대로
출력하도록 하는 옵션이다. 자세한것은 bash 맨페이지의 readline항목을
참조하자. ( 영어에 약하신 분은 http://man.kldp.org/man/man1/bash.1.html
을 애용합시다-_-; )

그러면, 다음에 cygwin을 실행시킬 때부터는 commandline prompt상에서도
한글을 제대로 사용할 수 있을 것이다.

Cygwin inetd 사용  

원문 http://www.whiterabbitpress.com/osp/cygwin/tips.html

inetd 사용하기 Windows에서 Cygwin을 사용하여 ftp, rcmd, talk, telnet 등 서비스를 제공할 수 있다. 먼저 iu-config를 실행한다. 간단한 쉘스크립트이므로 파일을 살펴보면 알 수 있듯이, /etc/inetd.conf, /etc/shells, /etc/ftpusers, /etc/ftpwelcome, /etc/motd 파일이 만들어진다.

Windows 95/98이라면 /usr/sbin/inetd.exe를 실행하면 되고, Windows NT/2000은 inetd를 '서비스'로 등록해야 한다. Windows 관리자 권한으로 /usr/sbin/inetd.exe --install-as-service를 실행한다. '제어판'->'관리 도구'->'서비스'에 보면 "CYGWIN inetd"를 발견할 수 있다. 필요하다면 '시작 유형'을 '수동'으로 변경한다. 그런데 이 서비스를 실행하려면 cygwin1.dll이 Windows PATH 환경변수 안에 있어야한다. '내 컴퓨터'->'등록 정보'->'고급'->'환경변수'에서 PATH 환경변수에 C:cygwinbin을 추가하거나, 파일을 기존 PATH 중 한 디렉토리로 복사한다. (경우에 따라 컴퓨터를 재시작해야 한다.)

이제 inetd 서비스를 시작해보자. '제어판'->'관리 도구'->'서비스'나 command.exe에서 net start inetd 명령어로 시작할 수 있다.

반대로, net stop inetd로 서비스를 중단할 수 있다. 서비스에서 제거하려면 /usr/sbin/inetd.exe --remove-as-service를 사용한다.

더 자세한 정보는 /usr/doc/Cygwin/inetutils-*.*.*.README를 참고하라.


추가: telnet을 열어도 putty로 localhost로 텔넷 접속시 한글이 안되었습니다.
     그래서 sshd를 깔고 ssh로 접속하니 한글 입력이 되더군요.

Cygwin SSHD 설치 팁  

원문 http://tech.erdelynet.com/cygwin-sshd.html

Use the following steps to successfully get OpenSSH working as a server:

Set up your environment for Cygwin. For NT 4 and Windows 2000, this is done by right-clicking on My Computer and choosing Properties. In NT4, it's on the Environment tab. In Windows 2000, it's the Environment Variables on the Advanced tab. Add the following setting to the System Environment:
CYGWIN = ntsec tty
Append the following variable to contain the following:
Path : ;C:Cygwinbin
Note that if you are NT/2K on FAT(32), the ntsec option for the CYGWIN variable won't help you much. In these cases, just set CYGWIN to "tty". (Note: Through email, I've been notified that having CYGWIN=ntsec actually does made a difference on FAT(32) systems. Geoffrey Hoo)

Download the Cygwin Setup Program into a temporary folder like C:CygwinInstall.

Run "C:CygwinInstallSetup.exe", choose " Install from Internet ", choose a suitable mirror (I like "ftp://mirrors.rcn.net").

Now choose the packages you want to install. Click on the "+" next to "Admin" to expand it. Click on the word "Skip" next to the word cygrunsrv to install the NT/Win2k/XP Cygwin Service Initiator. Install cygwin-doc from "Doc", nano and/or vim from "Editors" and openssh from "Net".

Optional After Setup is complete, I like to make a couple of changes to the default installation: - Download and install ftp://ftp.erdelynet.com/mike/cygwin/profile, ftp://ftp.erdelynet.com/mike/cygwin/sh_aliases into /etc. - Change the Cygwin icons so that, instead of pointing to cygwin.bat, they point to "c:cygwinbinbash.exe --login -i" and start in "c:cygwinbin"

NOTE: Unless specified otherwise, run the following commands within the Cygwin Bash Shell installed in your Start Menu.

Now, you'll want to configure sshd. This is MUCH simpler than it used to be. Run "ssh-host-config -y" to set it up. This step will create necessary configuration files, a priviledge separation user and necessary directories. When prompted with "CYGWIN=" type what you set CYGWIN to in step 1 (tty ntsec).

You will probably want to change permissions and ownership on some files:
cd /; chmod -R og-w .
chmod og+w /tmp
touch /var/log/sshd.log
chown system:system /var/log/sshd.log /var/empty /etc/ssh_h*
chmod 755 /var/empty

Now you are ready to start the service: "cygrunsrv -S sshd"

Test the service by running "ssh localhost"

Please note that previously, I had instructions that included running a custom fix permissions script. I have not tested the script with newer versions of OpenSSH and therefore have left that information out of the instructions above. If you have any questions, please direct them to the mailing list

Cygwin sshd 설치  

 ssh-host-config
를 실행한다.

쉘에서 실행  

 /usr/sbin/sshd
쉘에서 실행한 후 쉘을 닫아도 상관없다. 데몬으로 뜨기 때문인듯하다. ssh로 접속해서 윈도우즈 GUI 프로그램을 실행하고 싶다면 sshd를 쉘에서 띄워야 한다.

서비스로 실행하기  

 cygrunsrv -S sshd
를 실행하면 문제없이 동작하는게 일반적이다.
sshd를 서비스로 등록하여 실행하는 경우에는 ssh를 이용해서 접속하였을 경우에, GUI 프로그램들이 뜨지 않는다.
sshd를 서비스로 등록해도 "데스크톱과 상호작용 허용" 옵션을 켜면 ssh로 접속하여 GUI 프로그램을 실행할 수 있는 것 같다. 그러나, SYSTEM 계정으로 sshd 서비스를 실행해야만 쓸 수 있는 옵션임을 알아두자.

현재 본인의 세팅  

현재 제 로컬 윈도 PC에 Cygwin을 깔고 sshd를 열어 putty로 접속 작업중입니다.

./bashrc

./inputrc

./vimrc

vi 기본 파일 포맷을 dos로  

cygwin 에서 vi의 기본 파일 포맷을 dos로 하지 않았더니 나도 모르는 사이에 unix 포맷으로 소스 파일들이 만들어져서 cvs 사용시 고생했었다. /.vimrc 에

fileformats= dos, unix

를 해주어야 한다. 이 값이 없으면 기본이 unix,dos가 되고 아예 .vimrc 파일이 없으면 fileformats= 이된다.

http://www.cygwin.com/ml/cygwin/2001-11/msg01459.html


Stuffs

Posted by rommance at 2010-04-18 23:17:50 . 14921 hits . source . info . diff . 0.653 sec