终端认为"nano"在我输入.bash_profile命令中"open"(mac)



我已经制作了一堆用作快捷方式的命令,它们都能工作,但我想制作一个命令,用.bash_profile.快捷方式打开终端中的文本编辑器nano

本质上不是键入

sudo nano /Users/myUserName/.bash_profile

(sudo是这样我可以保存编辑)

我想要一个放在.bash_profile中的命令来为我做这件事,手动添加这行代码:

alias commands='sudo nano /Users/myUserName/.bash_profile'

问题是,当我运行该命令时,它只是在textedit中打开文件,而它是一个锁定的文件,这意味着我无法编辑。

有办法做到这一点吗?

修复.bash_profile上的权限

.bash_profile通常应由用户拥有,而不是由root用户拥有。

我建议使用sudo chown myUserName /Users/myUserName/.bash_profile将其恢复为正确的用户,然后完全停止使用sudo命令。应该不需要拥有超级用户权限来编辑该文件。

IMHO你让它变得比需要的更困难。

请勿使用root权限编辑文件

一旦你恢复了正常的所有权、组和权限,你只需要键入

nano ~/.bash_profile或任何你最喜欢的编辑器。

命令前面的sudo使用superuser(root)作为有效的userid,谨慎使用。这有点像力量的黑暗面:是的,超级用户可以做得更多,但一旦你开始使用它,就很难回到光明面,因为你所有的东西都将归超级用户所有,你会开始看到不应该失败的事情失败。

在已经运行的shell中应用已编辑的.bash_profile

已经运行的bash副本不会自动接收您对.bash_profile所做的任何更改。需要通知它接收这些更改。

您可以通过启动另一个终端来启动一个新shell。

或者,您也可以通过"来源"文件应用一些更改(但可能不会撤消原始文件中的所有内容!).bash_profile:

. ~/.bash_profile将为您做到这一点,但它所能做的是有限的(例如,如果您为ls定义了一个别名,删除该行并再次查找bash_profile将不会从您正在运行的shell中删除别名,您必须自己完成,或者退出该shell。

另请参阅:

  • 如何在OSX上编辑$PATH(.bash_profile)
  • sudo open-e~/.bash_profile权限被拒绝mac
  • 如何从命令行重新加载.bash_profile

我建议首先更改~/.bash_profile的(正确的)权限/所有权。然后你可以为一个命令制作一个函数来编辑它;也可以尝试将nano设置为默认编辑器:

$ sudo chown user:staff ~/.bash_profile

这应该会更改权限(用用户和组代替您的权限)。然后,如果您想要编辑文件的快捷方式,请将其添加到~/.bash_profile:

# Preferred editor (nano)
export EDITOR=nano
# Edit ~/.bash_profile in nano
edbp () { nano ~/.bash_profile ; }

添加并保存后,重新启动终端。以下命令应为nano~/.bash_profile:

$ edbp

快速/轻松地编辑您的个人资料。

相关内容

  • 没有找到相关文章

最新更新