前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Bash函数实现带参数的别名alias,提高工作效率

Bash函数实现带参数的别名alias,提高工作效率

作者头像
崔认知
发布2023-06-19 15:19:16
5230
发布2023-06-19 15:19:16
举报
文章被收录于专栏:nobodynobody

Bash别名alias


为了提高我们输入命令的效率,我们在linux系统或mac系统上可以用

alias设置命令的别名(我称之为快捷键)

如何查看系统现有的别名?

1、在控制台输入:alias,查看所有别名

代码语言:javascript
复制
renzhikeji:gitlab renzhikeji$ alias 

输出(列出了几个):

代码语言:javascript
复制
alias godd='go list -f '\''{{join .Deps "\n"}}'\'' |  xargs go list -f '\''{{.ImportPath}}'\'''
alias ll='ls -ahl'
alias mvnc='mvn clean archetype:create-from-project'
alias mvncc='mvn clean'
alias mvnd='mvn clean deploy -Dmaven.test.skip'
alias mvnda='mvn dependency:analyze'
alias mvndl='mvn dependency:list'
alias mvndt='mvn dependency:tree'
alias mvni='mvn clean install -Dmaven.test.skip'
alias mvnp='mvn clean package -Dmaven.test.skip'
alias mvnt='mvn dependency:tree'
alias mvnta='mvn clean dependency:analyze'
alias pipr='pipreqs . --encoding=utf8 --force'
alias go-linux=' CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go '
alias jump='ssh -p10022 renzhikeji@jump.renzhikejitech.com'
alias ku-bedin='kubectl config use-context renzhikeji-bedin-context'
alias ku-bigdata='kubectl config use-context renzhikeji-bigdata-context'
alias ku-canary='kubectl config use-context renzhikeji-canary-context'
alias ku-devops='kubectl config use-context renzhikeji-devops-context'
alias ku-maxwell='kubectl config use-context renzhikeji-maxwell-context'
alias ku-pods='kubectl get pods -n ren -o wide |grep ren-api'
alias ku-service='kubectl get service -n ren'

2、使用命令type -a 查看某个别名

代码语言:javascript
复制
renzhikeji:gitlab renzhikeji$  type -a mvnp

输出:

代码语言:javascript
复制
mvnp 是“mvn clean package -Dmaven.test.skip”的别名

我们可以使用alias来自定别名,如上面所列出的内容,放在用户目录

.bash_profile文件中即可。

Bash函数实现更为灵活的别名


alias虽然可以设置别名,但是最大的缺点是:仅仅是字符串替换,不能传入任何参数。

Bash函数是实现命令别名最好的方式,不仅能做alias所能做的,而且比alias更强大。

示例,创建目录,并切换到新建目录下:

在.bash_profile文件中加入:

代码语言:javascript
复制
mcd () {
    mkdir -p $1
    cd $1
}

执行命令:

代码语言:javascript
复制
source .bash_profile

使我们的配置生效。

测试Bash函数别名:

代码语言:javascript
复制
renzhikeji:logs renzhikeji$ mcd who/test

验证当前目录位置:

代码语言:javascript
复制
Users/renzhikeji/logs/who/test

小结


Bash函数是实现命令别名最好的方式,支持自定义参数。尤其是我们在k8s环境下敲很多命令的时候。

代码语言:javascript
复制
function ku-pod() {
 kubectl get pods -n ren -o wide |grep "$1"

}

function ku-logs() {
 kubectl logs -f "$2" -n "$1" 

}

function ku-exec () {
  kubectl exec -ti $3 -n $1 /bin/sh -c $2
}

function ku-cpu () {
 kubectl top pod "$1" -n ren
}

参考:

https://www.digitalocean.com/community/tutorials/an-introduction-to-useful-bash-aliases-and-functions

https://www.educba.com/bash-alias/

https://linuxize.com/post/how-to-create-bash-aliases/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 认知科技技术团队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档