에서 우분투 질문 :
의견 및 다른 사용자의 새로운 답변에 대해서는 위의 우분투 요청 링크를 확인하십시오 .
now
bash 스크립트
무거운 리프팅은 다음을 나타내는 스플래시 구성 요소입니다.
$ now
Weather report: Edmonton March 2018 ┌────────────────────────────┐
Su Mo Tu We Th Fr Sa │ ┏━┓╺┓ ┏━┓┏━┓ ┏━┓┏┳┓ │
\ / Sunny 1 2 3 │ ┃┃┃ ┃ ╹┏━┛┗━┫ ┣━┛┃┃┃ │
.-. -23--14 °C 4 5 6 7 8 9 10 │ ┗━┛╺┻╸╹┗━╸┗━┛ ╹ ╹ ╹ │
― ( ) ― ↘ 22 km/h 11 12 13 14 15 16 17 └────────────────────────────┘
`-’ 14 km 18 19 20 21 22 23 24
/ \ 0.9 mm 25 26 27 28 29 30 31
예, 그것은 에드먼턴에서 -14이고 -23과 같습니다. 새로 도착한 툼 레이더 2013에서 주말 내내 즐거운 시간을 보내십시오! 밴쿠버 나 몬트리올로 이동하기 위해 이력서를 닦을 수도 있습니다.
코드는 다음과 같습니다.
#!/bin/bash
# NAME: now
# PATH: $HOME/bin
# DESC: Display current weather, calendar and time
# CALL: Called from terminal or ~/.bashrc
# DATE: Apr 6, 2017. Modified: Mar 30, 2018.
# NOTE: To display all available toilet fonts use this one-liner:
# for i in ${TOILET_FONT_PATH:=/usr/share/figlet}/*.{t,f}lf; do j=${i##*/}; toilet -d "${i%/*}" -f "$j" "${j%.*}"; done
# Setup for 92 character wide terminal
DateColumn=34 # Default is 27 for 80 character line, 34 for 92 character line
TimeColumn=61 # Default is 49 for " " " " 61 " " " "
#--------- WEATHER ----------------------------------------------------------
# Current weather, already in color so no need to override
echo " "
# Replace Edmonton with your city name, GPS, etc. See: curl wttr.in/:help
curl wttr.in/Edmonton?0 --silent --max-time 3
# Timeout #. Increase for slow connection---^
echo " "
echo " " # Pad with blank lines for calendar & time to fit
#--------- DATE -------------------------------------------------------------
# calendar current month with today highlighted.
# colors 00=bright white, 31=red, 32=green, 33=yellow, 34=blue, 35=purple,
# 36=cyan, 37=white
tput sc # Save cursor position.
# Move up 9 lines
while [ $((++i)) -lt 10 ]; do tput cuu1; done
# Depending on length of your city name and country name you will:
# 1. Comment out next three lines of code. Uncomment fourth code line.
# 2. Change subtraction value and set number of print spaces to match
# subtraction value. Then place comment on fourth code line.
Column=$(($DateColumn - 10))
tput cuf $Column # Move x column number
printf " " # Blank out ", country" with x spaces
#tput cuf $DateColumn # Position to column 27 for date display
# -h needed to turn off formating: /ubuntu/1013954/bash-substring-stringoffsetlength-error/1013960#1013960
cal -h > /tmp/terminal
CalLineCnt=1
Today=$(date +"%d")
# Prefix with space when length < 2
if [[ ${#Today} < 2 ]] ; then
Today=" "$Today
fi
printf "\033[32m" # color green -- see list above.
while IFS= read -r Cal; do
printf "$Cal"
if [[ $CalLineCnt > 2 ]] ; then
# See if today is on current line & invert background
tput cub 22
for (( j=0 ; j <= 18 ; j += 3 )) ; do
Test=${Cal:$j:2} # Current day on calendar line
if [[ "$Test" == "$Today" ]] ; then
printf "\033[7m" # Reverse: [ 7 m
printf "$Today"
printf "\033[0m" # Normal: [ 0 m
printf "\033[32m" # color green -- see list above.
tput cuf 1
else
tput cuf 3
fi
done
fi
tput cud1 # Down one line
tput cuf $DateColumn # Move 27 columns right
CalLineCnt=$((++CalLineCnt))
done < /tmp/terminal
printf "\033[00m" # color -- bright white (default)
echo ""
tput rc # Restore saved cursor position.
#-------- TIME --------------------------------------------------------------
tput sc # Save cursor position.
# Move up 9 lines
i=0
while [ $((++i)) -lt 10 ]; do tput cuu1; done
tput cuf $TimeColumn # Move 49 columns right
# Do we have the toilet package?
if hash toilet 2>/dev/null; then
echo " "$(date +"%I:%M %P")" " | \
toilet -f future --filter border > /tmp/terminal
# Do we have the figlet package?
elif hash figlet 2>/dev/null; then
echo $(date +"%I:%M %P") | figlet > /tmp/terminal
# else use standard font
else
echo $(date +"%I:%M %P") > /tmp/terminal
fi
while IFS= read -r Time; do
printf "\033[01;36m" # color cyan
printf "$Time"
tput cud1 # Up one line
tput cuf $TimeColumn # Move 49 columns right
done < /tmp/terminal
tput rc # Restore saved cursor position.
exit 0
전제 조건
멋진 시간 표시를 위해서는 다음을 설치해야합니다 toilet
.
sudo apt install toilet
또 다른 멋진 시간 표시 (아주 멋진 것은 아님) 설치 figlet
:
sudo apt install figlet
그렇지 않으면 시간이 "정상"글꼴로 표시됩니다.
날씨
날씨는 curl wttr.in/cityname?0
명령 에 의해 제공됩니다 . 터미널에서 : curl wttr.in/:help
자세한 내용 은 다음 을 사용 하십시오.
날씨 : 도시명 변경
이 코드 섹션을 수정하고 Edmonton
도시 이름으로 변경 하려고합니다.
# Replace Edmonton with your city name, GPS, etc. See: curl wttr.in/:help
curl wttr.in/Edmonton?0 --silent --max-time 3
# Timeout #. Increase for slow connection---^
/Москва
(모스크바) 와 같은 도시 이름에는 유니 코드가 지원됩니다 . YEG
Edmonton 과 같은 공항 문자가 지원됩니다 .
날씨 : 국가 이름 제거
터미널이 92 자 너비로 설정되면 날씨가 "Edmonton, Canada"로 표시됩니다. 내 취향에 비해 너무 길다.
터미널이 기본 80 자 너비로 설정된 경우 더 나쁩니다.
문제를 피하기 위해 다음 코드를 사용하여 화면에 ", Countryname"이 표시되지 않습니다.
# Depending on length of your city name and country name you will:
# 1. Comment out next three lines of code. Uncomment fourth code line.
# 2. Change subtraction value and set number of print spaces to match
# subtraction value. Then place comment on fourth code line.
Column=$(($DateColumn - 10))
tput cuf $Column # Move x column number
printf " " # Blank out ", country" with x spaces
#tput cuf $DateColumn # Position to column 27 for date display
스크립트의이 부분에 대한 도움이 필요한 경우 아래 의견을 게시하여 도움을 받으십시오.
터미널 화면 너비 조정
다음을 변경하여 터미널 화면 너비의 간격을 조정하십시오.
# Setup for 92 character wide terminal
DateColumn=34 # Default is 27 for 80 character line, 34 for 92 character line
TimeColumn=61 # Default is 49 for " " " " 61 " " " "
모두 함께 묶어 ~/.bashrc
~/.bashrc
파일을 편집 하고 아래에 다음 줄을 추가 하십시오 .
# Splash Calendar and time
now
# ASCII Linux distribution display
screenfetch
`~ / .bashrc '파일 변경 사항을 저장하십시오.
필요한 우분투 정보를 표시하려면 screenfetch
:
sudo apt install screenfetch
screenfetch
쇼핑 할 비슷한 디스플레이 패키지가 있습니다!
"─────────"명령 사이에 줄을 나누는 동일한 명령 프롬프트를 원하면 다음 줄을 변경하십시오.
if [ "$color_prompt" = yes ]; then
PS1='───────────────────────────────────────────────────────────────────────────────────────────
${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='───────────────────────────────────────────────────────────────────────────────────────────
${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
구분선의 길이는 screenfetch
출력 너비와 일치 합니다. 이 경우 너비는 92 자이며 gnome-terminal
환경 설정이 이에 따라 설정됩니다.
man ip
.-br
스위치를 사용하십시오 .-4
스위치 를 사용할 수도 있습니다 . 명령을로 단축 할 수 있습니다ip -br a | sed -nE 's:^(\w+)\s+UP\s+([0-9.]+)/.*$:\1 \2:p'
. 더 나은 방법을 사용하십시오hostname -I
.