Customizing bash
To set up bash so that cut and paste work properly, click on the
"Properties" button of the window, then on the "Misc" tab. Make sure
that "QuickEdit mode" and "Insert mode" are checked. These settings
will be remembered next time you run bash from that shortcut. Similarly
you can set the working directory inside the "Program" tab. The entry
"%HOME%" is valid, but requires that you set HOME in
the Windows environment.
Your home directory should contain three initialization files
that control the behavior of bash. They are
.profile, .bashrc and
.inputrc. The Cygwin base installation creates
stub files when you start bash for the first time.
.profile (other names are also valid, see the bash man
page) contains bash commands. It is executed when bash is started as login
shell, e.g. from the command bash --login.
This is a useful place to define and
export environment variables and bash functions that will be used by bash
and the programs invoked by bash. It is a good place to redefine
PATH if needed. We recommend adding a ":." to the end of
PATH to also search the current working directory (contrary
to DOS, the local directory is not searched by default). Also to avoid
delays you should either unset MAILCHECK
or define MAILPATH to point to your existing mail inbox.
.bashrc is similar to
.profile but is executed each time an interactive
bash shell is launched. It serves to define elements that are not
inherited through the environment, such as aliases. If you do not use
login shells, you may want to put the contents of
.profile as discussed above in this file
instead.
shopt -s nocaseglob
will allow bash to glob filenames in a case-insensitive manner.
Note that .bashrc is not called automatically for login
shells. You can source it from .profile.
.inputrc controls how programs using the readline
library (including bash) behave. It is loaded
automatically. For full details see the Function and Variable
Index section of the GNU readline manual.
Consider the following settings:
# Ignore case while completing
set completion-ignore-case on
# Make Bash 8bit clean
set meta-flag on
set convert-meta off
set output-meta on
The first command makes filename completion case insensitive, which can
be convenient in a Windows environment. The next three commands allow
bash to display 8-bit characters, useful for
languages with accented characters. Note that tools that do not use
readline for display, such as
less and ls, require additional
settings, which could be put in your .bashrc:
alias less='/bin/less -r'
alias ls='/bin/ls -F --color=tty --show-control-chars'