您对 shell 配置文件进行了哪些自定义以提高生产力?

San*_*San 25 shell prompt configuration alias

我知道有些人有一些启动脚本,有些人个性化了提示。一位开发人员为他经常访问的长路径和他运行的频繁命令使用短别名。

您对 UNIX 配置文件进行了哪些有效的自定义以提高生产力和易用性?

Sha*_*off 11

.vimrc

输入w!!以下命令以 root 权限保存文件:

cmap w!! w !sudo tee % > /dev/null
Run Code Online (Sandbox Code Playgroud)


.bashrc

greping时不要打扰设备或二进制文件:

alias grep='grep --color=auto --binary-files=without-match --devices=skip'
Run Code Online (Sandbox Code Playgroud)


通过以下方式在网络上共享代码(类似于 pastebin,但更简单) cat 1337.sh | webshare

alias webshare='curl -F "sprunge=<-" http://sprunge.us | xclip'
Run Code Online (Sandbox Code Playgroud)

它会在您的剪贴板中返回一个短网址;您可以附加?whatever-lang到返回的 URL以突出显示它的语法和行编号。


.inputrc

在所有使用 readline 库(许多程序)的地方使用 vi 模式:

set editing-mode vi
set keymap vi
Run Code Online (Sandbox Code Playgroud)


Mik*_*kel 7

在一个命令中创建一个目录和 cd

大多数时候mkdir,我的下一个命令是cd <that dir>.

这可以节省一些输入:

# make a directory and cd to it
mcd()
{
    test -d "$1" || mkdir "$1" && cd "$1"
}
Run Code Online (Sandbox Code Playgroud)

例如:

/home/mikel$ mcd somedir
/home/mikel/somedir$ 
Run Code Online (Sandbox Code Playgroud)

我发现有用的另一件事是制作一次性目录的简单方法。例如,如果我正在编译一个程序,或者即使我试图在该站点上重现问题。有时我可能会忘记清理目录。

# make a temporary directory and cd to it
mtd()
{
    local dir
    dir=$(mktemp -d)
    if test -n "$dir"
    then
        if test -d "$dir"
        then
            echo "$dir"
            cd "$dir"
        else
            echo "mktemp directory $dir does not exist"
        fi
    else
        echo "mktemp didn't work"
    fi
}
Run Code Online (Sandbox Code Playgroud)

显示它工作:

/home/mikel$ mtd
/tmp/tmp.wsnZjJ2KN6
/tmp/tmp.wsnZjJ2KN6$ 
Run Code Online (Sandbox Code Playgroud)

我依赖于/tmp重新启动后系统清理,但可以增强这一点,例如使其在退出外壳后删除临时目录。


Chr*_*urm 0

  • bashrc:我是 zsh 用户,所以我的 bashrc 中有几行可以启动 zsh(如果系统上可用)。
  • zshrc:我编写自己的 zshrc,而不是从 grml 之类的东西复制我的 zshrc(尽管 zshrc 非常好,所以如果你不想推出自己的 zshrc 可能是最好的之一)。
    • 我有一个定制的提示。除此之外,它还显示最后一个命令的返回码(如果它不等于 0)。
    • 我有一些别名。因为我在相当多的服务器上拥有帐户,所以有时必须检查系统上可用的命令版本并相应地设置别名。
    • 我设置了 PATH 变量。
    • 我设置了一些其他环境变量(例如 $EDITOR)
  • vimrc:我是vim用户,所以我有一个定制的和定制的配色方案。
  • screenrc:我使用 GNU screen 来避免打开多个终端并在未登录时保留历史记录,所以我有自己的 screenrc。