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

ssh - alacritty unknown terminal type

# alacritty 터미널 에뮬레이터 사용중 원격 서버에 ssh 접속 했는데,
# clear 명령 실행시 다음과 메시지가 나오면서 화면이 지워지지 않는다.
'alacritty': unknown terminal type.

# 다음과 같이 ssh alias 로 TERM 변수를 설정해 접속하면 된다.
alias ssh='TERM=xterm-256color ssh'
ssh ysoftman@ysoftman.hostname.blabla

Alacritty terminal emulator

terminal emulator 는 맥에서 iterm2 를, 윈도우에서는 자체 terminal 를 쓰고 있었다.

여담이지만 윈도우에서는 microsoft(마소) terminal 나오기전까지 hyper 를 썼었다.
오픈소스라 좋았지만 자잘한 버그도 꽤있었다. 마소 오픈소스로 terminal(스타수 69K , 2020-11기준)을 내놓은건 정말 잘한것 같다.

여러 터미널 예뮬레이터가 중 아직 0.5 버전이지만 스타수가 27k(2020-11기준)나 되고 
GPU Acceleration 으로 아주 빠르다는 alacritty 를 사용하게 됐다.
사실 rust 로 만들었다고 해서 더 끌렸는데, 
사용중인 ripgrep, fd, bat 등의 rust 로 만든 프로그램들이 아주 좋기 때문이다.

맥(catalina 버전)에서 brew 또는 cargo 또는 깃헙에 올려둔 Alacritty-v0.5.0.dmg 릴리즈 파일을 설치 후 실행하면 다음과 같은 에러가 발생한다.

이때는 system preferences > security & privacy > allows apps download from > app store and identified developers 로 선택한다.

설치하기
직접 클론 받아 빌드 & 설치하는 경우
cd alacritty
make app && make install

빌드 바이너리를 사용하는 경우, 아래 URL 에서 다운받으면 된다.

alacritty 깃헙에서 alcritty.yml 설정 파일을 ${HOME}/.alcritty.yml 로 위치시키고
폰트, 컬러, 크기등을 입맛에 맞게 설정해 저장하면 즉시 반영돼 보인다.

#####

alacritty vs iterm2 (GPU rendering 활성화)
성능 비교를 위해 다음 명령으로 수행시간을 측정했다.
time tree /usr

user+system 수행 시간 자체는 비슷하지만 화면에 뿌려지는 시간 차이가 난다.
alacrityy = 28 s
iterm2 = 35 s

time seq 1 1000000

seq 로 숫자 출력되는 속도도 alacritty 가 빠르다.
alacritty = 1.200 s
iterm2 = 4.156 s

터미널 화면을 크게 하고 cacademo 플레이 했을때도 iterm2 는 많이 끊기는데,
alacritty 는 매끄럽게 재생된다.(이건 fps 결과가 없어 직접 눈으로 체감해봐야 한다.)

역시 rust == fast 다. alacritty 터미널 화면 출력에서 확실히 빠른게 체감된다.
CPU 를 많이 쓰긴 하지만 빠른 화면 출력이 맘에 들고 폰트,컬러등 화면도 잘 나와 iterm2 보다 alacritty 를 주로 사용할것 같다.
(추가로 윈도우에서도 위 테스트를 해봤는데, terminal 더 빠르다. 윈도우에서는 terminal 을 주로 사용)

#####

디폴트 단축키
마우스 클릭으로 URL 오픈시 
iterm2: cmd+click
alacritty: shift+click

마우스 클릭으로 블럭(단어) 선택시
iterm2: alt+double-click
alacritty: shift+double-click

마우스 클릭으로 라인전체 선택시
iterm2: alt+triple-click
alacritty: shift+triple-click

#####

윈도우 환경
설정파일 위치
%APPDATA%\alacritty\alacritty.yml

wsl(windows subsystem for linux) 실행
alacritty -e wsl

edex-ui

# edex-ui 영화에서 보이는 해커들이 사용하는 터미널 느낌이다.
# 앱을 실행하면 전체화면으로 멋진 터미널을 사용할 수 있다.


# edux 잠깐 사용해 소감은
# 배경의 리소스 및 파일 탐색도 잘 동작하고 그럴싸한 소리도 나와 기분내기는 좋다.
# tmux 등도 실행되지만 느려지고 nerdfont 나 한글이 깨져 보인다.
# js 내부 로직을 rust 로 만들었으면 더 좋았을것 같은데 아쉽다.

터미널에서 이미지 보기

# 터미널에서 이미지 파일 보기
# imagemagick 의 display 명령으로 터미널에서 이미지를 볼 수 있다고 하지만
# X11 앱 및 X11 용 imagemagick 설치등 까다롭다.
# iterm2 를 사용한다면 imgcat 스크립트를 사용해도 된다.
wget https://iterm2.com/utilities/imgcat
chmod +x imgcat
imgcat ./image.jpg

# terminal-image-viewer 는 ansi, unicode 로 이미지를 보여준다.
npm install -g terminal-image-viewer
tiv -w 70 -h 30 ./image.jpg


ascii fun(ascciiquarium, ascii stream locomotive)

# asciiquarium 으로 터미널에서 아스키 문자로 만든 물고기를 보자!
# ubuntu 에서 설치
sudo add-apt-repository ppa:ytvwld/asciiquarium
sudo apt-get install asciiquarium

# mac 에서 설치
brew install asciiquarium

# 실행
asciiquarium

# 참고
https://github.com/cmatsuoka/asciiquarium

# ascii sl(stream locomotive,증기 기관차)
# mac 에서 설치
brew install sl

# 실행
sl

# ls 로 alias 되어 있는 경우가 있다.
alias sl
sl=ls

# alias 로 실행하지 않도록 한다.
\sl

# 또는
command sl

# lolcat 으로 컬러풀하게~
\sl | lolcat

# 참고

터미널에서 음악,동영상,유튜브 재생하기

# 터미널에서 음악,동영상,유튜브 재생하기
# https://github.com/mps-youtube/mps-youtube
# mac 에서 설치
brew install mpv mps-youtube

# mpv 를 사용하는 경우
# 단축키 설명 : https://mpv.io/manual/stable/
# 현재 디렉토리 음악 재생
mpv .

# youtube 플레이
mpv 'https://www.youtube.com/watch?v=_2Y1hCgDvNE'

# video 없이 소리만 플레이
mpv --no-video 'https://www.youtube.com/watch?v=_2Y1hCgDvNE'

# mps-youtube(mpsyt) 사용하는 경우
# 참고로 mpv 를 플레이이로 사용한다.
# 실행
mpsyt

# video 보기 설정 켜기
set show_video true

# Youtube Error 403: Daily Limit Exceeded. 에러로 초기 api키를 새걸로 변경해야 한다.
# api 키 발급 받기
1. 구글 개발자 게정 로그인
2. https://console.developers.google.com/project
3. 프로젝트 만들기 : ysoftman-mpsyt
4. API 및 서비스 -> Youtube Data API v3
5. API 및 서비스 -> 사용자 인증 정보 -> 사용자 인증 정보 만들기 -> api 키

# https://console.developers.google.com/apis/credentials?project=ysofmtan-mpsyt
set api_key abcd1234

# youtube 검색하기 /검색어
/Carion Wind Quintet

안드로이드폰 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 도 설치해야 한다.

mutt 터미널 메일

# mutt 로 터미널상에서 메일을 받고, 보낼 수 있고 한글지원도 잘 된다.
# mutt 설치는 간단하다.
# mac
brew install mutt

# centos, ubuntu
sudo yum install mutt
sudo apt-get install mutt

# -s (subject)
# 메일 내용 "냉무"
# ysoftman@ysotman.com 으로 메일로 보낸다.
echo "냉무" | mutt -s "mutt test 메일입니다." ysoftman@ysoftman.com

# 내용이 길다면 파일로 작성해서 다음처럼 보낼 수 도 있다.
# -a 옵션을 주면 파일 첨부도 가능하다.
mutt -s "mutt test 메일입니다." ysoftman@gmail.com < msg.txt

# 별도의 설정이 없어 다음과 같은 로컬 호스트 주소로 메일이 간다.
# 때문에 대부분 스팸처리된다.
ysoftman <ysoftman@macbook-pro.local>

# mutt 가 사용할 메일함 디렉토리 생성
sudo mkdir -p /var/mail/ysoftman

# mutt 설정 파일을 만들자.
vi ~/.muttrc
set realname="ysoftman"
set imap_user="ysoftman@gmail.com"

#set imap_pass="password" # 명시하지 않으면 프롬프트가 뜬다.
set folder="imaps://imap.gmail.com:993/" # 메일상자들의 기본 폴더
set spoolfile="+inbox" # 기본 메일 상자

#set smtp_url="smtp://ysoftman@smtp.gmail.com:587/"
set smtp_url="smtps://ysoftman@smtp.gmail.com:465/"

#set smtp_pass="password" # 명시하지 않으면 프롬프트가 뜬다.
# gmail 발송시 인증자 없을 에러가 있는 경우 gssapi:login 인증방식을 사용해야 한다.
set smtp_authenticators="gssapi:login"
set ssl_starttls=yes # 서버가 tls 직원하면 활성화
set ssl_force_tls=yes # 항상 ssl 로 연결
set editor="vim"
set charset="utf-8"
set mail_check=30 # 새매일 체크 주기
set imap_check_subscribed=yes
set imap_keepalive=30
set header_cache="$HOME/mail" # 메일 헤더 캐싱 위치
set message_cachedir="$HOME/mail" # 메일 내용 캐싱 위치
set sidebar_visible=no # 사이드바 안보기
set sort="threads" # 메일 쓰레드 보기

# 단축키 설정
bind index G imap-fetch-mail

# theme 적용
source ~/.mutt/dracula.muttrc

# dracula theme 설치
mkdir -p ~/.mutt && cd ~/.mutt
git clone https://github.com/dracula/mutt.git
cp -v ~/.mutt/mutt/dracula.muttrc ~/.mutt
rm -rfv ~/.mutt/mutt/

# mutt 실행 중 발생되는 메시지 디버깅 기록(~/.muttdebug0)
# 1~5 로 높을수록 자세한 정보가 남는다.
mutt -d 2

# 참고로 mutt 으로 gmail 접속하려면 앱 비밀번호를 발급받아 사용해야 한다.
https://myaccount.google.com/security -> 앱 비밀번호

# mutt 자주쓰는 키(vim 과 비슷하다)
? 도움말
/ 검색
! 셀명령 실행
: muttrc 에서 사용하는 명령 실행
q 현재화면 종료
j 메일 리스트에서 다음항목으로 이동, 메일내용보기에서 다음메일 보기(아래쪽,오른쪽방향키)
k 메일 리스트에서 이전항목으로 이동, 메일내용보기에서 이전메일 보기(위쪽,왼쪽방향키)
숫자 해당메일로 이동
tab 다음 새메일로 이동
N 새메일/읽은메일 플래그 토글
h 메일보기에서 헤더등 자세한 정보 토글
m 새메일 작성
r 현재 메일 답장
d 메일 삭제
(삭제메일로 표시되며, mutt 종료시 삭제여부를 묻는다.)
u 메일 복구(삭제메일 이전 항목에서 u하면 아래항목의 메일이 복구된다.)
e 저장된 메일 편집
home 메일 리스트에서 첫번째 항목으로 이동
end 메일 리스트에서 마지막 항목으로 이동

터미널 날씨, 지도, 위치 보기

# 터미널 날씨 보기
curl wttr.in

# 지역별로도 볼 수 있다.
curl wttr.in/seoul

# 터미널 지도 보기
https://github.com/rastapasta/mapscii
telnet mapscii.me

# 또는 mapscii 설치 및 실행
npm install -g mapscii
mapscii

# 자신의 ip 로 위,경도 위치를 알 수 있다.
curl ipinfo.io

터미널 웹브라우저 w3m 사용하기

# w3m
# mac 에 설치
brew install w3m

# 검색 페이지 사용하기
# 구글 페이지로 시작
# 링크나 입력박스등 주요 오브젝트는 tab키로 포커싱힌다.(마우스로 입력창을 클릭해도 된다.)
# 입력박스에 포커싱하고 엔터를 누르면 TEXT: 입력란이 생긴다.  -> 검색 포커싱 엔터
w3m www.google.com


# 주요 단축키
H : 도움말
방향키 : 커서 이동
U : 새 url 열기
/ : 페이지내 검색, n(다음 매칭으로 이동), N(이전 매칭으로 이동)
g : goto first line
G : goto last line
[ : first hyperlink
tab : next hyperlink
shift + tab : previous hyperlink
] : last hyperlink
ctrl + h : 페이지 히스토리(next, previous 웹페이지 이동시)
ctrl + u : 입력란에서 현재 커서 앞의 모든 문자 지우기
ctrl + k : 입력란에서 현재 커서 뒤의 모든 문자 지우기
s : 버퍼스택(열었던 페이지) 팝업 메뉴 보기, space (열기)
mouse double click : hyperlink 열기


#####


# lynx
# mac 에 설치
brew install lynx

linux , windows 10 bash 터미널 beep 없애기

# linux , windows 10 의 linux bash 터미널을 열어 작업할때,
# backspace 로 글자를 더이상 지울 수 없는 경우 beep 가 발생한다.
# 습관적으로 backspace 를 연타하게 되는데 beep 가 아주 거슬린다.
# terminal beep
# /etc/inputrc 파일을 열어 bell-style none 으로 설정한다.
# 기본적으로 이부분이 주석처리되어 있어 주석해제해주면 된다.
# 파일 저장 후 bash 종료하고 다시 실행하면 beep 가 발생하지 않는다~
sudo vi /etc/inputrc
set bell-style none

# vim beep
# vim 도 똑같이 beep 가 발생하는데 .vimrc 에 visualbell 을 설정하자.
vi ~/.vimrc

# beep 사용하지 않고 t_vb 로 설정된 문자로 bell 을 표시하는데
# t_vb 로 설정된것이 없어 visual bell 도 사용하지 않게 된다.
set visualbell t_vb=

# 참고
https://linuxconfig.org/turn-off-beep-bell-on-linux-terminal

# 추가로 windows 의 wsl + termianl 앱사용시 less beep
# git diff, man ls 등 페이지 처음/끝에서 더 이동하려고 하면 (less 커맨드) beep 가 발생한다.
# echo $LESS 는 다음과 같이 설정되어 있는데
# LESS='-g -i -M -R -S -w -X -z-4'
# -R -Q 를 추가하면 된다.(bashrc 등에 넣어주자.)
export LESS="$LESS -R -Q"


mac ls 전체 시간 표시

리눅스에서 ls -l (long listing format) 옵션을 사용하면 파일 수정날짜가 yyyy-mm-dd hh:mm 으로 표시되지만 맥에서 ls -l 사용시 다음과 같이 mm dd hh:mm 으로 년도가 빠져보인다.


-T 옵션을 추가하면 아래와 같이 초와 년도가 표시된다.


참고로 -T 옵션은 맥 ls 에서만 사용된다.
리눅스에서는 --full-time(-l --time-style=full-iso) 로 지정하면 초단위까지 표시된다.
ls --full-time

fish 쉘 사용하기

fish 쉘은 90년대 풍의 커맨드라인 느낌이다.
사용자가 입력하려고 하는 명령에 대한 리스트를 제공해주고 커맨드 입력 중 tab 을 누르면 자동완성하는등 다른 쉘에서 찾아볼 수 없는 편리한 기능이 많다.
(참고로 표준 쉘이 아니기 때문에 bash 와 같은 표준 쉘과 호환되지 않는 것들이 있다.)
홈페이지 https://fishshell.com/

# 설치(맥 brew 기준)
brew install fish

# 쉘 리스트 파일에 추가한다
sudo vi /etc/shells
/usr/local/bin/fish

# ysoftman 계정의 기본 쉘로 fish 쉘 설정
sudo chsh -s /usr/local/bin/fish ysoftman

# 이제 터미널 재시작 하면 fish 쉘이 뜬다.
예) D 누르고 Tab 누르면 D 로 시작하는 디렉토리 리스트를 보여주고 선택할 수 있다.


# bashrc 와 같은 프로파일 환경 설정은 다음 경로에 생성한다.
vi ~/.config/fish/config.fish