我一直在尝试更改我的根目录中的.bash_profile,但是遇到了一些问题。我在Macbook Pro上的OS X,Yosemite上。据我所知,.bash_profile文件包含每当打开终端应用程序并启动bash shell时自动调用的脚本。 这就是我目前在该文件中写的内容:
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
这完全没问题。但是,我想添加一个别名(在上面的两行下面),如下所示:
alias test='cd ..'
但是,当我保存并启动终端时,我收到以下消息:
-bash: alias: ..": not found
用双引号替换单引号并没有帮助,也没有完全取消它们。但奇怪的是,以下别名有效:
alias c=clear
当我在终端中键入c时,它会清除屏幕,正如您所期望的那样。但是,如果我在bash配置文件中使用引号输入此行:
alias c='clear'
每当我进入终端时,我都会得到以下信息:
-bash: 'clear': command not found
请注意,我在启动时没有收到此别名的错误消息。
我做错了什么?是否有一个设置我需要在某处更改以使别名正常工作?我之前看过别名的例子,它们根本不适用于我。
答案 0 :(得分:17)
听起来好像shell在通过终端登录时没有访问.bash_profile。
.bash_profile
是bash shell的配置文件。当bash shell启动时,shell将执行.bash_profile
中的命令。但是有很多种shell,不同的shell执行不同的配置文件。
终端是一个接收用户输入的软件,shell将执行命令。您可以使用cat /etc/shell
列出可接受的shell。例如:
$ cat /etc/shell
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
默认shell是Mac OX上的bash shell。但是如果你已经安装了zsh,那么默认的shell是zsh,当zsh shell启动时,shell会找到名为.zshrc
的文件,并执行.zshrc
中的命令。
您可以使用echo $SHELL
使用:
$ echo $SHELL
/bin/bash
-> echo $SHELL
/bin/zsh
如果您的默认shell是zsh,则.bash_profile
将不再起作用。 zsh的配置文件是.zshrc
。我想你的问题是你的默认shell不是bash shell。例如,如果你的默认shell是zsh,你应该配置`.zshrc`,只需添加
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"
export PATH
或~/.zshrc
的其他配置。
然后source ~/.zshrc
,配置将立即生效。
答案 1 :(得分:8)
对我而言,它在同一个终端无效。我不得不打开一个新的工作。
答案 2 :(得分:7)
用双引号包装命令对我有用。我正在尝试这个线程中提到的每种可能的方式,但没有一个工作。然后我将单引号替换为双引号,并且有效。
alias mysql_start="sudo /path/to/server/mysql.server start"
答案 3 :(得分:4)
对我而言,杀手是空间和单引号。 alias test =“cd ..”工作。 不要在alias_name =
之间放置任何空格答案 4 :(得分:3)
用户级“系统”文件需要包含“纯文本”。如何为“选择编辑器”设置/配置它可能会有所不同(我不使用Mac,所以我对此没什么帮助。)Soo,
通过直接附加行来创建“来自shell”的个人资料,即删除“坏行”然后:
echo“some command string”>> 〜/路径/ .bash_profile中
使用'vi'或'vim'##应为'安全'
通过以下方式审核您的文件:
cat -v~ / path / bash_profle |更多##看到任何'有趣的字符'?或
cat -ve~ / path / bash_profle |更多##看到任何'有趣的字符'?或
或
vi ~/path/bash_profle # then set 'control codes' to 'on'
set list ## see any 'funny chars' for your 'quotes'?
答案 5 :(得分:1)
你可以在〜/ .bash_profile或〜/ .alias_file中运行别名自定义自动启动...如果使用bash则粘贴文件名别名〜/ .bashrc如果使用zsh则运行〜/ .zshrc。
例如:
if [ -s ~/.bash_profile ]; then
source ~/.bash_profile;
fi
答案 6 :(得分:0)
我通过在vim或nano中编辑我的.bash_profile来解决这个问题。有关文本编辑的内容搞砸了,不知道为什么。
我尝试使用"打开.bash_profile"在记事本中编辑。然而关于符号翻译错误的东西。所以你必须要么" vim .bash_profile"或者" nano .bash_profile"
这样做对我来说纠正了这个问题。
答案 7 :(得分:0)
我意识到Mac可以选择智能引号和破折号。
alias ..='cd ../'
与alias ..=‘cd ../‘
不同,前者有效,后者无效。
答案 8 :(得分:0)
确保别名命令也位于.bash_profile
中。那是我的错。
此外,如果您仅在终端中输入别名,它应该列出所有已知的别名命令,因此,如果您看不到您的命令,则说明出了问题。
答案 9 :(得分:0)
如果无法识别别名,请在打开终端或命令行提示符echo $SHELL
时首先确定正在使用的Shell。对我来说是 / bin / bash ,所以我将在~/.bash_profile
请注意,文件〜/ .bash_profile可以存储两个别名以在终端会话期间调出,并在打开终端会话时自动运行相同的别名。下面的示例将打开一个文件,以便通过 vim-software 通过文本进行编辑。您可以根据需要将其更改为其他 text-editors 。您可以通过闭包方法看到差异。
`vim ~/.bash_profile`