ack делает что-то подобное по умолчанию. можно использовать
$ ack blah
path/to/blah
16: blah blah
19: blah blah blah
path/to/more/blah
21: blahness
Если Вы просто хотите имена файлов, которые соответствуют Вам, может сказать ack -l
. ack -lc
даст Вам количество соответствий на файл.
Необходимо смочь сделать это путем установки PS1
запросите переменную в Вашем ~/.bashrc
файл как это:
PS1='[\u@\h \w]\$ '
Для создания это окрасило (и возможно полужирный - это зависит от того, включил ли эмулятор терминала его), необходимо добавить цветовые коды Escape:
PS1='\[\e[1;91m\][\u@\h \w]\$\[\e[0m\] '
Здесь, все не оставляемое между 1;91m
и 0m
части будут раскрашены 1;91
цвет (полужирный красный). Поместите эти управляющие коды вокруг различных частей подсказки, чтобы использовать различные цвета, но не забыть сбрасывать цвета с 0m
или иначе Вы окрасите терминальный вывод также. Не забудьте получать файл впоследствии для обновления текущей оболочки: source ~/.bashrc
Найдите где Ваш PS1
установлен в Вашем .bashrc
и вставьте '\[\e[1m\]'
вначале и \[\e[0m\]
в конце.
\[
и \]
необходимы, таким образом, оболочка знает, что путаница внутри занимает 0 места на экране, который предотвращает некоторых завинченных поведение при выполнении редактирования строки. Вы не должны волноваться слишком много об этом.\e[
известен как CSI (управляющая последовательность introducer). Вы будете видеть, что это использовало в большинстве кодов, перечисленных на странице Wikipedia, на которую ссылаются. \e
означает символ ESC.CSI 1m
включает полужирный и CSI 0m
сбрасывает шрифт, таким образом, остальная часть Вашего текста нормальна. Википедия имеет полный список управляющих кодов ANSI, которые можно использовать, если эмулятор терминала поддерживает ее.
Для мобильности и удобочитаемости, необходимо использовать tput
вместо управляющих кодов жесткого кодирования. Единственный недостаток tput
подход не будет работать с терминалами, которые поддерживают коды ANSI, но повредились или отсутствующий terminfo базы данных, но в этом случае поврежденный terminfo является большей проблемой как многими Вашими консольными приложениями, которые полагаются на terminfo, может не работать правильно.
Вот пример того, что я выполняю в моем .bashrc
:
# color names for readibility
reset=$(tput sgr0)
bold=$(tput bold)
black=$(tput setaf 0)
red=$(tput setaf 1)
green=$(tput setaf 2)
yellow=$(tput setaf 3)
blue=$(tput setaf 4)
magenta=$(tput setaf 5)
cyan=$(tput setaf 6)
white=$(tput setaf 7)
user_color=$green
[ "$UID" -eq 0 ] && { user_color=$red; }
PS1="\[$reset\][\[$cyan\]\A\[$reset\]]\[$user_color\]\u@\h(\l)\
\[$white\]:\[$blue\]\W\[$reset\][\[$yellow\]\$?\[$reset\]]\[$white\]\
\\$\[$reset\] "
Вот то, на что была бы похожа genericized моя версия. 0
статус выхода последней команды.
Это - подсказка по умолчанию, что Вы входите в оболочку удара cygwin:
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n\$ '
\[\e]0;\w\a\] = Set the Window title to your current working directory
\n = new line
\[\e[32m\] = Set text color to green
\u@\h = display username@hostname
\[\e[33m\] = Set text color to yellow
\w = display working directory
\[\e[0m\] = Reset text color to default
\n = new line
\$ = display $ prompt
Ссылки:
man bash
и проверьте PROMPTING
раздел.Я использую эту функцию оболочки для получения текстовых атрибутов в терминале:
color () {
if [ -z "$1" -a -z "$2" -a -z "$3" ]; then
echo "\033[0m"
return
fi
case $1 in
black) color_fg=30;;
red) color_fg=31;;
green) color_fg=32;;
yellow) color_fg=33;;
blue) color_fg=34;;
magenta|purple) color_fg=35;;
cyan) color_fg=36;;
white) color_fg=37;;
-) color_fg='';;
*) color_fg=39;;
esac
case $2 in
bold) color_bd=1;;
italics) color_bd=3;;
underline) color_bd=4;;
inverse) color_bd=7;;
strike) color_bd=9;;
nobold) color_bd=22;;
noitalics) color_bd=23;;
nounderline) color_bd=24;;
noinverse) color_bd=27;;
nostrike) color_bd=29;;
-) color_bd='';;
*) color_bd=0
esac
case $3 in
black) color_bg=40;;
red) color_bg=41;;
green) color_bg=42;;
yellow) color_bg=43;;
blue) color_bg=44;;
magenta|purple) color_bg=45;;
cyan) color_bg=46;;
white) color_bg=47;;
-) color_bg='';;
*) color_bg=49;;
esac
s='\033['
if [ -n "$color_bd" ]; then
s="${s}${color_bd}"
if [ -n "$color_fg" -o -n "$color_bg" ]; then
s="${s};"
fi
fi
if [ -n "$color_fg" ]; then
s="${s}${color_fg}"
if [ -n "$color_bg" ]; then
s="${s};"
fi
fi
if [ -n "$color_bg" ]; then
s="${s}${color_bg}"
fi
s="${s}m"
echo "$s"
unset s color_bd color_bg color_fg
}
Затем использовать его:
color_reset=`color`
color_grbd=`color green bold`
color_bubd=`color blue bold`
PS1="\[${color_grbd}\][\u@\h]\[${color_reset}\]:\[$color_budb}\]\w\[${color_reset}\]> "
Это дает мне [username@hostname]:cwd>
где username@hostname
полужирный зеленый и cwd
полужирный синий.
~/.bashrc
?
– Benjamin
15.02.2012, 01:04
~/.bashrc
файл и использование это для установки моей подсказки. Я даже изменяю цвета в зависимости от системы, я иду.
– Arcege
15.02.2012, 02:55
Чтобы оно выглядело как приглашение Ubuntu по умолчанию, добавьте
export PS1='\[\e[1;32m\]\u@\h\e[0;39m\]:\e[1;34m\]\w\e[0;39m\]$\[\e[0m\] '
в вашем ~/.bashrc
.
Это создаст хорошо -известный зеленыйuser@host
(полужирный ), за которым следует не -жирное белое двоеточие, за которым следует ваш рабочий каталог, выделенный жирным синим цветом, за которым следует знак $
, пробел, а ваша команда не -жирными белыми буквами:
1;31
и1;91
. Используя обычную толщину шрифта, диапазон 90-97 дает больше более ярких цветов, чем другой. – 15.02.2012, 12:21