使用 nano
等编辑器的时候时常发现编辑完了无法保存,因为没有写入权限。其实 nano
打开无写入权限的文件时候会提示,但是我从来都不注意。这篇文章介绍了一个小 utility,自动在打开文件前检查并提示授权写入权限。
0x01 - 演示
$ nano /etc/ssh/sshd_config
/etc/ssh/sshd_config is not writable. Edit with sudo? [y/n]
0x02 - 安装
直接复制以下代码运行 默认nano
安装在 /bin/nano
添加 nano-helper
cat << 'EOF' | sudo tee /usr/local/bin/nano-helper > /dev/null
#!/bin/sh
# Checks file permissions before opening nano.
sudo=
editor=/bin/nano
if test -e "$1" && test ! -w "$1"; then
if test -t 0 && test -t 2; then
read -p "$1 is not writable. Edit with sudo? [y/n] " yn
case $yn in
y|Y)
sudo=true
;;
n|N)
sudo=
;;
*)
printf "\nInvalid choice. Please try again later.\n" 1>&2
exit 1
;;
esac
else
printf "%s is not writable. Fix the permissions or run \"cat\" instead." "$1" 1>&2
exit 1
fi
fi
${sudo:+sudo} "$editor" "$1"
EOF
添加执行权限
sudo chmod +x /usr/local/bin/nano-helper
添加 nano alias
echo "alias nano=nano-helper" >> ~/.bashrc
source ~/.bashrc
使用其他编辑器的童鞋请自动把上面的 nano
都替换成你的编辑器。
Sources:
- Mikel's Answer from StackExchange
Comments
注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。