배움/리눅스(Linux)2010. 12. 10. 10:40
1. Path가 어떻게 걸렸는지 알고 싶다면?

Shell 상에서 'export $PATH' 라고 입력하면 현재의 패스가 걸린 디렉토리가 전부 출력된다
혹은, 'export' 를 치면 전체 시스템상의 설정들 출력해 볼 수 있다.


2. 그럼 패스가 걸리지 않은 디렉토리에 있는 파일을 실행시키려면 어떻게 해야 하는가?

'/usr/local/bin /xxxxx' 처럼 절대 디렉토리를 적어주어 실행하거나 현재 디렉토리에 파일이 있다면 ./를 붙여서 ./xxxx 라고 실행.

 
3. 만일 패스를 추가해주고 싶다면 자신의 홈디렉토리의 .bash_profile을 에디트하면 된다.
 
vi ~/.bash_profile
   
'PATH=$PATH:$HOME/bin' 부분에서 콜론(:)으로 구분하여 덧붙이면 된다. '/usr/local/bin'을 추가해주고 싶으면 PATH=$PATH:$HOME/bin:/usr/local/bin 이렇게 해주고 저장을 하고 나온 후 'source ~/.bash_profile' 이라고 치면 고친 설정이 바로 적용된다.


참고 :
      #env : 모든 설정된 패스를 볼 수 있다.

 

4. 리눅스의 환경변수 관련 모음

    export 명령어를 이용해서 환경변수를 확인 및 수정할수 있다.

    export

    -> 환경변수 리스트를 보여준다.

    export 변수명=변수값

    -> 해당 변수명에 변수값을 등록한다.

    echo $변수명

    -> 변수명에 해당하는 환경변수값을 보여준다.

    export 변수명=$변수명:변수값

    -> 변수명에 변수값을 추가한다

Posted by DANIEL.H.KIM

[작업환경]

 - 운영체제 :  Ubuntu 10.10
 - IDE : Eclipase 3.6(Hellios)


1. Eclipse에 플러그인 설치
 
- Help > Install New Softare. Add Site
   - Add Site
      - Location : https://dl-ssl.google.com/android/eclipse/
      - NAME : ADT


2. Android SDK 설치
  - 싸이트 :  http://developer.android.com/sdk
  - Linux 선택후 약관 동의 다운로드
  - 압축해제


3. Eclipse에서 Android SDK설정
 - 이클립스의 메뉴 Windows/Preference 실행
 - 왼쪽 탭에서 Android 선택
  - Browse를 한후 SDK를 설치한 디렉토리 선택
  - Apply후 OK


4. 안드로이드 버젼 다운로드
  -각 버전별 에뮬레이터 및 SDK를 별도로 다운로드
  - 이클립스의 메뉴 Windows/Android sdk manager 선택후, 각각 업데이트 (라이센스 동의후)


출처 :
sinsu.egloos.com/2494683

Posted by DANIEL.H.KIM
배움/리눅스(Linux)2010. 12. 9. 10:47
repository : 리포지터리

정보기술에서, 리포지터리는 데이터 집합체가 보관되고 조직적인 방식으로 유지되는 대체로 컴퓨터 저장장치 내의 주요 장소이다. 이 용어는 물건을 넣어둘 수 있는 용기나 방이라는 뜻의 라틴어인 repositorium에서 유래되었으며, 물건들이 모여지는 장소를 의미한다. 이 용어는 어떻게 사용되느냐에 따라, 리포지터리는 사용자가 직접 액세스할 수 있거나, 또는 네트웍 내에서의 재배치나 배포를 위해 특정 데이터베이스, 파일, 또는 문서들이 획득되는 장소일 수 있다. 리포지터리는 저장장치의 일부 접근 가능한 장소 안에 들어가는 데이터 집합체 그 자체이거나, 또는 데이터를 선택적으로 추출하는 어떤 능력을 의미할 수도 있다. 관련되는 용어로는 데이터 웨어하우스와 데이터 마이닝이 있다.



Passphrase : 패스프레이즈

A passphrase 에 이용된 낱말 다른 원본의 순서는 이다 통제 접근 컴퓨터 시스템, 프로그램 또는 자료에. passphrase는 a와 유사하다 암호 사용법에서는, 그러나 일반적으로 추가한 안전을 위해 더 길다. Passphrases는 자주 사용한다 두 접근에, 그리고 가동을의 통제하기 위하여, 암호 서기법 프로그램과 체계. Passphrases는으로 passphrase를 사용하는 체계에 특히 적용 가능하다 암호화 키. 기간의 근원은 유례에 의하여를 가진 이다 "암호". passphrases의 현대 개념은 Sigmund N.에 의해 발명되는 믿어진다.




출처 : 위키피디아
Posted by DANIEL.H.KIM
배움/리눅스(Linux)2010. 12. 9. 10:45
* Super 사용자로 전환
su- 사용자명 : root 사용자가 일반 사용자로 저환
일반 사용자가 슈퍼 사용자로 전환

su -
passwd:


* su super user 의 암호 설정
gattaca@ubuntu-server:~$ sudo passwd root
[sudo] password for gattaca:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully


* Home folder로 이동
cd ~사용자 이름 : home의 자기 폴더로 바로 이동



* 우분투 터미널에서 한글 쓰기
apt-get install scim-hangul 나비를 설치하거나 scim-hangul 을 설치 하는 방법으로 터미널 한글 설정


* scp 명령어 사용법
scp authorized_keys hckim_0911@192.168.6.211:/home/hc_kim0911/.ssh

공용으로 사용하는 media 폴더 같은데에 넣어두고, cp 명령으로 복사 하는 방법

cp [source] [destination] 의 형식을 갖는다.

$ scp -P 1203 .emacs jaemng@192.168.10.10:/home/jaemng 혹은
$ scp -P 1203 .emacs jaemng@192.168.10.10:~

는 현재 디렉토리에서 .emacs란 파일을 원격 컴퓨터의 jaemng이라는 계정의 사용자 홈디렉토리로 복사하라는 의미이다. -P 는 포트지정 옵션


$ scp -P 1203 -r /programming/ftp jaemng@192.168.10.10:/home/jaemng

-r 옵션은 디렉토리를 복사하라는 의미 ftp디렉토리의 내용과 하위 디렉토리 전부가 복사 된다.


$ scp -P 1203 jaemng@192.168.10.10:/home/jaemng/.emacs .

원격 호스트의 .emacs란 파일을 현재 디렉토리로 복사를 의미한다.


* 현재 나의 프로필 출력
Who am I


* 현재 내가 있는 경로 출력
pwd 현재 경로를 출력한다


* sudo 란?
sudo -> super user do
Posted by DANIEL.H.KIM
1. 리눅스 Ubuntu 패키지 설치
가벼운 virtualbox(oracle)을 사용 아니면 vmware를 구해서 설치 혹은 리눅스를 직접 설치

2. 리눅스가 모두 설치되면 루트 passwd를 설정
$ sudo passwd root

3. 만약 설치된 리눅스 Desktop에서 직접 작업을 원하시지 않는다면 ssh를 설치
ssh 설치 방법은
$ sudo apt-get install ssh

4. 안드로이드 설치 환경 준비
- 기본적으로 다음과 같은 package를 인스톨
- 안드로이드는 Phython 2.4 이상이 요구 (단, 일반 현재 나오는 리눅스에는 2.4 이상이 포함)
$ sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev
build-essential zip curl
$ sudo apt-get install valgrind

4.1 자바 설치
- JDK 5.0, Update 12 또는 그 이상이 요구됩니다. (android froyo(2.2) 버전에서는 1.5 버전 사용추천 -> @override 옵션에서 에러가 나기 때문 (참고 : 안드로이드 인사이드 책)
$ sudo apt-get install sun-java5-jdk (자바 설치)
$ sudo update-java-alternatives -l (자바 버전화인)
$ sudo update-java-alternatives -s java-1.5.0-sun (여러개의 자바 설치가 된 경우 1.5.0으로 변경)
$ java -version (자바 버전 확인)
-------------------------------------------------------------------------------------
(자바 경로 설정) , which java -> 자바가 설치된 홈 폴더의 위치를 찾는 명령
$ export JAVA_HOME=/usr/bin/java
$ export ANDROID_JAVA_HOME=$JAVA_HOME
$ export PATH=$JAVA_HOME/bin:$PATH

5. Git 1.5.4 또는 그 이상 버전, 그리고 Repo 설치
 - 환경설정을 반영하기 위해 다시 로그인 하시던가 아니면 터미날을 종료했다 다시 실행(추천)
$ cd ~
$ mkdir bin
$ export PATH=$PATH:~/bin
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo

$ mkdir mydroid
$ cd mydroid
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b froyo
(-b는 버전 옵션, froyo를 설치 하겠다는 의미)
여기까지 실행 후, repo initialized in /home/<your_home>/mydroid 란 메시지 출력
-> 제 경우는, /home/<your_home> 여기에 initialized 되서, 아무 생각 없이 repo sync로 소스를 받았다가, 제가 만들어 둔 myandroid 안에 안 깔려서 계속 찾아 다녔습니다.
ls -a 명령으로 .repo 폴더가 어디에 initialized 되었는지 먼저 확인 하시면, 그 폴더에 소스들이 다운로드 되니, 참고 하세요-

이렇게 되면 환경설정은 이제 마무리!


5. 안드로이드 소스 다운로드
$ repo sync

6. 안드로이드 빌드 하기
$ make
(일반 빌드는 그냥 make , 타겟팅을 따로 설정해야 하는 경우는 복잡!)

참고 :
   - 이 과정을 수행하는 동안 zlib.h error가 발생할 수 있습니다.
   - 이 경우에는 아래와 같이 zlibb1g-dev를 설치하시고 계속 make를 수행하면 됩니다.
$ sudo apt-get install zlib1g-dev
$ make

   - 이 과정을 수행하는 동안 -lncurses error가 발생할 수 있습니다.
   - 이 경우에는 아래와 같이 libncurses5-dev를 설치하시고 계속 make를 수행하면 됩니다.
$ sudo apt-get install libncurses5-dev
$ make

7. 결과 확인하기
out 디렉토리에 build된 안드로이드 full package가 위치하게 됩니다.
$ cd out

8. Kernel 별도로 빌드하기
- msm
$ cd ~/mydroid/kernel
$ make msm_defconfig ARCH=arm
$ make ARCH=arm
CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
- goldfish(1.5에서 merge됨, 따라서 msm_defconfig로 변경)
$ cd ~/mydroid/kernel
$ make goldfish_defconfig ARCH=arm
$ make ARCH=arm
CROSS_COMPILE=../prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-



테스트
1. 먼저 mydroid 의 out directory에서 아래의 세가지 image를
android sdk가 설치된 desktop에 download를 합니다.
~mydroid/out/target/product/generic/ramdisk.img
~mydroid/out/target/product/generic/system.img
~mydroid/out/target/product/generic/userdata.img
2. android sdk 1.0 이 설치된 desktop의 아래의 directory에서 ramdisk.img, system.img, use
rdata.img를 임시로 다른 곳으로 저장한 뒤에
android-sdk-windows-1.0_r1/tools/lib/images
3. 위에서 다운로운한 세가지 img 파일을 위의 디렉토리에 위치지운 후,
android-sdk-windows-1.0_r1/tools/emulator.exe를 실행
4. 만약 emualor가 정상적으로 실행되고, 내부 app. 들이 정상적으로 작동한다면,
안드로이드 source는 정상적으로 build 되었다고 판단!


Posted by DANIEL.H.KIM
배움/리눅스(Linux)2010. 12. 7. 11:10

vi 명령어 요약

1.시작
vi file vi를 시작하여 지정한 파일 편집
vi -R file 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집
view file 읽기 전용(read- only) 편집기로서 vi를 시작하여 지정한 파일 편집

2.종료
:wq 데이터를 저장하고 종료
:q! 데이터를 저장하지 않고 종료

3. 시스템이 다운된 후에 되살리기
vi -r 되살릴 수 있는 모든 파일 이름 보여주기
vi -r file vi를 시작하여 지정한 파일 되살리기

4. 디스플레이 제어하기
^L 현재 화면을 다시 디스플레이하기
:set number 내부 줄 번호 디스플레이
:set nonumber 배부 줄 번호 디스플레이 않기

5. 마지막으로 지운 것 복사하기
p 마지막으로 지워진 것을 커서의 뒤/아래에 삽입
P 마지막으로 지워진 것을 커서의 앞/위에 삽입
xp 두 문자를 바꿈
deep 두 단어를 바꿈
ddp 두 줄을 바꿈

6. 패턴 검색
/rexp 지정된 정규 표현식에 대해 앞으로 이동
/ 이전의 패턴에 대해 앞으로 검색을 반복
?rexp 지정된 정규 표현식에 대해 뒤로 이동
? 이전의 패턴에 대해 뒤로 검색을 반복
n /나 ?명령에 대해 같은 방향으로 반복
N /나 ?명령에 대해 반대 방향으로 반복

7. 약어의 사용
:ab short long short를 long에 대한 약어로 변경
:ab 현재 약어 목록을 표시
:una short 약어 short를 표시

8. 줄 길이의 조정
r 문자를 뉴라인으로 변경
J 줄의 결합
:set wm=n 오른쪽으로 n문자 위치에서 자동적으로 줄 나눔

9. 커서 이동
h 커서를 한 칸 왼쪽으로 이동
j 커서를 한 줄 아래로 이동
k 커서를 한 줄 위로 이동
l 커서를 한 칸 오른쪽으로 이동
커서를 한 칸 왼쪽으로 이동
커서를 한 칸 오른쪽으로 이동
- 커서를 이전 줄의 처음으로 이동
+ 커서를 다음 줄의 처음으로 이동
커서를 다음 줄의 처음으로 이동
0 커서를 현재 줄의 맨 앞으로 이동
$ 커서를 현재 줄의 맨 끝으로 이동
^ 커서를 현재 줄의 첫글자(공백이나 탭이 아닌)로 이동
w 커서를 다음 단어의 첫 글자로 이동
e 커서를 다음 단어의 끝 글자로 이동
b 커서를 이전 단어의 첫 글자로 이동
W w와 같음(문장 부호 무시)
E e와 같음(문장 부호 무시)
B b와 같음(문장 부호 무시)
( 다음 문장의 처음으로 이동
) 이전 문장의 처음으로 이동
{ 다음 문단의 처음으로 이동
} 이전 문단의 처음으로 이동
H 커서를 화면 맨 위로 이동
M 커서를 중간으로 이동
L 커서를 맨 아래로 이동

10. 편집 버퍼를 통한 이동
^F 한 화면 아래로 이동
^B 한 화면 위로 이동
n^F n화면 아래로 이동
n^B n화면 위로 이동
^D 반 화면 아래로 이동
^U 반 화면 위로 이동
n^D n줄만큼 아래로 이동
n^U n줄만큼 위로 이동

11. 셸 명령 실행
:!command vi를 중단하고 지정한 셸 명령을 실행
:!! vi를 중단하고 이전의 셸 명령을 실행
:sh vi를 중단하고 셸을 실행
:!csh vi를 중단하고 새로운 C-셸을 실행

12. 패턴에 의한 치환
:s/pattern/replace/ 현재 줄의 치환
:lines/pattern/replace/ 지정한 줄의 치환
:line,lines/pattern/replace/ 지정한 범위의 치환
:%s/pattern/replace/ 모든 줄의 치환
1,$s/aaaaa/bbbbb/g 모든줄의 치환

13. 데이터 읽기
:liner file file의 내용을 지정한 줄 다음에 삽입
:r file file의 내용을 현재의 줄 다음에 삽입
:liner !command command의 결과를 지정한 줄 다음에 삽입
:r !command command의 결과를 현재의 줄 다음에 삽입
:r !look pattern 지정한 pattern으로 시작된 단어 삽입

14. 정규 표현식을 사용하기 위한 특수 기호
. 뉴라인을 제외한 모든 단일 문자와 대응
* 영 또는 그 이상의 선행 문자와 대응
^ 줄의 시작과 대응
$ 줄의 끝과 대응
\< 단어의 시작과 대응
\> 단어의 끝과 대응
[ ] 묶여진 문자중의 하나와 대응
[^ ] 묶여진 문자를 제외한 아무것하고나 대응
\ 이어지는 기호를 문자 그대로 해석

15. 줄 번호
nG 줄번호 n으로 건너뛰기
1G 편집 버퍼의 첫 줄로 건너뛰기
G 편집 버퍼의 마지막 줄로 건너뛰기
:map g lG g가 lG와 같도록 매크로 정의

16. 삽입
set noautoindent set nocindent
i 입력 모드로 전환, 커서 위치 앞에서 삽입
a 입력 모드로 전환, 커서 위치 뒤에서 삽입
I 입력 모드로 전환, 현재 줄의 앞에 삽입
A 입력 모드로 전환, 현재 줄의 끝에 삽입
o 입력 모드로 전환, 현재 줄의 아래에 전개
O 입력 모드로 전환, 현재 줄의 위에 전개

17. 편집하고 있는 파일을 바꾸기
:e file 지정한 파일의 편집
:e! file 지정한 파일의 편집, 자동 점검의 생략

18. 내용 고치기
r 단지 한 글자만 변경(입력 모드로 바뀌지 않음)
R 입력하는 대로 겹쳐 써서 변경
s 삽입에 의해 한 단어의 변경
C 커서의 위치로부터 줄 끝까지 삽입에 의한 변경
cc 전체 줄을 삽입에 의한 변경
S 전체 줄을 삽입에 의한 변경
cmove 커서부터 move까지 삽입에 의해 변경
~ 대,소문자 바꾸기

19. 고치기의 취소 또는 반복
u 편집 버퍼를 수정했던 마지막 명령을 취소
U 현재 줄을 저장
. 편집 버퍼를 수정했던 마지막 명령 반복

20. 문자 삭제
x 커서가 있는 문자 삭제
X 커서의 왼쪽 문자 삭제
D 커서부터 줄의 끝까지 삭제
dd 현재 줄의 전체 삭제
dmove 커서부터 move까지 삭제
dG 커서부터 편집 버퍼의 끝까지 삭제
d1G 커서부터 편집 버퍼의 맨 앞까지 삭제
:lined 지정한 줄의 삭제
:line, lined 지정한 범위의 삭제

21. 여러 줄의 복사와 이동
:linecotarget 지정한 줄을 복사하여 target 줄 밑에 삽입
:line, linecotarget 지정한 범위를 복사하여 target 줄 밑에 삽입
:linemtarget 지정한 줄로 이동하여 target 줄 밑에 삽입
:line, linemtarget 지정한 범위로 이동하여target 줄 밑에 삽입

22. 데이터를 처리하기 위한 셸 명령의 사용
n!!command n번 줄에서 command의 실행
!move command 커서부터 move까지 command 실행
!move fmt 커서부터 move까지 줄들을 형식 맞추기

23. 데이터 저장하기
:w 원래의 파일로 데이터를 저장
:w file 지정한 파일로 데이터를 저장
:w>> file 지정한 파일에 데이터를 추가

출처 : http://www.jointclub.net/about_unix/vi.html

Posted by DANIEL.H.KIM