217

I want my shell prompt to look like a cheeseburger!

It would be nice if it also displayed: username, hostname, and current directory.

Volker Siegel
  • 13,065
  • 5
  • 49
  • 65
Corey Goldberg
  • 3,046
  • 3
  • 19
  • 21

7 Answers7

161

great choice!

$ sudo apt-get install ttf-ancient-fonts
$ export PS1="\\u@\h \\w  "

enjoy.

Corey Goldberg
  • 3,046
  • 3
  • 19
  • 21
43

Putting a cheeseburger on the prompt:

  1. Install a unicode font that contains this character:

    sudo apt-get install ttf-ancient-fonts
    
  2. Try the prompt:

    export PS1="\\u@\h \\w   "
    
  3. Make permanent the change (if you don't do that, it will reset once terminal is closed):

    • Run nano .bashrc
    • Go to the 59th line approx. (You can view the current line number pressing Ctrl+C)
    • Locate these lines:

      if [ "$color_prompt" = yes ]; then
          PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
      else
          PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
      fi
      
    • Replace \$ character a the end of the lines beginning with PS1= by the cheeseburger:

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

Typing a cheeseburger everywhere (linux only):

  1. Press Ctrl+Shift+U
  2. A underlined lowercase u will appear.
  3. Type 1f354
  4. Press Return
  5. A nice cheeseburger will appear.
Mark
  • 1,469
0x2b3bfa0
  • 8,780
  • 6
  • 36
  • 55
25

I couldn't help but take this probably a step too far. This version updates your prompt to display a different character based on time of day, to illustrate what you should be doing at that time.

declare -A pp
pp=(["09"]="" ["07"]="" ["08"]="" [10]="" [11]="" [12]="" [13]="" [14]="" [15]="" [16]="" [17]="" [18]="" [19]="" [20]="" [24]="")
u_pp() {
  c=${pp[`date +"%H"`]}
  if [[ $c == "" ]]; then
    c=${pp[24]}
  fi
  PS1='\u@\h:\w${c} '
};
u_pp
export PROMPT_COMMAND="u_pp;"

Probably there's a more concise way to do it; my bash isn't all that great.

To add the current time of day on the left side, replace the assignment of PS1:

PS1='[\@] \u@\h:\w${c} '
David Foerster
  • 36,264
  • 56
  • 94
  • 147
  • I know this is the most stupid question to be asked in the askubuntu, but I'm just wondering do you have an idea on get this working with mac, coz I'm getting no matches found: [9]= when I add this in to my (mac) ~/.bash_profile :) – sameera207 May 25 '15 at 23:16
  • Oh crap, that's a string-vs-integer bug that I found and fixed on my machine, but forgot to update text.

    Basically, change single-digit keys like [9] and [7] to ["08"] etc. See updated answer. My bad, sorry.

    – Dan Morrill May 26 '15 at 05:17
18

If you can't install the 'ancient fonts' maybe a sideways ASCII art cheeseburger would work?

export PS1="\\u@\h \\w (||]"

Of course, there could be different ways of typing this, possibly including lettuce, pickles, etc.

jwg
  • 302
5

You can use the following code to create a useful and colorful prompt with an ASCII art hamburger. Well... to be correct, this is a cheeseburger, red meat, with salad on white Italian bread! Special delight! ;-)

Login as the user, go to the home folder and open the bashrc file:

vim ~/.bashrc 

Add or replace the following line:

export PS1="\[\e[01;37m\][\[\e[0m\]\[\e[01;32m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[01;34m\]\h\[\e[0m\]\[\e[00;37m\] \[\e[0m\]\[\e[00;37m\]\t\[\e[0m\]\[\e[01;37m\] \W \e[1;37m(\e[1;32m|\e[1;33m|\e[1;31m|\e[1;37m]\\$ \[\e[0m\]"

Result (no colors):

[john@server003 15:39:14 ~ (|||]$
SPRBRN
  • 2,315
  • 6
  • 28
  • 35
3

Green Cheeseburger:

export PS1='\[\e[1;32m\][\u@\h \W]\ \[\e[0m\] '

Red Cheesburger:

export PS1='\[\e[1;31m\][\u@\h \W]\ \[\e[0m\] '

Bicycle:

export PS1="\\u@\h \\w  "

or

export PS1="\\u@\h \\w  "

Love hearts:

export PS1="\\u@\h \\w      "

Show the time on the left and a watch on the right:

export PS1="[\@] \u@\h  "
2

Aside from pasting the emoji into the prompt definition directly, you can use the Unicode code point for cheeseburger with printf and command substitution within the prompt:

$ PS1='$(printf "\U0001f354") $ '
 $ echo "Hello,my cheesy prompt!"
Hello,my cheesy prompt!
 $
wjandrea
  • 14,236
  • 4
  • 48
  • 98
Sergiy Kolodyazhnyy
  • 105,154
  • 20
  • 279
  • 497