在 Ubuntu(以及大多数 Linux 发行版)中,**别名(alias)**通常定义在 shell 的配置文件中。要“导出”别名,常见需求有几种,下面按场景说明。
alias
或者查看某个具体别名:
alias ll
常见配置文件:
| Shell | 配置文件 |
|---|---|
| Bash | ~/.bashrc、~/.bash_aliases |
| Zsh | ~/.zshrc |
| 系统级 | /etc/bash.bashrc |
Ubuntu 默认使用 Bash,最常见的是:
~/.bashrc
或者:
~/.bash_aliases
alias > ~/alias_backup.txt
这会保存当前所有别名到文件。
如果你只想导出写在配置文件里的别名:
grep '^alias' ~/.bashrc ~/.bash_aliases 2>/dev/null
导出到文件:
grep '^alias' ~/.bashrc ~/.bash_aliases 2>/dev/null > ~/alias_backup.txt
⚠️ 注意:export 不能导出 alias,alias 不是环境变量。
要让别名在子 shell 中生效,需要:
shopt -s expand_aliases
示例:
shopt -s expand_aliases
alias ll='ls -l'
⚠️ 但一般情况下,子 shell 默认不会继承 alias,这是 shell 的设计限制。
在原机器:
scp ~/.bash_aliases ~/.bashrc user@new_host:~/
在新机器执行:
source ~/.bashrc
grep '^alias' ~/.bashrc ~/.bash_aliases > aliases.sh
在新机器:
cat aliases.sh >> ~/.bashrc
source ~/.bashrc
如果只是临时定义:
alias ll='ls -l'
关闭终端就失效。
✅ 永久生效写法(写入配置文件):
echo "alias ll='ls -l'" >> ~/.bashrc
source ~/.bashrc
❌ 错误:
export alias ll='ls -l'
✅ 正确:
alias ll='ls -l'
如果你能说明具体场景(比如:备份、迁移、脚本中使用、Docker 中、跨用户),我可以给你更精确的方案。