2009. 10. 28. 02:08
FUSE는 리눅스에 있는 시스템인데, Filesystem in Userspace 의 줄임말이다.

무얼 하는 것인가, 하면 커널이 아닌 유저스페이스에서 동작하는 파일 시스템 드라이버를 만들 수 있게 해주는 것이다. 리눅스 커널에 fuse가 포함되면 드라이버로 굳이 만들지 않더라도 여러 가지 파일 시스템을 쓸 수 있는 것이다.

fuse를 쓰는 것 중에 제일 쓸만한 것이 개인적으로는 sshfs를 들고 싶은데, sftp를 이용해서 다른 컴퓨터에 있는 디렉토리를 마운트시키는 것이 가능하다. 별다른 설정 없이 ssh만 작동한다면 원격 디렉토리를 쓸 수 있다는 점에서 상당히 유용하다. 포트도 자유자재로 바꿀 수 있고 ssh 자체가 암호화를 통해 어느 정도 보안성도 갖기 때문에 필자는 사용중인 데스크탑에 온갖 서버의 디렉토리를 sshfs로 물려놓았다.

이렇듯 fuse란 녀석은 상당히 활용도가 높은데, 이것과 비슷한 일을 하는 윈도용 라이브러리를 발견해서 정보를 링크해 둔다.

DOKAN이라는 것인데, 이 것은 지금 일본인이 개발하고 있는 것으로 보인다. 오픈소스이며, sshfs의 예제도 같이 올려져 있다.

공식 사이트: http://dokan-dev.net/

루비와 닷넷 프레임워크용 바인딩을 제공하니까 갖다 쓰면 유용할 듯 하다.
2009. 6. 26. 03:01
screen은 참 좋은 어플이긴 한데, 매번 켜주고 붙이고 하는 것이 상당히 귀찮은 것이 사실이다. 그리고 여러 부가기능들을 보면 항상 켜놓는 것도 그다지 나쁘지 않은 선택인거 같아서, 몇 가지 해법을 찾아보았다.

  1. screen-profile 쓰기
    사실 가장 무난한 방법인 것 같다. ubuntu에서 제공해주는 것인데, gentoo에서는 dpkg를 이용해서 포티지와 합쳐진 통합 관리로 설치 및 유지 보수가 가능하다.
    하지만 중요한 것은... 이거 쓰는 법을 내가 잘 몰라서 이 방법은 포기했다 -_-.. 그래도 꽤 유명한 방법인 것 같으므로 조금만 찾아보면 적절한 해답을 얻을 수 있을거라고 믿는다.
  2. 직접 쉘스크립트를 짜서 자동으로 붙게 만들기
    이 것이 내가 소개하고자 하는 방법이다.
    먼저, screen의 옵션에 대해 조금 알 필요가 있다.
    • -x : 현재 실행중인 screen에 attach하되, 이미 attach된 screen이라고 해도 동시에 보기 모드로 붙는다.
    • -R : attach가 가능하면 attach를 하고, attach가 불가능하면 새롭게 screen 세션을 만든다.
    이 두 옵션을 동시에 쓰면, screen이 수행되지 않은 상태면 새롭게 screen이 수행되고, 이미 수행중인 screen이 있다면 자동으로 attach된다.
    그리고, screen이 수행중일 때는 기본값으로 TERM 환경변수가 screen이 된다는 점을 이용하면 screen 내에서 쉘이 실행될 때 screen이 또 실행되는 것을 막을 수 있다.
먼저 홈 디렉토리에 있는 .bashrc 파일을 살펴본다. 그리고 맨 마지막에 다음과 같은 내용을 집어넣는다.
if [[ $TERM != "screen" ]]; then
  screen -x -R -q
  exit
fi

위의 명령은 꽤 단순하다. TERM 환경변수가 screen이 아니라면, 즉 screen 내부가 아니라면 screen을 attach시켜서 현재 실행중인 screen에 붙인다. 그리고 이 붙은 screen이 종료되면 자동으로 쉘도 꺼지도록 했다.

이렇게 하면, 언제나 어디서나 접속해도 하나의 터미널을 공유할 수 있고 작업 내용을 볼 수도 있다. 편리하다.

'유용한 어플 > screen' 카테고리의 다른 글

자동으로 screen 켜기  (0) 2009.06.26
screen 소개  (0) 2009.06.17
2009. 6. 17. 20:31
이번에는 gentoo에서 필수요소인 screen을 소개해 보도록 하겠다.

screen은 젠투 포티지에서 설명을 찾아보면

 Screen - A full-screen window manager that multiplexes physical terminals between several processes

이라고 설명이 나와 있다.
간단하게 내가 이해한 대로 설명을 하자면, 일종의 텍스트 모드 터미널이라 할 수 있다.

GUI 환경에서 여러 개의 터미널을 열고, 탭을 만들고, 탭 사이로 다니면서 동시에 여러 작업을 하듯 screen을 쓰면 한 터미널에서 여러 작업을 동시에 수행할 수 있게 된다. 그리고, 'Detach'를 통해 진행중인 작업을 현재 작업중인 콘솔에서 분리시켜 독립적으로 돌아가게 할 수 있고 'Attach'를 통해 detach된 작업을 다시 수행할 수 있다는건 screen의 최대 매력이라고 할 수 있겠다.

이런 킹왕짱 screen을 써보려면, 젠투의 경우
# emerge screen
우분투의 경우
# apt-get install screen
으로 설치하는 것이 가능하다.

사용법은, 간단하게 쓰려면 매우 간단하다. 먼저, 실행중인 screen이 없다면 단지 screen만 쳐서 새 screen을 실행시킨다.
$ screen
혹은, 먼저 실행중인 스크린이 있을 때는 -r 옵션으로 attach를 할 수도 있다.
$ screen -r
detach가 이루어지지 않은 screen에 attach하려면 두 가지 방법이 있다.
다른 곳에서 동작중인 screen을 강제로 detach시킨 뒤 attach하려면 -d -r 옵션을 둘 다 주면 된다.
$ screen -d -r
그게 아니고 동시에 작업하는게 필요한 경우 -x 옵션을 주면 된다. 이 때는 꽤 재밌는 점이, 같은 윈도우를 보고 있을 때면 한 쪽의 변화가 다른 한 쪽에 바로바로 보이고 둘 다 동시에 키를 입력한다거나 하는 것도 가능하다.
$ screen -x

이제 스크린을 시작했으면, 여러가지 방법으로 가지고 놀 수 있다. 기본적으로 명령키는 Ctrl+A인데, 이 키를 누르고 다른 키를 누름으로써 여러가지 명령을 줄 수 있다.
흔히 사용되는 것들은 다음과 같다.
 ^A a 또는 ^A ^A
이전에 작업중인 창으로 이동.
Alt+Tab과 비슷하다고 할 수 있다.
 ^A c
새로운 창을 연다. 새 탭을 여는거라고 생각해도 무관하다.
 ^A d
현재 작업중인 screen에서 detach하고 나간다.
 ^A K
작업중인 창을 강제로 닫는다.
 ^A "
현재 열려 있는 창들의 목록을 볼 수 있다. 선택하면 그 창으로 이동하는 것도 가능하다.
 ^A A
창의 제목을 바꿀 수 있다. 바꾸면 ^A "에서 나오는 창의 제목이 바뀐다.
 ^A 숫자
숫자에 해당하는 창으로 바로 이동한다.
 ^A S
창을 위 아래로 분리하여 두 창을 동시에 본다.
 ^A Tab
분리된 다음 창으로 이동한다.
 ^A +, ^A -
분리된 창의 크기를 조절한다.

뭐, 요 정도 있으면 그럭저럭 쓸만하다.

그리고 추가로,  screen은 인코딩 변환하는 것도 지원한다.

예를 들어 UTF-8 인코딩의 터미널에서 이슬비같은 cp949 인코딩으로 작업해야 할 경우가 생기면 이 명령을 주면 된다.
^A:encoding euckr
사실, CP949는 지원을 안하고 euckr밖에 지원하지 않아서 뭥, 뷁 같은 글자들은 찍히지 않고 깨지긴 하지만 그럭저럭 큰 문제 없이 쓸 수 있어 좋다.

이후에 더 기능을 많이 알게되면 추가해야지.

'유용한 어플 > screen' 카테고리의 다른 글

자동으로 screen 켜기  (0) 2009.06.26
screen 소개  (0) 2009.06.17
2009. 6. 15. 18:00
개인적으로 가장 좋아하는 편집기는 vim이다. 이슬비에 찌질댈때도 vim을 쓰고 C로 어플을 짤 때도 vim을 쓰고 sml로 PL 플젝을 할 때도 vim을 쓰고 Verilog로 CPU를 짤 때도 vim을 쓰고 ruby로 스크립트를 작성할 때도 vim을 쓰는 열혈 추종자라고 할 수 있을 거다.

사람에 따라 vim은 GPL을 따르지 않기 때문에 악마의 프로그램이라는 둥, emacs가 더 킹왕짱 위대하다는 둥 하지만 보편적인 평가로는 vim은 최고의 텍스트 에디터라는데는 대부분 동의한다. emacs는 약간... 에디터에서 동떨어진...

근데 이 vim은 초심자에겐 엄청난 진입 장벽이 있는데, 그건 바로 3개의 모드일 것이다. 입력 모드, 명령 모드, Ex 모드는 보통 글을 찍으면 바로 찍히는 에디터를 써 오던 사람들에게는 안드로메다보다도 더 높은 진입 장벽으로 작용할 것이다.

하지만 한번 익히면 정말 빠져나올 수 없는게 vim의 세 모드다. 보통의 에디터보다 훨씬 많은 키 바인딩으로 인해 정말 구석구석 에디팅이 가능한 것은 최고의 매력이다.

자, 그럼 이제 몇 가지 팁을 찾아낸 것을 적당히 정리해서 적어보자. 특별한 말이 없으면 전부 Ex모드에서 치는 : 명령어이다. :를 입력한 뒤에 명령어를 치자.
  • set incserch
    이 명령은, /명령을 통해 단어를 찾을 때 다 입력하기 전에 해당 단어가 어디 있는지 보여준다. 물론 esc 등으로 검색을 취소하면 원래 위치로 커서가 돌아오니 적절하다.
  • set hlsearch
    이 명령은 찾은 결과가 highlight되어 강조되어 보이게 하는 기능이다. 강조된 것을 없앨 때는 noh 명령을 통해 끄면 된다.
  • lcd %:p:h
    이 명령은 현재 파일이 위치한 디렉토리로 이동하는 명령이다. 원래 vim은 파일을 열더라도 작업 디렉토리는 바뀌지 않아서 항상 절대경로로 파일 이름을 지정해주곤 하는데, 이 명령을 쓰면 같은 디렉토리에 들어있는 여러 파일들을 편하게 열어볼 수 있어 좋다.
  • sp (vs)
    sp나 vs는 화면을 갈라서 여러 파일을 동시에 작업할 수 있게 해 주는 명령이다. sp는 가로로 갈라지고 vs는 세로로 갈라진다. 갈라놓으면 Ctrl+W와 화살표로 각 창을 이동할 수 있다.
    만약 이동 키인 hjkl을 대문자로 해서 Ctrl+W 뒤에 입력하면 해당 창이 그 방향으로 이동한다.
  • res
    현재 창의 높이를 최대로 늘린다. 좁을 때 적절하다.
  • au WinEnter * ...
    해당 창으로 이동했을 때 ... 명령이 수행된다. res를 넣어주면 해당 창으로 이동했을 때 그 창이 자동으로 최대화되어 편리하다.
  • au BufEnter * ...
    해당 파일을 열었을 때 ... 명령이 수행된다. lcd %:p:h 명령을 넣어주면 파일이 열릴 때마다 이동하니 좋다.
  • enew! | r!...
    현재 편집중인 파일을 없애고 ... 명령을 쉘에서 수행한 결과를 해당 창에 넣는다. 예를 들어서 enew! | r!ls 를 하게 되면 현재 디렉토리의 파일 목록이 불러와지는 것이다. 프로그램 만들던 중에 문법 오류 체크하는덴 이만한게 없다.

'유용한 어플 > vim' 카테고리의 다른 글

Vim의 유용한 기능들  (3) 2009.06.15
vim
2009. 3. 3. 19:55
요즘 보면 나름대로 보안을 챙기겠답시고 포트를 하나둘씩 차단하는 네트워크 관리자가 많다.

포트만 차단하면 그나마 양반인데, 가끔은 모든 포트를 막아버린 뒤에 특정 보안 프로그램을 설치해야만 인터넷이 되게 해준다던가 하는 경우도 있다. 분통 터진다 -_-...

이런 경우, 개인적인 호불호로 설치하지 않는 경우도 있을 수 있지만 OS 특성으로 인해 설치하지 못하는 경우도 생긴다. (ex. 64bit OS에 설치할 경우 정상동작하지 못하는 프로그램 등)

그러면, 저렇게 해당 프로그램을 설치하지 못할 경우 100% 보안이 위험한가? 꼭 그런것도 아니라는걸 금방 알 수 있을거다. V3 안깔리면 카스퍼스키 쓰면 되고, 카스퍼스키 안써지면 맥아피 사다 써도 되고, 정말 자신있다면 백신 만들어 쓸 수도 있을텐데 꼭 피xxx인지 뭔지 하는 삼류 백신을 설치해야만 하는건가 하는 생각도 든다.

이럴 때, 우회하는 방법을 알아보자.

아, 무엇보다 먼저 “방화벽 밖에 있으면서 SSH 접속 및 터널링이 가능한 서버”가 필요하다. 웬만한 리눅스 서버라면 ssh를 여는 것만으로 해결되고 윈도 서버라 해도 Cygwin을 통해서 OpenSSH를 설치하면 해결될 것이다. 방화벽 밖에 있는 서버가 없다면... 아쉽지만 단념하는게 좋을 거 같다. 아니면 지인에게 부탁해서 한대쯤 얻어두는 방법이 있다. 주변에 홈페이지 서버를 직접 관리하는 사람이 있다면 부탁해보자.

서버측은 OpenSSH를 사용한다고 가정하고, 클라이언트에서는 PuTTY를 사용한다고 가정하겠다.
한글 PuTTY는 http://www.kldp.net/projects/iputty 에서 다운로드받을 수 있다.

  1. 일단, 열린 포트가 있는지 확인해본다.
    보안 목적으로 막은 경우, 즉 별도의 프로그램을 설치할 필요가 없이 인터넷은 가능하지만 일부 서비스가 불가능한 경우에는 아무리 빡빡하게 막아도 인터넷 서핑용 포트인 80번 포트는 열려 있다. 인터넷을 시도했을 때 웹페이지는 뜬다면 80번 포트는 열려있다고 보면 된다.
    DNS 서비스용 포트인 53번도 보통 열려있는 포트이며, 8080도 잘 열려 있는 포트 중 하나인 것 같다.
    SSH 서버에서 해당 포트 번호를 열어보고 접속이 되는지 확인해 보는 것이 좋을 것 같다.
    OpenSSH의 경우 포트를 추가해서 여는 방법은 설정파일(보통은 /etc/ssh/sshd_config)에 다음과 같은 명령을 추가해주면 된다.(관리를 위해 Port 명령이 나오는 근처에 써 주는게 좋을 것 같다.)
    추가해주고 나면 ssh 서버를 재시작해주는것을 잊지 말자.(/etc/init.d/sshd restart 로 재시작이 가능하다. 우분투일 경우 앞에 sudo를 붙여주자.)
    Port 8080 # 8080포트를 열 때
  2. PuTTY가 C:\Program Files\HangulPuTTY 에 설치된 경우, 명령 프롬프트를 연 다음에 다음과 같이 입력한다.(명령 프롬프트는 시작->실행을 선택해서 cmd를 치면 나온다.)
    주의할 점은, -P 뒤에 나오는 숫자는 위에서 찾은 열린 포트 번호를 넣고 server.com 대신에 위에서 설정한 서버 주소가 들어가야한다.
    C:\>cd "C:\Program Files\HangulPuTTY"
    C:\Program Files\HangulPuTTY>PUTTY -D 8080 -P 8080 -ssh server.com
  3. 잠시 기다리면 login as: 라는 프롬프트가 뜨면서 입력을 기다린다. 여기서 자신의 해당 서버 계정 아이디와 비밀번호를 입력해주면 로그인이 된다. 비밀번호는 원래 뭘 치더라도 보이지 않기 때문에 당황하지 말고 침착하게 비밀번호를 입력하자.
  4. 로그인에 성공하면 포트가 열리고 proxy 서버가 준비된다. 궁금하면 명령 프롬프트에서 netstat -a 를 통해 열린 포트를 확인해보면 된다.
  5. 이제 사용할 어플리케이션에서 Socks5 프록시 서버를 설정해줄 차례다. 웬만한 어플리케이션은 이걸 설정할 수 있게 되어 있지만 설정할 수 있는 메뉴가 없는 경우 FreeCap이나 SockCap 같은 어플리케이션의 힘을 빌릴 수 밖에 없다. 여기서 예를 들 어플은 Internet Explorer를 예로 들겠다.
  6. 도구->인터넷 옵션을 선택하여 인터넷 옵션 창을 띄운 후 연결 탭을 누른다.
  7. LAN 설정 버튼을 누른 뒤 프록시 서버 란의 체크박스를 눌러 프록시서버를 켠다.
  8. 고급을 눌러서 프록시 설정을 켠 다음, “모든 프로토콜에 같은 프록시 서버 사용”의 체크를 해제하고 모든 칸을 비운 다음 Socks 옆에 localhost를 입력한다. 그 옆에 비어있는 포트 란에는 위에서 PUTTY를 실행할 때 -D 옆에 적어준 숫자를 적어주면 된다.
  9. 확인을 눌러서 설정을 적용한 뒤 인터넷을 해 본다. 잘 될 것이다.
  10. 네이트온에도 비슷하게 찾아가면 Socks5 혹은 Socks 프록시 서버 설정이 있다. 설정해주면 방화벽이 어쩌고 투정부리던 네이트온도 인터넷이 가능해진다.
이렇게 우회하게되면 덤으로 패킷 암호화가 이루어져 다른 사람이 훔쳐볼 수 없게 되는 장점도 있다.

  • 냥이 2009.03.15 22:10

    좋은 정보 소개 감사드립니다.

    저는 리니지 VPN을 하려하는데
    VPN 서버를 운영하지 않고
    SSH로 가능한지요?

    서버의 root권한으로 2000포트(리니지사용포트)를 오픈하고, 아니면 SSH를 2000포트로 여는 것인지?

    Freecap 등으로 이용하면
    (리니지의 경우 프록시서버 기능설정이 없기에..)

    VPN서버운영을 하지 않고도 SSH로 가능한지 여쭤보고싶습니다.

    • Favicon of http://blog.gwangyi.kr BlogIcon gwangyi 2009.03.21 21:48

      외국에서 리니지 접속이 안되는가보죠?;

      ssh 서비스의 경우 기본적으로 21번 포트를 사용합니다. 하지만 특정 네트워크에서 외부의 21번 포트로 접속을 못할 때가 있는데 이를 위해서 포트를 추가해서 여는 것 뿐입니다.

      여기서 설명하는 방법에서는 ssh 서버 외의 포트른 아무 의미가 없습니다... 랄까, root 권한으로 2000번 포트를 연다는 말의 의미를 모르겠군요 -_-;;

  • bongya 2013.01.04 21:17

    들어오고 보니 성광이 블로그네ㅋㅋ
    본문과 댓글이 작은 오류들이 있지만, 좋은 정보 배워간다~

2008. 10. 15. 13:06
수정: 왜인지 이게 오늘 써보니 잘 안된다 -_-;; 그래서, 좀 더 찾아보니까 해결법을 다시 발견했다.
http://s00.clientkeeper.co.kr/faq/page/02.htm
위 링크에서 찾아서 다운받으면 된다.
출처: http://ubuntu.or.kr/viewtopic.php?f=9&t=1173


2007. 11. 25. 03:16
잊어버릴까봐 여기다가 글써둔다.

프로그램 내 설정으로는 뭔 짓을 해도 안되길래 인터넷을 찾아보니 gtk pref 어쩌고를 하라고 하는 글을 발견했다.

하지만 -_- 그런 프로그램은 2.8.5d에선 존재하지 않았다.

조금 뒤져보니, 설치된 디렉토리에 gtkrc란 파일이 있었고, 이를 조금 수정하여 해결할 수 있었다.

gtk-font-name="Sans 8"
이 부분을

gtk-font-name="굴림 9"
이렇게 바꾸면, 네모로 뜨던 글자가 제대로 한글로 나온다.

별 특별한 팁은 아니지만 -_-;
xchat
2007. 2. 26. 00:35

에에... 굉장히 단순한 프로그램(?)이다.

제로보드의 글 내용을 RSS 피드로 만들어주는 단순한 PHP 프로그램이다.

수정할 사항이 몇 가지 있다. 일단 제일 급한 것이 본문 길이의 제한.

본문을 그대로 피드에 출력하기 때문에, 본문 내용이 긴 사이트의 경우 상당히 느려질 가능성이 있다 -_-;

그리고 한 개가, 해도 그만 안해도 그만이지만 코멘트에 대한 피드 생성. 이 생성기를 사용하기 위해 제작한 사이트가 댓글이 차지하는 비중이 더 큰 곳이라 -ㅅ-;; 사실 이런게 들어가면 원래 취지에선 멀어지겠지만 새글 확인이 무지 편리해지니까...


사용방법은 굉장히 단순하다.

config.php를 열어서 적당히 설정을 바꿔준 다음, recent.php를 열어서 원하는 형태로 피드를 구성시켜준다. 원하는 형태라고 해봐야, 어느 게시판의 글이 먼저 나오냐의 차이지만 -_-;