Bash自定义

时间:2009-06-01 15:02:41

标签: linux bash customization

虽然我使用Linux,但我还没有自定义我的bash shell,我使用了相当数量的bash shell。所以,我问:你对bash最喜欢的定制是什么?

9 个答案:

答案 0 :(得分:2)

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

我自己的提示对我来说非常个人化。这是一个多线的开始,很多人不是粉丝,但它很适合我。它还启用了版本控制系统 - 如果你在源代码树中,它会报告svn revisions / git branches。

答案 1 :(得分:1)

我建议您查看zsh

它功能更强大,如果你问的是shell自定义,你已经准备好了。

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

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

和globbing

wc -l **/*.xml

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

这很聪明,所以

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

不会给你带来麻烦或失败。

它有很多选项和大量的完成库。

答案 2 :(得分:1)

  • 一堆别名,一些用于拼写错误,一些只是为了给我默认的行为,一些用于少量按键。
    • emcas to emacs
    • ls to ls -lt
    • pu to pushd
    • po to popd

答案 3 :(得分:0)

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

答案 4 :(得分:0)

  • Colorize your command prompt
  • 启用一些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'
    

答案 5 :(得分:0)

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

#---------------------------------------------------
#  set Bash prompts
#---------------------------------------------------
export PS2='continue> '
export PS3='choose: '
export PS4='[$LINENO $SECONDS] '

答案 6 :(得分:0)

我是第二个zsh建议。虽然我很确定其中大部分都可以在bash中使用。

注意lowercase =命令upercase = suffix-command约定。 (其中一些来自zsh-lovers manpage

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。 那边有很多宝石。

答案 7 :(得分:0)

  1. 我通常会确保设置Bash Completion,因为我已经习惯了它,当我无法使用ssh标记完成主机名时,它会让我烦恼。

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

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

    这样我就不会得到一堆标题为“xterm”或“Terminal”或类似的东西。

答案 8 :(得分:0)

我有大量的自定义内容:首先是:

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

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

alias programs ='echo $ 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中的一些内容