我知道有些人有一些启动脚本,有些人则对提示进行个性化设置。一位开发人员对他经常访问的长路径和他运行的频繁命令使用短别名。
为了提高工作效率和易用性,您对 UNIX 配置文件进行了哪些有效的定制?
答案1
.vimrc
通过键入以下内容以 root 权限保存文件w!!
:
cmap w!! w !sudo tee % > /dev/null
.bashrc
ing时不要打扰设备或二进制文件grep
:
alias grep='grep --color=auto --binary-files=without-match --devices=skip'
通过以下方式在网络上共享代码(类似于pastebin,但更简单)
cat 1337.sh | webshare
alias webshare='curl -F "sprunge=<-" http://sprunge.us | xclip'
它返回一个短网址在你的剪贴板中;你可以附加?whatever-lang
到返回的 URL使其语法突出显示并对行进行编号。
.inputrc
在使用 readline 库的所有内容(许多程序)中使用 vi 模式:set editing-mode vi
set keymap vi
答案2
在一个命令中创建目录和 cd
大多数时候我这样做mkdir
,我的下一个命令是cd <that dir>
。
这可以节省一些打字时间:
# make a directory and cd to it
mcd()
{
test -d "$1" || mkdir "$1" && cd "$1"
}
例如:
/home/mikel$ mcd somedir
/home/mikel/somedir$
我发现有用的另一件事是创建一次性目录的简单方法。例如,如果我正在编译一个程序,或者即使我试图在该站点上重现问题。有时我可能会忘记清理目录。
# 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
}
显示它工作:
/home/mikel$ mtd
/tmp/tmp.wsnZjJ2KN6
/tmp/tmp.wsnZjJ2KN6$
我依赖于/tmp
重新启动后的系统清理,但可以增强这一点,例如使其在退出 shell 后删除临时目录。
答案3
我喜欢让 bash 提示符显示上一个命令的退出代码(如果它非零)。我也喜欢我的 shell 在我使用它时让我高兴起来,所以我添加了一点愚蠢:
smiley() {
RC=$?
[[ ${RC} == 0 ]] && echo ':)' || echo ":( ${RC}"
}
export PS1="\$(smiley) \h [\A] [\W] \$ "
因此,当我运行命令时,我会得到一些不错的视觉反馈:
:) mycomputer [23:03] [~] $ sh -c 'exit 0'
:) mycomputer [23:03] [~] $ sh -c 'exit 11'
:( 11 mycomputer [23:03] [~] $
编辑:这是我放在 ~/.bashrc 中的内容
答案4
.zshrc
:
alias l='ls -CF'
alias ll='ls -ClhF'
alias la='ls -CaF'
alias lla='ls -CalhF'
alias l.='ls -CAF --ignore=\*'
alias ll.='ls -CAlhF --ignore=\*'
alias t='tree -C'
PS1=$'%{\e[0;33m%}%m %{\e[32;1m%}%~ %{\e[0;31m%}%#%{\e[m%} '
bindkey '^[[3~' delete-char
export GREP_OPTIONS="--color"
.xmodmaprc
:
clear lock
keycode 9 = Caps_Lock ISO_Next_Group Caps_Lock ISO_Next_Group
keycode 66 = Escape NoSymbol Escape
add lock = Caps_Lock
(交换 Escape 和 Caps Lock 键)。