Configuration

哪個文件定義了 LESSOPEN 環境變數?

  • March 9, 2019

在我的 Linux 機器上 - 我執行以下操作:

$ env | grep -i LESSOPEN
LESSOPEN=|/usr/bin/lesspipe.sh %s

所以從env命令我看到:

LESSOPEN=|/usr/bin/lesspipe.sh %s

我想更改變數LESSOPEN,所以我進行以下搜尋以找到它的位置,以便進行更改。

$ grep -Ril "LESSOPEN" /

但是grep搜尋沒有找到任何這樣的文件LESSOPEN

在 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; |以and開頭的值之間的解釋略有不同,手冊頁中||詳細介紹了less

如果您希望系統上類似 bash 的 shell 的所有使用者看到不同的值,您可以編輯該文件,或者通過編輯~/.bashrc~/.bash_profileexport LESSOPEN=whatever一行來為自己覆蓋它。

在 Linux 系統上,grep -r string /或者grep -R string /在讀取某些特殊文件時可能會遇到問題。grep讀取時會掛起/dev/rfkill,並且由於我認為是緩衝區分配錯誤,讀取/proc. 另一種方法是排除/devand /proc

find / '(' -path /proc -o -path /dev ')' -prune -o -type f -exec grep -il lessopen {} +

引用自:https://unix.stackexchange.com/questions/155051