Сначала вы настраиваете Virtualbox для использования мостовой сети
Затем вы устанавливаете dnsmasq на свой DNS-сервер. Я предполагаю, что это Ubuntu с IP-адресом 192.168.178.10, соответственно отрегулируйте
sudo apt-get install dnsmasq
Затем вы добавляете свой сервер виртуальных серверов в /etc/hosts на сервере dns (dnsmasq)
# Graphical
gksu gedit /etc/hosts
# Command line
sudo -e /etc/hosts
Добавьте на свой сервер
192.168.178.91 example.server www.example.server
Затем вы указываете своим клиентам использовать сервер dns (dnsmasq) для dns. Вы можете сделать это с помощью сетевого менеджера, поместите 192.168.178.10 в качестве сервера DNS.
Я не знаю никакой утилиты для цветной печати, но вы можете сделать это легко с помощью такой функции оболочки:
# colorize stdin according to parameter passed (GREEN, CYAN, BLUE, YELLOW)
colorize(){
GREEN="\033[0;32m"
CYAN="\033[0;36m"
GRAY="\033[0;37m"
BLUE="\033[0;34m"
YELLOW="\033[0;33m"
NORMAL="\033[m"
color=\$${1:-NORMAL}
# activate color passed as argument
echo -ne "`eval echo ${color}`"
# read stdin (pipe) and print from it:
cat
# Note: if instead of reading from the pipe, you wanted to print
# the additional parameters of the function, you could do:
# shift; echo $*
# back to normal (no color)
echo -ne "${NORMAL}"
}
echo hi | colorize GREEN
Если вы хотите проверить другие цвета, посмотрите в этом списке. Вы можете добавить поддержку для любого цвета, просто создав дополнительную переменную в этой функции с правильным именем и значением.
Я создал эту функцию, которую я использую в сценариях bash.
# Function to echo in specified color echoincolor () { case $1 in "red") tput setaf 1;; "green") tput setaf 2;; "orange") tput setaf 3;; "blue") tput setaf 4;; "purple") tput setaf 5;; "cyan") tput setaf 6;; "gray" | "grey") tput setaf 7;; "white") tput setaf 8;; esac echo "$2"; tput sgr0 }Тогда я просто назову это так echoincolor green "This text is in green!"
В качестве альтернативы используйте printf [!d2 ] # Function to print in specified color colorprintf () { case $1 in "red") tput setaf 1;; "green") tput setaf 2;; "orange") tput setaf 3;; "blue") tput setaf 4;; "purple") tput setaf 5;; "cyan") tput setaf 6;; "gray" | "grey") tput setaf 7;; "white") tput setaf 8;; esac printf "$2"; tput sgr0 }
Затем просто назовите его следующим образом: colorprintf green "This text is in green!"
Помните, что echo предоставляет новую завершающую строку, а printf - нет.
Я использую этот старый скрипт, имена hilite.pl, взятые из Интернета, уже с линией «неизвестного автора»!
#!/usr/bin/perl -w
### Usage: hilite <ansi command> <target string>
### Purpose: Will read text from standard input and perform specified highlighting
### command before displaying text to standard output.
### License: GNU GPL
# unknown author
$|=1; # don't buffer i/o
$command = "$ARGV[0]";
$target = "$ARGV[1]";
$color = "\e[" . $command . "m";
$end = "\e[0m";
while(<STDIN>) {
s/($target)/$color$1$end/;
print $_;
}
Тогда я могу использовать его в трубах, чтобы «hilite» log output или другие вещи, используя regexp / PCRE:
echo 'hello color world!!' | hilite.pl 34 "[Hh]el[^ ]*" | hilite.pl 43 .orld | hilite.pl 32 "\scolor\s"
Это будет рисовать привет в синем, цвет в зеленом и мире на желтом фоне
Вы можете увидеть список цветов с помощью (вы можете расширить выражение bash до {01..255}, если хотите):
for i in {01..10} {30..49} {90..110} ; do echo $i | hilite.pl $i $i ; done
Есть более элегантный ответ, чем любой из них:
sudo apt-get install grc
(который также устанавливает grcat)
Теперь выполните:
echo "[SEVERE] Service is down" | grcat ~/conf.username
Где conf.myusername содержит:
regexp=SEVERE
colours=on_red
count=more
(по какой-то причине я не могу найти правильное регулярное выражение для «всего между кавычками»)
Существует более элегантный ответ, чем любой из них:
sudo apt-get install grc
(который также устанавливает grcat
)
Теперь выполните:
echo "[SEVERE] Service is down" | grcat ~/conf.username
Где conf.myusername
содержит:
regexp=SEVERE
colours=on_red
count=more
(по какой-то причине я не могу найти правильное регулярное выражение для «всего между кавычками»)