-2

当我使用 Linux 时,我还没有定制我使用相当多的 bash shell。所以,我问:你最喜欢的 bash 定制是什么?

4

9 回答 9

2

自定义提示是我的第一个提示。我从不喜欢'$' :)

不过,我自己的提示对我来说非常个人化。一开始它是多线的,很多人不喜欢它,但它很适合我。它还启用了版本控制系统 - 如果您在源代码树中,它将报告 svn 修订/git 分支。

于 2009-06-01T15:09:23.790 回答
1

我建议看一下zsh

它更强大,如果您询问外壳定制,您已经准备好。

一些杀手级功能是路径扩展:

cd /u/l/X<TAB> -> cd /usr/local/X11

和通配符

wc -l **/*.xml

(bash3 也这样做,所以有一些改进)

而且它足够聪明,所以

for i in .*; do cp $i dotfiles; done

不会让你陷入麻烦或失败。

它有很多选择和一个庞大的完成库。

于 2009-06-01T15:05:20.663 回答
1
  • 一堆别名,有些是为了拼写错误,有些是为了给我默认的行为,有些是为了减少击键次数。
    • emcas 到 emacs
    • ls 到 ls -lt
    • pu 到 pushd
    • po到popd
于 2009-06-01T15:16:45.523 回答
0

对我来说重要的一个是为提示添加一些颜色。这使它在我有两组输出时充当视觉分隔符。我可以很容易地看到一个结束和下一个开始。

于 2009-06-01T15:21:08.837 回答
0

其他提示的设置(续行、选择、执行跟踪):

#---------------------------------------------------
#  set Bash prompts
#---------------------------------------------------
export PS2='continue> '
export PS3='choose: '
export PS4='[$LINENO $SECONDS] '
于 2009-06-04T16:13:43.063 回答
0
  • 为命令提示着色
  • 启用一些 shell 选项:

    # Make bash append rather than overwrite the history on disk
    shopt -s histappend
    # Enable cool globbing wildcards
    shopt -s extglob
    
  • 添加一些别名:

    alias ls="ls --color=auto"
    alias hd="hexdump -C"
    
  • 着色grep输出:

    export GREP_OPTIONS=--color=auto
    export GREP_COLORS='ms=01;36'
    
于 2009-06-01T15:38:47.360 回答
0

我赞成 zsh 的建议。虽然我很确定其中大多数也可以在 bash 中使用。

注意小写=命令大写=后缀命令约定。(其中一些来自zsh-lovers 手册页

alias -g bigfiles="find . -size +50000k -exec ls -lh {} \; | awk '{ print \$8 \": \" \$5 }'"
alias -g f="find . -name"
alias -g G='| egrep'
alias -g g="grep"
alias -g H='| head'
alias -g LL="2>&1 | less"
alias -g L="| less"
alias -g NUL="> /dev/null 2>&1"

作为 ubuntu 用户:

alias 'Ag'='sudo apt-get install'
alias 'As'='apt-cache search'
alias 'Ai'='apt-cache show'
alias 'Ar'='sudo apt-get remove'
alias 'Au'='sudo apt-get update;sudo apt-get dist-upgrade'

作为一个红宝石用户

alias Gs='gem search --remote'
alias Gg='sudo gem install'
alias Gi='gem specification'

此外,您可能会花一点时间涉水:http ://dotfiles.org/.bashrc 。那里有很多宝石。

于 2009-06-06T17:48:12.483 回答
0
  1. 我通常确保设置Bash Completion,因为我已经习惯了它,以至于当我无法使用 ssh 完成主机名时,它让我很恼火。

  2. 我设置了提示命令,以便所有终端窗口的标题都告诉我我所在的主机和目录:

    export PROMPT_COMMAND='echo -ne "\033]0;${HOSTNAME}:${PWD}\007"'
    

    这样我就不会得到一堆标题为“xterm”或“终端”或类似名称的窗口。

于 2009-06-06T18:18:48.080 回答
0

我有很多自定义的东西:首先是:

function add
{
cd;
echo "alias $*" >>~/bash/aliases.sh;
source ~/bash/aliases.sh;
cd -;
}

它将别名添加到我的 ~/bash/aliases 文件中,该文件由我的 .bashrc 文件提供。我真正喜欢的其中之一是:

别名程序='回声 $PATH | sed "s/:/ /g" | xargs ls'

它可以与 grep 一起使用来获取各种东西。

我也有这个真的很有帮助:

function up
{
    if [ "$1" = "" ];
    then
            cd ..;
        return;
    fi

    NUM_TIMES=$( echo $(($1 - 1)) );

    for ((x=0;$x<=$NUM_TIMES; x++))
    do
        cd ..;
    done;
}

我在我的 ~/bash/functions 文件中,这只是我添加到 bash 中的一些东西

于 2011-04-23T14:07:16.103 回答