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
  • 12,820
  • 5
  • 48
  • 65
Corey Goldberg
  • 3,036
  • 3
  • 19
  • 21
  • 13
    What font can display these Unicodes? – s3lph May 17 '15 at 21:30
  • 7
    @the_Seppi, [Symbola](http://users.teilar.gr/~g1951d/) is one suitable font, which on Ubuntu is part of the `ttf-ancient-fonts` package. – cjm May 18 '15 at 03:48
  • For time, user, host, directory AND git branch (!) see http://unix.stackexchange.com/q/127799/10043 – Michael Durrant May 18 '15 at 13:23
  • 39
    The Unicode character you used is the one for [hamburger](http://graphemica.com/%F0%9F%8D%94), not cheeseburger. We must petition the Unicode committee to include more fast food-related glyphs. Where are nuggets? Why is there no "with bacon" combining glyph? How on Earth can a Double Whopper and a Big Mac be conflated to the same code point, despite the enormous difference in significance? It's outrageous. – Federico Poloni May 19 '15 at 17:33
  • 7
    Can you add a screenshot? I only see , which isn't any fun! ;-) – SPRBRN May 20 '15 at 07:17
  • 5
    @SPRBRN, [unicode-table.com](http://unicode-table.com/) can search for character: http://unicode-table.com/en/search/?q=%F0%9F%8D%94 – manatwork May 20 '15 at 09:12
  • It doesn't look anything like that in the font I have here though. – OrangeDog May 20 '15 at 15:35
  • @SPRBRN Use the answer - install taht font package, then the browser will find the glyph too, just like the terminal. – Volker Siegel May 21 '15 at 00:26
  • 55
    The source code for is – Digital Trauma May 21 '15 at 04:56
  • 3
    I have to say the question looks much better now that I've installed `ttf-ancient-fonts` – Thomas May 22 '15 at 02:18
  • possible duplicate of [How can I shorten my command line (bash) prompt?](http://askubuntu.com/questions/145618/how-can-i-shorten-my-command-line-bash-prompt) – Braiam May 24 '15 at 15:09

7 Answers7

161

great choice!

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

enjoy.

Corey Goldberg
  • 3,036
  • 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,439
  • 13
  • 15
0x2b3bfa0
  • 8,620
  • 5
  • 38
  • 59
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
  • 35,754
  • 55
  • 92
  • 145
Dan Morrill
  • 351
  • 2
  • 4
  • 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
  • 1
  • 6
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,145
  • 4
  • 26
  • 33
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,109
  • 4
  • 48
  • 98
Sergiy Kolodyazhnyy
  • 103,293
  • 19
  • 273
  • 492