alias 是 shell 内置命令,作用就是给长命令设置简短别名,简化重复输入,比如把很长的 ssh 连接命令,或者带参数的 rm ls 命令,定义成短名字,当前终端生效,想要永久生效,需要写入用户环境配置文件,alias 只在当前 shell 会话有效,关闭终端就失效,这个是新手最容易踩坑的点。
一 基础语法
alias 别名 =' 原始命令 '
示例
alias ll='ls -alh'
alias gs='git status'
alias sshweb='ssh root@192.168.1.100'
二 常用配套操作
| 操作 | 命令 | 说明 |
|---|---|---|
| 查看全部别名 | alias | 列出当前 shell 所有已经定义的别名 |
| 查看单个别名 | alias ll | 查看 ll 对应的原始命令 |
| 删除别名 | unalias 别名 | 当前会话移除这个别名 |
| 永久生效 | 写入配置文件 | bash 写入~/.bashrc,zsh 写入~/.zshrc |
三 操作步骤
第一步 临时定义别名,终端直接执行 alias 别名 =' 命令 '
第二步 输入别名测试,确认可以正常运行
第三步 如果需要永久保存,编辑用户家目录下.bashrc,把 alias 语句添加进去
第四步 执行 source ~/.bashrc,让配置立刻加载,不用重新登录
示例
vi ~/.bashrc
添加 alias ll='ls -alh'
source ~/.bashrc
四 深度原理与关键特性
alias 属于 shell 内置功能,不是独立程序,只对交互式 shell 生效,脚本里面默认不会加载别名,这是重点,shell 脚本执行的时候别名一般不生效。
如果别名和系统原有命令同名,会覆盖原来命令,比如 alias rm='rm -i',执行 rm 就自动带交互确认,很多系统默认就自带这类安全别名。
如果想要临时绕过别名,执行原始命令,可以在前面加反斜杠,示例 \rm,就不会调用别名。
五 常见踩坑场景
1 只在终端临时写 alias,关闭终端之后别名消失,忘记写入.bashrc
2 写入.bashrc 之后没有 source,新别名不生效
3 shell 脚本里面使用别名,发现不识别
4 别名命令里面带参数的时候,写法错误,alias 不能像函数那样灵活接收复杂参数,复杂逻辑推荐用 shell 函数
5 别名名称和系统命令冲突,误覆盖原有命令行为
六 补充拓展
如果需要全局所有用户都生效,可以写入 /etc/bashrc 或者 /etc/profile.d/ 目录下的配置文件,所有登录用户都可以读取这个别名。
【常见问题】
问题 1 linux 中 alias 用法,为什么关闭终端别名就没了
回答 1 linux 中 alias 用法,临时 alias 只保存在当前 shell 内存,终端关闭内存清空,想要永久生效必须写入.bashrc 并且 source 加载。
问题 2 linux 中 alias 用法,bash 和 zsh 配置文件一样吗
回答 1 linux 中 alias 用法,bash 是~/.bashrc,zsh 是~/.zshrc,不同 shell 配置文件不一样,不要写错。
问题 3 linux 中 alias 用法,怎么删除已经定义的别名
回答 1 linux 中 alias 用法,使用 unalias 别名,只对当前终端会话生效,如果是永久别名,还需要去.bashrc 里面删除对应那一行。
问题 4 linux 中 alias 用法,脚本里面别名为什么不生效
回答 1 linux 中 alias 用法,别名默认只在交互式 shell 生效,非交互的 shell 脚本不会加载别名,复杂逻辑建议改用 shell 函数。
【免责申明】
本文内容基于 bash shell alias 通用用法整理,别名覆盖原有系统命令会改变命令行为,修改全局配置影响所有用户,本文不对别名配置错误造成命令异常承担责任。


