Zsh Vs Bash


Published on

Lightning talk done for American Express Publishing Online team on September 16, 2011. When I started working at AEXP, I was the only one who used zsh while everyone else used bash. The presentation was about why zsh is "the shit."

Published in: Technology

Zsh Vs Bash

  1. 1. zshvs bash<br />
  2. 2. What is zsh?<br />Zsh is a UNIX command interpreter (shell)<br />Extended bash; most resembles the Korn shell (ksh); its compatibility with the 1988 Korn shell has been gradually increasing. <br />enhancements include:<br />command-line editor<br />options for customizing its behavior<br />filename globbing<br />features to make C-shell (csh) users feel more at home<br />extra features drawn from tcsh (another `custom' shell)<br />Most bash configs are compatible<br />
  3. 3. Why zsh?<br />
  4. 4. Awesome tab completion<br />Expand paths<br />ve/pl/re => vendor/plugins/redmine<br />Expand remote paths<br />Expand variables<br />$PATH<tab> => /Users/rober1/.rvm/bin:/usr/local/pgsql/bin:/Users/rober1/bin<br />Approximate<br />/pbulic/html => /public/html<br />
  5. 5. Other features<br />Sharing of command history among all running shells<br />Extended file globbing allows file specification without needing to run an external program such as find<br />Improved variable/array handling<br />Editing of multi-line commands in a single buffer<br />Spelling correction<br />Various compatibility modes, e.g. zsh can pretend to be a Bourne shell when run as /bin/sh<br />Themeable prompts, including the ability to put prompt information on the right side of the screen and have it auto-hide when typing a long command<br />Loadable modules, providing among other things: full TCP and Unix domain socket controls, an FTP client, and extended math functions<br />Fully customizable<br />
  6. 6. Getting started with zsh<br />A lot of people included their dotfiles on GitHub<br />Oh my zsh!<br />By default, zsh has a lot of options already active<br />