如何在 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