尝试创建一个永久别名 - UNIX

3

我正在尝试在Unix中创建一个永久的别名 (alias homedir='cd /export/home/Files/myName')。

我试图将这个命令添加到~/.bashrc文件中,但是我在$HOME目录中找不到该文件。我唯一看到的bash文件是.bash_history,请帮忙。

我甚至执行了ls -a,但仍然没有在$HOME目录中找到它。


2
只需创建文件。 - Kevin
1
你可以像你说的那样执行 vi .bashrc - sgp667
1
貌似很明显的问题:您是否正在使用bash作为您的shell? - Kevin
1
你正在使用bash作为登录shell。你需要编辑~/.profile文件。 - Kevin
1
是的。登录 shell 会源化它,而不是 .bashrc 或其等效文件。通常使用 source 内置命令将一个指向另一个,这样您就不需要编辑两个文件。 - Kevin
显示剩余10条评论
2个回答

4
我建议不要直接将您的别名放在~/.profile中(评论中提到了这一点)。~/.profile文件不是特定于bash的。
相反,您应该将您的别名放在~/.bashrc中。
为什么呢? 1. .bashrc保证是特定于bash的(或者至少是它的任何未来变体) 2. 如果您正确设置了所有内容,那么所有的shell都可以遵循类似的约定。因此,您可以拥有.bashrc、.zshrc、.tcshrc、.kshrc等。 - 如果您像我一样喜欢尝试各种不同的shell,那么你会发现这非常有帮助。
如何设置它 将以下代码放入~/.profile中。
# if running bash
if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi

这将确保只有在使用bash时才运行~/.bashrc。 因此,最终~/.profile也会被涉及; 但您仍然受益于在特定于bash的文件中拥有所有别名(以及任何其他特定于bash的命令)。需要将其添加到.profile的原因在此处解释:What's The difference between the different scripts for bash?
然后将您的别名和其他命令添加到~/.bashrc。如果~/.bashrc不存在,请使用touch ~/.bashrcvi ~/.bashrc创建它。
记得每次修改~/.bashrc时重新应用它。否则,您将无法看到更改。要执行此操作,请运行此代码:
source ~/.bashrc

我确实将别名放在了.bashrc文件中。然后重新登录到Unix,并运行了该别名 - 但没有任何反应。所以我把别名放在了配置文件里。 - Nidhin_toms

0

我找到了解决方案。我把别名添加到了~/.profile中并重新启动了会话。现在可以正常工作了。


@peterh 实际上,这篇帖子确实回答了原始问题。只是措辞不够清晰明了。此外,请注意,回答者就是原帖作者。我已经更新了回答的措辞以使其更加清晰明了。 - Sildoreth
没问题,sildoreth - 你的回答更简洁 - 我不会将我的标记为正确答案,即使你可以这样做.. 我会标记你的。 - Nidhin_toms
你是不是打算将我的回答标记为被接受的答案?看起来你忘了这样做。 - Sildoreth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接