Dari Ask Ubuntu :
Periksa tautan Tanya Ubuntu di atas untuk komentar dan kemungkinan jawaban baru dari pengguna lain.
now
skrip bash
Lift berat adalah komponen splash yang menunjukkan ini:
$ 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
Ya itu benar-benar -14 di Edmonton dan terasa seperti -23. Waktu yang tepat untuk menghabiskan akhir pekan panjang di dalam bermain Tomb Raider 2013 yang baru tiba! Mungkin memoles Resume untuk pindah ke Vancouver atau Montreal ...
Ini kodenya:
#!/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
Prasyarat
Untuk tampilan waktu mewah Anda perlu menginstal toilet
:
sudo apt install toilet
Untuk tampilan waktu mewah lainnya (tapi tidak semewah) pasang figlet
:
sudo apt install figlet
Kalau tidak, waktu akan ditampilkan dalam font "normal".
Cuaca
Cuaca disediakan oleh curl wttr.in/cityname?0
perintah. Dalam penggunaan terminal Anda: curl wttr.in/:help
untuk detail tambahan.
Cuaca: Ubah nama kota
Anda ingin memodifikasi bagian kode ini dan mengubah Edmonton
nama kota Anda:
# 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---^
Unicode didukung untuk nama-nama kota seperti /Москва
(Moskow). Surat bandara didukung seperti YEG
untuk Edmonton.
Cuaca: Hapus nama negara
Ketika terminal diatur untuk lebar 92 karakter, cuaca ditampilkan sebagai "Edmonton, Kanada." yang terlalu lama untuk seleraku:
Lebih buruk lagi ketika terminal diatur untuk lebar 80 karakter default:
Untuk menghindari masalah, ", Nama Negara" dicoret di layar dengan kode ini:
# 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
Jika Anda perlu bantuan dengan bagian skrip ini, silakan kirim komentar di bawah untuk bantuan.
Penyesuaian lebar layar terminal
Sesuaikan jarak ke lebar layar terminal Anda dengan mengubah:
# 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 " " " "
Mengikat semuanya bersama ~/.bashrc
Edit ~/.bashrc
file Anda dan tambahkan baris ini ke bawah:
# Splash Calendar and time
now
# ASCII Linux distribution display
screenfetch
Simpan perubahan file `~ / .bashrc".
Untuk menampilkan informasi Ubuntu yang Anda butuhkan screenfetch
:
sudo apt install screenfetch
Ada paket display serupa untuk screenfetch
jadi berbelanja!
Jika Anda ingin prompt perintah yang sama dengan "─────────" membagi garis antara perintah, ubah baris ini:
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
Perhatikan panjang garis pemisah bertepatan dengan lebar screenfetch
keluaran. Dalam hal ini lebarnya 92 karakter dan gnome-terminal
preferensi diatur sesuai.
man ip
. Gunakan-br
sakelar. Anda mungkin juga ingin menggunakan-4
sakelar. Perintah Anda dapat disingkat menjadiip -br a | sed -nE 's:^(\w+)\s+UP\s+([0-9.]+)/.*$:\1 \2:p'
. Bahkan lebih baik, gunakanhostname -I
.PENTING untuk menggunakan Spanduk ssh ini: Sorotan Hari hanya berfungsi dengan "ncal -bh> / tmp / terminal" bukan cal -h. cal -h tidak berfungsi / ada lagi (Ubuntu 18.04)
sumber