在我的 Linux 机器上 - 我执行以下操作:
$ env | grep -i LESSOPEN
LESSOPEN=|/usr/bin/lesspipe.sh %s
所以从env
命令我看到:
LESSOPEN=|/usr/bin/lesspipe.sh %s
我想更改变量LESSOPEN
,因此我进行以下搜索以找到它所在的位置,以便我可以进行此更改。
$ grep -Ril "LESSOPEN" /
但grep
搜索并没有发现任何此类文件LESSOPEN
。
答案1
在 Red Hat 和 CentOS 系统上,它在/etc/profile.d/less.sh
.在版本 5 上,这包含
# less initialization script (sh)
[ -x /usr/bin/lesspipe.sh ] && export LESSOPEN="${LESSOPEN-|/usr/bin/lesspipe.sh %s}"
在其他系统(例如版本 7)上,该值可能是||/usr/bin/lesspipe.sh %s
;以|
和开头的值之间的解释略有不同||
,详细信息请参见更少的手册页。
如果您希望系统上所有类似 bash shell 的用户都看到不同的值,您可以编辑该文件,或者通过编辑~/.bashrc
或~/.bash_profile
添加一行来覆盖它export LESSOPEN=whatever
。
在Linux系统上,grep -r string /
或者grep -R string /
在读取某些特殊文件时可能会遇到问题。grep
读取时会挂起/dev/rfkill
,并且由于我认为是缓冲区分配错误,读取 中的某些大文件时会耗尽内存/proc
。另一种方法是排除/dev
and /proc
:
find / '(' -path /proc -o -path /dev ')' -prune -o -type f -exec grep -il lessopen {} +