.bash_profile中的别名无法正常工作

Adr*_*n M 10 macos bash terminal .bash-profile

我一直在尝试更改我的根目录中的.bash_profile,但是遇到了一些问题.我在Macbook Pro上的OS X,Yosemite上.据我所知,.bash_profile文件包含每当打开终端应用程序并启动bash shell时自动调用的脚本.这是我目前在该文件中编写的内容:

PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
Run Code Online (Sandbox Code Playgroud)

这完全没问题.但是,我想添加一个别名(在上面的两行下面),如下所示:

alias test='cd ..'
Run Code Online (Sandbox Code Playgroud)

但是,当我保存并启动终端时,我收到以下消息:

-bash: alias: ..": not found
Run Code Online (Sandbox Code Playgroud)

用双引号替换单引号并没有帮助,也没有完全取消它们.但奇怪的是,以下别名有效:

alias c=clear
Run Code Online (Sandbox Code Playgroud)

当我在终端中键入c时,它会清除屏幕,正如您所期望的那样.但是,如果我在bash配置文件中使用引号输入此行,则:

alias c='clear'
Run Code Online (Sandbox Code Playgroud)

每当我进入终端时,我都会得到以下信息:

-bash: 'clear': command not found
Run Code Online (Sandbox Code Playgroud)

请注意,我在启动时没有收到此别名的错误消息.

我究竟做错了什么?是否有一个设置我需要在某处更改以使别名正常工作?我已经看过以前的别名示例,它们根本不适用于我.

nod*_*ejh 21

听起来好像shell在通过终端登录时没有访问.bash_profile.

.bash_profile是bash shell的配置文件.当bash shell启动时,shell将执行命令.bash_profile.但是有很多种shell,不同的shell执行不同的配置文件.

终端是一个接收用户输入的软件,shell将执行命令.您可以使用cat /etc/shell列出可接受的shell.例如:

.zshrc

默认shell是Mac OX上的bash shell.但是如果你已经安装了zsh,那么默认的shell是zsh,当zsh shell启动时,shell会找到命名的文件.zshrc,然后执行命令echo $SHELL.

你可以使用.bash_profile你使用:

.zshrc

~/.zshrc

如果您的默认shell是zsh,source ~/.zshrc则不再正常工作.zsh的配置文件是.bash_profile.我想你的问题是你的默认shell不是bash shell.例如,如果你的默认shell是zsh,你应该配置`.zshrc`,只需添加

.bash_profile

或其他配置cat /etc/shell.

然后.zshrc,配置将立即工作.


小智 8

用双引号包装命令对我有用.我正在尝试这个线程中提到的每种可能的方式,但没有一个工作.然后我将单引号替换为双引号.

    alias mysql_start="sudo /path/to/server/mysql.server start"
Run Code Online (Sandbox Code Playgroud)


Kan*_*thy 8

对我来说,它在同一个终端不起作用.我不得不打开一个新的工作.


小智 3

用户级“系统”文件需要包含“纯文本”。如何为你的“选择的编辑器”设置/配置它可能会有所不同(我不使用Mac,所以我对此没有太多帮助。)Soo,

  1. 通过直接附加行来“从 shell”创建您的配置文件,即删除“坏行”,然后:

    echo "一些命令字符串" >> ~/path/bash_profile

  2. 使用 'vi' 或 'vim' ## 应该是 '安全'

  3. 通过以下方式查看您的文件:

    猫 -v ~/path/bash_profile | 更多##看到任何“有趣的字符”吗?或
    cat -ve ~/path/bash_profile | 更多##看到任何“有趣的字符”吗?或者

或者

vi ~/path/bash_profle # then set 'control codes' to 'on'
set list ## see any 'funny chars' for your 'quotes'?
Run Code Online (Sandbox Code Playgroud)