2017년 7월 18일 화요일

github 에 ssh 로 접근

# 깃허브용 키 생성
$ ssh-keygen -f ~/.ssh/github -t rsa -b 4096 -C "email 주소"

# ssh_config 설정
$ cat ~/.ssh/config
Host github.com
        User git
        IdentityFile ~/.ssh/github

# 깃허브 저장소에 공개키 등록
저장소 > Settings > Deploy keys > Add deploy key
Title
[적당한 이름]
Key
[~/.ssh/github.pub 내용을 붙여넣기]

# 깃허브 접근 테스트
$ ssh -T git@github.com
Hi <깃허브계정/저장소>! You've successfully authenticated, but GitHub does not provide shell access.

# 저장소 클론
[Clone or Download] > Use SSH > [Copy To Clipboard] 버튼 클릭
$ git clone (붙여넣기)

# 깃허브에 올리기
$ git push origin master

2017년 6월 30일 금요일

코딩용 일본어 폰트 및 TTC 풀기

일어로 주석이 달린 코드를 보려는데, MS Gothic 으로는 보기가 힘드네.

https://github.com/adobe-fonts/source-han-code-jp

다운 받고보니 ttf 가 아니고 ttc 로 되어있다.
ttf 여러개를 하나의 파일로 묶어 놓은 것이라는데,
설치가 안되네. (아래의 다른 파일은 직접 설치가 된다)

ttc 파일을 풀어주는 프로그램
http://yozvox.web.fc2.com/unitettc.zip

다음 명령어로 풀고
> unitettc64.exe SourceHanCodeJP.ttc

14 개의 ttf 파일이 나왔다. 사용할 것만 설치하면 된다.

SourceHanCodeJP001.ttf   ExtraLight
SourceHanCodeJP002.ttfExtraLight Italic
SourceHanCodeJP003.ttfLight
SourceHanCodeJP004.ttfLight Italic
SourceHanCodeJP005.ttfNormal
SourceHanCodeJP006.ttfNormal Italic
SourceHanCodeJP007.ttfRegular
SourceHanCodeJP008.ttfRegular Italic
SourceHanCodeJP009.ttfMedium
SourceHanCodeJP010.ttfMedium Italic
SourceHanCodeJP011.ttfBold Italic
SourceHanCodeJP012.ttfBold Italic
SourceHanCodeJP013.ttfHeavy
SourceHanCodeJP014.ttfHeavy Italic

설치 했는데 teraterm 폰트 리스트에서 보이지 않는다.
알고보니 고정폭 폰트가 아니고 같은폭 폰트였다.

또다른 폰트
https://myrica.estable.jp/

이건 ttc 로 그냥 설치가 됬다.

그럭저럭 괜찮긴한데 영어는 Bitstream Vera Sans Mono 쪽인 더 괜찮은 것 같다.

2017년 6월 28일 수요일

vim: tip: 모든 파일에 equalprg 적용

$ cat script.vim
:argdo exec "normal gg=G" | update
:q
$ vi -s script.vim *

cygwin + teraterm + vim 으로 euc-jp 파일 편집

* Shell
LANG=ja_JP.UTF-8 vim

*Vim
set fencs=utf-8,euc-jp

* Teraterm
Setup
   Terminal
       Kanji(receive) [UTF-8]
      Kanji(transmit) [UTF-8]
      locale [japanese]
   Font
      글꼴 [MS Gothic]
      스크립트 [일본어]


     

2017년 5월 25일 목요일

QNX 명령어


명령어 내용 사용 예
pidin 프로세스 정보
커맨드라인 확인
pidin
pidin ar
sloginfo 시스템 로그 sloginfo [-m 레벨]
slay kill slay <pid | 이름>
use 모듈 정보 use -i <모듈이름>
dumper 실행중인 프로세스 덤프 dumper -p pid

2017년 5월 22일 월요일

linux core dump

# 코어 덤프 생성 가능

$ ulimit -c unlimit

# 코어 덤프 경로 지정
$ echo /var/log/core.%e.%p > /proc/sys/kernel/core_pattern

$ gdb -c core <실행파일 경로>

2017년 5월 14일 일요일

ubuntu 에서 노트북 덮개를 닫아도 suspend 되지 않도록 설정

/etc/systemd/logind.conf 파일에 HandleLidSwitch=ignore 추가

$ sudo service systemd-logind restart

2017년 5월 3일 수요일

excel 에서 요일 표시

=CHOOSE(WEEKDAY(셀 이름),"일","월","화","수","목","금","토")

"셀 이름"에 날짜가 들어있는 셀을 지정한다.

2017년 4월 29일 토요일

ubuntu 16.04 설치

e-sata 로 연결된 외장하드에 ubuntu 16.04 설치

1. Ubuntu 16.04.2 LTS Desktop 64bit 다운로드
http://releases.ubuntu.com/16.04/ubuntu-16.04.2-desktop-amd64.iso.torrent?_ga=1.71940435.1113351924.1493472780

2. 설치용 USB 드라이브 생성
rufus 를 이용해 iso 파일을 USB 드라이브에 복사
https://rufus.akeo.ie/downloads/rufus-2.14p.exe

3. Ubuntu 설치

설치는 했는데 BIOS 에서 부팅 디바이스로 인식이 안되어 부팅 안 됨.
이 것, 저 것 해보다가 결국 내장 SSD 와 HDD 를 제거하고 외장 하드만
연결한 채로 설치 후 인식 성공. 성공 후 SSD 와 HDD 를 다시 연결.

4. 시스템 업그레이드
# 빠른 저장소로 변경
$ sudo sed -i 's/kr.archive.ubuntu.com/ftp.daumkakao.com/' /etc/apt/sources.list
# DB 업데이트
$ sudo apt-get update
# 시스템 업그레이드
$ sudo apt-get upgrade

5. 패스워드 입력 없이 sudo 사용
 $ echo '유저명 ALL=NOPASSWD: ALL' | sudo tee -a /etc/sudoers

6. 한/영 키 설정
한글은 입력할 수 있는데 한영 전환이 불편하다. 다음 사이트를 보고 설정 변경.
hochulshin.com/ubuntu-1604-hangul/

위 사이트에서 영어 메뉴를 한글로 바꾸면...
시스템 설정 > 키보드 > 바로 가기 탭 > 자판 입력 을 선택
'다음 입력 소스로 변환', '이전 입력 소스로 변환' 항목은 오른 쪽의 키 바인딩을 선택 후 백스페이스 키로 '사용 않음' 으로 설정.
'대체 문자 키' 항목은 오른 쪽의 키 바인딩을 '사용 않음' 으로 변경.
'구성 키' 항목은 오른 쪽의 키 바인딩을  '오른쪽 Alt' 로 변경.'다음 입력 소스로 변환' 의 키 바인딩을 눌러 '새 단축키'로 바뀌면 한/영 키를 눌러 'Multi_key' 로 설정.
시스템 설정 윈도우를 닫고 상단 메뉴바 오른쪽의 키보드 아이콘을 눌러 '현재 입력기 설정'을 선택.
Hangul 이 추가된 것을 확인하고, 전역 설정 탭으로 이동.
'입력기 전환' 의 두 항목을 선택 후 한/영 키를 눌러 'Multikey' 로 설정.
'Extra key for trigger input method' 를 '사용 안 함' 으로 설정.
'윈도우 사이에 상태 공유'를 '모두'로 선택.

7.  CapsLock <-> Ctrl 바꾸기
$ sudo apt-get install gnome-tweak-tool
$ gnome-tweak-tool
입력 > Ctrl 키 위치 > Ctrl 과 Caps Lock 뒤바꾸기 선택

8. 터치패드 끄기
시스템 설정 > 마우스 및 터치패드 > 터치패드 > 끔

2017년 4월 28일 금요일

osmc 터미널에서 한글 사용

http://shallweeee.blogspot.kr/2015/06/conemu.html 참조

osmc 로 iso 파일 보기

sudo apt-get update sudo apt-get install libbluray1

2017년 4월 5일 수요일

qq

#! /usr/bin/bash

UPDATE=/update

error()
{
    echo "$*"
    exit
}

cmd_mkdir()
{
    echo "* $@"
}

cmd_put()
{
    echo "* $@"
}

cmd_puts()
{
    local argv=("$@")
    local argc=${#argv[@]}

    local dst=${argv[$((argc - 1))]}
    unset -v argv[$((argc - 1))]

    for src in "${argv[@]}"; do
        [ ${src:0:1} = . ] && error "not support: start with ."

        if [ -d "$src" ]; then
            cmd_mkdir "$dst/$(basename $src)"
            cmd_puts "$src"/* "$dst/$(basename $src)"
        else
            cmd_put "$src" "$dst"
        fi
    done
}

cmd_update()
{
    local TMP=update.$$
    RMF=no

    unzip $1 -d $TMP || exit

    cmd_qcl rm $UPDATE > /dev/null
    cmd_mkdir $UPDATE

    cmd_puts $TMP/* $UPDATE

    rm -rf $TMP
}

# main

if [ "$1" = "put" ]; then
    shift
    cmd_puts "$@"
elif [ "$1" = "update" ]; then
    cmd_update "$2"
else
fi

qcl.pl 실행 오류

https://github.com/zayfod/qcl 의 스크립트에서 put 과 mkdir 명령이 동작하지 않는다.

다음과 같이 수정

O_CREAT|O_TRUNC|O_WRONLY => 01401
O_CREAT|O_WRONLY => 0403
S_IFDIR|S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH => 040777

pacman GPGME 에러

$ pacman -S diff
오류: GPGME error: Invalid crypto engine
오류: GPGME error: Invalid crypto engine
오류: GPGME error: Invalid crypto engine
오류: 'mingw32' 데이터베이스가 유효하지 않습니다. (데이터베이스가 잘못되었거나 손상되었습니다. (PGP 서명))
오류: 'mingw64' 데이터베이스가 유효하지 않습니다. (데이터베이스가 잘못되었거나 손상되었습니다. (PGP 서명))
오류: 'msys' 데이터베이스가 유효하지 않습니다. (데이터베이스가 잘못되었거나 손상되었습니다. (PGP 서명))

해결
/var/cache/pacman/pkg 에서 libgpgme, gnupg, pacman 패키지 파일 삭제
/etc/pacman.conf 에서 SigLevel = Never 로 변경
pacman -S ibgpgme gnupg pacman
/etc/pacman.conf 에서 SigLevel 를 원래대로 변경


참고
https://github.com/Alexpux/MSYS2-packages/issues/393

2017년 3월 11일 토요일

Linux 명령어

du -d0 -h directory
디렉토리 크기 표시

ssh-keygen -t rsa
rsa 방식의 공개/암호 키 생성

ssh-copy-id user@server
server 의 user 사용자 로그인을 위해 공개키 등록

vundle

vundle 소개 페이지
    https://kldp.org/node/125263


* 정리

vundle
    vim 을 위한 플러그인 매니저

필요 프로그램
    vim, git, curl 또는 wget

설치
    https://github.com/VundleVim/Vundle.vim

플러그인 설치
    $ vi ~/.vimrc
    Plugin 설정 위치에 다음과 같이 Plugin 지정
    :so %
    :PluginInstall

    Plugin 'Github 또는 vim-scripts 의 플러그인 저장소'

플러그인 삭제
    $ vi ~/.vimrc
    삭제할 Plugin 줄을 삭제 또는 주석처리
    :so %
    :PluginClean

플러그인 찾기
  • http://vimawesome.com/
  • http://vim-scripts.org/vim/scripts.html
  • vi 에서 :PluginSearch [플러그인 이름]

2017년 3월 9일 목요일

login.sh

시스템에 사용자를 추가하지 못하는 상황에서
사용자 별로 홈디렉토리 환경을 만들어야 하는 일이 생겨
가상 사용자용


1. 대표 사용자 (test) 의 .bashrc 에 login.sh 를 연결.
/home/test/.bashrc 파일
--------------------------------------------------------------------------------
...

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\[\e[31m\]\h\[\e[0m\] \[\e[33m\]\w\[\e[0m\] \$ '
. bin/login.sh
================================================================================

/home/test/bin/login.sh 파일
--------------------------------------------------------------------------------
#! /usr/bin/bash

HOME_ROOT=/home
NEW_HOME=

banner()
{
        echo
        echo "Welcome to $(hostname)."
        echo "If you want to remain as '$USER' user, press Control+C"
        echo
}

check_login()
{
        local user=
        #local pass=
        read -p "User name: " user
        #read -sp "Password: " pass

        [ -z "$user" ] && return 1
        [ "$user" = "$USER" ] && return 1
        [ ${user:0:1} = "." ] && return 1
        [ -d "$HOME_ROOT/$user" ] || return 1

        NEW_HOME="$HOME_ROOT/$user"
        return 0
}


# main
banner

# try to check up to 3 times
for t in 1 2 3; do
        check_login && break
done

[ -z "$NEW_HOME" ] && exit

export HOME="$NEW_HOME"
export USER=$(basename "$HOME")
export HISTFILE=$HOME/.bash_history
unset HOME_ROOT NEW_HOME banner check_login

cd "$HOME"
[ -f .bashrc ] && . .bashrc
history -ac $HISFILE
================================================================================

2. 추가 사용자용 홈디렉토리 생성
$ mkdir -p /home/test1/.{git,ssh}
$ touch /home/test1/.{bash,input,vim}rc

3. 로그인 및 테스트
--------------------------------------------------------------------------------
User name: test1

$ pwd
/home/test1

$ echo $USER
test1

$ whoami
test # 시스템이 인식하는 사용자는 바뀌지 않는다.

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): # 역시 바뀌지 않는다.
^C
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test1/.ssh/id_rsa.
Your public key has been saved in /home/test1/.ssh/id_rsa.pub.
The key fingerprint is:
...

$ git config --global user.email test1@test.com
$ cat ~/.gitconfig
[user]
        email = test1@test.com
================================================================================

일단은 이 정도로 만족


# 자동 로그인 매크로 - teraterm
login.ttl
--------------------------------------------------------------------------------
; Connection configuration
Host = 'host'
UserName = 'test'
VirtualUser = 'test1'
PrivateKeyfile = '암호키 파일 경로'
Prompt = 'User name: '

; Build connect message
Msg = Host
strconcat Msg ':22 /ssh /user='
strconcat Msg UserName
strconcat Msg ' /auth=publickey /keyfile='
strconcat Msg PrivateKeyfile

connect Msg

wait Prompt
sendln VirtualUser
================================================================================

> ttpmacro /V login.ttl

2017년 3월 8일 수요일

cygwin ssh server

https://docs.oracle.com/cd/E24628_01/install.121/e22624/preinstall_req_cygwin_ssh.htm#EMBSC340

http://www.atechnote.com/2016/10/setup-ssh-server-on-windows-7.html

2017년 3월 5일 일요일

리눅스 패키지 매니저

DB 동기화
apt apt-get update
pacman pacman -Sy
cygwin
yum
rpm

패키지 설치
apt apt install <패키지명...>
pacman pacman -S <패키지명...>
cygwin setup.exe 사용
yum
rpm

패키지 파일로 설치
apt dpkg -i <패키지 파일 경로>
pacman pacman -U <패키지 파일 경로>
cygwin 해당 없음
yum
rpm

패키지 삭제 [설정파일까지]
apt apt-get [--purge] remove <패키지명>
pacman pacman -R [-cn] <패키지명>
cygwin setup.exe 사용
yum
rpm

설치된 패키지 리스트 확인
apt dpkg -l
pacman pacman -Q
cygwin cygcheck -c
yum
rpm

파일 소유 패키지
apt dpkg -S <패턴>
pacman pacman -Qo <파일>
cygwin cygcheck -f
yum
rpm

패키지 파일 리스트
apt dpkg -L <패키지 이름>
pacman pacman -Ql <패키지 이름>
cygwin cygcheck -l <패키지 이름>
yum
rpm

패키지 검색
apt apt-cache search <검색어>
pacman pacman -Ss [검색어] # 모든 패키지
pacman -Qs [검색어] # 설치된 패키지
cygwin cygcheck -p <검색어>
yum
rpm

패키지 다운로드 경로
apt /var/cache/apt/archives
pacman
cygwin
yum
rpm

2017년 3월 1일 수요일

CPAN 모듈 설치

perl -MCPAN -e "install Net::Telnet"

# cygwin 에서는 perl-base 말고 perl 을 설치할 것

2017년 2월 22일 수요일

Windows 명령어

* 장치 관리자
devmgmt.msc

* 시스템 속성
sysdm.cpl

* Windows 작업관리자
taskmgr

* 설치된 윈도우 업데이트 확인
wmic qfe list

* 최대 절전 모드 비활성화
powercfg -h off

2017년 2월 15일 수요일

vim 에서 붙여넣기

터미널에서 vim 을 쓸 때 코드를 붙여넣기 하면
주석 줄 이후에는 모든 줄이 주석 처리 된다.
formatoptions 설정때문인데 몇 가지 해결 방법이 있다.

1.  기능을 무효화
:set formatoptions-=cro
복사
:set formatoptions+=cro

2. 복사 모드로 설정
:set paste
복사
:set nopaste

* gui 환경에서는 vim 이 붙여넣기 이벤트를 감지해
  자동으로 처리되어 이런 문제가 없다고 한다.


msys2 터미널에서 붙여 넣기를 하면 다음과 같이 모드가 바뀌고
붙여 넣기가 안되는 경우가 있다.
-- (끼워넣기) --
에서 
-- (끼워넣기) 비주얼 -- 로 변경됨

set nocompatible 설정 추가