Difference between revisions of ".bashrc"

From CSEE Documentation
(Added an image for the command prompt)
Line 20: Line 20:
 
  export PS1="\[\033[34m\]\u\[\033[0m\]@\[\033[32m\]\h\[\033[0m\]:\[\033[31m\]\w\[\033[0m\]\\$ "
 
  export PS1="\[\033[34m\]\u\[\033[0m\]@\[\033[32m\]\h\[\033[0m\]:\[\033[31m\]\w\[\033[0m\]\\$ "
  
This corresponds to a prompt that looks like the following, but with described below.
+
This translates to a comman dprompt that looks like the following.  
  ii69854@linuxserver1:~$
 
  
The username is blue, the @ is white (or black depending on your background), a green hostname, a white (or black) colon, a red directory, and a white (or black) $.
+
[[File:Command prompt.png|alt=ii69854@aerial:~$]]
  
 
This format has the advantage of being usable by <tt>scp</tt>; if you have to copy a file from that directory onto another machine, you can copy/paste the whole string into your <tt>scp</tt> command.
 
This format has the advantage of being usable by <tt>scp</tt>; if you have to copy a file from that directory onto another machine, you can copy/paste the whole string into your <tt>scp</tt> command.

Revision as of 15:35, 27 February 2024


This article has been marked for cleanup.
This may mean changing style and grammar, adding new links, or fact-checking content.

A .bashrc or .bash_profile file contains settings that are applied to non-interactive or interactive shells respectively. All the things described in this document are applicable to both, so it's reasonable to create only one and symlink the other one to it (or include it by saying something like . ~/.bashrc in your .bash_profile).

Simple things

Setting the PATH

It's often nice to have more binaries directly accessible in your PATH environment variable. To do this, I use the following settings:


 export PATH=/usr/site/bin:/usr/sbin:/usr/bin:/usr/local/bin:/bin
  

if [ "$LOGNAME" = "root" ]; then
  export PATH=$PATH:/sbin
fi

Changing the prompt

Having a colored prompt can be helpful to notice quickly where the prompt is in a long listing of output, and having a reminder who you are logged in as and where you are never hurts. To accomplish this, I use the following prompt:

export PS1="\[\033[34m\]\u\[\033[0m\]@\[\033[32m\]\h\[\033[0m\]:\[\033[31m\]\w\[\033[0m\]\\$ "

This translates to a comman dprompt that looks like the following.

ii69854@aerial:~$

This format has the advantage of being usable by scp; if you have to copy a file from that directory onto another machine, you can copy/paste the whole string into your scp command.

Changing the terminal name

Setting the name of the terminal is reflected in the title bar in gnome-terminal, or with a similar mechanism for other terminals (or GNU screen). I use the following settings:

case $TERM in
  xterm*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
    ;;
  screen*)
    PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"'
    ;;
  *)
    ;;
esac

Changing your default pager

If you are on a sufficiently old system, the outdated pager more is used. You may want to set the pager to less instead.

export PAGER=less