the friendly interactive shell

    正如正如它的名字,Fish 是一款非常友好的 Shell,大力推荐!使用命令 sudo apt-get install fish 安装它。完成后 ,运行命令 fish 切换到 fish, exit 返回 bash。


简单介绍一下它的优点:
    1.自动补全、语法高亮
    bash 的自动补全默认只是补全命令、路径,如果想补全变量、参数等,通常需要使用复杂的组合键(见上面 bash 的介绍),即便您能够记住它们,快
速准确的按下这些组合键,也是一种严峻的考验。而 FISH 的自动补全可以自动识别语法,补全正确的内容。并且具有语法高亮的功能,比如用 MPLAYER 放
    MP3:mpl<tab>(ayer) -l<tab>(oop) <tab>(0)-sh<tab>(uffle) -pl<tab>(aylist) <tab>(mp3_playlist)一阵猛按 <tab> 键,一个蛮长的命令就完成了。
    补全结果不唯一时给出的提示中含有简短的说明,这样通常也不用看帮助了:)比如:mplayer -l<tab> 后,自动将参数补全为 -lo 然后给出提示
-{lo}adidx (Load index from file) -{lo}op (Loop playback) {花括号中为青色文字}它的语法高亮功能十分有用,如果你输入的命令是正确的,则用青色显示,正确的参数用白色显示,错误的则一律用红色。


    2. 方便的历史纪录搜索
    还是上面的那个命令
    mplayer -loop 0 -shuffle -playlist mp3_playlist用上翻配合下翻浏览命令历史,直到找到这个命令,当然那样太慢了。
还可以输入以上命令中的某一部分,如 uffle 只要翻一次就可以找到了
(还可以 META+上翻在已输入部分中插入某一历史单词)


    3.文件夹历史纪录
    dirh (dir history)就可以显示当前会话中进入的文件夹纪录
    使用 prevd 和 nextd 跳转
    假如曾进入过 1 2 3 4 5 这几个文件夹, prevd 4 可以让你在 5 中直接跳到 1。


    4.其它的功能
    fish 基本是兼容 bash 的。键绑定也非常的相似,少数的键绑定不尽一致,例如:
    \C-h 删除光标前的一个字符(bash 为退格键,不方便)
    修改 /etc/fish_inputrc 这个文件,增加以下行:
    "\C-n": history-search-forward
    "\C-p": history-search-backward
    现在使用 Ctrl+p 上翻,使用 Ctrl+n 下翻。如果已经在命令行中输入字符,那么 Ctrl+p 就是在历史纪录向上
    查找您输入的字符,Ctrl+n 为向下查找,非常的方便。


    设定您的默认 Shell Shell Shell Shell
    如果能够拥有 root 权限,可以直接修改 /etc/passwd 文件。找到您用户 ID 起始的行
    user:x:1000:112:user,,,:/home/user:/bin/bash

    最后一个字段为登录后的默认 Shell, /bin/bash 是程序 bash 的主程序路径。 fish 主程序的路径通常为/usr/bin/fish 。
    /etc/shells 中列出系统中所有可用 Shell( /bin/false 代表禁用 Shell)
    也可以使用如下命令更改您的默认 Shell
    chsh -s /usr/bin/fish
(需要输入您的密码)
    Tip:可以使用 whereis xxx 命令,来查找 xxx 程序的安装位置,详见搜索


    设定命令的搜索路径

    使用 echo $PATH ,可以显示 $PATH 变量,输出如下:
    /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/bin/X11 /usr/games /usr/X11R6/bin
    它是一个环境变量,代表执行命令时,Shell 的搜索路径。
    执行一个命令时,Shell 会到 $PATH 变量定义的路径去搜索,并运行与命令同名的可执行文件。如果程序 、
    脚本等可执行文件并不在上面的路径中,就必须使用绝对路径或者相对路径定位可执行文件。
    例如:
    /usr/local/mplayer -menu xxx.rmvb
    /etc/init.d/powernowd start
    cd /usr/local/ && ./mplayer -menu xxx.rmvb
    可以修改 /etc/environment 文件来设定您的命令搜索路径,找到 PATH 起始的行
    PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin"
    在双引号中添加您的自定义路径,并以 : 分隔。