当前位置: 首页 > news >正文

Linux命令:alias

alias 命令

基本介绍

alias是 Shell 内建命令,用于创建、查看和删除命令别名。命令别名是指向其他命令或命令组合的短名称,常用于简化常用命令、携带默认选项,或为命令指定更易读的替代名。

资料合集:https://pan.quark.cn/s/6fe3007c3e95https://pan.quark.cn/s/561de99256a5https://pan.quark.cn/s/985f55b13d94https://pan.quark.cn/s/d0fb20abd19a

语法

alias[选项][名称[=]...]unalias[选项][名称...]
  • 不带参数时,显示当前 Shell 中定义的所有别名。
  • 仅指定名称时,显示该别名对应的命令。
  • 指定名称=值时,创建或修改别名。
  • 使用unalias删除别名。

常用选项

alias选项

  • -p:以alias 名称=值的形式显示所有别名,便于重新加载。

unalias选项

  • -a:删除当前 Shell 中的全部别名。

使用示例

1. 显示所有别名

alias

输出示例:

alias ll='ls -l' alias la='ls -A' alias ..='cd ..'

2. 创建命令别名

aliasll='ls -l'aliasla='ls -A'alias..='cd ..'

此后执行ll相当于执行ls -l,执行..相当于执行cd ..

3. 查看单个别名

aliasll

输出示例:

alias ll='ls -l'

若别名不存在,Shell 会报错。

4. 创建带选项的别名

aliasgrep='grep --color=auto'aliasdiff='diff -u'aliasrm='rm -i'aliascp='cp -i'aliasmv='mv -i'

每次执行grep等命令时,会自动携带指定选项。为rmcpmv添加-i可防止误删或误覆盖文件。

5. 创建组合命令的别名

aliasupdate='sudo apt update && sudo apt upgrade'aliassize='du -sh ./* | sort -h'

6. 在别名中使用位置参数

别名本身不支持位置参数。需要使用参数时应改用函数:

greet(){echo"Hello,$1!"}

7. 替换已存在的命令名

aliasls='ls -lF'

此时ls被替换为ls -lF。若要使用原始命令,可在名称前加\或使用command内建:

\lscommandls

8. 取消别名

unaliasll

9. 取消全部别名

unalias-a

10. 查看默认别名

alias-p

以可直接用于加载的alias 名称=值格式输出,例如在脚本中重新加载别名配置时很有用。

在配置文件中持久化别名

临时创建的别名在 Shell 退出后会失效。要让别名在每个会话中生效,应在 Shell 的启动配置文件中添加它们:

  • Bash 交互式登录 Shell~/.bash_profile~/.profile
  • Bash 交互式非登录 Shell~/.bashrc
  • Zsh~/.zshrc
  • Fish~/.config/fish/config.fish

推荐在~/.bashrc中配置别名,并在~/.bash_profile中引用~/.bashrc

# ~/.bash_profileif[-f~/.bashrc];then.~/.bashrcfi
# ~/.bashrcaliasll='ls -l'aliasla='ls -A'alias..='cd ..'alias...='cd ../..'aliasgrep='grep --color=auto'aliasdiff='diff -u'aliasrm='rm -i'aliascp='cp -i'aliasmv='mv -i'

修改配置文件后,可使用source重新加载:

source~/.bashrc

别名扩展规则

  • 别名中的字符串只在命令行的第一个字段进行替换。
  • Bash 中别名默认不会在脚本中扩展,也不会在非交互式 Shell 中扩展。
  • 别名替换不会递归展开:若别名值中又出现别名名,Bash 不会再次替换它,除非该别名定义为以空格结尾。
  • 别名无法在其中直接使用位置参数$1$2等,需要参数时应改用 Shell 函数。

alias 与函数的区别

特性alias函数
定义方式alias 名称=值name() { ... }
支持位置参数不支持支持
支持多语句有限制完整支持
在脚本中可用通常不可用可用
优先级低于函数高于别名

需要参数、多步骤逻辑或条件分支时,建议使用函数而非别名。

mkcd(){mkdir-p"$1"&&cd"$1"}

常见内置别名

某些发行版会为交互式 Shell 预置别名,例如:

aliasls='ls --color=auto'aliasll='ls -l'aliasla='ls -A'aliasl='ls -CF'aliasgrep='grep --color=auto'

注意事项

  • alias是 Shell 内建命令,不是独立的可执行文件,因此which alias通常找不到对应二进制。
  • 别名中出现空格或特殊字符时,整个值应用引号包裹。
  • 创建与系统命令同名的别名时要谨慎,避免造成混淆。
  • 别名在脚本中通常不会展开,不要在脚本逻辑中依赖别名。
  • 处理敏感数据时,注意别名不要将密码、令牌或密钥硬编码在配置中。

相关命令

  • unalias:删除别名。
  • builtin:直接执行 Shell 内建命令,绕过可能覆盖它的别名或函数。
  • command:直接执行命令,绕过别名和函数。
  • function:定义 Shell 函数,实现更复杂的封装逻辑。
  • shopt:管理 Bash 的其他行为选项。
  • ~/.bashrc:Bash 交互式 Shell 的启动配置文件。

总结

alias是创建命令级快捷方式的基本工具。合理使用别名可以提高日常命令行效率,但对于需要参数、条件分支或多语句组合的场景,应改用 Shell 函数。配置别名时应通过~/.bashrc等启动文件持久化,并注意避免覆盖关键系统命令。

http://www.cnnetsun.cn/news/3743545.html

相关文章:

  • 两轮平衡小车PID调参实战:从零到稳的保姆级指南
  • 2026年AI内容检测工具实测与使用技巧
  • 提示词压缩率提升300%?揭秘LLM时代最被低估的缩写策略——3类高频失效场景+4种动态裁剪算法
  • 【2026必藏】6款智能降AIGC网站大公开,一键让AIGC率断崖式下跌!
  • 颗粒糖果自动包装机设计全解析:从理料到封合的核心技术与实战
  • 电动车路径优化:MOPGA-NSGA-II算法与Matlab实现
  • Office效率革命:Alt+=快捷键解锁专业数学公式编辑
  • C++核心考点与高频面试题深度解析:从指针到智能指针的实战指南
  • 职场晋升信号金字塔模型解析与应用
  • 餐饮分销平台哪家靠谱,推广佣金防作弊校验代码讲解
  • 基于 Zynq UltraScale+ MPSoC 的 PL DDR4 直写 NVMe 与 exFAT 文件系统方案
  • Scrapy高级应用:全站爬取、分布式与增量爬虫实战
  • 在Android设备上运行完整操作系统:Vectras-VM-Android深度解析
  • QT C++多窗口应用架构设计:从信号槽到窗口管理器的工程实践
  • 漏洞挖掘趋势:符号执行与 Fuzzing 的融合路径
  • 长路上听《朝圣之路》
  • 自动化PLC培训是学什么的?小白入门指南
  • Python自动化水文地质计算:渗透系数K与影响半径R的迭代求解实践
  • Simulink代码生成实战:从模型到嵌入式C代码的工程化指南
  • 终极指南:如何用League Akari本地智能助手提升你的英雄联盟游戏体验
  • Dify 自托管部署教程:使用 Docker Compose 在 Linux 服务器运行完整服务栈
  • Windows热键侦探:精准定位热键冲突的终极工具
  • 2026年AI原生一体化CRM选型清单:5款产品横评(排名不分先后)
  • STM32CubeMX与HAL库配置PWM全流程详解
  • 电机学入门:从磁路基础到工程应用,掌握电磁系统分析核心
  • 《对课题申报“祛魅”,立项水到渠成》
  • 2026年想找匹克球鞋合作企业?这里有你想知道的答案!
  • OLAP 数据库混进 OLTP 链路:一次 ClickHouse 拖死 API 101 分钟的复盘
  • AI Agent具体有哪些分类?从技术架构到企业应用,解析智能体的作用与价值
  • Go 微服务治理趋势:服务网格、eBPF 与零信任架构的技术方向判断