一、背景介绍
我们平常在 K8S 运维的时候,经常要输入 kubectl 命令,命令比较长,字母还可能输错,影响运维效率。在 Linux 中,你可以通过多种方式来创建命令的缩写或别名(alias),以便更快速地执行常用命令。以下是几种常见的方法:
1. 使用 alias 命令
alias 是 shell 内置的一个命令,允许你为现有的命令创建简短的替代名称。这些别名仅在当前 shell 会话中有效,除非你将它们添加到你的 shell 配置文件中(如 .bashrc、.zshrc 等)。
- 创建临时别名
在命令行直接输入 alias 命令可以创建一个临时的别名,它只对当前终端会话有效:
alias k=kubectl
k get pod -A
注意:
1、= 号不能省略
2、如果命令比较长,要用 引号(单双引号都可以)括起来
- 创建持久化别名
为了使别名永久生效,你需要将其添加到你的 shell 配置文件中。例如,在使用 Bash 的情况下,编辑 ~/.bashrc 文件:
vi ~/.bashrc
在文件末尾添加你的别名定义:
保存并关闭文件后,运行以下命令使更改生效:
source ~/.bashrc
注意:
1、对于其他 shell,比如 Zsh,你应该编辑相应的配置文件(如 ~/.zshrc)。
2、bashrc 文件的全称是 Bash Run Commands。这个文件是一个脚本,包含了当启动 Bash shell 时自动执行的一系列命令。它主要用于设置环境变量、定义别名、函数以及配置交互式 shell 的行为。
~/.bashrc vs /etc/bash.bashrc
- ~/.bashrc:这是一个位于用户主目录下的隐藏文件(以点.开头),用于为特定用户配置 Bash shell。每个用户都可以有自己的 .bashrc 文件,用来个性化自己的 shell 环境。这些设置只对该用户生效,并且不会影响系统上的其他用户。
- /etc/bash.bashrc:这是全局的 Bash 配置文件,适用于所有用户。此文件中的配置对整个系统的 Bash shell 都有效。管理员可以通过修改这个文件来为所有用户设置默认的行为和环境。
2. 使用函数
如果你需要更复杂的逻辑,而不仅仅是简单的命令替换,可以考虑使用 shell 函数。函数比别名更灵活,因为它们可以接受参数,并且可以在其中包含多条命令。
在 ~/.bashrc 或 ~/.zshrc 中定义一个函数:
vi ~/.bashrc
#------------------------------------
function li() {ctr -n='k8s.io' images list | grep $1
}
# li 是我自己定义的函数名 list images 的意思
# ctr 是容器运行时 containerd 的命令
# ctr -n='k8s.io' images list | grep $1
# 命令的意思,是列出命名空间是 k8s.io 的所有镜像,并过滤出名称是 入参 $1 的镜像
source ~/.bashrc
这样,我在命令行窗口,输入 li calico, 就会帮我从 containerd 本地镜像仓库中过滤出 calico。
li calico
二、总结
最简单和最常用的方法是使用 alias 和 shell 函数来创建命令的缩写。对于大多数用户来说,这两种方法已经足够满足日常需求。