Немного о внешнем виде bash

Надоели мне как-то стандартные PS и захотелось сделать что-то, более симпатичное :)
Итак, делаем bash посимпатичнее.
Я делал все на Arch Linux, но ничего, ориентированного на него в статье нет. Так что вполне повторяемо на любом дистре.

Первым делом надо немного поднять себе настроение =)
Ставим пару утилиток (если они у вас, конечно же, еще не установлены)

# pacman -S cowsay fortune-mod

Cowsay – рисует в ASCII корову, которая послушно говорит заданную фразу, а fortune-mod – это всем известные фортунки :)
Далее надо сделать базу фортунок поинтереснее =)

# cd /tmp
# wget -c http://lorquotes.ru/fortraw.php
# iconv -c -f KOI8-R -t UTF-8 -o /usr/share/fortune/lor fortraw.php
# strfile /usr/share/fortune/lor
# rm fortraw.php

Для нормального отображения фортунок их необходимо перекодировать из KOI8-R в вашу локаль. Соответственно, если у вас локаль KOI8-R, то конвертировать ничего не нужно.
Теперь у нас есть база фортунок с цитатами с LOR‘а.
Примечание: можно еще добавить в crontab скрипт, который будет автоматически обновлять базу фортунок с заданной периодичностью. Я их обновляю довольно редко и мне не трудно обновить их руками.

Правим .bashrc Добавляем туда приветствие и фортунку. Также я изменил приглашение, оставив в нем только текущее время и полный путь к текущей директории. Свой hostname я знаю и на машине я один-единственный юзер =)
Также прописываем несколько приятных алиасов, позволяющих сделать работу более комфортной. И делаем первый шаг к “раскрашиванию” консоли.

# cd
# vim .bashrc
PS1=”[\D{%T} \w]\$ ”

alias ls=”ls –color”
alias pwd=”pwd -P”
alias ll=”ls -lah –color”
alias xs=”cd”
alias vf=”cd”
alias mv=”mv -i”
alias cp=”cp -i”
alias mnt=”sudo mount /dev/cdrom /mnt/cdrom -o iocharset=utf8″
alias umnt=”cd && sudo umount /dev/cdrom && eject /dev/cdrom”
alias mntfl=”sudo mount /dev/sdb1 /mnt/flash”
alias umntfl=”cd && sudo umount /dev/sdb1 && sudo eject /dev/sdb1″
alias p=”ps ax”
alias grep=”grep –color=auto”

/usr/bin/cowsay `echo -n Welcome, $USER`
echo “**********************************************”
echo ” ”
/usr/bin/fortune lor
echo ” ”
echo -n “Today is ”
/bin/date
echo ” “

Затем мне захотелось сделать консоль более яркой и помучив гугл натолкнулся на вот такую вот полезную утилиту: acoc. Она позволяет творить с консольным выводом просто чудеса, раскрашивая вывод любой консольной утилиты.

Ставим ее и настраиваем acoc и зависимости (ставил из исходников):

# wget -c http://raa.ruby-lang.org/cache/ruby-tpty/tpty-0.0.1.tar.gz
# tar xvzf tpty-0.0.1.tar.gz
# cd tpty-0.0.1
# ruby extconf.rb
# make
# ruby ./test.rb
# make install

# wget -c http://rubyforge.org/frs/download.php/26270/term-ansicolor-1.0.3.tgz
# tar xvzf term-ansicolor-1.0.1.tar.gz
# cd term-ansicolor-1.0.1
# ruby install.rb

# wget -c http://www.caliban.org/files/ruby/acoc-0.7.1.tar.gz
# tar xvzf acoc-0.7.1.tar.gz
# cd acoc-0.7.1
# make install

Вдумчиво читаем файлы README и INSTALL, которые идут вместе с утилитой acoc. И смотрим файл /usr/local/etc/acoc.conf на предмет мощности и гибкости этой утилитки. Я взял дефолтные опции, которые уже очень и очень неплохи.
Затем дописываем в .bashrc необходимые для красивых выводов алиасы:

# cd
# vim .bashrc
alias ping=”/usr/local/bin/acoc ping”
alias top=”/usr/local/bin/acoc top”
alias w=”/usr/local/bin/acoc w”
alias diff=”/usr/local/bin/acoc diff”
alias traceroute=”/usr/local/bin/acoc traceroute”
alias make=”/usr/local/bin/acoc make”
alias gmake=”/usr/local/bin/acoc gmake”
alias cc=”/usr/local/bin/acoc cc”
alias gcc=”/usr/local/bin/acoc gcc”
alias df=”/usr/local/bin/acoc df”
alias ifconfig=”/usr/local/bin/acoc ifconfig”
alias route=”/usr/local/bin/acoc route”
alias tcpdump=”/usr/local/bin/acoc tcpdump”
alias ps=”/usr/local/bin/acoc ps”
alias lsmod=”/usr/local/bin/acoc lsmod”
alias whereis=”/usr/local/bin/acoc whereis”

И наслаждаемся жизнью :)

Еще можно немного поправить acoc.conf и подраскрасить вывод cowsay и fortune:

[cowsay]
/^(<) (.*) (>)/ clear,red+bold,clear
[fortune]
/^(\-\-)(.*)/ clear+cyan
/^(.*)/ bold

И немного поправить .bashrc

# cd
# vim .bashrc
/usr/local/bin/acoc cowsay `echo -n Welcome, $USER`
echo “**********************************************”
echo ” ”
/usr/local/bin/acoc fortune lor
echo ” ”
echo -n “Today is ”
/bin/date
echo ” “

У меня получилось вот что: http://boombick.org/acoc.png (228Kb)

Домашние страницы упомянутых в статье утилит:
acoc: http://raa.ruby-lang.org/project/acoc/
tpty: http://raa.ruby-lang.org/cache/ruby-tpty/
term-ansicolor: http://raa.ruby-lang.org/project/ansicolor/


 

Система Orphus

 


 

Comments: 11

  1. itten November 18th, 2007 at 11:12 pm

    Рульно! Огромное спасибо!

  2. Selim13 November 19th, 2007 at 12:56 am

    Куль =)

  3. Fat Bastard November 19th, 2007 at 9:34 am

    alias wget=”wget -c –passive-ftp –no-check-certificate

    если уж начал алиасами заморачиваться – имхо полезно:)

  4. doctoru November 21st, 2007 at 10:14 am

    Зачем заморачиваться? Захотелось красот – ставь вислу и виндовз блиндз. Бугога.

  5. Chrno November 22nd, 2007 at 10:30 pm

    Привет. А как ты сделал верхную панель на которой отображена загрузка проца, состояние памяти и тд? Извини пожайлуста за офтоп.

  6. admin November 22nd, 2007 at 10:58 pm

    Это conky – софтинка такая.. Туда можно очень много самой разной инфы выводить.. Вот мой конфиг:

    alignment top_left
    background true
    double_buffer
    override_utf8_locale yes
    mpd_host localhost
    mpd_port 6600
    update_interval 5
    font -*-terminus-*-*-*-*-12-*-*-*-*-*-*-*

    TEXT
    ${color C4EAFF}${time %d.%m.%Y} | CPU: $cpu % | RAM: $mem${if_mounted /mnt/cdrom} | CD mounted ${endif} | $mpd_status: $mpd_artist – $mpd_title$ (${mpd_vol}% ${mpd_elapsed}/${mpd_length}) | ${fs_free /} – / | ${fs_free /home} – /home | ${fs_free /home/media} – /media | ${fs_free /home/distfiles} – /soft | ${totaldown ppp0}

  7. Chrno November 24th, 2007 at 7:02 pm

    Большое спасибо,

  8. Tamerlan311 November 25th, 2007 at 3:21 pm

    Хочется заметить что при copy-past приведенных выше шрифтов необходимо исправить кавычки и длинное тире на 2 коротких. скрипты блога их автоматически заменяют. я сразу не обратил внимания (на тире) и поимел некоторое количество глюков.

  9. hc November 27th, 2007 at 1:23 am

    Спасибо.

  10. mosfet December 5th, 2007 at 3:48 pm

    Вопрос: как водрузить term-ansicolor в домашнюю директорию, а не их под рута, да так, чтобы он виделся acoc’ом

  11. mex March 11th, 2008 at 3:06 pm

    сенкс, узнал новое! помогло

Add a Comment