创建永久可执行别名

时间:2011-02-28 02:36:22

标签: linux macos bash shell alias

我安装了MySQL(MAMP,Mac OS X),但是每次从shell访问时都需要通过完整路径调用它。我创建了一个别名:alias mysql='/Applications/MAMP/Library/Bin/mysql,但这只会持续我的终端/ Bash会话。

建立可跨用户使用的永久别名的有效方法是什么? (我需要能够从PHP执行命令)。我应该在Bash启动脚本中设置别名(如何完成?),还是编辑sudoers文件更好? (可以使用它的一个例子......)

谢谢 -

编辑 - 基于答案:

我刚尝试创建~/.bashrc并写了以下内容:

  

alias mysql ='/ Applications / MAMP / Library / bin / mysql'

但这似乎没有任何影响。这个文件有特殊的语法吗?

4 个答案:

答案 0 :(得分:47)

将命令添加到~/.bashrc文件中。

要将其提供给所有用户,请将其添加到/etc/profile

答案 1 :(得分:6)

  • 不同的shell使用不同的点文件来存储别名。
  • 对于mac,bash shell使用.bash_profile.profile
  • 对于ubuntu,bash shell使用.bashrc
  • 如果您使用的是zsh shell和ohmyzsh插件,则点文件为.zshrc

传统上,要添加永久别名,您需要打开点文件并手动编写别名,如:

alias hello="echo helloworld"

请记住获取点文件以使其生效。要在ubuntu的bash上获取点文件,请键入source .bashrc使别名可供所有用户使用,写入/etc/profile而不是点文件。请记住键入source /etc/profile以使新别名生效。

如果您只想要一个临时别名,则无需写入点文件。只需在终端上键入相同的命令(alias hello="echo helloworld)即可。

请注意,关闭shell后,通过alias命令创建的临时别名将消失。


如果您正在寻找单个命令来生成别名而无需打开文本编辑器,请继续阅读。

如果你在ubuntu上安装了ruby,你可以使用aka命令创建一个永久别名。

gem install aka2

例如:

aka generate hello="echo helloworld" #will generate a alias hello="echo helloworld" 
aka destroy hello #will destroy the alias hello
aka edit hello #will prompt you to edit the alias.

使用aka,无需使用文本编辑器写入点文件。而且也不需要获取点文件。

答案 2 :(得分:4)

你这是错误的做法。

/Applications/MAMP/Library/bin/添加到您的路径中,或者创建一个脚本来调用MySQL并将其放在已经在您路径中的bin目录中。

答案 3 :(得分:0)

在Mac上,除非您输入

,否则.bashrc文件无法获取 source ~/.bashrc/etc/profile中的

/etc/bashrc

我想我会提到这一点。