기본 설정
Wls2를 통해 설치한 Ubuntu 20.04.5 LTS
oh-my-zsh가 설정되어 있는 모습
Schemes 설정
Windows Terminal의 색상표를 설정할 수 있다.
현재 사용하고 있는 색상표의 이름은 Earthsong 이다.
다른 색상표를 원한다면 Windows Terminal Themes 사이트에서 원하는 걸 골라 추가하면 된다.
해당 사이트에서 미리 보면서 고를 수 있어서 색상표를 추가하고 싶을 때 자주 방문한다.
설정 파일 열기
- 터미널에서
Ctrl + Shift + p
단축키를 누르면 이미지와 같은 입력창이 나온다.
Ctrl + Shift + ,
단축키
열린 설정 정보들이 있는 JSON 파일에서schemes
배열을 찾아 위 사이트에서 얻은 코드를 추가해준다.
- 터미널에서
Ctrl + ,
단축키를 누르면 설정 화면을 열고 팔레트 모양의 아이콘을 누르면 기존에 있던 색 구성표들과 새롭게 추가한 색 구성표를 미리 확인해 볼 수 있다.
그 중 마음에 드는것을 누르고, 저장을 누르면 터미널의 색상이 바뀐다.만약 저장을 눌러도 바뀌지 않는다면 맨 아래
기본값으로 설정
을 누른 다음 저장을 누르면 바뀐다.
oh-my-zsh
oh-my-zsh 설치 방법 및 THEME 설치 방법은 조금만 검색해도 나오고 쉬우므로 따로 설명을 하지는 않는다.
THEME의 경우 powerlevel10k를 사용하고 있다.
테마의 Github에 설치 방법이 나와있으니 따라하면 된다.
현재 예시의 이미지에 나오는 터미널처럼 아이콘이 깔끔하게 나오기 위해서는 Nerd Font가 필수다.
CUSTOM
todo.txt
Github URL : https://github.com/todotxt/todo.txt-cli
터미널에서 todo를 관리할 수 있는 간단한 쉘 스크립트이다.
쉘 스크립트에 익숙하거나 조금 만져본적이 있는 사람이라면 자신의 입맛에 맞게 수정할 수 있어 편리하고 powerlevel10k 테마가 해당 기능을 호환하기 때문에 설정을 통해서 입력라인쪽에 todo의 갯수를 확인할 수 있다.
캡쳐이미지를 확인해보면 집모양 아이콘 아래 체크박스 이모지와 숫자가 있다.
체크박스가 Todo 아이콘이며, 숫자는 todo.sh를 통해 설정한 todo 아이템의 갯수이다.
$ git clone https://github.com/todotxt/todo.txt-cli
을 통해서 저장소를 다운받은 이후, make를 통해 설치해야한다.
문제 없이 설치가 된다면 todo.sh
를 통해 명령어를 쓸 수 있는데 todo.sh를 전부 치는 것 보다는 짧은게 편해서 zsh로 alias
설정을 해주었다.
alias t='todo.sh'
zsh 설정파일인 .zshrc
파일의 맨 아랫 부분에 위 코드를 추가해주면 todo.sh를 전부 칠 필요 없이 t
로 명령어 핸들링이 가능하다.
위 설정을 했다는 가정하에 t
로 명령어를 사용하는데, 설정하지 않은 경우엔 todo.sh
를 붙여서 사용할 수 있다.
기본 사용법
- To-do list 추가
$ t add "해야 할 일 +프로젝트명 @context"
+프로젝트명, @context는 옵션이라 제외해도 상관 없다.
@context는 알아서 사용하면 되는데 내 경우엔 Tag처럼 사용하고 있다.추가할 때 현재 날짜도 포함해서 추가하길 바란다면
t -t add ""
형식으로 -t 옵션을 사용하면 된다. - To-do list 완료
t do {index}
완료 하고자 하는 아이템의 index값을 넣으면 완료된다.t do 1
이런식으로 숫자만 넣으면 OK - To-do list 삭제
t del {index}
마찬가지로 index값을 넣으면 삭제 되는데, 이때 발생하는 빈칸을 자동으로 채운다거나 하는 기능이 없어 사용하는 유저가 빈 줄을 지워준다던가 archive를 사용해서 빈 줄을 제거해야한다.
그걸 원하지 않는다면t -n del {index}
명령어를 통해 작업 삭제 시 자동으로 빈줄을 제거하게 하면 된다. - archive
t archive
완료된 모든 작업을todo.txt
에서done.txt
로 이동하고 빈 줄을 제거한다. - To-do list 확인
- @ 기호로 시작하는 모든 context 나열
t listcon
또는t lsc
- 기호로 시작하는 모든 project 나열
t listproj
또는t lsprj
- 기호로 시작하는 모든 project 나열
- 리스트 확인
보통은t list
또는t ls
명령어로 확인이 가능한데, 옵션을 통해 달리 출력할 수 있다.- 컬러 모드로 출력 :
t ls -c
+프로젝트 또는 @context나 날짜값에 색을 넣어 눈에 띄게 출력해준다. - 컨텍스트 없이 출력 :
t -@ ls
- 프로젝트 없이 출력 :
t -+ ls
이 외에 다른 명령어가 궁금하다면 [가이드](https://github.com/todotxt/todo.txt-cli/blob/master/USAGE.md)를 참고하여 사용하시길
- 컬러 모드로 출력 :
- @ 기호로 시작하는 모든 context 나열
출력되는 format을 바꾸길 원한다면?
터미널에 which todo.sh
를 입력한다면 스크립트 파일의 위치가 나온다.
sudo vim $(which todo.sh)
와 같이 파일 편집기로 해당 스크립트 파일을 열고 수정하면 반영된다.
만약 해당 파일을 수정했는데 반영이 안되었다면 초반에 설치했던 todo.txt-cli 디렉토리 안에 있는
todo.sh
로 환경설정이 되어있을 수 있다. 환경설정을 바꾸거나 해당 파일을 바꿔주면 잘 된다.
colors
Github URL : https://github.com/athityakumar/colorls
기존 터미널에서는 볼 수 없는 아이콘을 볼 수 있게 해주는 스크립트이다.
깃허브 사이트를 참고하면 설치할 수 있고 필수로 Ruby
를 설치해야한다.
Ruby를 설치하는건 해당 사이트를 참고하면 문제 없이 설치 할 수 있다.
만약
$ sudo apt-get install ruby
를 통해ruby
를 설치했다면 업데이트 마다 오류가 발생할 수 있으므로 해당 방법은 추천하지 않는다.
먼저 설치를 해두었다면 삭제하고 위 사이트를 참고해서 설치하는게 좋다.
이것도 colorls
를 통해 사용할 수 있는데 zsh에 alias
설정을 해주면 편하게 사용할 수 있다.
alias li='colorls --gs --sd -t --light'
alias lia='colorls --gs -lA --sd -t --light'
lt : 디렉토리 트리를 볼 수 있다.
function lt(){ [[ -n $1 ]] && depth=$1 || depth=1 [[ -n $2 ]] && dir=$2 || dir="." colorls --light --tree=${depth} ${dir} }
해당 함수를
.zshrc
파일에 추가하면 lt 명령어를 통해 깊이를 조절해 트리를 볼 수 있다.lt 2
결과는 아래의 사진과 같다.
2 대신에 어떤 숫자를 넣어도 가능하지만 실용성은 그닥 없다고 생각된다.
디렉토리를 정하고싶다면lt {depth} {dir}
형식으로 지정 할 수 있다.
Script
스크립트는 사용방법이 쉽고 다양하게 사용이 가능하다.
이 게시글에는 심심해서 만들어본 스크립트를 소개하려고 한다.
눈치가 빠른 사람이라면 알아차렸겠지만 가장 먼저 GIF로 보여준 것이 스크립트를 실행했을 때 보여주는 정보이다.
제대로 실행시키기 위해서는 2개의 스크립트를 더 설치해줘야하는데 원하지 않는다면 스크립트를 사용하는 부분을 제외하고 사용해도 잘 작동된다.
설치
설치 방법은 매우 쉽다. 아래의 명령어를 그대로 사용해주면 설치 완료
lolcat
터미널에서의 명령 결과에 무지개 색을 입혀주는 스크립트sudo apt-get install lolcat
figlet
원하는 문자를 ASCII Art로 만들어준다.
폰트에 따라 느낌이 다르므로 다양하게 만들어 볼 수 있다.sudo apt-get install figlet
해당 스크립트에서 사용 가능한 폰트는 매우 많으므로 본인이 원하는걸 고르면 된다.
지원하는 폰트의 목록이 따로 있으며, 폰트는 여기에서 다운받을 수 있다.
스크립트에서 사용하는 폰트의 디렉토리는/usr/share/figlet
이므로 해당 디렉토리에 파일이 없다면 위에서 받아줘야한다.
figlet -f
까지 입력한 다음Tab
키를 누르면 사용 가능한 폰트 리스트가 나오기도 한다.
대망의 스크립트 작성 시간!
우선 스크립트 파일을 작성할 폴더를 만들어 준 뒤, 그 폴더로 이동한 다음 파일 하나를 생성해준다.
vim now.sh
파일명은 자신이 원하는대로 생성하면 된다.
해당 파일에 아래의 코드를 붙여넣는다.
#!/bin/bash
echo "✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨"
curl -H "accept-Language: ko" -s 'wttr.in/서울?0'
dateInfo=$(date "+%Y년 %m월 %d일")
timeInfo=$(date "+%p %l시 %M분")
echo "${dateInfo} ${timeInfo}" | lolcat -a -d 5
echo "✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨"
~/setting/todo.txt-cli/todo.sh ls
figlet -f pagga -c "Hello Guraeng" | lolcat -a -d 8
lolcat 설치를 안했다면 | lolcat ~
으로 시작하는 부분을 삭제해주면 된다.
figlet 설치를 안했다면 가장 아랫 부분의 figlet -c ~
라인을 삭제해주면 된다.
- echo : 파이썬을 기준으로 설명하자면 print("")와 유사하다고 보면 된다.
터미널에 문자열이나 변수 같이 요청한걸 print 해준다. curl -H "accept-Language: ko" -s 'wttr.in/서울?0'
wttr.in HTTP 클라이언트용 터미널 지향 ANSI 시퀀스로 콘솔 지향 일기 예보 서비스이다.
깃허브 저장소에 가면 자세한 설명이 나와있다.-H "accept-Language: ko"
: 날씨 정보를 한글로 출력- `-s 'wttr.in/{지역}?{요일}'`` : 대전의 현재 날씨 하나만 출력을 요청
원하는 지역을 한글로 넣어도 작동된다.
요일의 경우 0 ~ 1 은 오늘의 일기 예보인데, 지금 당장의 정보냐 아니면 오늘 하루의 정보냐의 차이이다.
- 4 ~ 6 번 라인은 현재의 날짜와 시간을 출력하는 줄 이다.
lolcat을 이용해 색을 입힘과 동시에 깜빡이는 효과를 주었다.
4 ~ 5번은$()
해당 명령어 수행 후 결과를 변수로 저장하고 6번에서 출력 - 8번 라인은
todo.sh
스크립트를 사용하여 to-do list를 출력 - figlet을 이용해 "" 내부의 문자열을 꾸며서 출력하는 것
이 외에 자유롭게 자신이 원하는 대로 스크립트를 작성하면 된다.
이후 .zshrc
설정 파일을 열어 터미널이 켜지자마자 출력을 하게 한다거나, 특수한 예약어를 입력하면 출력되게 설정할 수 있다.
alias now="{now.sh 경로}/now.sh"
# 터미널에 `now`만 입력해도 스크립트 실행
source "{now.sh 경로}/now.sh"
# 터미널 실행시 now.sh 스크립트 자동 실행
적용 후 이제 부터 아래의 이미지 처럼 터미널을 실행할 때 마다 볼 수 있으며
해당 방법을 응용해서 자신만의 터미널을 만들고 스크립트를 만들 수 있을 것 이다!
✍️ 정리하고 나니 설치하고 적용하면서의 시행착오 보다 짧은 것 같은 느낌이 든다.