20

When I start terminal in Ubuntu, I see:

ilya@HOST:~$

I need to add a timestamp to this, something like:

2011-10-09T09:32:00 ilya@HOST:~$

How can I configure this?

9

There is a good article about how to change your bash prompt and what all the special symbols (like \h) mean. It also has a link about how to change the colors in you prompt.

As far as applying the changes in your .bashrc, just run source ~/.bashrc

18

Put this at end of your ~/.bashrc

PS1="\D{%F}T\t $PS1"

Then restart your terminal. For explanations, read manual page of bash, search for ^PROMPTING

(sorry, the first version of this answer reported erroneously single quotes instead of double)

3

To apply the ~/.bashrc change type this inside the running terminal:

exec bash

No need to restart the terminal. This is useful for each change (in the terminal environment)

3

I find that a great setup is to have 3 colourized groups:

  • username & hostname
  • current location
  • current git branch

Plus a newline so you are back to the left side!

i.e.
enter image description here

You can have all this by having the following in your .bashrc file in your home directory.
Works for Unix and OS X

parse_git_branch () {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;33m\]$(parse_git_branch)\[\033[00m\]\n\$ '

If you want this plus your timestamps in four colors you can have:

$ PS1='\033[01;31m\] \D{%F} \t \[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;33m\]$(parse_git_branch)\[\033[00m\]\n\$ '

as in:

enter image description here

though personally I think I'll now go with:

parse_git_branch () {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'
}
PS1='\033[01;31m\]\t\033[00m\]:'
PS1=$PS1'\[\033[01;32m\]\u@\h\[\033[00m\]:'
PS1=$PS1'\[\033[01;34m\]\w\033[00m\]:\033[01;33m\]$(parse_git_branch)\[\033[00m\]\n\$ '
PS2='\[\033[01;36m\]>'

for

enter image description here

0

To do this temporarily but immediately/on-the-fly, for example so that you can have some privacy while making a screencast, you can do the following

echo PS1='$\ ' > /tmp/ps1 && source /tmp/ps1 && rm /tmp/ps1

The PS1 variable sets the format, source applies that setting by reading from a file.

Now the command line looks like this:

$ 

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.