linux/linux tips2013. 1. 21. 23:03

centos깔때 커스텀으로 해서 인스톨 파일지정해주고 설치



백트랙 r3 깔때는 제일 어려운걸로 설치하기 ubuntu로 



아직 페도라 설치할때 마운트 오류나는거


페도라 vmware 설치할때 오류나는건 해결하지 못했다,.

'linux > linux tips' 카테고리의 다른 글

쉘스크립트 결과 화면 깨질때  (0) 2013.01.03
구조체 변수의 전달과 리턴  (0) 2012.01.09
구조체에 대한 이해  (0) 2012.01.09
리눅스 함수에 대한 이해  (0) 2012.01.09
리눅스 프로그래밍 오류처리  (1) 2012.01.07
Posted by babuzzzy
linux/linux tips2013. 1. 3. 14:44



iconv -c -f euc-kr 원본.txt > 결과물.txt




요렇게 합시다

'linux > linux tips' 카테고리의 다른 글

백트랙 깔기 , centos 깔기  (0) 2013.01.21
구조체 변수의 전달과 리턴  (0) 2012.01.09
구조체에 대한 이해  (0) 2012.01.09
리눅스 함수에 대한 이해  (0) 2012.01.09
리눅스 프로그래밍 오류처리  (1) 2012.01.07
Posted by babuzzzy
linux/linux tips2012. 1. 9. 18:35
함수 호출 시 구조체 변수를 인자로 전달하거나 리턴하는 과정에서 일어나는 모든 일은
기본 자료형 변수와 완전히 동일하다

■ 함수의 인자로 전달되는 구조체 변수
구조체 변수를 함수 호출 시 전달하는 방법은 일반 변수를 전달하는 방법과 마찬가지로 크게 두가지로 나뉜다

값에 의한 전달(call - by - value)와 레퍼런스에 의한 전달(call - by - reference)로 나뉜다

다시한번 말하지만 이러한 과정과 일은 일반변수와 같다 
 

■ typedef 란 키워드는 무엇인가?
이미 존재하는 자료형에 새로운 이름을 붙이기 위한 용도로 사용된다

typedef int INT;

해석 : 이름을 지어주자 // int 에게 // INT 라는 이름을 

그럼 구조체를 쓸때는???

typedef struct data data

해석 : 이름을 지어주자 // struct data 에게 // data 란 이름을..

그럼 구조체 선언을 할때
data d = {1,2}
이렇게 struct 를 쓸필요가 없다!!

구조체 정의와 typedef 선언 동시에 하기

typedef struct data{

  int data 1;
  int data 2;
}data;  <--- 새로운 이름
...
data d = {1,2}; 

 
 

'linux > linux tips' 카테고리의 다른 글

백트랙 깔기 , centos 깔기  (0) 2013.01.21
쉘스크립트 결과 화면 깨질때  (0) 2013.01.03
구조체에 대한 이해  (0) 2012.01.09
리눅스 함수에 대한 이해  (0) 2012.01.09
리눅스 프로그래밍 오류처리  (1) 2012.01.07
Posted by babuzzzy
linux/linux tips2012. 1. 9. 18:12
구조체란 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것이다.
 
구조체를 정의하는 기본적인 방법

struct point // point라는 이름의 구조체 선언     

     int x;    //구조체 멤버
     int y;    //구조체 멤버 
};
 


 point 라는 이름은 하나의 자료형이 된것이다
--> 기본자료형 변수를 묶어 새로운 자료형을 만든 것!!

구조체 정의와 구조체 변수 선언의 분리

struct point {

    int x;
    int y;
};

int main(void)
{
    struct point p1, p2, p3;
    ...
    return 0;


 구조체 변수로의 접근

int main(void)
{
    struct point p1, p2, p3;
    p1.x=10;
    p2.x=20;
    ...
    return 0;



구조체의 멤버에 배열도 들어갈수 있다.

struct person {

    char name[20];
    char phone[20];
}; 



 구조체 변수와 포인터
:구조체 포인터를 선언하여 구조체 변수를 가리킬 수 있다
person이라는 구조체가 이미 있다고 가정하고

struct person* p;


 이렇게 구조체 포인터를 선언 할수 있다.

#include <stdio.h>

struct person {
   char name[20];
   char phone[20];
};

int main()
{
    struct person man = {"thomas", "354-00xx"};
    struct person* pMan;
    pMan= &man;

    //구조체 변수를 이용한 출력
    printf("name        : %s\n", man.name);
    printf("phone       : %s\n", man.phone);

    //구조체 포인터를 이용한 출력
    printf("name        : %s\n", (*pMan).name);
    printf("name        : %s\n", (*pMan).phone);

    //구조체 포인터를 이용한 출력 2
    printf("name        : %s\n", pMan->name);
    printf("name        : %s\n", pMan->phone);

return 0;




 





포인터 변수와 구조체 멤버
: 구조체의 멤버로 포인터가 선언되는 경우

struct perinfo{
   char addr[30];
   char tel[20];
};
struct person {
   char name[20];
   char pID[20];
   struct perinfo* info;
}; 

 
구조체 변수의 주소값과 구조체 변수의 첫 번째 멤버의 주소 값
"구조체 변수의 주소 값과 구조체 변수의 첫 번째 멤버의 주소 값은 같다"
 

Posted by babuzzzy
linux/linux tips2012. 1. 9. 17:16

예를 들어서 

#include <sys/utsname.h>
int uname (struct utname *name); 


이렇게 원형이 있다고 하면
이것을 어떻게 사용해야하는지에 대해서 곰곰히 생각해보자

main 위에 선언되는게  
int uname (struct utsname *name); 
이거라고 생각하고..
그렇다면 당연히 uname 인자에는 주소값이 들어가야겟네.
포인터는 주소값을 저장하기 위한 변수니까..

struct utsname 으로 미리 buf 라는 구조체를 하나 만들고
거기에 대한 주소를 전달해줘야되니까
uname (&buf) 이렇게 하면 되겠네.



 

'linux > linux tips' 카테고리의 다른 글

구조체 변수의 전달과 리턴  (0) 2012.01.09
구조체에 대한 이해  (0) 2012.01.09
리눅스 프로그래밍 오류처리  (1) 2012.01.07
우분투 11.10 에서 vnc 하기  (1) 2011.10.30
우분투 live 부팅 이란  (0) 2011.10.30
Posted by babuzzzy
linux/linux tips2012. 1. 7. 21:55
리눅스를 하다보면 오류처리를 해야할 일이 아주 많다

리눅스 오류처리 할때 구분해야할것이 있다

1. errno 에 셋팅 되느냐
2. errno  에 셋팅이 안되느냐


1번상황 errno에 셋팅이 되면 에러노 처리를 하자

리눅스에서는 거의 모든 함수가 오류 일때 errno일때 셋된다
간단하게


 void DieWithSystemMessage(const char *msg)

 {

     perror(msg);

     exit(1);

  }

위의 두가지를 분류해서 함수로 만들어서 사용하기 편리하다
ex) DieWithSystemMessage("bind() failed");

perror는 입력한 값을 그대로 출력


perror 함수 원형
#include <stdio.h>
void perror(const char *s);


이때 매개 변수 s 에는 오류 메시지 앞에 덧붙이고 싶은 문자열을 전달하면 된다.


myperror.c 오류 메시지 출력 예    open: No such file or directory 이렇게 해당 오류내용을 보여준다



2번상황
errno 셋팅이 안될때
주로 argc 판별할때 쓴다

 void DieWithUserMessage(const char *msg, const char *detail)

  {

      fputs(msg, stderr);

      fputs(": ", stderr);

      fputs(detail, stderr);

      fputc('\n', stderr);

      exit(1);

  }

ex) if ( argc !=2)
 DieWithUserMessage("Usage : is directory_name")  







 

'linux > linux tips' 카테고리의 다른 글

구조체에 대한 이해  (0) 2012.01.09
리눅스 함수에 대한 이해  (0) 2012.01.09
우분투 11.10 에서 vnc 하기  (1) 2011.10.30
우분투 live 부팅 이란  (0) 2011.10.30
./configure 와 make 의 이해  (0) 2011.10.30
Posted by babuzzzy
linux/linux tips2011. 10. 30. 20:41





vino 로 검색해서 실행한후 이렇게 설정한다
1. windows에 VNC Viewer를 다운로드 받는다.
http://www.uvnc.com/ 홈페이지에 들어가면
download page가 있는데.. 이곳에서 최신버전을 다운로드 받으면 된다.
2009.02.11 일 최신 버전이 1.0.5.4 Viewer 이다.
압축을 풀어 적당한 곳에 넣는다.
[출처] 윈도우에서 VNC를 사용하여 Linux(우분투)로 원격 데스크탑 연결하기|작성자 똥글똥글 

3. VNCViewer로 접속한다.
다운로드 받은 vncviewer_tab 을 실행한다.
File -> New Connection 을 선택한다.
VNC Server에 IP Address와 Port 또는 Display를 넣는다.
예) 11.12.13.14:0 
Connect를 누른다.
설정에 넣은 비밀번호를 입력한다.

그럼 아래처럼 VNCViewer에 리눅스의 X-Window 화면이 보인다.

 

'linux > linux tips' 카테고리의 다른 글

구조체에 대한 이해  (0) 2012.01.09
리눅스 함수에 대한 이해  (0) 2012.01.09
리눅스 프로그래밍 오류처리  (1) 2012.01.07
우분투 live 부팅 이란  (0) 2011.10.30
./configure 와 make 의 이해  (0) 2011.10.30
Posted by babuzzzy
linux/linux tips2011. 10. 30. 17:35

우분투 라이브 부팅이란,?

우분투 설치 시디로 부팅하셔서

우분투 설치하지 않고 사용하기 or 우분투 설치하기


선택하시면 우분투 초기화면이 나옵니다.
여기까지의 과정 이더군요.

이부분에서 이제 우리가 할 수 있는게

Grub 복구, Gparted 사용(마운트 되있는 파일 시스템을 언마운트 하기 위해) 이 가능하답니다.


전 Grub 복구 때문에 찾아보다가 모두가 하는말이 계속 라이브 시디로 부팅해서
터미널에서 이런이런 명령어를 쳐라길래 복구모드로 가서 하는건줄 알고
엄청 헤맸습니다.

이게 사실 Gparted 사용법에 대해서 좀 적으려다가 제가좀 멍청해서 그런것도 있지만
혹시나 라이브 부팅을 모르시는분이 있으실까봐 혹시나 해서 올립니다.

조금이나마 도움 되셨길 바라면서,

'linux > linux tips' 카테고리의 다른 글

구조체에 대한 이해  (0) 2012.01.09
리눅스 함수에 대한 이해  (0) 2012.01.09
리눅스 프로그래밍 오류처리  (1) 2012.01.07
우분투 11.10 에서 vnc 하기  (1) 2011.10.30
./configure 와 make 의 이해  (0) 2011.10.30
Posted by babuzzzy
linux/linux tips2011. 10. 30. 16:07
그건 사용자가 만드는 물건이 아닙니다. 자세한 것은 autotools를 검색해보셔야 하는데요. 이해하려면 개발자의 입장을 생각하셔야 합니다.
간단하게 설명하면,

개발자는 여러개의 소스 파일로 프로젝트를 진행합니다. 그런데 매번 컴파일하기가 너무 귀찮습니다. 파일도 많고, 걸어줘야 하는 플래그가 많아요.
-> 그래서 make 라는 유틸리티를 통해 이 문제를 해결합니다. makefile 에는 소스 목록이 들어있다고 생각하시면 됩니다.
근데 make로 만들다보니 남의 컴퓨터에서도 돌리고 싶어졌습니다. 사용자나 플랫폼에 따라 파일 경로 같은 게 다를 수 있거든요.
-> 그래서 autotools 를 사용합니다. autotools는 사용자의 컴퓨터를 조사하여 makefile을 생성합니다.

여기서 ./configure 는 autotools가 자동적으로 만들어 내는 실행파일입니다. 이 명령(configure)을 실행하면 내 컴퓨터에 맞는 makefile이 출력으로 나오게 됩니다.

./configure가 없다면 둘중 하나입니다. 프로그램 소스만 있던가, makefile만 있는거죠.(or 다른 어떤 도구일 수도 있습니다.) 첨부 된 인스톨 설명서가 있으면 한번 잘 읽어보셨으면 합니다

'linux > linux tips' 카테고리의 다른 글

구조체에 대한 이해  (0) 2012.01.09
리눅스 함수에 대한 이해  (0) 2012.01.09
리눅스 프로그래밍 오류처리  (1) 2012.01.07
우분투 11.10 에서 vnc 하기  (1) 2011.10.30
우분투 live 부팅 이란  (0) 2011.10.30
Posted by babuzzzy
linux2011. 10. 25. 01:58
VI 에디터 명령어

# 시작/종료 및 기타

:set number 또는 :set nu 행에 번호 부여

:set nonumber 또는 :set nonu 행에 부여된 번호 제거

:ZZ 또는 :wq 저장하고 vi 에디터 종료

:w [filename] 주어진 파일 이름으로 저장

:w! [filename] 주어진 파일 이름으로 저장/덮어쓰기 후 종료

:w! 저장후 편집종료

:q 저장하지 않고 vi 에디터 종료

:q! 저장하지 않고 vi 에디터 강제종료

:e vi 에디터 종료하지 않고 다른 파일 편집

:e! 편집한 내용 저장하지 않고 최종 저장된 상태로 파일 열기

# 입력 편집 명령어

i 문자 앞에서부터 입력

a 현재 문자 뒤에서부터 입력

I 현재 라인 첫머리에서부터 입력

A 현재 라인 맨뒤에서부터 입력

o 현재라인 아래에 입력

O 행의 위에 입력

r 겹쳐쓰기(커서위치 1문자 변환)

R 현재문자 이후부터 겹쳐쓰기

s 커서가 있는 단어를 지우고 입력하기

ch 커서 바로 앞의 한글자를 여러글자로 수정하기

S 커서가 있는 행을 지우고 입력하기

cw 커서 위치의 한 단어를 수정하기

co 커서 위치부터 줄의 처음까지 수정하기

c 커서 위치부터 줄의 끝까지 수정하기

cc 커서가 있는 줄을 수정하기

cj 커서가 있는 줄과 그 다음 줄을 수정하기

ck 커서가 있는 줄과 그 앞줄을 수정하기



# 삭제 명령어

dw 한 단어 삭제

dd 한 라인 삭제

[number]dd 커서있는 위치에서 숫자만큼 라인 삭제

dj 커서가 있는 줄과 그 다음 줄을 삭제

dk 커서가 있는 줄과 그 앞줄을 삭제

do 커서 위치부터 줄의 처음까지 삭제

x 커서의치의 글자 삭제

D 한줄삭제

d$ 커서 위치부터 줄의 끝까지 삭제

X 커서 바로 앞의 글자 삭제

# 치환 명령어

cw 한 단어 바꾸기(단어의 첫머리에 커서 위치해야함)

# 복사 명령어

y 문자 복사

yy 한라인 복사

yw 커서 위치부터 단어의 끝까지 복사하기

yj 커서가 있는 줄과 그 다음줄을 복사하기

yo 커서 위치부터 줄의 처음까지 복사하기

yk 커서가 있는 줄과 그 앞줄을 복사하기

y$ 커서 위치부터 줄의 끝까지 복사하기

p 현재 줄 다음에 버퍼의 내용을 붙임

P 현재 줄 앞에 버퍼의 내용을 붙임

# 명령어 취소/반복

esc key 입력화면에서 빠져나옴옴

u 또는 :u 되돌리

U 그줄에 행해진 작업 모두 취소하기

. 조금전에 했던 명령 반복하기

# 이동 명령어

:[number] 숫자의 행으로 이동

:0 문서의 맨앞으로 이동

:$ 문서의 맨뒤로 이동

l 오른쪽으로 이동

h 왼쪽으로 이동

j 아래로 이동

k 위로 이동

B 특수문자,기호제외(한단어 뒤로이동)

b 한단어 뒤로 이동

w 한단어 앞으로 이동

W 특수문자, 기호제외(한단어 앞으로 이동)

enter 다음줄의 첫글자로 이동

e 단어의 마지막 글자로 이동

o 라인의 시작으로 이동

E 단어의 마지막 글자로 이동하기

$ 라인의 끝으로 이동

shift키와 함께 사용

gg 파일의 첫 행으로 이동

G 파일의 마지막 행으로 이동

^ 라인의 첫 번째 단어로 이동

shift키와 함께 사용

+ 다음 라인의 처음으로 이동

H 화면의 맨위로 이동

- 이전 라인의 처음으로 이동

M 파일의 중간으로 이동

[ctrl]+F 한 화면 앞으로 이동

L 화면의 끝으로 이동

[ctrl]+D 한 화면의 반만큼 앞으로 이동

/[text] 단어검색

/[filename] 파일검색

[ctrl]+B 한 화면의 뒤로 이동

[ctrl]+U 한 화면의 반만큼 뒤로 이동

'linux' 카테고리의 다른 글

우분투에서 .zip 파일 압축풀기  (0) 2011.09.04
우분투 한글 사용하기  (0) 2011.09.03
리눅스 명령어 - chkconfig  (0) 2011.07.09
리눅스의 커널이란  (0) 2011.06.22
[linux] ssh,scp 사용하기  (0) 2011.06.12
Posted by babuzzzy