linux alias 是 shell 内置命令,核心作用是给长命令或者复杂命令组合创建自定义短别名,输入别名就等价执行原本完整命令,主要用来简化日常运维操作,减少重复输入,提升命令行操作效率,这个命令属于 bash zsh 等 shell 自带内建命令,不是独立外部程序,只在当前终端会话临时生效,如果想要永久生效,需要写入 shell 对应的配置文件,不同发行版默认已经预置部分 alias,比如 ll 一般就是 ls l 的别名,是 linux 新手和运维人员最常用的基础命令之一。使用 alias 的根本原因,是 linux 很多原生命令参数很长,经常需要重复敲一长串参数,手工输入不仅耗时还容易写错参数,别名相当于做一层命令映射,把长命令绑定简短名称,同时还可以给默认命令增加固定参数,比如给 rm 增加交互确认参数,降低误删风险。学习这个命令可以先掌握基础查看新增删除别名,再理解临时生效和永久生效的区别,接着学习配置文件加载机制,最后掌握特殊场景下绕过别名执行原命令,整套流程学完就可以熟练在日常终端使用 alias。
基础语法与常用操作
| 操作类型 | 命令格式 | 作用说明 |
|---|---|---|
| 查看全部别名 | alias | 列出当前 shell 所有已经生效别名 |
| 查看单个别名 | alias 别名名称 | 单独查询这个别名对应的原始命令 |
| 新增临时别名 | alias 别名 =' 原始命令' | 当前终端立刻生效,关闭终端失效 |
| 删除别名 | unalias 别名名称 | 移除当前会话里面的别名 |
| 全部清除别名 | unalias a | 清除当前 shell 全部自定义别名 |
永久生效配置原理
第一 bash shell,普通用户一般写入家目录下 bashrc 文件,root 用户对应 root 目录的 bashrc,修改完成之后执行 source bashrc,重新加载配置,不用重启终端。
第二 zsh shell,配置文件是 zshrc,修改之后执行 source zshrc 加载。
第三 全局配置,所有用户都生效的别名,可以写入 etc bashrc,这个文件对系统全部登录用户生效,一般运维统一规范的时候才修改。
第四 加载顺序,shell 启动的时候会按顺序读取系统全局配置,再读取用户家目录私有配置,后加载的别名会覆盖前面同名别名。
典型实用示例
第一 alias ll='ls -l' 最经典别名,长格式列出目录内容
第二 alias la='ls -al' 显示全部文件包含隐藏文件
第三 alias rm='rm -i' 给 rm 增加交互确认,防止误删除
第四 alias grep='grep --color=auto' grep 输出关键字自动着色
第五 alias gs='git status' 简化 git 常用命令
进阶要点与坑点说明
第一 别名只支持简单命令映射,不能直接接收动态参数做复杂逻辑,如果需要带参数复杂脚本,优先写 shell 函数,不要强行用 alias。
第二 同名覆盖,如果新别名和系统原有别名同名,新别名会覆盖旧别名,执行的时候优先匹配别名,再查找原生命令。
第三 绕过别名,想要跳过别名直接执行原生原命令,可以在命令前面加反斜杠,比如 rm,就不会触发 rm i 这个别名。
第四 非交互式 shell,比如脚本里面调用 shell,默认不会加载 bashrc,所以脚本里面自定义 alias 默认不生效,这是非常高频踩坑点。
第五 别名里面如果命令包含空格特殊符号,必须用单引号包裹,否则 shell 解析会报错。
【常见问题】
问题 1 linux alias 命令详解里面为什么关闭终端别名就消失
回答 1 linux alias 命令详解里面,直接在终端执行 alias 创建的别名属于会话临时别名,只存在当前 shell 内存,终端关闭 shell 进程销毁,别名就自动清除,想要保留必须写入 bashrc 这类配置文件。
问题 2 linux alias 命令详解里面 unalias 和直接删除配置文件内容有什么区别
回答 2 linux alias 命令详解里面 unalias 只是在当前会话内存删除别名,不会修改 bashrc 配置文件,下次打开终端别名还会加载,想要永久删除,需要同时删掉配置文件里面对应的 alias 行。
问题 3 linux alias 命令详解里面为什么 shell 脚本识别不到 alias
回答 3 linux alias 命令详解里面,非交互式 shell 默认不会读取 bashrc 配置,所以脚本环境下 alias 默认不生效,如果需要在脚本使用,需要手动开启 expand aliases 选项或者改用 shell 函数实现。
【免责申明】
以上内容为 linux alias 命令技术科普,不同 shell 版本发行版配置文件路径和行为会存在细微差异,操作系统配置文件前建议备份原文件,内容仅供学习参考,生产环境修改请谨慎评估风险。


