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

25 浏览
0 Comments

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

我创建了很多快捷命令并且它们可以使用,但是我想创建一个可以打开终端文本编辑器(nano)并打开 .bash_profile 的快捷命令。

本质上,我想用一个命令代替

sudo nano /Users/myUserName/.bash_profile

(sudo 是为了保存编辑)

我想在 .bash_profile 中手动添加这行代码:

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

问题是,当我运行命令时,它只是在 textedit 中打开文件,并且它是一个锁定文件,意味着我不能进行编辑。

有没有办法做到这一点?

admin 更改状态以发布 2023年5月24日
0
0 Comments

我建议先更改~/.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 ; }

添加并保存后重新启动终端。下面的命令应该能够打开~/.bash_profile文件:

$ edbp

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

0
0 Comments

修复 .bash_profile 的权限问题

.bash_profile 应该归属于用户所有,而不是 root。

我建议使用 sudo chown myUserName /Users/myUserName/.bash_profile 将其还原到正确的用户,然后完全停止使用该 sudo 命令。实际上,不需要超级用户权限就可以编辑该文件。

在我看来,您正在把事情复杂化。

不要使用 root 权限编辑您的文件。

一旦您恢复了正常的所有权、组和权限,您只需要键入以下内容:

nano ~/.bash_profile 或者您喜欢的其他编辑器。

在命令前加上 sudo 会使用超级用户(root)作为有效用户标识符。请度量使用,并有意识地使用。这有点像力量的黑暗面:是的,超级用户可以做更多的事情,但一旦您开始使用,回到正常状态就很困难了,因为您的所有东西都将由超级用户所有,您将开始看到本不应该出现的错误。

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

一个已经运行的 bash 克隆不会自动获取您对 .bash_profile 的更改。需要告诉它来获取这些更改。

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

要么您也可以通过 "sourcing" 该文件来应用一些更改(但也许不会撤消原来的所有更改):

. ~/.bash_profile 可以为您完成这项工作——但它所能做的有限(例如,如果您为 ls 定义了别名,删除该行,并再次源 bash_profile 将无法从正在运行的 shell 中删除该别名,您必须自己处理,或退出该 shell。

另见:

0