레이블이 ohmyzsh인 게시물을 표시합니다. 모든 게시물 표시
레이블이 ohmyzsh인 게시물을 표시합니다. 모든 게시물 표시

안드로이드폰 termux 사용

# 안드로이드폰으로 터미널 환경을 구성해 보자
# 준비
# 키보드(USB) 를 OTG 를 통해 폰에 연결한다.
# 안드폰에 termux 앱을 설치하자.
# termux는 aarch64(ARM 용으로 포팅한 64bit arch linux) 기반으로
# 패키지 관리자로 apt 또는 pkg(apt를 래핑)를 사용한다.
https://play.google.com/store/apps/details?id=com.termux&hl=en

# 참고로 키보드 사용시 단축키는 윈도우(리눅스)를 생각하면 된다.
alt + tab : 앱(전환)
alt + d : chrome 주소표시줄 포커싱
등등..

# termux 실행 후 필요한 패키지 설치
pkg update && pkg upgrade
pkg install -y zsh python2 python vim rust golang ripgrep curl git tig fzf tmux cmake ctags lua53 fortune cowsay figlet cmatrix golang ruby openssh libandroid-support man lsd dnsutils
pkg install -y vim-python
gem install lolcat

# 기본 zsh 로 변경
chsh -s zsh

# termux 스샷~


# /etc 에서 설정하는 파일들(krb5.conf, resolve.conf ... 등)은 ../usr/etc/ 에 위치한다.
# 만약 ../usr/etc/krb5.conf 설정 후 kinit 시 다음과 같은 에러가 발생한다면
kinit : Cannot contact any KDC for realm 'ysoftman.com' ...

# 각 서버의 디폴트 포트는 다음과 같고 포트까지 명시해보자
kdc = kauth.ysoftman.com:88
admin_server = kadmin.ysoftman.com:749
kpasswd_server = kadmin.ysoftman.com:464 # on UDP

# oh-my-zsh 를 사용하는 경우 powerline 폰트 하나
를 ~/.termux/font.ttf 파일로 생성해야 한다.
cp -v fonts/Hack/Hack-Regular.ttf ~/.termux/font.ttf

# known issue
- 아직 한국어를 지원하지 않고 오직 영어만 된다. 이슈를 줄이기 위해서라는데.. 흠. https://github.com/termux/termux-packages/issues/2796#issuecomment-424589888
- oh-my-zsh 는 동작하지만, prezto 는 zsh 시작시 모듈 로딩을 못하는 문제가 있다.
- vim plugin 중 youcomplteme 는 python 이 포함된 vim 을 사용해야 하는데
apt 로 설치되는 vim 은 python 으로 빌드된 것이 아니라 별도로 vim-python 도 설치해야 한다.

(eval):1: command not found 에러

# zsh 환경에서 명령 옵션에 파일을 자동완성하기 위해 tab을 누르면
# 다음과 같은 에러가 발생하는 경우가 있다.
ansible-playbook -i ./in...(eval):1: command not found: _ansible-playbook

# vim 파일 찾기 위해 tab을 누를때도
_arguments:448: _vim_files: function definition file not found

# 고질적인 문제로 해결벙법은 zcomdump 파일을 삭제하고 쉘 다시 시작하면 된다.
rm -fv ~/.zcompdump

ohmyzsh url escape bug

[이슈]
iterm2 를 사용하다 url 스트링을 copy & paste 하면 escape(\) 가 붙는 경우가 발생한다.
처음에는 iterm2 의 paste 설정에 escape 가 활성화되어 발생한줄 알았는데,
"escape shell characters with \" 기능을 비활성화되어 있었다.
iterm2 menu -> edit -> paste special -> advacned paste (opt + cmd + v)


원인은 ohmyzsh 사용에 있었다. (prezto 쉘 환경에서는 발생하지 않는다.)

[해결방법]
찾아 보니 해당 버그는 ohmyzsh 의 노운이슈로 zsh 5.2 + 맥 10.12 에서 발생한다.
https://github.com/robbyrussell/oh-my-zsh/issues/5499

다음 스택오버플로우에 스크립트를 수정하여 해결하는 방법이 명시되어 있다.
https://stackoverflow.com/questions/25614613/how-to-disable-zsh-substitution-autocomplete-with-url-and-backslashes

그냥 다음 버전에 고쳐지기를 기다려 봐야겠당~ㅋ

zsh oh-my-zsh 설정

# z쉘(zsh) 설치(맥 brew 기준)
brew install zsh

# oh-my-zsh 설치하여 zsh 설정을 쉽게 할 수 있다.
# 다음 명령으로 설치하면 .zshrc 설정이 변경하여 적용된다.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

# 테마 변경 (참고 https://github.com/robbyrussell/oh-my-zsh/wiki/Themes)
# 기본 터미널(또는 iterm2) 의 색상 프로필에 따라 달라보인다.
# zsh(dallas) iterm2(materialdark) 로 선택
vi ~/.zshrc
ZSH_THEME="dallas"

# dallas 경우 기본적으로 timestamp  가 프롬프트에 포함된다.
# dallas 테마 파일에서 PROMPT 값에서 $DALLAS_CURRENT_TIME 를 제거해서 새로 만들자(기존은 주석처리)
vi ~/.oh-my-zsh/themes/dallas.zsh-theme
#PROMPT="$DALLAS_CURRENT_TIME_$DALLAS_CURRENT_RUBY_$DALLAS_CURRENT_MACH_$DALLAS_CURRENT_LOCA_ $DALLAS_CURRENT_USER_$DALLAS_PROMPT_CHAR_ "
PROMPT="$DALLAS_CURRENT_RUBY_$DALLAS_CURRENT_MACH_$DALLAS_CURRENT_LOCA_ $DALLAS_CURRENT_USER_$DALLAS_PROMPT_CHAR_ "

# ysoftman 계정의 기본 쉘을 zsh 로 변경하고 터미널 재시작~
# etc/shells 에  zsh 경로가 명시되어 있어야함
sudo chsh -s /usr/local/bin/zsh ysoftman

# 설정 후 z 쉘 화면


ASCII Art

# 텍스트 문구를 ASCII Art 로 생성하는 툴 들 설치
# ubuntu
sudo apt-get install figlet toilet fortune cowsay
# mac
brew install figlet toilet fortune cowsay

# fitlet 사용(toilet 사용방법도 비슷하다.)
# 예시) figlet -w 출력 폭 100으로 -f starwars 폰트로 'ysoftman' 출력
figlet -w 100 -f starwars ysoftman

# figlet 모든 폰트 적용해보기
showfigfonts ysoftman

# toilet 모든 폰트 출력해보기
for font in $(ls -1 /usr/local/Cellar/toilet/0.3/share/figlet | sed 's/.tlf//'); do echo $font; toilet -f $font "ysoftman"; done

# ASCII Arts 에는 "'\ 등의 문자가 포함되어 있어 다음과 같이 echo 로 출력하기 힘들다.
# echo '
#                   __ _
#  _   _ ___  ___  / _| |_ _ __ ___   __ _ _ __
# | | | / __|/ _ \| |_| __| '_ ` _ \ / _` | '_ \
# | |_| \__ \ (_) |  _| |_| | | | | | (_| | | | |
#  \__, |___/\___/|_|  \__|_| |_| |_|\__,_|_| |_|
#  |___/
# '
# 다음과 같은 방법을 사용하자.
# zzz 가 입력되기까지의 모든 문자를 연결해서 stdout 으로 보낸다.
cat << "zzz"
                  __ _
 _   _ ___  ___  / _| |_ _ __ ___   __ _ _ __
| | | / __|/ _ \| |_| __| '_ ` _ \ / _` | '_ \
| |_| \__ \ (_) |  _| |_| | | | | | (_| | | | |
 \__, |___/\___/|_|  \__|_| |_| |_|\__,_|_| |_|
 |___/
zzz

#####

# rust 로 만든 cfonts 도 있다.
# 설치
brew install cfonts

# 입체적인 폰트와, gradient color, background color 등으로 더 화려한 console 폰트를 만들 수 있다.

#####

# fortune 은 실행시 마다 랜덤하게 명언들을 출력해준다.
# cowsay 귀여운 소(당나귀 같은데..ㅋ)가 말을 해준다.
fortune | cowsay
 ____________________________________
/ Happiness is good health and a bad \
| memory.                            |
|                                    |
\ -- Ingrid Bergman                  /
 ------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

# -f 옵션으로 다양한 그림을 선택할 수 있다.(-l 그림 리스트로 확인)
cowsay -f cheese "ysoftman"
 __________
< ysoftman >
 ----------
   \
    \
      _____   _________
     /     \_/         |
    |                 ||
    |                 ||
   |    ###\  /###   | |
   |     0  \/  0    | |
  /|                 | |
 / |        <        |\ \
| /|                 | | |
| |     \_______/   |  | |
| |                 | / /
/||                 /|||
   ----------------|
        | |    | |
        ***    ***
       /___\  /___\

# cowsay 모든 종류 그림 샘플 보기
for i in $(cowsay -l); do cowsay -f $i "$i"; done

# fortune 을 설치하면 oh-my-zsh, prezto 에 login 할때
# fortune 기능이 활성화 되어 fortune 메시지가 나온다.
# .zlogin 파일에서 fortune 을 명령을 확인할 수 있다.
vi .zlogin

# cowsay 를 설치하면 ansible 실행시 매번 cowsay 메시지가 출력된다.
# 이를 막으려면 ANSIBLE_NOCOWS 환경변수를 설정해야 한다.
export ANSIBLE_NOCOWS=1