我正在尝试向运行 OS X 的 Mac 上的 $PATH 变量添加一个位置。我正在关注这教程,其中提到编辑 .bashrc 文件。即使我在主目录中也看不到此文件
cd ~/
ls -A
我可以继续创建该文件吗?或者我错过了什么?
答案1
如果该文件确实不存在并且您实际上正在运行 Bash,您可能可以在 中找到一个工作副本来帮助您开始(它在注释中有很多常见用法的示例)/etc/skel/.bashrc
。默认情况下,这是.bashrc
添加到每个新用户的主目录中的。至少大多数 GNU/Linux 发行版都是这样。
不过,确保您首先运行 Bash 很重要,因为如果您正在运行其他 shell,它不会读取.bashrc
您创建或复制的任何文件。
从以下位置查找您的用户帐户的默认 shell:
getent passwd $(whoami) | awk -F: '{print $NF}'
从以下位置找出当前正在运行的 shell:
ps -p $$ -o cmd=
更新
在 Mac OS X 下,你不会找到
/etc/skel
,你应该/System/Library/User\ Template/English.lproj/
按解释查看在本次 SU 问答中提示的搜索你的另一个问题表明它
getent
确实在 Mac OS X 下不可用。我的建议很糟糕。不过,我真的认为您应该将其放在对答案的评论中,而不是开始一个新问题。
答案2
你可以这样做:
echo 'export PATH=$PATH:/path/to/whatever' >> ~/.bashrc
如果文件存在,这会将行追加export PATH=$PATH:/path/to/whatever
到文件末尾;~/.bashrc
如果文件不存在,则创建文件并将该行写入其中。
如果您不确定文件是否存在,那么这是写入(或创建)文件的安全方法。
您还可以使用if [ -f $PATH_TO_FILE ] ; then $DO_SOMETHING ; fi
表达式对文件(如果存在)进行条件操作。
无论如何,创建文件是安全的 - 并且简单地使用echo
附加到文件重定向运算符是一种安全且简单的方法来执行您想要的操作。不需要文本编辑器或任何东西。
您可以检查它是否有效:
cat ~/.bashrc
这应该打印 bashrc 文件。
现在您可以将其应用于当前会话(无需打开新的终端窗口)并验证您的PATH
设置是否正确,如下所示:
source ~/.bashrc && echo $PATH
答案3
如果您尝试写入的文件不存在,任何合理的编辑器都会创建该文件。因此运行
your_favourite_editor ~/.bashrc
将打开现有文件或空文件。保存后,该文件将被覆盖(如果存在)或创建(如果不存在)。这甚至不是特定于 UNIX 的(即它也适用于 Windows)。
如果该文件不存在,则创建该文件是安全的 - 请参阅手册页INVOCATION
的部分bash(1)
。您可能想source ~/.bash_profile
作为第一件事(当然,如果您有该文件)。
答案4
您可以按照以下步骤操作:
echo "PATH=$PATH:/path/to/whatever" >> ~/.bashrc && source ~/.bashrc
现在你可以使用 gedit 打开 bashrc
gedit .bashrc
您还可以编辑用户名 root。