I am really amazed more people on HN aren't using fish. Everyone should check it out: http://ridiculousfish.com/shell/
Status codes and argument lists:
$status # replaces $?
$argv # replaces $@
Aliases are just functions (configure your startup in
~/.config/fish/config.fish): # alias ls="ls -lrth"
function lr; ls -lrth $argv; end
For-loops are familiar: # for n in one two three; do echo $n; done
for n in one two three; echo $n; end
The lack of '!$' confounded my hard-wired fingers until I settled on Alt-u to avoid up-arrows (see /usr/share/fish/functions/fish_default_key_bindings.fish): bind \eu history-token-search-backward # replaces !$
bind \ei history-token-search-forward # bonus fun
The remaining price for fish's pseudo-telepathic assistance is the occasional frustration with applications that rely on the value of a user's default shell (/etc/passwd).http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.g...