Win*_*nix 7 command-line bash bashrc
当按Ctrl+ Alt+T打开终端时,我会看到一个带有简单输入提示的空白屏幕。
是否可以(通过修改~/.bashrc
)显示当前日历,突出显示今天和当前时间?
如果时间可以以大量显示(使用 figlet?),那将是一个奖励。
你可以在这里看到改进的版本:https : //askubuntu.com/a/1020693/307523
它看起来像这样:
您可以在使用~/.bashrc
脚本打开终端时打印介绍横幅。如果你有 figlet ( sudo apt install figlet
) 你可以利用大字母来显示时间:
在第一个实例figlet
中用于显示时间,在第二个实例中使用常规字体。
toilet
此屏幕使用toilet
包中的字体。最后一个示例使用future
字体并在下面的代码中使用。此外,日历在下面的代码中设置为青色。
该toilet
包允许在figlet
它派生的包上添加额外的字体类型和格式样式。要安装软件包,请sudo apt install toilet
在figlet
如上所述安装后使用。
这是使其全部工作所需的代码。建议将此脚本放在您的/home/user/bin
目录中,因为它会自动添加到您的路径中。此脚本已命名,now
但您可以使用任何您喜欢的唯一名称。
#!/bin/bash
# NAME: now
# PATH: $HOME/bin
# DESC: Display current calendar and time
# CALL: Called from terminal or ~/.bashrc
# DATE: Apr 6, 2017. Modified: Apr 10, 2017.
# 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
# calendar current month with today higlighted.
# colors 00=bright white, 31=red, 32=green, 33=yellow, 34=blue, 35=purple,
# 36=cyan, 37=white
printf "\033[36m" # color 36=cyan
echo ""; cal;
printf "\033[00m" # color bright white (default)
echo ""
tput sc # Save cursor position.
# Move up 9 lines
while [ $((++i)) -lt 10 ]; do tput cuu1; done
tput cuf 25 # Move 25 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;32m" # color green
printf "$Time"
tput cud1 # Up one line
tput cuf 25 # Move 25 columns right
done < /tmp/terminal
tput rc # Restore saved cursor position.
exit 0
Run Code Online (Sandbox Code Playgroud)
将此代码复制到您的编辑器中并将其保存到文件中now
。接下来使用以下命令将其标记为可执行文件:
sudo chmod +x now
Run Code Online (Sandbox Code Playgroud)
~./bashrc
完成后,您可以now
在终端中输入,您将看到日历和时间。将其全部打包并在每次打开终端时自动显示:
~/.bashrc
now
现在,当打开终端时,您会看到当前月份日历上突出显示的当前日期,然后是当前时间。
在这里,我们将简要介绍代码的工作原理,而不讨论每一行。
figlet
和toilet
包裹该脚本首先检查是否toilet
与hash
命令一起安装。如果是这样,则用于显示时间。如果未figlet
安装则使用。如果两者都没有安装,则使用常规字体。
在上面的代码中,可以将注释复制到命令行并执行以在终端上显示可用figlet
和toilet
字体:
for i in ${TOILET_FONT_PATH:=/usr/share/figlet}/*.{t,f}lf; do j=${i##*/}; toilet -d "${i%/*}" -f "$j" "${j%.*}"; done
Run Code Online (Sandbox Code Playgroud)
要更改用于时间显示的字体,请搜索此行的代码:
toilet -f future --filter border > /tmp/terminal
Run Code Online (Sandbox Code Playgroud)
并将字体名称更改为future
您选择的字体名称。请记住,某些字体太大而无法显示。
分别设置日历和时间所需的颜色。在上面的代码中,注意命令:
printf "\033[36m" # color 36=cyan
Run Code Online (Sandbox Code Playgroud)
将最后两位数字更改为您要使用的颜色代码。通过修改代码,我发现了这些值:
00 = 亮白色,31 = 红色,32 = 绿色,33 = 黄色,34 = 蓝色,35 = 紫色,36 = 青色,37 = 白色
如果您发现其他颜色代码,请在下面发表评论或更新此答案。