Exercise 1.2: Making an rc file¶
Having a .bashrc
or .zshrc
file allows you to configure your shell how you like.
a) If you are using Linux or macOS, open a terminal and type
echo $SHELL
This will tell you if you are using a Bash shell or Zsh, which will tell you which kind of rc file to set up in the next part of the exercise. If you are using Windows, you will create a .bashrc
file.
b) Create a .bashrc
or .zshrc
file in your home directory. If you already have one, open it up for editing using Jupyter’s text editor.
c) It is often useful to alias
functions to other functions. For example, I am always worried I will accidentally delete things by accident. I therefore have the following line in my .zshrc
file.
alias rm="rm -i"
You should create aliases for commands like ls
based on the flags you like to always use. Do the same for rm
and mv
(I use the -i
flag with these). To figure out what flags are available, you can look at the man
pages. Asking Google will usually give you the information you need on flags.
If you like, you can use my .bashrc
file, available in ~/git/bootcamp/misc/jb_bashrc
, or my .zshrc
file, available in ~/git/bootcamp/misc/jb_zshrc
.
d) Depending on your operating system, if you are using Bash, your ~/.bashrc
file may or may not be properly loaded upon opening a new bash shell. You may, e.g. for new macOS versions, need to explicitly source your .bashrc
file in your ~/.bash_profile
file. Therefore, you should add the following to the bottom of your ~/.bash_profile
file.
if [ -f $HOME/.bashrc ]; then
. $HOME/.bashrc
fi
Solution¶
Again, this was mostly you messing around with the command line. The contents of my .bashrc file is shown below.
# Give me a nice prompt that tells me my pwd
export PS1="\[\e[1;32m\]\u\[\e[0m\]@\e[1;36m\]\h\[\e[0m\] [\w]\n% "
# Keep me out of trouble!
alias rm="rm -i"
alias mv="mv -i"
alias cp="cp -i"
# customize list output
alias ls="ls -FGh"
export LSCOLORS="gxfxcxdxCxegedabagacad"
And my .zshrc file is:
# This is a nice prompt; gives green check mark if last command executed
# without a problem and gives a red questionmark with an exit code
# if it didn't, along with pwd.
PROMPT='%(?.%F{green}√.%F{red}?%?)%f [%B%F{240}%10~%f%b]
%# '
# Aliases for save moving, removing, and copying of files
alias rm="rm -i"
alias mv="mv -i"
alias cp="cp -i"
# Nicely formatted listing
alias ls="ls -FGh"
# Nice set of colors
export LSCOLORS="gxfxcxdxCxegedabagacad"