首页 > 精选要闻 > 宝藏问答 >

问 linuxalias 命令 linux alias 别名命令详解

2026-11-08 22:24:16
最佳答案

答

linux alias 是 shell 内置命令,不是独立的外部程序,核心作用就是给长命令设置简短别名,输入自定义短名称就可以自动执行对应的原始长命令,大幅减少重复输入,提升运维操作效率,这个命令在 bash zsh 等主流 shell 里面都支持,很多新手会混淆一个关键点,直接在终端执行 alias 定义的别名,只对当前这个终端会话生效,关闭终端之后别名就会失效,如果想要永久生效,必须写入对应的 shell 配置文件,很多系统默认就自带内置别名,比如 ll 就是 ls -l 的别名,日常敲 ll 其实就是调用 alias 机制实现的,理解 alias 的本质是 shell 层面的命令替换,掌握临时定义 查看别名 删除别名 永久保存 优先级规则,是 linux 基础运维非常实用的技能。

基础语法

临时创建别名格式

alias 别名 =' 原始完整命令 '

查看全部已经存在别名

alias

删除当前会话别名

unalias 别名

清除全部临时别名

unalias -a

常用参数对照表

操作命令写法说明
创建别名alias la='ls -a'给 ls -a 设置别名 la
列出全部别名alias打印当前 shell 所有生效别名
删除单个别名unalias la移除 la 这个别名
清空全部别名unalias -a当前会话所有别名全部清除

深度拆解核心要点

临时别名特性

打开一个终端窗口,执行 alias 设置别名,只在这个 shell 进程有效,新开终端,或者退出重连 ssh,别名会消失,这个是最容易踩坑的地方,临时别名适合单次临时任务,不需要长期保留的时候使用。

永久生效配置文件

不同 shell 对应的配置文件不一样

bash shell

用户个人永久配置写入~/.bashrc

全局所有用户生效写入 /etc/bashrc 或者 /etc/profile.d/ 目录下自定义 sh 文件

zsh shell

用户个人永久配置写入~/.zshrc

修改完配置文件之后,需要执行 source 配置文件,让配置立刻加载,不用重启终端

示例 source ~/.bashrc

别名编写规则清单

1 等号两边不能有空格,别名和原始命令之间等号两侧不能加空格,否则 shell 识别报错

2 原始命令建议使用单引号包裹,命令里面如果带有参数 管道 重定向,单引号可以避免提前解析

3 别名名称不能和系统原有命令重名,如果重名,别名会覆盖原命令,要谨慎使用

4 别名不能带位置参数,也就是不能直接像函数一样传参,如果需要传参,要改用 shell 函数,这是 alias 和 shell 函数最大区别

经典实用别名示例清单

alias ll='ls -l'

alias la='ls -a'

alias l='ls -CF'

alias grep='grep --color=auto'

alias c='clear'

alias ports='netstat -tulpn'

别名执行优先级

shell 解析命令的时候,优先级顺序

别名 alias > shell 内置命令 > 外部可执行程序

也就是说,如果别名和外部命令同名,优先执行别名,所以如果想临时绕过别名,直接调用原始命令,可以在命令前面加反斜杠

示例 \ll 就会跳过 ll 别名,直接查找系统原始程序

常见报错与排错清单

1 报错 command not found 检查是不是把 alias 当成外部程序,它是 shell 内置命令,部分精简 shell 不支持

2 重启终端别名消失 没有写入 bashrc 配置文件,只是临时会话别名

3 别名不生效 修改配置文件之后忘记 source 加载

4 别名里面管道符失效 没有使用单引号包裹原始命令,shell 提前解析管道

alias 和 shell 函数对比表

对比项alias 别名shell 函数
是否支持传参不支持支持位置参数
适用场景简单长命令简写复杂逻辑 多分支 判断
编写难度简单一行定义需要编写代码块
优先级高于函数低于别名

【常见问题】

问题 1 linuxalias 命令设置之后为什么重启终端就没了

回答 1 linuxalias 也就是 alias,直接在终端执行定义的别名属于临时会话别名,只在当前 shell 生效,想要 linuxalias 永久生效,需要把别名写入~/.bashrc 配置文件并且 source 加载。

问题 2 linuxalias 命令是独立程序吗

回答 1 linuxalias 也就是 alias 属于 shell 内置命令,不是单独的外部二进制程序,所以不需要额外安装,只要当前 shell 支持就可以直接调用。

问题 3 linuxalias 别名能不能传递参数

回答 3 linuxalias 也就是 alias 本身不支持传入位置参数,如果需要传参的复杂命令,linuxalias 无法实现,需要改用 shell 函数来完成。

问题 4 怎么删除已经设置的 linuxalias 别名

回答 4 删除 linuxalias 别名使用 unalias 命令,执行 unalias 别名名称就可以移除当前会话别名,如果是永久别名,还要打开 bashrc 配置文件删掉对应的 alias 代码行。

【免责申明】

本文 linuxalias 也就是 alias 讲解基于 bash shell 主流版本编写,不同 shell 比如 dash 部分精简 shell 不支持 alias,配置文件路径随发行版存在差异,修改系统全局配置文件前建议备份,内容仅用于 linux 运维学习参考。