Warning: Undefined array key "custom_message" in /www/wwwroot/bbs.aaronyang.cc/wp-content/plugins/wpcopyrights/index.php on line 105

alias

alias

定义或显示别名。

概要

alias [-p] [name[=value] ...]

主要用途

  • 简化较长的命令。
  • 定义、修改或者显示一个或多个别名。

选项

-p:显示全部已定义的别名。
name(可选):指定要(定义、修改、显示)的别名。
value(可选):别名的值。

返回值

alias 返回 true 除非您要显示的别名未定义。

例子

# 显示全部已定义的别名
alias
alias -p

# 显示已定义的别名(假设当前环境存在以下别名)
alias ls
alias ls grep

# 定义或修改别名的值
alias ls='ls --color=auto'
alias ls='ls --color=never' grep='grep --color=never'

知识点

直接在shell里设定的命令别名,在终端关闭或者系统重新启动后都会失效,如何才能永久有效呢?

使用编辑器打开~/.bashrc,在文件中加入别名设置,如:alias rm=’rm -i’,保存后执行source ~/.bashrc,这样就可以永久保存命令的别名了。

因为修改的是当前用户目录下的~/.bashrc文件,所以这样的方式只对当前用户有用。如果要对所有用户都有效,修改/etc/bashrc文件就可以了。

请注意,以下内容可能与您实际使用的系统有出入:

在CentOS7下,这个文件是/etc/bash.bashrc。此外在CentOS7下,细看~/.bashrc文件,会发现有这样一段代码:

if [ -f ~/.bash_aliases ]; then
  . ~/.bash_aliases
fi

这个代码的意思就是如果存在那么就加载.bash_aliases文件,所以也可以在用户根目录下新建该文件用于单独存放命令别名设置。

错误用法

  • 要显示的别名未定义。
  • 当您定义(修改)别名的值的时候,由于值的字符串有空格但您没有用单引号扩起,那么会导致严重的问题:
# 为方便演示,删除全部别名
unalias -a
# 没有用单引号扩起
alias rm=rm -rf
# 执行命令后报错 bash: alias: -rf: not found
# 这时使用alias查看rm的别名时返回 alias rm='rm'
# 更具有迷惑性的例子
# 为方便演示,删除全部别名
unalias -a
# 仍然没有用单引号括起
alias ls=ls --color=never
# 执行命令后看起来没有报错

# 使用alias查看全部别名会发现运行结果如下:
# alias --color=never
# alias ls='ls'
# alias处理时将它们看成了两组

Q&A

Q:如果我要显示一到多个别名,但不知道其中是否有未定义的该怎么办?

A:正常执行就是了,alias不会因为有一个未定义的别名就结束对剩余参数的执行。

Q:如果我这么定义alias cd='ls' ls='cd',会有什么后果?

A:运行cd依然会切换目录,运行ls依然会列出文件夹的内容;不要这样定义。

注意

  1. 执行脚本时请注意:
    • 使用 source 命令执行的bash脚本如果执行了 aliasunalias 命令,那么有可能会对终端环境的别名设置产生影响;终端环境的别名设置也可能改变运行结果;
    • 通过 sh 方式调用的 bash 脚本或直接运行当前用户有执行权限的脚本不受终端环境的别名影响。
  2. 删除别名,请查看unalias命令。
  3. 建议您不要对 mv cp rm 等命令的别名设置危险的 -f 选项,比如 alias rm='rm -f'
  4. 需要注意别名是否和其他命令有冲突的情况。
  5. 该命令是 bash 内建命令,相关的帮助信息请查看 help 命令。

其他参考链接

若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/alias/

(0)
AuroraAurora站点维系者
上一篇 2023年 12月 6日 下午12:55
下一篇 2023年 12月 6日 下午12:58

相关推荐

  • rcp

    文章目录rcp补充说明语法选项参数实例 rcp 使在两台Linux主机之间的文件复制操作更简单 补充说明 rcp命令 使在两台Linux主机之间的文件复制操作更简单。通过适当的配置…

    入门教程 2024年 3月 1日
  • openssl

    文章目录openssl补充说明实例 openssl 强大的安全套接字层密码库 补充说明 OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理…

    入门教程 2024年 3月 1日
  • chsh

    文章目录chsh补充说明语法选项参数实例 chsh 用来更换登录系统时使用的shell 补充说明 chsh命令 用来更换登录系统时使用的shell。若不指定任何参数与用户名称,则c…

    入门教程 2023年 12月 7日
  • iptraf

    文章目录iptraf补充说明语法选项 iptraf 实时地监视网卡流量 补充说明 iptraf命令 可以实时地监视网卡流量,可以生成网络协议数据包信息、以太网信息、网络节点状态和i…

    入门教程 2023年 12月 19日
  • umount

    文章目录umount补充说明语法选项参数实例 umount 用于卸载已经加载的文件系统 补充说明 umount命令 用于卸载已经加载的文件系统。利用设备名或挂载点都能umount文…

    入门教程 2024年 3月 11日
  • 34. 反射

    欢迎来到 Golang 系列教程的第 34 篇。 反射是 Go 语言的高级主题之一。我会尽可能让它变得简单易懂。 本教程分为如下小节。 什么是反射? 为何需要检查变量,确定变量的类…

    2023年 12月 5日
  • reboot

    文章目录reboot补充说明语法选项实例 reboot 重新启动正在运行的Linux操作系统 补充说明 reboot命令 用来重新启动正在运行的Linux操作系统。 语法 rebo…

    入门教程 2024年 3月 1日
  • whereis

    文章目录whereis补充说明语法选项参数实例 whereis 查找二进制程序、代码等相关文件路径 补充说明 whereis命令 用来定位指令的二进制程序、源代码文件和man手册页…

    入门教程 2024年 1月 3日
  • passwd

    文章目录passwd补充说明语法选项参数知识扩展实例 passwd 用于让用户可以更改自己的密码 补充说明 passwd命令 用于设置用户的认证信息,包括用户密码、密码过期时间等。…

    入门教程 2024年 3月 1日
  • popd

    文章目录popd概要主要用途选项参数返回值例子注意参考链接 popd 从目录堆栈中删除目录。 概要 popd [-n] [+N | -N] 主要用途 从目录堆栈中删除目录,如果是顶…

    入门教程 2024年 3月 1日

发表回复

登录后才能评论
Translate »