Чтобы нажатие 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
Скопируйте этот код в своего редактора и сохраните его в файл now
. Затем отметьте его как исполняемое использование:
sudo chmod +x now
~./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
Для изменения шрифта, используемого для отображения времени, ищут код эту строку:
toilet -f future --filter border > /tmp/terminal
и измените имя шрифта future
к имени шрифта Вы выбираете. Следует иметь в виду, что некоторые шрифты являются слишком большими для установки на дисплее.
Выберите цвет, который Вы хотите для календаря и время отдельно. В вышеупомянутом коде заметьте команду:
printf "\033[36m" # color 36=cyan
Измените последние две цифры на цветовой код, который Вы хотите использовать. От переделывания кода я нашел эти значения:
Белый 00=bright, 31=red, 32=green, 33=yellow, 34=blue, 35=purple, 36=cyan, 37=white
При нахождении дополнительных цветовых кодов, добавьте комментарий ниже или обновите этот ответ.
Если Вы просто хотите простое время и дату, можно добавить их в конец .bashrc:
echo -e "Welcome to [$(hostname)] You are logged in as user [$USER]"
echo -e "Local time: [$(date)]"
который отобразит следующее, когда Вы войдете в систему:
Welcome to [deathstar] You are logged in as user [skywalker]
[Local time]: Sun Apr 9 10:18:11 CDT 2017.
У меня есть сценарий Python, я записал, что это добавит локальную погоду и Вашу WAN и дюйм/с LAN в Ваш .bashrc файл также. Установите cronjob для обновления погоды. Это идет с образцом .bashrc также
Это отобразится:
Welcome to [deathstar] You are logged in as user [skywalker]
[Local time]: Sun Apr 9 10:18:11 CDT 2017.
[Local weather]: 68.68 F with few clouds
[Your public IP is]: 1.2.3.4 [Local IP]: 192.168.2.6
Если Вы хотите взять его шаг вперед, можно добавить дополнительные цвета и форматирующий, чтобы заставить значения соответствовать профилю