개소리 왈왈2009. 8. 4. 22:14
리눅스 머신이 시끄러워서 파워 문제인줄 알았더니..
쿨링문제이거나, 다른 문제인것 같다.

예전에 250W 에서 350W로 올렸음에도 불구하고,
파워가 엄청 뜨겁다...

일단은 cpu 쿨링을 위해 써멀 구리스 부터 하나씩 차근차근 발라주어봐야겠다..
머.. micro-ATX 파워야, 콘덴서도 부풀어 있었으니 미리미리 갈아 주는게 좋았겠지?
(라고 자기 위안중)

'개소리 왈왈' 카테고리의 다른 글

프레스~~~~핫!! 2  (4) 2009.08.10
지 아이 조 - G.I.JOE (2009)  (4) 2009.08.08
질렀노라 긁었노라 왔노라!!!  (0) 2009.07.30
몸이 아프면!  (8) 2009.07.24
네이버 블로그 많이 변했네 & 이건 모하는 꼬꼬마?  (2) 2009.07.21
Posted by 구차니
Linux2009. 8. 4. 15:45
bash 쉘 스크립트에서 변수를 선언하는 방법은 다음과 같다.
VARIABLE=VALUE

그리고 변수를 읽는 방법은 다음과 같다.
VAR2=$VARIABLE

아무튼, 다른 변수에 변수들을 조합해서 내용을 넣는데
공백이 들어가는 문자열의 경우에는 한번에 변수로 들어가지 않는다.
$ test=123 456 789
-bash: 456: command not found

그런 이유로, 문자열은 " "로 넣어주어야 한다.
$ test="123 456 789"

' '는 안에 변수가 있다고 하더라도 치환하지 않고 그냥 출력한다.
$ test="123 456 789"
$ echo '$test'
$test

{}는 함수이다. 즉, 어떠한 내용을 변형 후 값으로 사용하려면 ${} 라고 하면된다.
()는 변수를 감싸준다. 그냥 $(VAR) 이런식으로 사용한다.

선언되지 않은 변수를 사용할 경우에는 null 문자이므로 출력되지 않으나(bash에서)
busybox(ver 1.10.1) 에서는 오작동을 하는 문제가 보였다.

예를 들어
VAR="test string $undefined hello world"를 출력하려고 하면
hello world만 나온다.


참고 링크
[링크 : http://kaludin.egloos.com/2334564]
[링크 : http://wiki.kldp.org/HOWTO//html/Adv-Bash-Scr-HOWTO/index.html]

'Linux' 카테고리의 다른 글

busybox route 명령어  (0) 2009.08.06
grep -r 옵션은 주의!  (0) 2009.08.06
bash - eval  (0) 2009.08.03
/proc/cmdline 내용 읽어오기  (0) 2009.08.03
setenv() - change or add an environment variable  (4) 2009.08.03
Posted by 구차니
프로그램 사용2009. 8. 3. 19:18
머.. libjpeg가 그랬듯이 libpng도 별 건 없다.

$ more INSTALL
Installing libpng version 1.2.38 - July 16, 2009

On Unix/Linux and similar systems, you can simply type
    ./configure [--prefix=/path]
    make check
    make install
and ignore the rest of this document.

$ ./configure --host=sh4-linux
configure: WARNING: If you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used.
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for sh4-linux-strip... sh4-linux-strip
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for sh4-linux-gcc... sh4-linux-gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... yes
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether sh4-linux-gcc accepts -g... yes
checking for sh4-linux-gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of sh4-linux-gcc... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... sh4-unknown-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by sh4-linux-gcc... /opt/STM/STLinux-2.2/devkit/sh4/sh4-linux/bin/ld
checking if the linker (/opt/STM/STLinux-2.2/devkit/sh4/sh4-linux/bin/ld) is GNU ld... yes
checking how to run the C preprocessor... sh4-linux-gcc -E
checking for sh4-linux-sed... /bin/sed
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
checking for BSD- or MS-compatible name lister (nm)... /opt/STM/STLinux-2.2/devkit/sh4/bin/sh4-linux-nm -B
checking the name lister (/opt/STM/STLinux-2.2/devkit/sh4/bin/sh4-linux-nm -B) interface... BSD nm
checking the maximum length of command line arguments... 98304
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /opt/STM/STLinux-2.2/devkit/sh4/sh4-linux/bin/ld option to reload object files... -r
checking for sh4-linux-objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for sh4-linux-ar... sh4-linux-ar
checking for sh4-linux-strip... (cached) sh4-linux-strip
checking for sh4-linux-ranlib... sh4-linux-ranlib
checking command to parse /opt/STM/STLinux-2.2/devkit/sh4/bin/sh4-linux-nm -B output from sh4-linux-gcc object... ok
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if sh4-linux-gcc supports -fno-rtti -fno-exceptions... no
checking for sh4-linux-gcc option to produce PIC... -fPIC -DPIC
checking if sh4-linux-gcc PIC flag -fPIC -DPIC works... yes
checking if sh4-linux-gcc static flag -static works... yes
checking if sh4-linux-gcc supports -c -o file.o... yes
checking if sh4-linux-gcc supports -c -o file.o... (cached) yes
checking whether the sh4-linux-gcc linker (/opt/STM/STLinux-2.2/devkit/sh4/sh4-linux/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for ANSI C header files... (cached) yes
checking malloc.h usability... yes
checking malloc.h presence... yes
checking for malloc.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for working strtod... no
checking for pow... no
checking for pow in -lm... yes
checking for memset... yes
checking for pow... (cached) no
checking for pow in -lm... (cached) yes
checking for zlibVersion in -lz... yes
checking if assembler code in pnggccrd.c can be compiled without PNG_NO_MMX_CODE... yes
checking if libraries can be versioned... yes
checking for symbol prefix...
configure: pkgconfig directory is ${libdir}/pkgconfig
configure: creating ./config.status
config.status: creating Makefile
config.status: creating libpng.pc
config.status: creating libpng-config
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

물론 크로스 컴파일이므로
make check는 "cannot execute binary file" 메시지를 출력하면서 중단된다.
Posted by 구차니
Linux2009. 8. 3. 17:31
eval [arg ...]
    The args are read and concatenated together into a single command.
    This command is then read and executed by the shell,  and its exit status is returned as the value of eval.
    If there are no args, or only null arguments, eval returns 0.

변수들을 합쳐주고, 실행까지 해준다고 한다.
export 명령어를 args에 넣고 하면 가능할 듯하다.
물론 child process를 생성해서 실행하게 되므로 export를 한다고 해도,
변수의 값이 변경되거나 생성되지는 않는다.(스크립트 종료와 함께 사라짐)

[링크 : http://www.unix.com/unix-dummies-questions-answers/43969-set-variable-awk-output.html]
Posted by 구차니
sed '/s/replace old/replace new/'
스트림이니까, 파이프로 연결해도 당연히(?!) 된다.

[링크 : http://www.grymoire.com/Unix/Sed.html]
Posted by 구차니
파일방2009. 8. 3. 15:52
대부분의 원격이 D3D에서 지원 안되는 문제가 있었는데
이녀석은 되다고 한다.

나중에 해봐야지 -ㅁ-

[링크 : http://www.teamviewer.com/index.aspx]

'파일방' 카테고리의 다른 글

SETI@home lunatics optimizer  (0) 2009.10.14
TFTP server for windows  (0) 2009.08.24
UFO:AI 임시 번역본  (0) 2009.03.07
Dual time clock  (0) 2009.02.04
공개 시리얼 프로그램(터미널) - free terminal program(RS-232)  (6) 2009.01.21
Posted by 구차니
Linux2009. 8. 3. 14:54
$ ll /proc/cmdline
-r--r--r-- 1 root root 0 Aug  3 14:52 /proc/cmdline

보다시피 파일 시스템 상에서 파일 크기가 0으로 나온다.
그런 이유로 stat , fseek + ftell 을 해도 크기가 0으로 밖에 나오지 않는다.


아무튼 결국에 파일길이를 알아내지 못하므로
그냥 while(!feof(fp)) 로 일일이 길이 체크 하면서 읽어와야 한다.
Posted by 구차니
awk의 가장 유용한 사용방법은
awk '{print $1}' 가 아닐까 생각이 된다.
일단 1번부터 시작하여 n 번째의 문자열을 출력해주며
문자열은 공백으로 구분한다.

예를 들어
/proc/cmdline의 경우
$ cat /proc/cmdline
ro root=/dev/VolGroup00/LogVol00 rhgb quiet

인데 awk를 사용할 경우
$ cat /proc/cmdline | awk '{print $1}'
ro
$ cat /proc/cmdline | awk '{print $2}'
root=/dev/VolGroup00/LogVol00
$ cat /proc/cmdline | awk '{print $3}'
rhgb
$ cat /proc/cmdline | awk '{print $4}'
quiet
$ cat /proc/cmdline | awk '{print $5}'

이런식으로 구분을 하여 옵션별로 떼어낼 수 있다.


$ cat /proc/cmdline | awk '{print NF}'
4
NF는 내부 변수로 컬럼의 갯수를 알려준다.


[링크 : http://www.grymoire.com/Unix/]
Posted by 구차니
Linux2009. 8. 3. 11:47
SETENV(3)                  Linux Programmer’s Manual                 SETENV(3)

NAME
       setenv - change or add an environment variable

SYNOPSIS
       #include <stdlib.h>

       int setenv(const char *name, const char *value, int overwrite);

       int unsetenv(const char *name);

DESCRIPTION
       The  setenv()  function  adds the variable name to the environment with the value value, if name does not already
       exist.  If name does exist in the environment, then its value is changed to value if overwrite  is  non-zero;  if
       overwrite is zero, then the value of name is not changed.

       The unsetenv() function deletes the variable name from the environment.

RETURN VALUE
       The  setenv()  function  returns  zero on success, or -1 if there was insufficient space in the environment.  The
       unsetenv() function returns zero on success, or -1 on error, with errno set to indicate the cause of the error.

ERRORS
       EINVAL name contained an ’=’ character.

CONFORMING TO
       4.3BSD, POSIX.1-2001.

NOTES
       Prior to glibc 2.2.2, unsetenv() was prototyped  as  returning  void;  more  recent  glibc  versions  follow  the
       POSIX.1-2001-compliant prototype shown in the SYNOPSIS.

BUGS
       POSIX.1-2001  specifies  that if name contains an ’=’ character, then setenv() should fail with the error EINVAL;
       however, versions of glibc before 2.3.4 allowed an ’=’ sign in name.

SEE ALSO
       clearenv(3), getenv(3), putenv(3), environ(7)

BSD                               2004-05-09                         SETENV(3)


환경변수를 바꾸어 보려고 했더니, 프로그램 종료 후에는 그 환경변수를 사라지는 문제가 발생했다.
혹시나 해서 찾아 봤더니 원래 그렇다고 한다.
음.. 고정시키는 방법은 없을려나..

고정 시키려면  직접적으로 할 수는 없고, 스크립트를 하나 만들어 실행시키는 방법외에는 없다고 한다.

[링크 : http://kldp.org/node/88770]


그리고, setenv() 사용시, 변수 치환은 되지 않는다.
예를 들어 A=str B=test 로 선언하고
setenv("C","$A $B",1) 라고 해도 C=str test 로 입력되지 않는다.

[링크 : http://forum.falinux.com/zbxe/?document_srl=408397]
Posted by 구차니
Linux2009. 8. 1. 13:04
var=$(cat filename)



참~~~ 쉽죠~
(찾는데 한참 걸림 ㅠ.ㅠ)


[링크 : http://wonylog.tistory.com/192]
[링크 : http://ttongfly.net/zbxe/?document_srl=45340&mid=scriptprogramming]
Posted by 구차니