.bash_profile中定义的别名在osx中不起作用(代码片段)

author author     2023-05-08     630

关键词:

我在我的.bash_profile中定义了三个别名但我的bash shell没有读它。定义的别名在我的终端中不起作用,我无法解决此问题。

alias handybook="cd /Users/rsukla/development/repos/handybook/"

这行在.bash_profile中定义,但它在我的shell中不起作用。

到目前为止我尝试过的事情:

  • 我创建了.bashrc文件并定义了别名,但它也无效。
  • 如果我使用source ~rsukla/.bash_profile然后别名工作正常但我想永久别名所以我不必每次打开我的shell都使用source

当我在alias中定义时,任何想法为什么.bash_profile不工作?

答案

我们仍然不知道为什么没有自动加载别名。

您的别名应该从.bash_profile加载。这是OS X中bash的默认行为。

mklement0their answer in this thread写了更多关于这个问题的文章。

A hacky workaround

打开终端的首选项。您可以使用以下命令指定启动shell的命令:

terminal preferences

每次在shell打开时指定要提供的文件时,不必手动获取dotfiles。以下是bash的选项列表:

Usage:  bash [GNU long option] [option] ...
    bash [GNU long option] [option] script-file ...
GNU long options:
    --debug
    --debugger
    --dump-po-strings
    --dump-strings
    --help
    --init-file
    --login
    --noediting
    --noprofile
    --norc
    --posix
    --protected
    --rcfile
    --restricted
    --verbose
    --version
    --wordexp
Shell options:
    -irsD or -c command or -O shopt_option      (invocation only)
    -abefhkmnptuvxBCHP or -o option

您可以考虑使用/bin/bash --rcfile alias_file_of_yours或类似的东西。

Go for goat if you need aliases using the cd command.

作为附注,我建议你看看goat。它可以让你轻松管理这样的cd别名。

我用它然后写了它。

另一答案

假设:

  • 您使用OS X的本机终端,Terminal.app或流行的替代iTerm2
  • bash确实是你的shell(这是OS X上的默认值)

然后应为每个交互式shell加载~/.bash_profile,因为默认情况下两个终端程序都会创建登录shell。 Bash登录shell源~/.bash_profile,但不是~/.bashrc

请注意,这与大多数Linux发行版不同,后者在启动时执行单个登录shell,后来的交互式shell是非登录shell,只加载~/.bashrc,而不是~/.bash_profile。 确保在登录和非登录交互式shell中加载定义的常见技术是将定义放在~/.bashrc中,然后使用以下行从~/.bash_profile中获取它: [[ -f ~/.bashrc ]] && . ~/.bashrc


您可以通过从现有shell执行bash -l来按需创建登录shell;如果加载别名,则问题必须与您的默认shell和/或终端程序的配置方式有关。

  • echo $SHELL告诉你你的默认shell是什么。
  • 如果您使用Terminal.app,Terminal > Preferences...,tab General,设置Shells open with会告诉您是使用默认shell还是自定义shell。

了解 Oracle 别名 - 为啥在查询中不识别别名,除非包装在第二个查询中?

】了解Oracle别名-为啥在查询中不识别别名,除非包装在第二个查询中?【英文标题】:UnderstandingOraclealiasing-whyisn\'tanaliasnotrecognizedinaqueryunlesswrappedinasecondquery?了解Oracle别名-为什么在查询中不识别别名,除非包装在第二个查询中... 查看详情

自定义 NSButton 在 CoreMIDI 回调函数中不起作用

】自定义NSButton在CoreMIDI回调函数中不起作用【英文标题】:CustomNSButtonnotworkingfromCoreMIDIcallbackfunction【发布时间】:2014-01-0803:05:13【问题描述】:我正在创建一个钢琴应用程序(用于OSX),它有一个屏幕键盘,可以显示用户在他... 查看详情

OSX移动光标事件在网络浏览器中不起作用

】OSX移动光标事件在网络浏览器中不起作用【英文标题】:OSXmovecursoreventnotworkinginwebbrowser【发布时间】:2018-08-0617:36:51【问题描述】:我正在尝试以编程方式移动鼠标光标(这是有效的),然后在网络浏览器(如Chrome)中读取... 查看详情

为啥在超级终端中工作的永久别名在 vs-code bash 终端中不起作用?

】为啥在超级终端中工作的永久别名在vs-codebash终端中不起作用?【英文标题】:Whyworkingpermanentaliasinhyperterminaldoesn\'tworkinvs-codebashterminal?为什么在超级终端中工作的永久别名在vs-codebash终端中不起作用?【发布时间】:2019-10-0507:... 查看详情

在 xampp osx 中设置 $PATH

...间】:2015-05-2718:56:49【问题描述】:大家早上好,我的.bash_profile文件中的变量$PATH有一点问题。我有一个安装了XAMPP的OSX系统。我以这种方式编辑了我的.bash_profile:exportXAMPP_HOME="/Applications/XAMPP/xamppfiles"exportPATH 查看详情

如何在 mac 终端中运行 ~/.bash_profile

】如何在mac终端中运行~/.bash_profile【英文标题】:Howtorun~/.bash_profileinmacterminal【发布时间】:2013-09-2001:52:20【问题描述】:所以我正在安装一些用于编码和个人使用的东西,我需要在终端中运行它(如果你没有阅读标题,我在Mac... 查看详情

SQL 视图别名在 H2 SELECT 语句中不起作用

】SQL视图别名在H2SELECT语句中不起作用【英文标题】:SQLViewaliasnotworkinginH2SELECTstatement【发布时间】:2020-01-0514:34:18【问题描述】:我有一张桌子student和一个视图annual_performance。我正在创建一个视图student_annual_performance,如下所... 查看详情

在 Qt 中注册自定义 MetaType 的别名类型

】在Qt中注册自定义MetaType的别名类型【英文标题】:RegisteringaliasestypesofcustomMetaTypeinQt【发布时间】:2020-01-1709:42:50【问题描述】:我的datamodel.h头文件中有一个简单的自定义类型XyztReal及其别名:#ifndefIMUCONTROLLERDATAMODEL_H#defineIMUC... 查看详情

macosx-如何在bash_profile中配置全局环境变量

...rofile在OSX下,我们用如下命令打开环境变量配置文件:open~/.bash_profile 典型的环境变量配置如下: #javaexportJAVA_HOME=/home/myuser/jdk1.7.0_03exportPATH=$JAVA_HOME/bin:$PATHexportCLASS 查看详情

如何正确构建别名?

...analias?【发布时间】:2013-10-2823:30:49【问题描述】:我在.bash_profile中添加了一个新别名python3.3,以便轻松启动python3.3版本的pyzo。我可以在终端中毫无问题地使用此别名,但是当我使用subprocess.check_call(args=["python3.3",onePyFile... 查看详情

mybatis类型别名

...对parameterType或resultType中指定的类型,在<typeAliases>中定义别名,然后在parameterType或resultType中使用定义的别名1:单个别名定义1):定义别名<!--type:类型全限定名alias 查看详情

opencv 在 mac osx 中不显示视频

】opencv在macosx中不显示视频【英文标题】:opencvdoesnotdisplayavideoinmacosx【发布时间】:2013-04-1816:52:07【问题描述】:我刚刚在我的Mac上安装了OSX10.8.3的opencv,我用brew安装了它:brewinstallopencv版本是2.4.3>>>ls/usr/local/Cellar/opencv2... 查看详情

mac下面使用alias

...2.使得设置的别名生效3.让别名永久生效,新建或打开~/.bash_profile。(~/.bash_profile是terminal每次打开时就会运行的?)在里面输入第二步的命令,保存关闭如果不设进行第三步骤,重启terminal,我们设置好的别名就失效了,需要手... 查看详情

mybatis-03

...ybatis-031、mybatis的别名【两种】在MyBatis中可以为变量类型定义别名。简化映射文件的定义,在核心配置文件中定义的别名。别名应用:MyBatis框架先将resultType定义忽略大小写,作为类型的完全命名,查找类型,如果类型不存在,则... 查看详情

命令别名

定义一个命令别名,引用另一个命令的执行结果命令别名功能:在管理和维护Linux系统的过程中,将会使用到大量命令,有一些很长的命令或用法经常被用到,重复而频繁地输入某个很长命令或用法是不可取的。这时可以使用命... 查看详情

OSX And​​roid Studio 的 gradle 无法读取 .bash_profile 环境变量 [重复]

】OSXAnd​​roidStudio的gradle无法读取.bash_profile环境变量[重复]【英文标题】:OSXAndroidstudio\'sgradlecannotread.bash_profileenvironmentvariable[duplicate]【发布时间】:2015-11-2908:25:01【问题描述】:我在macOSX和Windows中有一个KEY_STRING作为系统变量... 查看详情

如何创建 Bash 别名?

】如何创建Bash别名?【英文标题】:HowdoIcreateaBashalias?【发布时间】:2012-02-1613:53:27【问题描述】:我在OSX上,我需要在配置文件中添加类似aliasblah="/usr/bin/blah"的内容,但我不知道配置文件在哪里。【问题讨论】:切线... 查看详情

如何在 Dart 中使用类型别名/类型定义(也是非函数)?

】如何在Dart中使用类型别名/类型定义(也是非函数)?【英文标题】:HowdoIuseTypeAliases/Typedefs(alsonon-function)inDart?【发布时间】:2021-06-2501:22:18【问题描述】:我很早就知道Dart中的functiontypedefs。它们也在thisquestion的回答中进行... 查看详情