'Linux'에 해당되는 글 94건

  1. 2008.03.11 ctags 설정 4
  2. 2008.03.09 새로운 프린터 이제 리눅스에서도 된다! 2
  3. 2008.03.07 대기 모드 설정 2
  4. 2008.02.14 [쉘스크립트]자막파일 이름 안바꾸고 애니보기 4
  5. 2008.02.13 [쉘스크립트] 압축해제(tar,zip,rar) 4

ctags 설정



<어라 새로운 플긴이네요...... 몰랐네....... 이거함 적용 ㅋ>
리눅스 커널 프로그래밍(IT EXPERT)(CD1장포함) 상세보기
한동훈 지음 | 한빛미디어 펴냄
리눅스 실무서. 이 책은 리눅스 커널 프로그래밍 환경 구축부터 커널 컴파일 개발법, 리눅스 시스템 호출과 모듈 프로그래밍 방법, 문자 디바이스 프로그래밍과 블록 디바이스 프로그래밍, 메모리 관리와 프로세스 관리 등의 내용을 담았다. 부록 CD에는 본문에서 사용한 예제소스와 커널 2.4.32 소스와 커널 2.26.14.6 소스, 데비안 리눅스 최소 설치 버전, VMWare 이미지 및 플레이어가 수록됐다.


리눅스 커널 프로그래밍이란 책을 보고 있습니다

커널책중에 이게 젤 만만해 보이더군요 ( 쉽다는 말이 아니라 그중에서............)

뭐 암튼.;; 근데 앞부분에 ctags를 설정하는 부분이 있길래(csope,tlist는 사용하지만 이건 처음) 122 page..........

따라서 해봤는데 제대로 안되네여..

일단 커널소스있는데서

ctags -R

을 한뒤에 검색...

일단 tags 가 있는데서
vim -t task_struct

하면 잘되는데 그안(vim)에서

:ta mm_struct 하면 안되는겨 -_- 그래서 구글도 찾아보고 하니까 답이 나오네...

~/.vimrc에다가

set tags=./tags,tag파일이있는작업디렉토리/tags,.............. "여기 set tags를 아예 안적으면 ctags가 제대로 작동 X

라는 식으로 tags파일을 "절대경로" 로 정해줘야 하네요.. 직접 저 태그파일의 경로를 말이에요..

그러니까 control + ] 도 잘 동작하네요 ㅋ

<대충 요약> 자세한건 :help tags (이겟죠뭐)
control + ] => 현제 커서위치에 해당하는 자료구조로 이동
control + t => 좀전의 위치로 이동
:ta XXX     => tag파일에서 XXX 검색
:ta /XXX    => tag파일에서 XXX 포함하는것도 검색
:tj XXX     => 2개이상이면 ls처럼 list 출력
:tn,:tp      => (tag)next,prev
tags        => History list

아나 설정파일 같은거 할때 책에 이런거좀 적어주지 칫.,. 데뱡이나 펫호라아님 무시하는 건가효??

우리 아치는 머셈??

내가 만드는 호좁한 기껏해야 천줄안팍인 프로그램은 이딴거 별 필요 없었는데....... 확실히 커널크기가 크니까

이런것도 필요한듯하네요

음......글구 스터디할분이랑 같이 수요일날부터 하기로 했는데 같이할님이랑 못만나겠네요......

일단 혼자서라도 해야...............

.......................학과 공부 대충하고 이거 해도 되려나........

덧> tags파일이 자주 수정된다면 걍 crontab에 등록시켜 버려도 될거 같다 알아서 갱신하게 ㅋ

학교땜에 바빠서 제대로 건들일수가 없네여 ㅜㅜ

새로운 프린터 이제 리눅스에서도 된다!


뭐같은 Canon Mpc190을 버리고 새로운 프린터인

HP f2180 모델을 구입햇습니다~~ (싸구려 모델,내가 돈이 어딧다고;; )

음 근데 좀 신기한게 있었는데 말이죠... 무슨 "각서" 가 따라오던데...

대충 내용을 정리하자면

본인은 컬러복사기 XXX 를 보유 ........함에 있어서 본 컬러복사기를 화페,유가증권 의 위조에 사용되지 않도록 관리를

하는  동시에 제 3자에가 양도할때는 그 제 3자에게 각서 2부를 징구하여 한국은행 총재및 경찰정장 에게

각 1부씩 을 제출하고 상기사항을 지키지 않으면 형사상의 책임을...........감수할것을 서약함........

아무리 컬러스케너라고 해도.....

에? 이건 무슨 한국은행하고 경찰청장한테 보내라는거야???? 컬러복사기 (여기선 복합기죠) 하나 양도하는데

이런것도 써야하나요? 그럼 복합기 팔때도 그냥 아예 보네지 HP에서..일단 니네가 판매자 일테니 말야..

정말 이건 왜 있는건지 모르겠습니다...

사건이 일어났을시도 아니고 그냥 양도하는건데...... 왜 이런게??? 그럼 팔때도 일일이 "한국은행 총재" 한테 보고하고

팔란말인가????  소송 같은거 땜에 그러는건가??





뭐 암튼 이 괴상한 각서는 때려치고..........


윈도에서 드라이버 설치하는데

좀 애로사항이 있네요.. hp홈피에서 받아서 했는데 이 미친넘이 지멋대로 압축파일을

"알수 없는 경로" 에 풀어버리는겁니다...... 어디 압축을 풀었는지알아야 드라이버파일 경로를 정해줄꺼 아냐~?

(새로운 장치 검색하면서 드라이버 경로를 항상 자꾸 물어보니 어쩔수 없이............)

어떻게 되져서 보니깐

c:\Documents and Settings/Administrator/Local Settings/Temp/*.tmp/ 에 파일들을 다 풀어놨군요..

아놔 정말 이런것도 사용자가 일일이 찾아야하냐? 앙?

다 설치하고.....그다음엔 출력이 당연히도! 잘됩니다 ............ 그런더 또 우낀건.......

"스캐너" 할려면 또 프로그램 따로 받아서 해야한다고 하네요 아놔.. 얘네들 진짜 왜이러는거야!




다음엔 리눅스에서 설치.......

저번 모델이 리눅스에서아예 지원이 안되다보니....... 이번에 이 프린터에 거는 기대고 컷습니다...

그래서 일부로 S사꺼 안사고(아예 살려는 모델리스트에 이름조차 없더군요 뭐........)

이거 삿죠.. 잉크 용량이 적은데도 불구하고 리눅스에서도  "퍼팩트리" 하게 동작하는거라 길래 말이죠

뭐 hp에서 opensource로 이 플젝을 민다고 알고 있기도 했고요...........

(www.openprinting.org 참조 - Hp f2180)

설치는 진짜 금방 했답니다..

pacman -S hplip 하니까 알아서 하는거 처럼 보였는데 이상하게 console로 하는건 되는데 gui를 지원안한다고

합니다 그레서 설치하라는데로 pyqt를 설치해도 안되는... 이뭐병........... 그래서 구글링해서 archlinux bbs에서 찾아보니

앗치에서는 pyqt3를 깔아야한다네요

일단 cups데몬 키고,rc.conf에서도 등록해놓고........

hp-setup하니 허접한 gui가 뜨더군요.. 그냥 다음다음 하니까 지가 알아서 막 뭐 하고 (뭐한지는 기억이 잘; )

자기가 알아서! 테스트페이지를! 뽑더군요! Printed Using HP Linux Imaging and Printing System 캬~ 된다

리눅스에서~ 저는 저번 모델이 리눅스에서 출력이 안되었기때문에~ 이번 메세지에 꽤 감동을 먹은~~~

일단 제 리눅스 머신에 워드프로세서 같은건 안깔려 있었으므로... 간단히 html페이지를 만들어서 파폭에서

"한글출력" 을 했는데 예상외로! 잘 출력이 되더군요 하핫~~

그담에 cups들어가서 default printer로 설정같은거 간단히 했습니다...

아놔 사진 올릴라고 하는데 이 망할 테터땜에 못을리겠네요......... 윈도에가서 올리던가 해야할듯 싶어요..

암튼 저렇게 메세지는 나와도 출력은 잘되네요........... 그냥 잘되는데 의미을 둬야죠 뭐.......

덧> 이것도 5분내에 구글링에 걸리겠지? 후덜덜.........

대기 모드 설정

계속미루다가 오늘 드디어 시도.

Linux에서 suspend mode(ram)

참고링크 : http://wiki.archlinux.org/index.php/Suspend_to_RAM

aur 에서 uswsusp 를 다운 받는다.. 기타 배포판은 알아서...

암튼 이패키지를 설치하면 s2ram이라는게 깔리는데..

s2ram 을 루트로 실행시켜본다... 잘되면 걍쓰고...

잘 안되면, 십중팔구 s2ram -i 를 했을데 제대로 안나올텐데.

다음 명령어를 일일이 다 쳐넣어보면서 확인한다..

믈론 중요한 자료는 저장해 놓을것... 대부분은 이상작동을 일으키므로..

s2ram -f -a 1
s2ram -f -a 2
s2ram -f -a 3
s2ram -f -p -m
s2ram -f -p -s
s2ram -f -m
s2ram -f -s
s2ram -f -p
s2ram -a 1 -m
s2ram -a 1 -s


Radeon 9200에서

s2ram -f -a 1         # 다른건 다 제대로 동작하는거 같지만 마우스 작동안함
s2ram -f -a 2         # 화면이 깨짐
s2ram -f -a 3         # 잘됨.
s2ram -f -p -m        # 화면이 깨짐
s2ram -f -p -s        # 위와동일
s2ram -f -m           # 위와동일
s2ram -f -s           # 위와동일
s2ram -f -p           # 위와동일
s2ram -a 1 -m         # 잘됨
s2ram -a 1 -s         # 잘됨
안되는게 많아서 일일이 수동으로 파워를 내렸다 ㅜㅜ

일단,잘되는거 3개 시간을 재보니까
s2ram -f -a 3은 20초로 느렸고
나머지 2개는 15초정도로 비슷했다.. 윈도우보다 복구속도가 좀 느리다..........;

다 잘되는데.. 문제는 suspend모드를 한다음에 reboot를 하면 재부팅이 안되고 freeze 되어버린다..
halt는 잘되는데.. reboot만.............;;
혹시 이거 고치는 방법 아시는분은 좀 댓글즘!!!

뭐...........안습.. 결국엔 이거 못쓰겠구만...........
덧> 역시 구글좀 짱인듯... 포스팅한지 몇분됬다고 또 구글에 걸리네 ㄷ....

[쉘스크립트]자막파일 이름 안바꾸고 애니보기


 한  보름정도 써봤는데 제대로 작동 잘  하는거 같군요..

그래서 한번 소스 올려봅니다..

간단히 소게 하자면

1 지정된디렉토리로 이동해서 영상파일을 헤더랑 테일 짜른거 보여준후에

2 숫자로 선택하게 하는겁니다

3 옵션으로 찾는 숫자에 해당하는 압축파일을 보여준뒤에 압축풀고

4 나온 smi파일을 파싱해서

5 그걸 동영상파일이랑 이름만 같게한후 자동으로 mplayer로 틀어주는 역활을 합니다..

일단 "작동하는데만" 신경을 썻기 때문에 버그가 꽤 많을겁니다..

주석으로 대충 적어놨는데 몇개 더 있을지도 모르겠네요..

이거 덕분에 애니보기도 쉬워졌네요 일일이

1 영상파일 복사 -> smi압축파일 해제 -> smi 이름바꾸기 -> 동영상 플레이 할필요가 없어졌네요 하핫..

지금 소스 자체가 너무 허술한데.. 뭐 그래도 작동은 제대로 하니깐 잘 봐줘요..

사용법은> 프로그램이름 07
이런식으로 뒤에 '화' 수만 적어주면 됩니다..
<
cd "$HOME/ani" 은 알아서 수정해 주세요>
#!/bin/bash

# VERSION 0.01
# ------------ 추가할것들 ----------------
# Get_Subtitle
# 1,모든 필드를 얻는다 해당 숫자가 포함된것만 자막을 검색하게 추가할것
# 일단 다 만들고 출력은 따로 한다
# (파일이 하나일경우 걍 안보여주고 하려고함)
# 2,선택되지 않는 파일은 루프를 돌려서 삭제한다
# 한 압축파일에 여러 smi들이 있을때 유용
# 근데 이렇게 파려면 모든 데이터를 배열에 넣어야 되는데..;
#
# Get_Filename
# $1중에 없다면 아예 출력을 말게 해야되 <-이거할것 꼭 필요한건 아니지만..
#
# 기타
# 입력받을때 에러 확인할것! (전담함수 추가 바람)
# argument 가능하게 할까?

SUBTUTILE_SUFFIX="smi"
FILE_EXT="$HOME/bin/file_extracter.sh"

cd "$HOME/ani"

if [ $# -ne 1 ];then
echo "Useage: $0 search_file"
exit
fi

function Run_Program()
{
mplayer "$movie_filename" >/dev/null 2>/dev/null &
}

function Clear_Screen()
{
# 지극히 개인적인 옵션 지우고 싶으면 지우셈
clear
echo -e "\n\n\n\n\n"
}

function Get_Subtitle()
{
local cnt=1
local array_cnt=0
local num=1
declare -a array

# fe 내 전용 압축해제 스크립트)
set $($FILE_EXT "$1" | grep -i .smi)

while [ $# -gt 0 ];do
if [ $cnt -gt 1 ];then
string="$string $1"
case "$1" in
*.smi | *.SMI )
# 첫번째 공백제거 (여기서부터가 진정한 데이터)
echo "$(($array_cnt + 1)) - "${string:1}""
array[$array_cnt]="${string:1}"
((array_cnt++))
((cnt=0))
string=""
esac
fi
((cnt++))
shift
done

# 만약 파일이 하나라면 그냥 물어보지 말고 바로 리턴
if [ $array_cnt -eq 1 ];then
ret=${array[0]}
return
else
echo -n "choice number :";read num
fi

ret=${array[$num-1]}
}

# 문자열을 받으면 [],(),{} 사이의 문자를 없애주는 함수
# 이것은 오직 출력할때만 쓰여야만 한다
function Delete_Bracket()
{
# 확장자 백업
local subfix="${1##*.}"
# 확장자 제거 (head,tail 검사위해서)
ret="${1%.*}"
# head 재거
ret=${ret#\[*\]}
ret=${ret#\(*\)}
# tail 제거
ret=${ret%\[*\]}
ret=${ret%\(*\)}
ret="${ret} ----- $subfix"
}

function Get_Filename()
{
local i=0
local loop_filename=""
local num=1
declare -a file_array

for loop_filename in ''$1''
do
Delete_Bracket "$loop_filename"
case "$ret" in
*"$2"* )
echo $(($i+1)) - "$ret"
file_array[$i]="$loop_filename"
((i++))
esac
done
echo -n "choice number :";read num
ret=${file_array[$num-1]}
}

# MAIN
# 깨끗히 하고 시작
Clear_Screen

# 동영상파일과 자막파일을 선택하게 하고 변수에 저장
Get_Filename "*$1*.avi *$1*.mkv *$1*.wmv" "$1"
movie_filename="$ret"
subtitle_filename="${movie_filename%.*}.$SUBTUTILE_SUFFIX"

# 자막파일이 있으면 실행하고 걍 스크립트 종료
if [ -f "$subtitle_filename" ];then
Clear_Screen
Run_Program
exit
fi

# $1의 조건에 해당되는 압축파일(zip,rar) 을 출력하고 선택하게 한다
Get_Filename "*$1*.zip *$1*.rar" "$1"
comp_filename="$ret"

# 압축을 푼다
Get_Subtitle "$comp_filename" "$1"
comp_subtitle_filename="$ret"

# 선택된.smi 파일을 동영상.smi로 이름을 바꾼다
mv "$comp_subtitle_filename" "$subtitle_filename"

# 이제 애니보자!
Clear_Screen
Run_Program

#프로그램 종료전 전에 있던 디렉토리로 재이동
cd $OLDPWD

몇일동안 쉘스크립트 건드리면서 느끼는건데 어지간한건 C 안쓰고 걍 쉘스크립트로 다 해결가능한거 같군요..

정규식이랑 같이 쓰면 파싱하기도 쉽고 (뭐 C언에어서도 파싱라이브러리가 있긴하지만..)
조금만 미리 쓰면 쉘스크립트에서 "신비로 자동 다운로더!" 이런것도 만들수 있을거 같습니다..

해당클럽/자료실에서 자동으로 검색할 문자열이 포함된 것들을 추려서 자동으로 다운로드하게...

[쉘스크립트] 압축해제(tar,zip,rar)

이건 몇달 전부터 만들어 쓰던건데..

그냥 개삽질해서 확장자를 얻어내는거라 상당히 소스가 더럽습니다 -_-

지금 고칠려면 더 잘고칠수 있긴한데 안그래도 뭐 잘 동작하는데.. 하고 걍 방치중입니다...;;


바로 위에 소스가 이게 필요하기 때문에 같이 올립니다..

사용법 > 파일이름(저 소스파일)  압축파일
         파일이름(저 소스파일)  압축파일 압축을풀위치

#!/bin/bash

# 지원하는 파일들은 다음과 같습니다
# zip,alz,rar,tar.gz,tar,tar.bz2,gz,tgz
# 물론 unalz,unzip,unrar,tar등이 설치되어 있어야 합니다
# (첫번째 인자의)파일의 확장자를 찾아내서 처리합니다..
# 두번째 인자가 없으면 디폴트로 처리
# 만약 두번째 인자가 있으면 두번째 인자의 디렉토리에 압축을 푼다
# 그리고 *.jpg *.gif 파일은 cover 디렉토리를 만든다음에 다 거기다 처박아

# IFS 인자를 백업후 .을 IFS인자로 설정
OLD_IFS=$IFS
IFS='.'

Move_Picture()
{
mkdir cover
mv *.jpg *.gif *.png cover
}

# 첫번째 인자를 변수에 넣고 .을 간격자로한 갯수를 구한다
ARG1=($1)
ARRAY_SIZE=$(expr ${#ARG1[*]} - 1)

if (( $ARRAY_SIZE == -1));then
echo "인자가 부족합니다.."
echo "사용법 : $0 파일명 (압축을 풀)경로"
exit 1
fi

# 파일의 확장자를 정한다 (맨뒤에꺼만 아면 된다
# tar.gz같은경우도 gz면 되기때문에 맨마지막만 검사한다
if [ "${ARG1[$ARRAY_SIZE]}" = "zip" ];then
EXTENSION="zip"
elif [ "${ARG1[$ARRAY_SIZE]}" = "rar" ];then
EXTENSION="rar"
elif [ "${ARG1[$ARRAY_SIZE]}" = "alz" ];then
EXTENSION="alz"
elif [ "${ARG1[$ARRAY_SIZE]}" = "tar" ];then
EXTENSION="tar"
elif [ "${ARG1[$ARRAY_SIZE]}" = "gz" ];then
EXTENSION="gz"
elif [ "${ARG1[$ARRAY_SIZE]}" = "tgz" ];then
EXTENSION="tgz"
elif [ "${ARG1[$ARRAY_SIZE]}" = "bz2" ];then
EXTENSION="bz2"
else
echo "지원되지 않는 압축파일입니다 확장자를 확인해 주세요!"
echo "지원되는 압축파일 : ZIP,RAR,ALZ,TAR,GZ(or tar.gz),BZ2(or tar.bz2)"
exit 1
fi

# IFS를 복원
IFS=$OLDIFS

# IFS를 복원했기때문에 원래 인자들이 대입된다
# 그리고 전체 인자 갯수를 구해서, 압축을 풀
# 장소가 command 에 있는지 검사하고 실행한다
ARG1=($1)
ARG2=($2)
ARG_NUM=$#

# (경로)인자가 존재하지 않는다면
if(($ARG_NUM == 1));then
if [ "$EXTENSION" = "zip" ];then
unzip $ARG1
elif [ "$EXTENSION" = "rar" ];then
unrar e -d $ARG1
elif [ "$EXTENSION" = "alz" ];then
unalz $ARG1
elif [ "$EXTENSION" = "tar" ];then
tar -xvf $ARG1
elif [ "$EXTENSION" = "gz" ];then
tar -xvzf $ARG1
elif [ "$EXTENSION" = "tgz" ];then
tar -xvzf $ARG1
elif [ "$EXTENSION" = "bz2" ];then
tar -xvjf $ARG1
fi
# 존재한다면 경로대로 압축을 해제시킨다
elif(($ARG_NUM == 2));then
if [ "$EXTENSION" = "zip" ];then
unzip $ARG1 -d $ARG2
elif [ "$EXTENSION" = "rar" ];then
mkdir $ARG2
cd $ARG2
unrar x $OLDPWD/$ARG1
Move_Picture
cd $OLDPWD
elif [ "$EXTENSION" = "alz" ];then
unalz $ARG1 $ARG2
elif [ "$EXTENSION" = "tar" ];then
tar -xvf $ARG1 -C $ARG2
elif [ "$EXTENSION" = "gz" ];then
tar -xvzf $ARG1 -C $ARG2
elif [ "$EXTENSION" = "tgz" ];then
tar -xvzf $ARG1 -C $ARG2
elif [ "$EXTENSION" = "bz2" ];then
tar -xvjf $ARG1 -C $ARG2
fi
Move_Picture
fi

prev 1 ··· 7 8 9 10 11 12 13 ··· 19 next