【问题标题】:Bash Customizations [closed]Bash 自定义 [关闭]
【发布时间】:2009-06-01 15:02:41
【问题描述】:

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

【问题讨论】:

标签: linux bash customization


【解决方案1】:

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

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

【讨论】:

  • 这表明链接到 pastebin 或其他东西...
  • 你的愿望等等...pastebin.com/m8d69059
  • 除非破坏了非ASCII字符。 /me 寻找更好的 pastebin。
  • 不错,但我不喜欢这些颜色。
【解决方案2】:

我建议查看zsh

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

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

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

和通配符

wc -l **/*.xml

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

而且它足够聪明,所以

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

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

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

【讨论】:

    【解决方案3】:
    • 一堆别名,有些是为了拼写错误,有些只是为了给我默认的行为,有些是为了减少击键次数。
      • emcas 到 emacs
      • ls 到 ls -lt
      • pu 到 pushd
      • po 到 popd

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:
        • 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'
          

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

            我赞同 zsh 的建议。虽然我很确定其中大部分也可以在 bash 中使用。

            注意小写=命令大写=后缀命令约定。 (其中一些来自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。 那里有很多宝石。

            【讨论】:

              【解决方案8】:
              1. 我通常确保设置 Bash Completion,因为我已经习惯了它,以至于当我无法使用 ssh 完成主机名时,它让我很恼火。

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

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

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

              【讨论】:

                【解决方案9】:

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

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

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

                别名程序='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 中的一些内容

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-09-07
                  • 2011-10-19
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多