Bash 别名无法保存超过一个会话?

问题描述 投票:0回答:2

我正在尝试创建一个 bash 别名来遍历几个文件夹,但关闭终端后该别名不会保存。

我已经将别名保存在 .bashsrc 文件中,并且还运行了命令。 〜/.bashsrc。

这是我所做的:

sudo nano .bashsrc

bashsrc 内部:

alias x = 'cd Documents/Photos/Family'

然后保存并退出。

. ~/.bashsrc

别名在该终端窗口中工作,但如果我重新启动终端或打开新选项卡,则显示“未找到命令”。

bash
2个回答
10
投票

您应该更喜欢在

~/.bashrc
~/.bash_profile
中设置更改。

alias x='cd Documents/Photos/Family'

此外,请记住别名不会导出到子 shell,并且在使用此别名时,您始终需要位于

Documents
所在的目录中。我猜你的
Documents
目录存在于 home 中,所以如果你执行以下操作会更好:

alias x="cd "$HOME"/Documents/Photos/Family"

只需将此行添加到两个文件的末尾并保存即可。

简单来说,有两种类型的 shell 适合您的情况:登录和非登录交互式 shell。

在启动登录 shell 之前,获取

.bash_profile
,在启动非登录 shell 之前获取
.bashrc

因此您应该在两者中添加更改。

如果您使用的是 macOS,则

.bashrc
对于您的情况几乎没有用处。 MacOS 会将您在终端中打开的每个 shell 视为登录 shell。虽然有一些例外我不记得了。

正如 David 在评论中提到的,在某些发行版中

~/.bash_profile
只是
~/.profile
(例如 Debian、openSUSE 等)。


0
投票

我制作了一个脚本,可以更改

alias
以将别名回显到文件中以保存它们。还使您能够在不打开文件的情况下删除别名。您使用它就像平常使用
alias
一样

https://github.com/FloppyDisco/alias-command

© www.soinside.com 2019 - 2024. All rights reserved.