'linux'에 해당되는 글 6건
1장. 리눅스 커널 프로그래밍 환경 구축
5. 데비안 패키지 관리
shell에서 문자 출력이 제대로 되지 않을 경우 언어환경이 한글로 설정되어 있기 때문인데 정상 출력을 위해 다음을 입력
# export LANG=C
apt-get 패키지
# vi /etc/apt/sources.list
deb http://ftp.kr.debian.org/debian/ stable main non-free contrib
stable : 안정판
main : 메인 패키지
non-free : 자유 소프트웨어가 아닌 것들
contrib : 라이선스 소프트웨어에 의존하는 자유 소프트웨어
안정판 : gcc 3.x 버전으로 컴파일 (ANSI C90)
불안정판 : gcc 4.x 버전으로 컴파일 (ANSI C99)
2.6.10 까지 : gcc 3.x 버전으로 컴파일 가능, gcc 4.x 버전으로 컴파일하면 비표준 C 코드들을 오류로 경고
2.6.11 이후 : gcc 4.x 버전으로 컴파일 가능, gcc 3.x 버전으로 컴파일 가능 (gcc 3.3)
6. SSH 환경 설정하기
텔넷은 전송되는 데이터가 그대로 노출되기 때문에 암호화를 통해 전송되는 SSH를 가장 많이 사용
7. bash 환경 설정하기
LANG=C; export LANG; : 언어 설정을 추가해서 메시지 깨짐을 제거
echo -ne '\033[11;0]' : 경고 비프음을 제거
export LS_OPTIONS='--color=auto'
eval "'dircolors'"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
# source /root/.bashrc : 변경 사항 적용
make modules_install 시 에러
Version requires old depmod, but couldn't run /sbin/depmod.old: No such file or dir
해결책 : cp /sbin/depmod /sbin/depmod.old
gst-plugin-ugly x264 에러 : ./etc/x264ex~.c 585 b_bframe_pyramid --> i_bframe_pyramid
http://www.gstreamer.net/data/doc/gstreamer/head/faq/html/chapter-developing.html gstreamer pkg-config libtool
gcc -v 인클루드 패스 볼 수 있음
http://www.leejongeun.com/tc/entry/pkg-config pkg-config 설명
shell의 동작 과정
terminal 실행
$를 출력하고 사용자 입력 대기
$ ls -l 입력
fork() 실행
자식 프로세스에서 execve("/bin/ls", "ls", "-l", ...) 실행
부모 프로세스에서 다시 $ 출력하고 사용자 입력 대기
터미널을 열고 아래와 같이 입력해보자.
Hello world
$
echo는 '메아리' 또는 '울려퍼지다'라는 뜻을 가지고 있다. 따라서 뒤에 오는 문자열을 출력하는 기능을 수행한다.
이번에는 변수를 사용해 보자.
C언어처럼 자료형을 붙일 필요도 없고 선언할 필요도 없다. 그냥 쓰고 싶을 때 변수 이름만 쓰고 뒤에 값을 넣으면 된다.
아래와 같이 입력
$ str="Hello world"
$ echo $str
Hello world
$
#주의사항
1. 변수에 값을 넣을 때에는 변수 앞에 $를 쓰지 않고, '변수명=값' 이렇게 붙여써야 한다.
2. 변수에 들어있는 값을 이용할 때에는 $를 붙여주어야 한다.
기본적인 사용법을 알았으니 간단한 쉘스크립트 파일을 만들어보자.
$vi ex01.sh
#!/bin/bash
str = "Hello world"
echo $str
:wq
$ chmod 755 ex01.sh
$ ./ex01.sh
Hello world
http://www.hanb.co.kr/network/view.html?bi_id=351 makefile 사용예
#include <stdio.h>
int input()
{
int in;
printf("What is your favorite number: ");
scanf("%d", &in);
return in;
}
:wq
$ vi output.c
#include <stdio.h>
void output(int out)
{
printf("Your favorite number is %d.\n", out);
}
:wq
$ vi main.c
#include <stdio.h>
int main()
{
int num;
num = input();
output(num);
return 0;
}
:wq
$ vi input.h
extern int input();
:wq
$vi output.h
extern void output(int)
:wq
$ ls
input.c input.h main.c output.c output.h
$ gcc -c input.c output.c
$ ls
input.c input.h input.o main.c output.c output.h output.o
$ ar r libmylib.a input.o output.o
ar: creating libmylib.a
$ ls
input.c input.h input.o libmylib.a main.c output.c output.h output.o
$ ar s libmylib.a
$ ls
input.c input.h input.o libmylib.a main.c output.c output.h output.o
$ ar t libmylib.a
input.o
output.o
$ ls
input.c input.h input.o libmylib.a main.c output.c output.h output.o
$ gcc -o main main.c -lmylib -L.
$ ls
input.c input.h input.o libmylib.a main main.c output.c output.h output.o
$ ./main
What is your favorite number: 3
Your favorite number is 3.