在玩 Terminal 时,我发现有很多方法可以创建永恒的别名。
我是一个 Linux 新手,据我所知,我正在做:
sudo ln -s /path/to/executable /usr/local/bin/desired_alias
- 添加
desired_alias = '/path/to/executable'
~/.bashrc
取消注释以下行
~/.bashrc
:if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi
并
desired_alias = '/path/to/executable'
放入~/.bash_aliases
都具有相同的效果。
第一种方法和第二种方法有什么区别?
答案1
使用第一种方法,您不是在创建别名,而是在创建符号链接。符号链接是符号链接的简称:
符号链接是充当指向其他文件的指针的文件。[...] 符号链接是一种特殊类型的文件,其内容是另一个文件(即链接所引用的文件)的路径名字符串。换句话说,符号链接是指向另一个名称的指针,而不是指向底层对象的指针。
只有使用第二种方法,您才实际上创建了一个别名。
别名允许将字符串替换为单词,当该字符串用作简单命令的第一个单词时。shell 维护一个别名列表,可以使用 alias 和 unalias 内置命令设置和取消设置这些别名(请参阅下面的 SHELL 内置命令)。如果每个简单命令的第一个单词未加引号,则检查它是否有别名。如果有,则用别名的文本替换该单词。
您可以在可以输入命令并让 shell (狂欢在这种情况下)对其进行解释,但是为了使别名在其他 shell 中可用,需要在启动时(shell 启动,而不是计算机启动)由 shell 解释的文件中定义它。
对于 bash,这些是/etc/bash.bashrc
(系统范围的)和~/.bashrc
。当 shell 以交互模式启动时(例如使用时Terminal
),将解释这些文件。我不会提及配置文件,因为它们的用途不同。
因此,您需要添加别名以便~/.bashrc
它们在每个交互式 shell 中都可用。
该.bash_aliases
方法实现确切地与添加别名相同~/.bashrc
,但具有更容易被程序解析和操作的额外好处。
意思是在当前正在运行的 shell 上下文中. ~/.bash_aliases
源(加载) 。_~/.bash_aliases_