当前位置:首页>Linux>Linux别名-alias-使用教程

Linux别名-alias-使用教程

  • 2026-09-08 23:00:39
Linux别名-alias-使用教程

点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

写作背景:

    春节前客户问我alias怎么用,演示了操作之后就想写一篇文,节前工作忙,一直耽搁了。恰逢正好又要需要处理这方面的工作,利用吃午饭前的时间,实践了一遍。就此和大家探讨一下过程。

---来自作者的碎碎念

一

工作模式

Linux shell有交互式与非交互式两种工作模式。
日常我们登录linux输入命令,shell返回结果的方式是交互式的方式,而shell脚本使用的是非交互式方式。
在交互式模式下,shell的alias扩展功能是打开的,因此我们可以键入自己定义的alias别名来执行对应的命令。如:
在非交互式模式下,alias扩展功能默认是关闭的,此时仍然可以定义alias别名,但是shell不会将alias别名扩展成对应的命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH中均没有与alias别名同名的命令,则shell还会报错。如:
使用shell内置命令shopt命令可以开启alias扩展选项。shopt是shell的内置命令,可以控制shell功能选项的开启和关闭,从而控制shell的行为。
shopt的使用方式如下:
  • shopt -s opt_name   Enable (set) opt_name
  • shopt -u opt_name   Disable (unset) opt_name
  • shopt opt_name    Show current status of opt_name
alias扩展功能的选项名称是expand_aliases,我们可以在交互式模式下查看此选项是否开启:
由此可见,在交互式模式下alias扩展功能的确是开启的,因此能使用alias别名。
我们再编写一个脚本来查看一下非交互式模式下alias扩展的设置:
从上图可见,在非交互式模式下alias扩展功能默认是关闭的。
那么,我们如何可以在脚本中使用别名呢?
二

脚本使用别名详解

2.1 使用alias前开启其功能
可以用shopt来开启alias扩展功能,开启命令如下:
shopt -s expand_aliases
2.2 使用source script.sh 或. script.sh在当前shell执行脚本
alias别名只在当前shell有效,不能被子shell继承。执行./any_script.sh会启动子shell,所以如下会报错:
使用source script.sh 或. script.sh会继承当前shell的别名设置。如下:
2.3 脚本中解释器设为#!/bin/bash --login
可以把alias别名定义写在.profile文件中,这样如果启动交互式的子shell,则子shell会读取.profile,从而得到alias别名定义。但是执行shell脚本时,启动的子shell处于又非交互式模式,是不会读取.profile的。
不过,如果你一定要让执行shell脚本的子shell读取.profile的话,可以给shell脚本第一行的解释器加上参数:#!/bin/bash --login
  • --login使得执行脚本的子shell成为一个login shell,login shell会读取系统和用户的profile及rc文件,因此用户自定义的.profile文件中的内容将在执行脚本的子shell中生效。
2.4 alias配置在.profile中,再在脚本中source ~/.profile
还有一个简单的办法让执行脚本的shell读取.profile,在脚本中主动source ~/.profile即可。
这几招学废了吗?希望懒人神器——alias助你“懒”起来。
END

本文作者:孙华伟(上海新炬中北团队)

本文来源:“IT那活儿”公众号

最新文章

随机文章