WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.

자바에서 프로그램 실행 시 위와 같은 에러 메시지가 보일 때가 있다.


보통 자바를 업그레이드 했거나, 컴퓨터 환경을 재설치(자바 재설치, 윈도우 재설치 등) 했을 때 발생하는 것 같다.. 


에러가 말하는 대로, 자바의 어떤 기능이 Software\JavaSoft\Prefs 라는 것에 접근을 못 하는 것 같다. 직접 들어가보자. (시작 - 실행 - regedit )



위치는 

HKEY_LOCAL_MACHINE\SOFTWARE\

JavaSoft  이다. 다른 곳들은(HKEY_CURRENT_USER 등등...) 이미 Prefs 란게 있거나, 아예 Software 폴더가 없었기 때문에, 이곳이 가장 의심스럽다.


아예 없는 걸 보니 open/create 중에서 create 를 못하고 있었던 것 같다. 혹시 모르니 JavaSoft의 권한을 프리하게(?) 해주고

Prefs 키를 만들어 보자.




JavaSoft 폴더 오른쪽 클릭 - 사용권한(P)



왼쪽 그림처럼 모든 권한에 체크를 해준다. 이제 어떠한 사용자나 패키지(프로그램)에서 이 키를 수정할 수 있게 된다.












JavaSoft 폴더 오른쪽 클릭 - 새로만들기 - 키 를 선택한다.


키의 이름은

Prefs 로 해준다.





이렇게 되면 끝이다. 

이제 더이상 에러메시지가 출력되지 않는다.








자녀 스마트폰 PC 관리



du 명령어. (Disk Usage 의 약자)

git bare repository 에서 과연 push 가 제대로 된 건가 확인할 겸 용량을 확인해 보고 싶었다.

 

du 라고 쉘에 입력하면

현재 위치의 각 폴더의 사용량과 총 사용량을 표시해준다. (단위 : KB)

du [옵션] [용량을 알고싶은 파일 or 디렉토리 (생략하면 현재 디렉토리) ]

 

◎ 옵션

-a    :    "폴더"의 사용량이랑 총 사용량만 표시되기 때문에, 폴더 내의 파일의 용량을 확인하려면 이 옵션을 넣어야 한다.

-m    :    결과를 MB 단위로 나타내준다.

-h    :    human readable, 크기 적절하게 알아서 단위를 설정한다. (kb, mb, gb)

-s    :    용량의 총 합을 계산해준다.

-S    :    각 디렉토리 별 합을 계산해준다.

 

◎ 사용 예

du            --> 각 디렉토리 별 합을 구해준다.

40      ./hooks
4       ./branches
8       ./refs/heads
4       ./refs/tags
16      ./refs
4248    ./objects/pack
4       ./objects/info
4256    ./objects
8       ./info
4340    .

du -S        --> 이것도 각 디렉토리 별 합을 구해주는데, 위의 명령어와 미묘한 차이가 있는데.. 설명하긴 뭐하고 직접 결과를 보길 바란다.

40      ./hooks
4       ./branches
8       ./refs/heads
4       ./refs/tags
4       ./refs
4248    ./objects/pack
4       ./objects/info
4       ./objects
8       ./info
16      .

du -s        --> 총 합만 보여준다.

4340    .

du config        --> config 이라는 파일의 용량을 보여준다.

4       config

du -h        --> 사람이 읽기 좋게 용량을 표시한다.

40K     ./hooks
4.0K    ./branches
8.0K    ./refs/heads
4.0K    ./refs/tags
16K     ./refs
4.2M    ./objects/pack
4.0K    ./objects/info
4.2M    ./objects
8.0K    ./info
4.3M    .

du -ah        --> 모든 파일과 디렉토리의 용량을 사람이 읽기 좋게 표시한다.

du -sh        --> 총 합을 사람이 읽기 좋게 표시한다.
 



자녀 스마트폰 PC 관리


맨날 끌어다 쓰기만 하다가 it 멘토링 때문에 cnlab에 서버pc가 생겼다.

그래서 거기에 git 원격 저장소 설정을 해야 하는데 할 때마다 헷갈려서 여기에 남겨 놓는다.

확실히 하자면, 이건 개인 pc 에서의 작업이 아니라 서버 pc 에서 해야할 작업이다.

아님 원격접속을 하던지 그건 자기 맘이고..

1. git-core 인가? 일단 기본적으로 설치를 해준다. (인터넷 검색할 것)

 

2. 저장소가 될 폴더를 만들고 그 폴더로 이동

userid@serverpc:~$ mkdir myRepository

userid@serverpc:~$ cd myRepository

userid@serverpc:~/myRepository$        --> 그럼 이런 식으로 보일 것이다.

 

3. git 저장소 생성

여기서 맨날 헷갈렸다.

userid@serverpc:~/myRepository$ git --bare init

bare 옵션을 추가해서 서버의 저장소는 bare 저장소가 되야 원격pc 에서 push 했을 때 에러가 나지 않는다.

 

## 설마 이것까지 나중에 까먹을까.. 하지만 혹시 몰라서 써놓는 push 방법

0. 위의 방법처럼 서버 측에는 저장소가 준비되어 있다고 가정한다. (물론 git 도 설치해야하고)

1. 올리고 싶은 파일이 위치한 폴더를 init 한다. (그러니까 그 폴더 안에서 git init 을 해야한다)

2. git bash 를 열고..

$ git add .                                모든 파일을 stage 에 올린다.

$ git commit -m "first commit"      commit 한다.

이제 push 를 해야 할 차례인데, 원격 저장소가 어디인지를 먼저 git 에 알려줘야 한다.

$ git remote add origin (서버의 user id)@(서버의 ip 또는 도메인):(원격저장소의 위치)

ex) $ git remote add origin gitadmin@xxx.xxx.27.156:~/repositories/myRepo

이제 서버 위치를 알려주었으니, push 를 하면 된다.

$ git push origin master

뭐라뭐라 숫자가 올라가면서 push 가 완료된다.

'GIT' 카테고리의 다른 글

git 원격 저장소(서버) 설정  (2) 2013.07.18
  • jinsang 2015.09.02 18:53

    감사합니다.
    bare 몰라서 서버로 push 못하고 있었어요

    • 컴공의자랑 2015.09.04 22:08 신고

      다행이네요 ^^
      대신 bare 저장소는 소스코드가 안보일텐데, hook 을 사용해 서버측에서 소스 보기가 가능한 방법도 조만간 포스팅 하겠습니다

function post_to_url(path, params, method) {
    method = method || "post";
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);
            form.appendChild(hiddenField);
        }
    }
    document.body.appendChild(form);
    form.submit();
}

위 함수를 사용하면 된다.

* path : post를 날릴 url 주소.

* params : 전송할 데이터. JSON 형식으로 넘겨주면 된다.

* method : 안 써도 되는 항목. 안쓰면 기본적으로 post 형식으로 전송되고, "get"이라 하면 get 방식으로 전송한다.

사용자 정보 검색을 하는 페이지를 제작한 적이 있다.

특정 조건에 맞게 검색을 하고, 결과 테이블을 클릭하면 사진이 뜨는 귀여운(?) 모듈이었는데

이름은 무조건 한글인데 계속 한/영 키를 눌러야 하는 불편함이 있었다.

 

근데 방법이 있었다.^^

 

<input type ='text' id='nm' style='ime-mode:active'>

이게 active 로 되어있으면 무조건 처음 입력 시 한글이 나오게 된다. 참 좋네 ㅋㅋ

tr e x < hello.txt

hello.txt 파일 내의 모든  e 를 x 로 바꾼다.

cut (플래그) (쪼갤 것(파일, 명령 등))

내용을 쪼개서 보여준다.

 

플래그

-c (범위)        :    -c 1-5 이런식으로 쓴다.

첫번째 문자부터 5번째 문자까지만 보겠다는 뜻.

만약

abcdefghijklmnop

1234567890

이런 문자열이었다면

abcde

12345

딱 이만큼까지만 보여지는 것이다. 아.. 직접 봐야 이해가 될텐데..ㅎ

-d (쪼갤문자)    :    -d / 이런식으로 쓴다.

특정한 문자로 구분되어 있는 파일(만약 csv라면 콤마 이런식.. )을 쪼갤 때 사용한다.

명시를 안하면, 기본적으로 tab 으로 인식한다.

-f (필드번호)    :    -d 로 쪼갠 것에서 몇번째 필드를 보겠다는 건지 선택할 때 사용한다.

 

ex)

who | cut -c 1-8   

사용자 이름이 나온다.

who | -c 1-8, 18-

1-8로 사용자 이름이 보이고, 18- 로 인하여 18번째 문자부터 나머지도 보여준다.

cut -d : -f 1 /etc/passwd

(참고로 /etc/passwd 파일은 등록된 사용자의 정보가 들어있는 파일이다.

마침 이 파일이 : 로 구분되어 있기 때문에 예제로 사용했다. )

이렇게 하면 파일을 : 로 구분지어놨을 때 첫번째 필드(열)가 보여진다.

 

 

백스페이스 키 왼쪽에 있는 키를 쉬프트 누르고 입력하면

| 요런게 나온다. 이걸 파이프 라고 부른다. (이게 왜 파이프라 불리는 지는 모른다..)

파이프를 사용해

왼쪽 명령의 출력

오른쪽 명령의 입력 으로 들어간다. 

예제를 통한 설명~

ls | wc -l

원래는 wc (플래그) (파일명) 이렇게 사용하는게 맞다.. 근데 파일이 없다.

파일 대신 ls 명령의 내용 자체가 넘어가는 것이다.

who | wc -l

who 명령의 라인 수라면... 로그인 한 사용자 수가 된다.

who | grep jack

같은 원리로 jack 이란 사용자의 정보가 된다.

who | cut c 1-8 | sort

자, 이번에는 파이프가 2개다.

일단 cut 명령어는 원하는 범위만큼 잘라 보여주는거라 간단히 설명하겠다.

처음으로 who 명령어가 cut 에 의해 1-8범위만큼 잘린다.(사용자 이름만 남겨진다)

윗줄에서 한 것이 sort 명령어(정렬하는 것임)의 입력으로 들어가니, 결국

사용자 이름이 정렬되어 출력된다.

 

(명령) &

그냥 명령 입력 후 & 를 붙여서 입력하면 백그라운드로 보내진다.

 

과연 내가 넘긴 명령이 잘 실행되는지 확인하려면 프로세스를 확인해 보면 된다.

ps -f  --> 프로세스 확인

;

요걸 사용하면 된다 ;;