我也使用 Debian 9.3,但那里没有ll
(小写 LL)Out Of Box(OOB)。您必须自己创建它,方法是将其添加到其中一个.rc
文件(
alias ll="ls -la"
)。
在 Ubuntu 中,当然,你有 OOB,但是,即使我们在 Ubuntu OOB 中拥有它,我还是手动在最后添加了这个别名,/etc/bash.bashrc
只是为了在测试系统:
alias ll="ls -la"
然后我获取了该文件source /etc/bash.bashrc
,以便更改生效。
.rc
您认为我在 Ubuntu 中执行的这个别名复制(创建一个已经存在的别名,并且在另一个文件中再次影响我的用户)是否有问题?
ll
乍一看,使用 2 个相同的别名似乎不会对 Ubuntu 测试造成损害。但从某种意义上来说,这会造成损害或问题吗?
编辑:为了确保我完全清楚 --- 我在 Ubuntu 中也保留了原始别名,我没有删除它。我在两个不同的地方有 2 个别名在做同样的事情,因此我很担心。
答案1
您可以随意重新定义别名,次数不限。对系统没有任何惩罚或“危险”。每个定义都会覆盖前一个定义。唯一需要注意的是,您可能会感到困惑。
例子
让我们创建一个别名D
:
$ alias D=date
$ D
Mon Jan 8 18:57:57 PST 2018
我们可以使用alias
来查看定义D
:
$ alias D
alias D='date'
现在,让我们重新定义D
:
$ alias D=pwd
$ D
/tmp
$ alias D
alias D='pwd'
新的定义只是取代了旧的定义。
Ubuntu 初始化序列
在 Ubuntu 下启动一个交互式非登录 bash shell 时,bash 会读取并执行 中的命令/etc/bash.bashrc
,然后读取并执行 中的命令~/.bashrc
。
在 Ubuntu(但不是 Debian)下,默认~/.bashrc
文件包含以下定义:
alias ll='ls -alF'
由于/etc/bash.bashrc
在之前执行,因此中~/.bashrc
的任何定义都将被中的定义覆盖。ll
/etc/bash.bashrc
~/.bashrc
启动登录 shell 或非交互式 shell 时,规则有所不同。请参阅man bash
了解详情。