Причина, что Постоянно хранилище этот флажок исключения в Firefox отключен, состоит в том, потому что Вы находитесь в частном режиме просмотра, или Ваши настройки безопасности в Firefox установлены никогда не помнить историю.
Установите его, чтобы помнить, что история, для перезагрузки страницы затем постоянно хранят его. После этого можно возвратиться, чтобы никогда помнить.
Я не знаю, имеет ли Chrome способ сделать это все же.
Просто используйте литеральный символ Esc, вводимый с Ctrl-v, Esc (будет отображен как ^[
на экране):
PS1="^[[34mLinux^[[00m"
Или используйте вывод echo
команда, которую Вы узнаете, работает:
PS1="$(echo -e "\033[35mLinux\033[00m")"
Необходимо вставить литеральный символ ESC PS1
переменная. Ksh88 и клоны, такие как pdksh и mksh (более старые версии) не имеют никакого литерального синтаксиса для управляющих символов кроме через print
встроенный. Mksh понимает \e
для Escape, но pdksh требует восьмеричного кода \033
.
PS1=$(print '\033[34mLinux\033[00m')
ATT ksh93 представляет оставленный из обратной реакции литеральный синтаксис $'…'
(также доступный в mksh начиная с R39b). Можно использовать Escape обратной косой черты для помещения управляющих символов в эти литералы.
PS1=$'\e[34mLinux\e[00m'
mksh
также поддержки $'…'
– по общему признанию, потому что Dave Korn (Korn в Korn Shell) настоял, чтобы я добавил его.
– mirabilos
27.02.2014, 16:01
Я использую их в mksh
для пользовательской оболочки
:
# custom prompt see http://comments.gmane.org/gmane.os.miros.mksh/126
PS1=$'\a\r\a\e[1;34m\a ^ ^ ^ ^ | \a\e[36m\a${USER:=$(ulimit -c 0; id -un 2>/dev/null || echo
\?)}@${HOSTNAME%%.*}\a\e[34m\a | ^ ^ ^ ^ | \a\e[0;33m\a$(local d=${PWD:-?} p=~; [[ $p = ?(*/) ]] || d=${d/#$p/~};
print -nr -- "$d")\a\e[1;34m\a |\n ^ ^ ^ ^ | \a\e[32m\a$(date +%H:%M)\a\e[34m\a | ^ ^ >>\a\e[0m\a '
и немного другой shell
для root
:
PS1=$'\a\r\a\e[1;34m\a ^ ^ ^ ^ ^ \a\e[31m\a${USER:=$(ulimit -c 0; \
id -un 2>/dev/null || echo \?)}@${HOSTNAME%%.*}\a\e[34m\a ^ ^ ^ ^ ^ ^ ^ \a\e[0;33m\a$(
local d=${PWD:-?} p=~
[[ $p = ?(*/) ]] || d=${d/#$p/~}
print -nr -- "$d"
)\a\e[1;34m\a ^ ^ \n ^ ^ ^ ^ ^ \a\e[32m\a$(date +%H:%M)\a\e[34m\a ^ ^ ^ ^ \a\e[0m\a '
Поскольку специальные символы не копировались, вот вставка pastebin как для обычного пользователя, так и для root.
В ответах людей происходит несколько вещей, в каждом из которых используется свой синтаксис.
Управляющие последовательности для вашей терминальной программы приведены в документации.
Как закодировать escape-последовательности терминала в переменной PS1, например \ e или буквальный escape. Это зависит от оболочки.
Как добавить в приглашение изменяющуюся информацию, например имя хоста, текущий каталог и т. Д. Это также зависит от оболочки. Вы можете использовать специальные последовательности обратной косой черты, такие как \ w, для рабочего каталога, или вам, возможно, придется назвать переменные среды или встроить командные строки в строку.
Как указать оболочке, какие символы печатаются, а какие нет. Оболочка не знает, где начинаются и заканчиваются escape-последовательности вашего терминала. Если в оболочке есть редактор командной строки или что-то подобное, ей необходимо знать, какие символы печатаются, чтобы она знала, где находится курсор. Без этой детали ваше приглашение могло бы выглядеть правильно, но редактирование может вести себя странно.
В bash вы помещаете \ [перед каждой escape-последовательностью и \] после.
В ksh вы выбираете один непечатаемый символ ASCII, который не может встретиться где-либо еще в строке. В начале строки вы пишете этот символ, за которым следует возврат каретки ASCII. Затем вы пишете один и тот же символ до и после каждой escape-последовательности. z3ntu выбрал \ a в качестве символа-маркера.
Благодаря предыдущим ответам и другим источникам я смог придумать эти:
Приглашение оболочки Korn:
PS1="$(echo "\033[32m`logname`\033[35m@\033[32m`hostname` \033[33m`pwd`\033[36m\n\$\033[0m")"
Подсказка Bash:
PS1="\[\e[32m\]\u\[\e[35m\]@\[\e[32m\]\h \[\e[33m\]\w\[\e[36m\]\n\$\[\e[0m\]"
Они дают такую же цветную подсказку (да, я говорю по-английски;))в формате:
username@computername /current/working/directory
$
Эквивалент (для DOS, хотя и нет вариантов цвета ), это:
prompt %username%@%computername% $P$_$G
, что дает:
username@computername /current/working/directory
>
«>» означает «DOSsy», а не «nixy» с «$»,но если бы вы хотели сигил ("$" )вместо этого, то это было бы:
prompt %username%@%computername% $P$_$$
При условии, что ваша учетная запись имеет необходимые разрешения, чтобы «никси» постоянно добавлялись к ним с «экспортом»:
export PS1="..."
и измените DOSsy на:
setx PROMPT "%username%@%computername% $P$_$G"
или
setx PROMPT "%username%@%computername% $P$_$$"