该less命令通过环境变量接受其默认值LESS,因此您可以
export LESS='-F -g -i -M -R -S -w -X -z-4'
Run Code Online (Sandbox Code Playgroud)
在您的会话开始时。
是否可以以类似的方式更改head和返回的默认行数tail?
别名不是选项,因为它破坏了显式选项设置(例如在脚本中):
head -n 15 -5
Run Code Online (Sandbox Code Playgroud)
head至少在 GNU 和 busybox 中都失败并出现错误。
由于像-5, 之类的旧样式选项+5仅被识别为第一个参数,因此您可以执行以下操作:
head()
case $1 in
([-+][0-9]*) command head "$@";;
(*) command head -n 15 "$@"
esac
Run Code Online (Sandbox Code Playgroud)
这将影响head当前 shell 调用的s。
如果你想影响所有的 head 调用,你需要把它写成一个脚本,它首先出现在你的$PATH:
mkdir -p ~/bin && cat > ~/bin/head << \EOF &&
#! /bin/sh -
case $1 in
([-+][0-9]*) ;;
(*) set -- -n 15 "$@"
esac
exec /usr/bin/head "$@"
EOF
chmod +x ~/bin/head
PATH=~/bin:$PATH export PATH
Run Code Online (Sandbox Code Playgroud)