Shtsh 04.08.2012 12:19

Мой конфиг.bashrc с рабочего ноута

Всем привет!

Недавно поставил на рабочий компьютер Archlinux (кстати, пришлось поизвращаться, так как возможности грузиться с каких-нибудь носителей не было). И начал настраивать многие вещи с нуля. Пока что выкладываю .bashrc - может кто-то найдёт интересные моменты.

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# variables and functions for PS1 prompt                                                                                                                                                                                           
function LA {
# Load average
LANG=C uptime | \
sed 's/,//g' | \
egrep -o '([0-9]+\.[0-9]+)\ ([0-9]+\.[0-9]+)\ ([0-9]+\.[0-9]+)'
}

# variables for convenient PS1 construction
txtblk='\[\e[0;30m\]' # Black - Regular
txtred='\[\e[0;31m\]' # Red
txtgrn='\[\e[0;32m\]' # Green
txtylw='\[\e[0;33m\]' # Yellow
txtblu='\[\e[0;34m\]' # Blue
txtpur='\[\e[0;35m\]' # Purple
txtcyn='\[\e[0;36m\]' # Cyan
txtwht='\[\e[0;37m\]' # White
bldblk='\[\e[1;30m\]' # Black - Bold
bldred='\[\e[1;31m\]' # Red
bldgrn='\[\e[1;32m\]' # Green
bldylw='\[\e[1;33m\]' # Yellow
bldblu='\[\e[1;34m\]' # Blue
bldpur='\[\e[1;35m\]' # Purple
bldcyn='\[\e[1;36m\]' # Cyan
bldwht='\[\e[1;37m\]' # White
unkblk='\[\e[4;30m\]' # Black - Underline
undred='\[\e[4;31m\]' # Red
undgrn='\[\e[4;32m\]' # Green
undylw='\[\e[4;33m\]' # Yellow
undblu='\[\e[4;34m\]' # Blue
undpur='\[\e[4;35m\]' # Purple
undcyn='\[\e[4;36m\]' # Cyan
undwht='\[\e[4;37m\]' # White
bakblk='\[\e[40m\]' # Black - Background
bakred='\[\e[41m\]' # Red
bakgrn='\[\e[42m\]' # Green
bakylw='\[\e[43m\]' # Yellow
bakblu='\[\e[44m\]' # Blue
bakpur='\[\e[45m\]' # Purple
bakcyn='\[\e[46m\]' # Cyan
bakwht='\[\e[47m\]' # White
txtrst='\[\e[0m\]' # Text Reset

#Personal colors for root
case $(id -u) in
0)
STARTCOLOUR=$txtred;
PROMPT="$bldred # $txtrst";
;;
*)
STARTCOLOUR=$txtylw;
PROMPT="$bldgrn > $txtrst";
;;
esac

# Prompt
#PROMPT_COMMAND="echo -n [$(date +%k:%m:%S)] "
PS1="$STARTCOLOUR\u$txtrst @ $txtcyn\h $txtgrn\w$txtrst [\$(LA)]$txtylw jobs:$bldylw\j $txtrst\n$PROMPT"

# color in different utilitties by default
alias ls='ls --color=auto'
alias grep="grep --color=auto"
eval `dircolors -b`

# Variable to use colorful MC and VIM
export TERM=xterm-256color

export EDITOR=/usr/bin/vim

# suspend / halt / reboot by regular user
alias suspend='dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend'
alias halt='dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop'
alias reboot='dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart'

echo `uname -a`
echo `date`

# "Command not found" - hook
source /usr/share/doc/pkgfile/command-not-found.bash



Чего здесть может быть интерсного?

  • Во-первых, обработка выхлопа uname при помощи элементарной регулярки, которая будет вызываться каждый раз при отображении приглашения.
  • Во-вторых, нужно экранировать каждую escape последовательность (\[ и \]), иначе позиция курсора будет отличаться от позиции, которую вы видите. Это будет проявляться в отсутствии переноса текста на следующую строку или проблемы при поиске по истории
  • В-третьих выбор любого своего приглашения в зависимости от того, является ли пользователь рутом
  • В-четвёртых, команды для перезагрузки, выключения и суспенда под обычным пользователем

Если у кого-то есть идеи, чего ещё можно добавить полезного, то предлагайте.

И напоследок ловите скриншот, как это выглядит.


Прошу сильно не ругать - мой первый пост на хабре.


Тэги: .bashrc bash конфиг
+ 7 -
Похожие Поделиться

Dark_SS 04.08.2012 13:45 #
Спасибо за команды завершения работы через dbus! Надо опробовать.
uscr 04.08.2012 13:48 #
Тудум. Автоматический перевод каретки, если команда не сделала этого:

1
2
3
4
5
6
function prompt_command {
# get cursor position and add new line if we're not in first column
echo -en "\033[6n" && read -sdR CURPOS
[[ ${CURPOS##*;} -gt 1 ]] && echo "${color_error}↵${color_error_off}"
}
PROMPT_COMMAND=prompt_command


uscr 04.08.2012 13:53 #
Выглядит так:


Компиз добавил говноэффект на скрин, но суть ясна.
Shtsh 04.08.2012 19:11 #
Спасибо.

Интересуют значения переменных color_error, color_error_off и используемый шрифт.
uscr 04.08.2012 19:26 #
А извиняюсь. Они у меня пустые. Я этот хак спёр откуда то из сети. Я не понял, зачем красить эту стрелочку и переменные не обьявлял. А в вызове не поправил.

Шрифт Ubuntu Mono.
muhas 04.08.2012 14:40 #
Посмотрев на определение цветов и порадовался соответствующему модулю в zsh (это я так хитро заманиваю в ряды пользователей зшела)
kstep 04.08.2012 15:22 #
Да, тоже про этом подумал.
fat0troll 04.08.2012 15:31 #
что за "Command-not-found"-hook?
Shtsh 04.08.2012 16:06 #
Тыц

Поиск пакета, из которого команда, если ее нету.
dieformetal 06.08.2012 11:57 #
variables for convenient PS1 construction понравился. Как же я сам не догадался =)
Shtsh 06.08.2012 12:50 #
Да, с ними жизнь становится приятней :)
posixru 06.08.2012 17:42 #
А мой конфиг .bashrc с рабочего ноута скромнее, всего лишь такой:
export PS1='\u[\W]\$ '
export PAGER="most"

if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
PS1="\[\e[0;1m\]┌─( \[\e[31;1m\]\u\[\e[0;1m\] ) - ( \[\e[36;1m\]\w\[\e[0;1m\] )\n└──┤ \[\e[0m\]"
myscreenfetch

Shtsh 06.08.2012 18:02 #
myscreenfetch выводит эту огромную шапку каждый раз? Не одобряю.

Ну, и PAGER у меня /usr/bin/vimpager - но это уже вкусовщина.
posixru 06.08.2012 18:54 #
А мне нравится!
Пробировал я всякое и всякие, например такое было:

PS1='\[\033[0;32m\]┌┼─┼─ \[\033[0m\033[0;32m\]\u\[\033[0m\] @ \[\033[0;36m\]\h\[\033[0m\033[0;32m\] ─┤├─ \[\033[0m\]\t \d\[\033[0;32m\] ─┤├─ \[\033[0;31m\]\w\[\033[0;32m\] ─┤ \n\[\033[0;32m\]└┼─\[\033[0m\033[0;32m\]\$\[\033[0m\033[0;32m\]─┤▶\[\033[0m\] '



Потом alsi, archey и archey3, ещё какие то ALSI информеры бывали, разного вида и навороченности...
Но screenfetch оказался самое то что надо, малость подпилил и >>>>>>
uscr 09.08.2012 18:57 #
Таки вдохновился я на многострочное приглашение. Круууть!

kstep 06.08.2012 20:04 #
Я тут недавно решил причесать свой конфиг zshell-а.
Вот он, если кому интересно:
https://github.com/kstep/zsh-config
Boga 14.08.2012 13:03 #
Grml's конфиг клёвый.