Mac 上的“源”命令

问题描述 投票:0回答:6

我在 Mac OS 上有一个

.bashrc
文件,我在其中设置了一些别名。当我完成并输入
source .bashrc
后,别名就完美地工作了。但是,如果打开另一个 shell,我的快捷命令将无法被识别,我需要再次执行
source .bashrc
。怎样才能一劳永逸呢?

macos shell command
6个回答
11
投票

Terminal 和 iTerm 2 默认打开新 shell 作为登录 shell。当 Bash 作为登录 shell 打开时,它显示为

~/.bash_profile
,但不是
~/.bashrc

参见 https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html:

作为交互式登录 shell 调用,或使用 --login 调用

当 Bash 作为交互式登录 shell 或带有 --login 选项的非交互式 shell 被调用时,它首先从文件 /etc/profile 中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找 ~/.bash_profile、~/.bash_login 和 ~/.profile,并从第一个存在且可读的文件中读取并执行命令。启动 shell 时可以使用 --noprofile 选项来抑制此行为。

所以要么:

  1. 使用
    ~/.bash_profile
    代替
    ~/.bashrc
  2. 使用
    ~/.bashrc
    ,但来源
    ~/.bashrc
    来自
    ~/.bash_profile
  3. 告诉您的终端应用程序打开新 shell 作为非登录 shell。

我已经完成了最后两项。例如

tmux
和 Emacs 中的 shell 模式将新 shell 作为非登录 shell 打开。我仍然从
~/.bashrc
获取
~/.bash_profile
,因为当我 ssh 到我的计算机时,Bash 会作为登录 shell 打开。


8
投票

如果您使用的是 Mac,并且希望在打开

source ~/.bash_profile
时自动打开
terminal

  1. 打开终端
  2. 转到首选项
  3. 转到个人资料
  4. 选择然后打开shell
  5. 在运行命令中添加此命令
    source ~/.bash_profile
    enter image description here

3
投票

如果您想在每次打开新选项卡时获取 bash_profile 文件,您还可以在 Iterm 上设置命令。

转到首选项 -> 配置文件 -> 常规 -> 命令

iter-bash-profile


3
投票

我遇到了同样的问题并解决了。 Macos 已将默认 shell 从

bash
更改为
zsh

所以我尝试修改

~/.bashrc
~/.bash_profile
source
但仅适用于当前终端。

事实是您应该修改

~/.zshrc
配置文件。

试试吧我的朋友!


0
投票

终端可能是 zsh 终端,将 .bashrc 文件名更改为 .zshrc 即可完成工作。答案来自: https://stackoverflow.com/a/72019457/27737125


-1
投票
  1. nano ~.bash_profile(打开~.bash_profile)

  2. 别名(){ ssh 用户@ip 地址 }(您可以为别名添加任何命令,我已经显示了特定 IP 地址的 ssh 命令)

  3. 按 Control+O 并按 Enter(保存文件)。 Control+X(退出nano编辑器)

  4. 来源.bash_profile

现在,每当您键入别名时,您就可以在所有终端上获得持久命令。

© www.soinside.com 2019 - 2024. All rights reserved.