我添加了一些数据到我的.bash_profile
运行两个别名 ruby 版本 19 和正确的 gems。一旦我添加了数据,我就无法再运行任何命令,例如Mac端口命令端口或要运行的命令伙伴文本伴侣。一旦我停用.bash_profile
,.bash_login
甚至.bash_history
一切都恢复正常了。.bash_history
重新生成,不久之后我就.bash_profile
恢复了急需的别名,但随后我失去了再次运行这些命令的选项。以下是所有这些文件的一些输出:
jaspersmbp:~ jasper$ cat .bash_profile
alias ruby='/opt/local/bin/ruby1.9'
alias gem='/opt/local/bin/gem'
jaspersmbp:~ jasper$ cat .bash_login
jaspersmbp:~ jasper$ cat .bashrc
HISTFILESIZE=1000000000
HISTSIZE=1000000
jaspersmbp:~ jasper$ cat .profile
#Django path
export PATH=/opt/local/bin:opt/local/sbin:/opt/local/lib/python2.4/site-packages/django/bin:$PATH
# Apache alias
alias apacherestart='sudo /opt/local/apache2/bin/apachectl -k restart'
#Subversion OSX for Eclips Joomla Development
export PATH=/opt/subversion/bin:$PATH
#Test
#echo $PATH
##
# Your previous /Users/jasper/.profile file was backed up as /Users/jasper/.profile.macports-saved_2012-05-18_at_09:47:58
##
# MacPorts Installer addition on 2012-05-18_at_09:47:58: adding an appropriate PATH variable for use with MacPorts.
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
# Finished adapting your PATH environment variable for use with MacPorts.
有谁知道为什么.bash_profile
激活会导致使用 mate 和 port 等命令?我真的需要.bash_profile
工作,这样我就可以使用别名,并且我需要适用于各种软件的 MacPorts 端口命令。
答案1
Bash 读取~/.bash_profile
它是否存在,~/.profile
如果不存在。因此,当您创建 时~/.bash_profile
,您的~/.profile
不再被使用。与其他 shell 不同,您的别名并非特定于 bash,因此您不妨将它们放在~/.profile
.
另外,您启动交互式登录 bash,bash 读取~/.bash_profile
或~/.profile
(特定于 bash 的会话启动脚本,或通用 shell 会话启动脚本,如果不存在),但不读取~/.bashrc
(交互式 bash 启动脚本)。因此,将这两行放入您的文件中~/.bash_profile
以按应有的方式加载所有内容:
. ~/.profile
case $- in *i*) . ~/.bashrc;; esac
答案2
看起来 MacPort 正在生成您的配置文件,并搞乱您的PATH
等等。解决此问题的最简单方法是自己动手 - 禁用与路径和别名相关的点文件的 MacPort 生成/创建,删除.bash_profile
和.profile
文件,然后将以下内容附加到~/.bashrc
文件中:
# define aliases
alias ruby='ruby1.9'
alias apacherestart='sudo apachectl -k restart'
# define hist properties
HISTFILESIZE=1000000000
HISTSIZE=1000000
# define path to programs
PATH=/opt/local/bin:opt/local/sbin:/opt/subversion/bin:/opt/local/apache2/bin/:/opt/local/lib/python2.4/site-packages/django/bin:$PATH
# define manpath
MANPATH=/opt/local/share/man:$MANPATH
# export env vars
export HISTFILESIZE HISTSIZE PATH MANPATH
启动一个新终端并运行echo $PATH
以检查所有内容是否都在其中,然后测试安装在/opt/local/bin
.由于上述语句中的所有目录PATH=
现在都在您的目录中,因此PATH
您不需要使用二进制文件的绝对路径的别名 - 例如,您不再需要别名,gem
因为您只需运行gem
.
更新:如果您~/.bashrc
没有来源,请放入source ~/.bashrc
干净的~/.bash_profile
.
答案3
嗯,也许是有$PATH
问题?前后检查过吗?