From FreeBSDwiki
Jump to: navigation, search

Switching from bash

Getting used to tcsh is one of the hardest things to do, when coming from Linux, where bash is the default login shell. It's not necessarily evil to switch your login shell to bash, which is a very decent shell (it's hard to do without functions, which make sh and bash more suitable for scripting than tcsh). We're only warned to be aware that if you switch root to bash, you might find a few gotchas. Without being religious about it, although accustomed to bash, you might decide that since FreeBSD is oriented toward tcsh you'll give it a try. Of course, since this shell is new to you, you read the manual and you do most of your experimenting as a non-root user.

But after you get started, you run into more dissimilarities than you expected. So many things that made the command line faster and simpler than clicking icons in X now seem to be missing.

  • One thing that irks you is that your system scripts are written in a different language than the commandline - sh as opposed to tcsh, so that you can't just lift expressions out of a script and paste them into the commandline to run them, or visa versa.
  • You press TAB and nothing happens.
  • You are looking to repeat a command that matches an expression somewhere after the beginning of the line.
  • tcsh has no equivalent to function
  • Pattern matching doesn't always work as you expected.
  • You have to type "rehash" after you install a new program.
  • You type login -f user as root, and you're told:
    login: Too many arguments.

The list of differences grows longer, so your start is rough and you have to refer to the man page more often than you expected. You're thinking of giving up, and sticking with what you know better: bash. How do you overcome these differences? What keeps you using tcsh? I think there's a great article in that. What do you think? Does it belong in this one, or a separate article? Ninereasons 13:53, 9 June 2006 (EDT)

Personal tools