'terminal'에 해당되는 글 17건

  1. 2007.06.18 압축플때 쓰는 쉘 스크립트 4
  2. 2007.06.13 vte라이브러리 버그가 고쳐진건가? 2
  3. 2007.05.25 Mpd 싱크 가사....... 프로그램 8
  4. 2007.04.21 내 터미널이 끈기던 이유를 드이어 알았다!!! 4
  5. 2007.04.18 screen(스크린) Tip! 2

압축플때 쓰는 쉘 스크립트

 1 #!/bin/bash
 2
 3 # 지원하는 파일들은 다음과 같습니다
 4 # zip,alz,rar,tar.gz,tar,tar.bz2,gz,tgz
 5 # 물론 unalz,unzip,unrar,tar등이 설치되어 있어야 합니다
 6 # (첫번째 인자의)파일의 확장자를 찾아내서 처리합니다..
 7
 8 # IFS 인자를 백업후 .을 IFS인자로 설정
 9 OLD_IFS=$IFS
10 IFS='.'
11
12 # 첫번째 인자를 변수에 넣고 .을 간격자로한 갯수를 구한다
13 ARG1=($1)
14 ARRAY_SIZE=$(expr ${#ARG1[*]} - 1)
15
16 if (( $ARRAY_SIZE == -1));then
17     echo "인자가 부족합니다.."
18     echo "사용법 : $0 파일명 (압축을 )경로"
19     exit 1
20 fi
21
22 # 파일의 확장자를 정한다 (맨뒤에꺼만 아면 된다
23 # tar.gz같은경우도 gz면 되기때문에 맨마지막만 검사한다
24 if [ "${ARG1[$ARRAY_SIZE]}" = "zip" ];then
25     EXTENSION="zip"
26 elif [ "${ARG1[$ARRAY_SIZE]}" = "rar" ];then
27     EXTENSION="rar"
28 elif [ "${ARG1[$ARRAY_SIZE]}" = "alz" ];then
29     EXTENSION="alz"
30 elif [ "${ARG1[$ARRAY_SIZE]}" = "tar" ];then
31     EXTENSION="tar"
32 elif [ "${ARG1[$ARRAY_SIZE]}" = "gz" ];then
33     EXTENSION="gz"
34 elif [ "${ARG1[$ARRAY_SIZE]}" = "tgz" ];then
35     EXTENSION="tgz"
36 elif [ "${ARG1[$ARRAY_SIZE]}" = "bz2" ];then
37     EXTENSION="bz2"
38 else
39     echo "지원되지 않는 압축파일입니다 확장자를 확인해 주세요!"
40     echo "지원되는 압축파일 : ZIP,RAR,ALZ,TAR,GZ(or tar.gz),BZ2(or tar.bz2)"
41     exit 1
42 fi
43
44 # IFS를 복원
45 IFS=$OLDIFS
46
47 # IFS를 복원했기때문에 원래 인자들이 대입된다
48 # 그리고 전체 인자 갯수를 구해서, 압축을 풀
49 # 장소가 command 에 있는지 검사하고 실행한다
50 ARG1=($1)
51 ARG2=($2)
52 ARG_NUM=$#
53
54 # (경로)인자가 존재하지 않는다면
55 if(($ARG_NUM == 1));then
56     if [ "$EXTENSION" = "zip" ];then
57         unzip $ARG1
58     elif [ "$EXTENSION" = "rar" ];then
59         unrar e -d $ARG1
60     elif [ "$EXTENSION" = "alz" ];then
61         unalz $ARG1
62     elif [ "$EXTENSION" = "tar" ];then
63         tar -xvf $ARG1
64     elif [ "$EXTENSION" = "gz" ];then
65         tar -xvzf $ARG1
66     elif [ "$EXTENSION" = "tgz" ];then
67         tar -xvzf $ARG1
68     elif [ "$EXTENSION" = "bz2" ];then
69         tar -xvjf $ARG1
70     fi
71 # 존재한다면 경로대로 압축을 해제시킨다
72 elif(($ARG_NUM == 2));then
73     if [ "$EXTENSION" = "zip" ];then
74         unzip $ARG1 -d $ARG2
75     elif [ "$EXTENSION" = "rar" ];then
76         unrar x $ARG1
77     elif [ "$EXTENSION" = "alz" ];then
78         unalz $ARG1 $ARG2
79     elif [ "$EXTENSION" = "tar" ];then
80         tar -xvf $ARG1 -C $ARG2
81     elif [ "$EXTENSION" = "gz" ];then
82         tar -xvzf $ARG1 -C $ARG2
83     elif [ "$EXTENSION" = "tgz" ];then
84         tar -xvzf $ARG1 -C $ARG2
85     elif [ "$EXTENSION" = "bz2" ];then
86         tar -xvjf $ARG1 -C $ARG2
87     fi
88 fi

간단한(?) 스크립트.
여러 압축파일을 풀때 사용합니다
제가 워낙 다운족이다보니 압축은 안하고 풀기만 합니다...
리눅스인만큼 tar.gz 같은 파일 도 많이 풀지만
애니 자막을 풀기도 하기 때문에 zip,rar,같은것두 사용해서 적어 놨습니다

사실 그냥  alias로 해결하곤 했는데 인제 ut uz ur 쓰는것도 귀찮아져서 그냥
한번에 할려구 그냥 쉘 스크립트를 하나 만든거에요..

tar.gz tar.bz2같은거 때문에 확장자 뻘짓고생을 했것만.. 어짜피 마지막 확장자로
압축을 푸니까 별로 중요하지 않더라는..

음.. 일단 그리고 인자가 없을때만 한번 테스트 해봤더니 그건 잘 돌아가는군요
.. 압축풀 경로를 정했을때는 테스트를 안해봐서 잘 모르겠습니다만.........;;;;
잘되겠져멀~~~~~~~(무책임 =3=3)
오랜만에 쉘스크립트를 만들다보니까 잘 적응이 안되서 또 해멨지만..( 무지하게)

vte라이브러리 버그가 고쳐진건가?

vte로 만든 터미널이 있는데 그것도 인제 별로 안끈기네...

거어이~ 안끈기는거 같다..

1024x1024짜리인가 제일 큰 터미널에서 w3m을 가지고서 스크롤을 해도

vi에서 이동을 해도 이제 거의 끈기지가 않네.. 애네들 버그 고쳤나??

어태까지 이버그가 심하고 화면에 출력되는것도 이상하게되서, 최신버젼인 0.16인가

안쓰고 0.14로 버텼었는데.. 이제 pacman.conf에다가 vte를 무시 안하게 해도 되겠네..

하지만 아직도 스크롤시 미친듯이  CPU점유율이 올라간다는건 변화가 없다...

(계속 스크롤을 했을때 conky에서 cpu 점유율이 한 80~90정도 까지 올라가는거 같다)

뭐 그래도 안끈긴다는게 어디야..

아 그리고 이제 뇌입어 블로그도 안끈기는거 같다..환상경님 블로그도 이제는 안끈기는데..

아마도 antialias를 해제해서 그런거 같다.. (아니 블로그가 끈긴 원인이 이거였다니!)

좀 의외네....... 다른덴 모르겠다 아직도 끈기는지는..

이번에 여러게 안끈기게 됬네..

그나저나 qt용 firefox는 언제 나오더라? 나온다고 한거 같았는데...........

'Linux > 스샷/외부설정' 카테고리의 다른 글

w3m이 업뎃 됬구나!  (4) 2007.07.04
conky 설정  (2) 2007.06.26
자랑 스샷  (4) 2007.04.09
리눅이에서도 인제 클박 잘 돌아가네...  (2) 2007.04.05
ncmpc 설정파일  (2) 2007.03.31

Mpd 싱크 가사....... 프로그램

이딴거 올려봤자 별루 보는사람도 얼마 없겠지만뭐.........

두번째 프로젝트(?) 인 주2>MPD 용 싱크가사 프로그램을 대충~ 완성했다.........

일단 되는 기능은 잘 된다.... 내부적으로 고칠건 좀 있는데....... 안그래도 잘 작동하는데 고치기는

귀찮고 해서 현재 놀면서 방치중~~~ 귀차나~ 귀차나~ 어디 딴짓이나 해볼까~ 하고 있는.............

이거에 대해서 간단히 설명하자면 원래 랜덤여신님이 만든 주3>amarok-live-lyrics

가 있는데.. 그 프로그램에 서버로부터 가져오는 주소값만 살짝 내 프로그램으로 받게 해서 만든것!

사실 "구태여 이렇게 따로 프로그램을 만들지 않더라도"

저 amarok-live-lyrics의 내용만 약간 바꾸면 (주4>dcop 대신 주5>mpc를 써서 한다던가............)

mpd용으로 사용할수 있건만............ 만들어본,........

주6> conky에서 주7>파이썬 안써보고 프로그램 만들어보려고요...

 또.......어짜피 배우는 입장이기도 하고........ ,c언어 예/복습도 할겸................ )

대략 프로그램 구조가......

mp3파일을 읽어 망할놈의 태그 를 건너뛴 만큼 읽는 위치를 이동한다

-> 일정부분을 읽어서 md5 Hash(?) 한다

-> md5한 값을 바로슬 서버의 주소와 합쳐서  -> 주8>소켓써서 서버로부터 페이지를 받아온다

-> 새로운 가사 파일에 그 내용을 저장한다 -> 저장한 내용을 불러와서 메모리에 저장

-> 가사/시간 분리 -> 링크드리스트로 정리 -> 타이머써서 -> (시간에 맞춰) 출력하기.....

-> 에러있음 break -> 그리고 쭉~ 반복~.

아직 주9>터미널 전용(!) 프로그램이라 사용자 인터페이스는 정말 할말이 없다

(이부분에서만 보면 완존 쓰레기다 ; 그래서 주10>공개를 못하겠어용 ㅜ)

아직은 계획이 없지만... 뭐 필요하면 Gtk용 프로글햄으로 바꿀 생각도 있긴한데 귀차나서...

하지만! amarok-live-lyrics 보다 좋은건 딱 하나있다...... 주11> mutagen

을 쓰지않고 자체적으로 mp3파일을 분석해서 태그를 무시하기때문에.. 싱크가사 인식성공률이

amarok-live-lyrics보다 높다..........는거 정도...

(amarok-live-lyrics는 서버에 가사가 있는데도 불구하고 태그위치를 제대로  감지를 못해서

md5값을  잘못얻어오는 경우가 몇몇 mp3파일에서 발견되었었다........

모르겠다 요즘에 버젼업 되어서 고쳐졌는지...... )

주1>지워졌다 ㅋㅋ.

주2>MPD : Music Player Demon 일겁니다.. 내기억으로는.. 데몬이기때문에 재부팅을하거나
일부로 종료시키지 않은한 음악이 멈추질 않죠! 저는 가끔씩 X 를 재시작하는데 그때 음악이 끈겨서
참 안타까웠던차 이프로그램을 jazzbug님의 추천으로 사용하게 되었죠.......
괜찮네요.. 좋아요...근데 지원되는 파일 포맷이 mp3,ogg정도 밖에 없는게 단점..
망할 wma는 재생이 안돼ㅜㅜㅜㅜㅜㅜ

주3>amarok-live-lyrics 
랜덤여신님이 만든 live-lyrics 다음 링크를 참조해주세요.
http://barosl.com/blog/entry/amarok-live-lyrics

주4>dcop :amarok이 이거 쓰던데...... 이거쓰면 amarok이 플레이중인 시간,전체시간,곡이름등을 알수 있다
dcop amarok default 뭐시기.. 이런식으로 썻던거 같은데.. 지금 amarok을 실행시키고 있다면 함
해보시길어플의 상태를 알수 있게 해주는 뭐 그런 녀석인가부다......... 더이상은 모르겠삼..
gtk어플(?) 쪽에도 이런게 있던거 같긴함.

주5>mpc : Music Player Client 인가.. 그래요..

주7> conky
에서 주8>파이썬(python) 이가 메모리 젤많이 먹는거 보면 기분이 상당이 뭐하다(?) 그래서 파이썬
안쓰고 만들려다보니......

주8>소켓 : 이녀석도 기억이 안나서 혼자서 만들다가 몰라서 걍 소스 보고 몇줄 복사붙여넣기 했어요 ㅜㅜ

주9>터미널 전용(!) 프로그램 : 아시려나 모르겠지만 본인은 터미널 프로그램을 매우 사랑! 스러워한다..

주10>공개를 못하겠어용 ㅜ
그리고 우리나라에서 MPD를 쓰는 사람이 몇이나되겠으며( 아니 아는 사람이나 몇이나 될까! )
, 호좁한 인터페이스를 가진 이 터미널 프로그램을 쓸사람은 몇이나 되겠으며......
그래서 공개를 못하겠어욤...

주11> mutagen
파이썬 라이브러리라...물론 이 플그램은 C언어니까 쓸수 없기도 했고 또 c언어용 태그 라이브러리(id3lib인가?)가 존재는 하나 파일을 복사해놓고 거기서 다시 태그를 읽어오고 해야했기 때문에 비효울적인거 같기도 하고(mutagen을 쓴 amarok-live-lyrics도 그렇다..) 
사실 뻘짓할 시간이 아까우니 원래 이런 라이브러리를 쓰는게 이익이겠지만...
공부도 함 해볼겸해서  걍 내가 뻘짓해가면서 만듦

내 터미널이 끈기던 이유를 드이어 알았다!!!

드디어 알았다아!!!!!!!!!!!!!!!

문제의 시작은..

terminal에서 scroll시에 왜 이 렇 게 끈 기 는  거 냐!

처음으로 내가 만든 터미널에 무슨 이상이 있는줄알고 열심히 뒤졌고 안됄만한곳은 다 고쳤지만

그래도 계속 끈기길래 VTE(가상터미널에뮬레이터) 의  라이브러리에 문제가 있는줄 알았다

vte_terminal_set_background_saturation 함수(이야! 내가 이렇게 긴걸 다 외었다니!) 와

vte_terminal_set_background_transparency 함수 에 문제점이 있는줄 알았다

(왜냐하면 이함수를  TRUE,FALSE  or double 값을 집어 넣느냐에 따라서 끈겼기 떼문!)

그래서 "아 이놈의 함수고 뭐갔으니까 내가 함 만들어 볼까!" 하고 여기 저기를 또 뒤져되었다는..

이소스 뒤저보고 고쳐보고 vteapp소스도 고쳐보고 conky소스토 보고(투명한거니까)

했지만.. 뭐 안되더라는.. 그래서..

설마 ..Fluxbox가 문제가 있어서 그러는거 아냐!!!?

라는 생각에 당장 pacman -S gnome 을 하고  fluxbox 대신에 gnome을 써보니까  이야! 안끊기잖아!!!

그러는 순간   "아  -_- 뭐야 플빵.. 버리고 그놈 써야징..." 을 했다는.. 그리고 한 몇분동안 그놈 설정을 하고..

또 다른 시도를 시작한...

어쩌다 ~/.xinitrc파일의 순서를 조작하다보니까 인제 부팅후 처음에는 잘안되고 다시 reX를 하면 잘되는

구나 했었다는.. 그러다가 막 conky순서 바꾸기도 하고 했다..;

 근데 문제는 처음엔 무조건 느린 현상을 해결해아나는 과제가 생겼다

그런후에 좀 생각을 해보니

"자 분명 투명도니까 뒤에 투명 바탕이 없으면 안끈길거야~" 라고 생각한 나는 Esetroot를 ~/.xinitrc 스크립트

에서 빼고 다시 restart X 를 해보았다 그리고 터미널 스크롤~ 어라 안끈기네...

그래~ 범인은 Esetroot!다!! 라고 다시 생각을 바로 잡은. 그래서  터미널이 끈기는 원인을 알아냈다

원인은...












터미널이 시작되기전에  Esetroot가 실행되어서 그런거 같다.. 로 결론을 받았다..

그래서 screen을 ~/.bashrc에 적절히 켜지게 해놨고..

background.sh (랜덤으로 바탕화면 바꾸는 스크립트, 매번 X를 재시작할때마다 실행 (~/.xinitrc에 속함))

에서 Esetroot를 sleep 3해서 3초후에 실행하게 해놨다..

그러니까 인제 터미널이 안끈기고 잘되네...

그런데 또 문제가 발생.. 이번엔 xev가 Display var를 못얻겠다니 이런 헛소리를 해대는데

(아마 순전히 x라이브러리를 이용한 프로그램만 이런 오류가 나는거 같았다)

그래서 ~/.bashrc파일에 echo $DISPLAY 한결과를 집어넣었다(라고 기억된다)

그러니까 인제 "안끈키는 터미널 완성~~~"

이라고 생각했지만 이번에는 X를 재시작할때마다 일정확률(?)로 컴퓨터가 다운을 먹어버리는 현상이 생겨

버리네... 이건 또 어떻게 해야할지...;

추가> 뭔가 Esetroot의 버그 같은건 아닌거 같고.. 뭐랄까 터미널에 뭔가가 부담이 안가는거 같습니다
이런식으로 하니..

'Linux > 내부설정' 카테고리의 다른 글

컴퓨터 끄기 쉽게 하기..  (2) 2007.09.28
키보드 사용 설정 팁  (2) 2007.04.21
w3m 키 설정 바꾸기  (0) 2007.04.20
screen(스크린) Tip!  (2) 2007.04.18
비트맵 폰트 나오게 하기..  (2) 2007.04.03

screen(스크린) Tip!

나는 screen을 여러 터미널에 연결해서 사용하고 있다..

간단한 팁 정도 될까..

1 설정파일을 알밎게 설정

나는 이렇게 설정을..
  3 bind c screen 1
  4 bind 0 select 10
  5
  6 bindkey -k k1 select 1
  7 bindkey -k k2 select 2
  8 bindkey -k k3 select 3
  9 bindkey -k k4 select 4
 10 #bindkey -k k5 select 5
 11
 12 #autodetach on
 13
 14 startup_message off
 15 defscrollback   500
 16 vbell           off
 17
 18 #-fn
 19 screen -t "IRC/MSN"     3   irssi
 20 screen -t "SHELL"       4   /bin/bash
 21 screen -t "INTERNET"        2   w3m -B
 22 screen -t "PROGRAMMING"     1   vi

2 screen을 dettach모드로 연다 (startup에 등록시키는것도 좋은방법이다)
$screen -dmS main

3 각 터미널의 명령을(쉘대신 실행,대부분의 터미널에는 이 옵션이 있다) 다음과 같이준다
Terminal 1 --> screen -x -p PROGRAMMING
Terminal 2 --> screen -x -p INTERNET
Terminal 3 --> screen -x -p IRC/MSN
Terminal 4 --> screen -x -p SHELL

이렇게 하면 screen 이 여러 터미널에서 공유되어
copy,&paste (C-a+[,C-a+] ) 도 같이 공유되어서 편하고
약간이나마 리소스 절약이 가능하다 (하나의 screen에 붙여쓰므로...)

프로세스 구조는 대충 이렇게 된다..
     ├─lowterm─┬─gnome-pty-helpe
     │         ├─ncmpc
     │         └─3*[screen]
      |
     ├─screen─┬─bash───pstree
     │        ├─irssi
     │        ├─vi
     │        └─w3m

프로세스 갯수가 좀 줄어들긴 했다...
오늘도 삽질의 하루를 보냈구나 ㅜㅜ
뭐 이렇게 쓰는 사람(또는 쓰고 싶어하는 사랑미) 몇이나 될까마는...

'Linux > 내부설정' 카테고리의 다른 글

내 터미널이 끈기던 이유를 드이어 알았다!!!  (4) 2007.04.21
w3m 키 설정 바꾸기  (0) 2007.04.20
비트맵 폰트 나오게 하기..  (2) 2007.04.03
단축키가 부족해!!!  (2) 2007.03.28
USB 부팅 리눅스는 GG  (2) 2007.02.14
prev 1 2 3 4 next