在 UNIX 中更新 /etc 中的 .profile

在 UNIX 中更新 /etc 中的 .profile

如何在 UNIX 操作系统的 /etc/security 文件夹中的 .profile 中附加以下文本?

PS1='hostname -s':$LOGNAME'[$PWD]'

我试过:

print 'export PS1='hostname -s':$LOGNAME'[$PWD]' ' >> profile

我的输出给出:

export PS1='hostname -s':$LOGNAME[/etc]

与[/等]。

答案1

您发布的命令没有什么意义。如果您在某处读到过,请更仔细地阅读。'hostname -s'事实上很可能应该是`hostname -s`,即用反引号而不是单引号。在与计算机打交道时,标点符号通常很重要。`hostname -s`也可以这样写$(hostname -s),并且应该这样写(带反引号的语法是历史上第一个出现的,但已被弃用,因为它不太规则)。

单引号内的文本按字面解释。反引号内的文本或者$(…)命令替换:它被命令的输出替换。

所以那条线应该是

PS1=$(hostname -s):$LOGNAME'[$PWD]'

这会将您的提示设置为计算机名称、冒号、您的用户名以及括号内的当前工作目录。

您不应该编辑以下文件/etc- 这适用于所有用户,如果您需要在这里询问,那么您不应该为所有用户编辑此类设置。您应该PS1在 shell 配置文件中进行设置,该文件可能是您的主目录中的文件.kshrc(假设您的 shell 是 ksh — 如果您的 shell 是 bash,请使用.bashrc;如果您的 shell 是 zsh,请使用.zshrc)。

答案2

你必须转义 $PWD,可能通过写 \$PWD 来代替。由于您没有提供诸如您正在使用的 shell 之类的上下文,因此我无法肯定地说。在 bash 中正确的命令是

echo "export PS1='hostname -s':$LOGNAME'[\$PWD]' " >>profile

相关内容