为所有用户在 shell 登录时运行脚本

为所有用户在 shell 登录时运行脚本

我有一个名为“als”的脚本,它可以解析用户.bashrc文件中的别名,我希望任何通过 SSH 登录的用户都可以运行该脚本。

这应该显示类似于每日消息 (MOTD) 横幅。不过,MOTD 横幅是静态数据。

这是代码。

#!/bin/bash
echo
echo Your aliases:
echo \(from ~/.bashrc\)
echo
cat .bashrc | egrep 'alias.+\=' | tr -s [:space:] | sed 's_^ alias_alias_' | sed 's_alias__' | sort | sed 's_=_\t\t_' | sed 's_^ __'

如果我将 ./als 附加到我的~/.profile文件,它会起作用,但这只对我执行。同样,我希望这对所有在 shell 登录的用户都运行

答案1

你可以将脚本保存在 中/etc/profile.d/als.sh。根据 Ubuntu环境变量手动的:

每当进入 bash 登录 shell 时(例如从控制台或通过 ssh 登录时),/etc/profile.d 目录中带有 .sh 扩展名的文件都会被执行,并且当桌面会话加载时,DisplayManager 也会执行这些文件。

您还应该用绝对路径修改相对路径:

 cat /home/$USER/.bashrc | egrep 'alias.+\=' | tr -s [:space:] | sed 's_^ alias_alias_' | sed 's_alias__' | sort | sed 's_=_\t\t_' | sed 's_^ __'  

这应该适用于所有用户。

相关内容