Skip to content

Ars Asks: 쉘을 공유하고 멋진 터미널을 보여주세요!

Posted in tech

그만큼 timer_stop 함수는 또한 타이머를 사람이 읽을 수 있는 형식으로 변환하는 작업을 수행하며 아마도 필요한 것보다 더 복잡할 것입니다. 하지만 나는 개발자가 아니기 때문에 Past Lee는 몇 시간 동안 예제를 검색한 후에 이것이 결정되었습니다.

나 같은 사람들을 위해 물고기에서 해보기

Linux 호스트 중 하나에 ssh로 접속했지만 MacOS에서는 fish를 실행하는 경우 bash를 위한 것입니다. 동일한 결과를 얻기 위한 별도의 물고기 기능이 있으며, 측정값을 사람이 읽을 수 있는 형식으로 바꾸는 총체적인 해킹이 포함되어 있습니다. 나는 이 코드를 만들었고, 나는 사과하지 않습니다. 내 자갈이 함께 쌓인 StackOverflow 소스 kludge를 목격하십시오.

function fish_prompt --description 'Write out the prompt'
    # Save the last status
    set -l last_status $status

    # Calculate the command duration if available
    set -l cmd_duration ""
    if set -q CMD_DURATION
        # Convert milliseconds to microseconds for more precise comparison
        set -l duration_us (math "$CMD_DURATION * 1000")

        # Calculate different time units
        set -l us (math "$duration_us % 1000")
        set -l ms (math "floor($duration_us / 1000) % 1000")
        set -l s (math "floor($duration_us / 1000000) % 60")
        set -l m (math "floor($duration_us / 60000000) % 60")
        set -l h (math "floor($duration_us / 3600000000)")

        # Format duration string
        if test $h -gt 0
            set cmd_duration (string join '' "(" $h "h" $m "m)")
        else if test $m -gt 0
            set cmd_duration (string join '' "(" $m "m" $s "s)")
        else if test $s -ge 10
            set -l fraction (math "floor($ms / 100)")
            set cmd_duration (string join '' "(" $s "." $fraction "s)")
        else if test $s -gt 0
            set cmd_duration (string join '' "(" $s "." (printf "%03d" $ms) "s)")
        else if test $ms -ge 100
            set cmd_duration (string join '' "(" $ms "ms)")
        else if test $ms -gt 0
            set -l fraction (math "floor($us / 100)")
            set cmd_duration (string join '' "(" $ms "." $fraction "ms)")
        else
            set cmd_duration (string join '' "(" $us "us)")
        end
    end

    # Define unicode symbols for status
    set -l checkmark "✓"
    set -l cross "✗"

    # Colors
    set -l normal (set_color normal)
    set -l dark_gray (set_color 555555)
    set -l blue (set_color -o blue)
    set -l red (set_color red)
    set -l green (set_color green)
    set -l purple (set_color -o purple)

    # First line
    echo # New line
    echo -n -s $dark_gray "("(date +%T)") $last_status " # Time in brackets and exit status

    # Status indicator with exit status
    if test $last_status -eq 0
        echo -n -s $green $checkmark
    else
        echo -n -s $red $cross
    end

    # Actually echo the duration
    echo -n -s $dark_gray " $cmd_duration"

    # Do the rest of the prompt
    echo
    set -l host_color $purple
    echo -n -s $host_color $USER "@" (prompt_hostname) $normal ":" $blue (prompt_pwd) $normal " \$ "
end

다양한 색상

ANSI BBS 그래픽에 몰두하면서 어린 시절을 보낸 덕분에 버튼만 누르고 있는 평균적인 심술궂은 관리자보다 터미널에 있는 다채로운 텍스트를 좀 더 좋아하게 되었을 것입니다. 보세요, 어떤 사람들은 일반적으로 구문 강조와 색상이 이해력을 떨어뜨리고 훑어보는 것을 장려한다고 생각한다는 것을 알고 있습니다. 하지만 제가 무슨 말을 할 수 있겠습니까? 나는 그들을 사랑하고 의지합니다. 아마도 내가 너무 많이 훑어본 것 같지만, 그렇군요. 내 차갑고 죽은 손에서 다채로운 껍질 도구를 가져갈 수 있습니다.

이를 위해 저는 GRC(Generic Colorizer용)라는 작은 프로그램을 사용하여 다른 도구에 강조 표시와 색상을 추가합니다. 광범위하게 사용 가능하며 추가 구성 없이 작동합니다.

Ping과 함께 GRC를 사용하기 전과 후를 보여주는 이미지

색상이 조금 달라도 문제 없습니다!

리 허친슨

ip a를 ping과 함께 사용하기 전과 후를 보여주는 이미지

약간의 앨리어싱이 있습니다. .bash_aliases 좋은 시민처럼) 몇 가지 일반적인 명령에서 다채로운 출력을 기본값으로 설정하려면 다음을 수행하십시오.

    alias ls="ls --color=auto"
    alias ll="ls -AlFh --group-directories-first"
    alias df="grc df -h"
    alias du='grc du -h'
    alias free="grc free -h"
    alias ping='grc ping'
    alias traceroute="grc traceroute"
    alias ip='grc ip'

나는 또한 내 숫자를 사람이 읽을 수 있도록 만드는 것을 좋아합니다. -h 따라서 스위치는 자유롭게 적용됩니다.

(다음과 같은 명령을 래핑한다는 점에 유의하십시오. ip GRC에서는 출력을 다른 것으로 파이프하는 경우 때때로 이상한 일을 할 수 있습니다. 주의하세요. 아니면 하지 마세요! 네 컴퓨터야, 너 자신을 쓰러뜨려라!)

터미널 자체

눈썰미가 있는 독자라면 훨씬 더 나은 옵션이 있음에도 불구하고 터미널 프로그램에 MacOS의 Terminal.app을 사용하고 있다는 스크린샷을 보면 알 수 있을 것입니다. 내가 가지고 있는 변명은 내가 Terminal.app에 익숙하고 아무것도 나를 끌어내리지 못했다는 것입니다. 나는 일반적인 용의자(Ghostty, Alacritty, 멋진 tmux 창 통합 기능을 갖춘 강력한 iTerm2, 심지어 Warp와 같은 터미널 경험을 새롭게 재해석한 제품)를 테스트해 보았습니다.

이 주제에 대해 더 알고 싶다면 아래를 참고하세요

완벽 가이드 보기

관련 기사

Be First to Comment

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다