Bash别名alias
为了提高我们输入命令的效率,我们在linux系统或mac系统上可以用
alias设置命令的别名(我称之为快捷键)。
如何查看系统现有的别名?
1、在控制台输入:alias,查看所有别名
renzhikeji:gitlab renzhikeji$ alias
输出(列出了几个):
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 查看某个别名
renzhikeji:gitlab renzhikeji$ type -a mvnp
输出:
mvnp 是“mvn clean package -Dmaven.test.skip”的别名
我们可以使用alias来自定别名,如上面所列出的内容,放在用户目录
.bash_profile文件中即可。
Bash函数实现更为灵活的别名
alias虽然可以设置别名,但是最大的缺点是:仅仅是字符串替换,不能传入任何参数。
Bash函数是实现命令别名最好的方式,不仅能做alias所能做的,而且比alias更强大。
示例,创建目录,并切换到新建目录下:
在.bash_profile文件中加入:
mcd () {
mkdir -p $1
cd $1
}
执行命令:
source .bash_profile
使我们的配置生效。
测试Bash函数别名:
renzhikeji:logs renzhikeji$ mcd who/test
验证当前目录位置:
Users/renzhikeji/logs/who/test
小结
Bash函数是实现命令别名最好的方式,支持自定义参数。尤其是我们在k8s环境下敲很多命令的时候。
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/