As of late, and without my deliberately doing anything to make it happen, my Bash prompt has an at sign (i.e. @) prepended to it. This did not previously happen. Nor can I see anything in my ~/.bashrc that seems as though it ought to be making this happen.

This is on Debian Jessie GNU/Linux, using GNU Bash.

For example, my current Bash sessions look like this:

@sampablokuper@debianbox:~$ python3
Python 3.4.2 (default, Oct  8 2014, 13:14:40) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
@>>> 1+2
@>>> exit()

whereas originally, they would have looked like this:

sampablokuper@debianbox:~$ python3
Python 3.4.2 (default, Oct  8 2014, 13:14:40) 
[GCC 4.9.1] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1+2
>>> exit()

Here are all the lines from my ~/.bashrc that appear to in any way relate to the Bash prompt:

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color) color_prompt=yes;;

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt

if [ -n "$force_color_prompt" ]; then
    if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
        # We have color support; assume it's compliant with Ecma-48
        # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
        # a case would tend to support setf rather than setaf.)

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
unset color_prompt force_color_prompt

# If this is an xterm set the title to user@host:dir
case "$TERM" in
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

How can I get my Bash prompt to appear as it did originally?


Based on a meta discussion, I'm copying @steeldriver's perfectly good AU answer here:

You appear to have configured readline to enable edit mode indication. From 8.3.1 Readline Init File Syntax of the Bash Reference Manual:

show-mode-in-prompt (Off)
       If set to On, add a character to the  beginning  of  the  prompt
       indicating  the  editing  mode:  emacs (@), vi command (:) or vi
       insertion (+).

You should be able to disable it in the current shell using

bind 'set show-mode-in-prompt off'

To disable it persistently, you will need to find where it is getting set, possibly your ~/.inputrc or /etc/inputrc files.

  • Why is this a community wiki? – John Militer Jul 12 '16 at 2:37
  • 1
    @John I didn't want to earn point from someone else's answer – Jeff Schaller Jul 12 '16 at 10:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.