当前位置:网站首页>这几个常用 alias,带你高效做事(下)
这几个常用 alias,带你高效做事(下)
2022-08-03 21:03:00 【AirPython】
点击上方“AirPython”,选择“置顶公众号”
第一时间获取 Python 技术干货!
大家好,我是安果!
上一篇文章,我们聊到几个常用的 Alias,通过它们可以帮助我们高效办公
本篇文章我将继续介绍更多 Alias 的使用场景
1、系统相关命令
系统的内存、CPU、磁盘、系统版本,这些常用命令我们定义为 Alias 别名
这里以 CentOS 为例
# 查看系统内存状态
alias mem="free -h"
# 查看CPU信息
alias cpu="lscpu"
# 磁盘信息
alias disk="df -h"
# 系统版本(以RH系统为例)
alias os="cat /etc/redhat-release"
更新系统、安装软件也是常用的命令,通过在 Alias 别名中设置变量,我们可以快速安装某个软件程序
# 更新系统
alias update="sudo yum update -y"
# 安装软件命令
alias install="sudo yum install $1 -y"
# 使用
# 比如安装:wget
install wget
类似的,系统端口、防火墙管理,都可以为这些命令定义 Alias 别名
2、生成依赖和安装
在开发完成 Python 项目时,我们一般都会先生成依赖文件
然后在部署项目时,使用 pip 命令一键安装依赖
这些操作我们都可以定义为 Alias 别名
# 安装依赖
pip install pipreqs
# 配置alias
# 生成依赖(定义alias)
echo 'alias po="pipreqs . --encoding=utf8 --force"' >> ~/.bash_profile
# 使用下面命令生成依赖文件
po
# 生效
source ~/.bash_profile
# 安装依赖
echo 'alias pi="pip3 install -r requirements.txt"' >> ~/.bash_profile
# 使用下面命令安装依赖文件
pi
3、Bash 函数及参数
这里以通过某个端口号获取进程 ID 为例,聊聊 Alias 配置 Bash 函数、参数的使用过程
# 获取某个端口所属的进程信息
gpid() {
# $1:参数,端口号
lsof -i tcp:$1
}
# 查看端口号所属进程
alias gpid=gpid
# 使用
# 比如,查看端口号「8080」端口号所属的进程
gpid 8080
4、K8s
日常使用 K8s 时,频繁输入命令都是重复性的工作
这时候,利用 Alias 别名可以很好地帮助我们节省时间
# k8s命令
alias k8s='kubectl'
# 获取所有pod的详情信息
alias k8sp='kubectl get po -o wide'
# 获取所有namespace下的运行的所有pod
alias k8spa='kubectl get po --all-namespaces'
# 其他
alias k8sd='kubectl describe'
alias k8sd='kubectl get deploy'
alias k8sp='kubectl get pods'
alias k8sc='kubectl get cm'
alias k8ss='kubectl get svc'
...
5、实战一下
这里以公司内部的「 前端项目打包 」为例进行讲解
具体步骤包含:
5.1 定义两个参数,分别代表打包环境、项目类型
5.2 通过项目类型,获取项目名及打包后文件夹名称
5.3 通过打包环境参数,获取要打包应用的分支名
5.4 使用 cd 命令进入本地项目文件夹下,拉取远程分支下的代码
5.5 使用 nrm 命令切换本地镜像源,安装组件库
5.6 切换第三方源,比如:淘宝,使用 npm 命令安装其他依赖组件
5.7 使用 npm run build 打包应用
5.8 使用 zip 命令压缩打包后的文件夹
利用 Bash 函数,可以更加灵活地对别名 Alias 进行参数化
具体实现如下:
# vim ~/.bash_profile
# 定义打包Bash函数
# 参数1:指定打包环境 0-环境1 1-环境2
# 参数2:项目 0-proj1 1-proj2 2-proj3 3-proj4
function build_project(){
branch_name="默认分支名"
cmd=""
proj_name="proj1-fe"
build_name="proj1"
# 替换配置文件(Python脚本实现)
# 可以根据需要使用
# rp="python3 replace_config.py --e $1 --p $2"
# 判断项目参数值
if [ $2 = 0 ];
then
proj_name="proj1-fe"
build_name="proj1"
elif [ $2 = 1 ];
then
proj_name="proj2-fe"
build_name="proj2"
elif [ $2 = 2 ];
then
proj_name="proj3-fe"
build_name="proj3"
elif [ $2 = 3 ];
then
proj_name="proj4-fe"
build_name="proj4"
else
proj_name="其他项目"
build_name=”其他“
fi
# 根据参数1获取分支名
if [ $1 = 0 ];
then
branch_name="分支1"
elif [ $1 = 1 ];
then
branch_name="分支2"
else
branch_name="其他分支"
fi
echo $rp
echo $branch_name
# 要拉取代码的分支(远程分支)
branch_name_origin="origin/$branch_name"
echo $branch_name_origin
# 打包命令
# nrm use yl 切换本地仓库源
cd /Users/*/Desktop/temp/$proj_name&&git checkout -f $branch_name && git reset --hard $branch_name_origin&&git pull&&cd /Users/*/Desktop/source/py/pack_tool&& eval $rp &&cd /Users/*/Desktop/temp/$proj_name && nrm use yl && npm install 本地组件名 && nrm use taobao && npm install &&npm run build&&zip -r /Users/*/Desktop/$build_name.zip ./$build_name/* -x "*/.*" -x ".*"
}
# 设置Alias别名
alias bp=build_project
定义好 Alias 后,我们使用 source 命令使配置文件生效,最后就可以使用命令打包前端项目了
# 使配置文件生效
source ~/.bash_profile
# 使用
# 打包环境1,项目1
bp 0 0
# 打包环境2,项目2
bp 1 1
推荐阅读
边栏推荐
- From September 1st, my country has granted zero-tariff treatment to 98% of tax items from 16 countries including Togo
- 服务器安装redis
- Likou 707 - Design Linked List - Linked List
- 肝完 Alibaba 这份面试通关宝典,我成功拿下今年第 15 个 Offer
- Interesting opencv - record image binarization and similarity
- PyCharm function automatically add comments without parameters
- 软考系统分析师备考经验分享:论持久战
- PyCharm函数自动添加注释无参数问题
- nvm的使用 nodejs版本管理,解决用户名是汉字的问题
- 在树莓派上搭建属于自己的网页(4)
猜你喜欢
华为设备配置VRRP与BFD联动实现快速切换
史兴国对谈于佳宁:从经济模式到落地应用,Web3的中国之路怎么走?
好朋友离职了,一周面试了20多场,我直呼内行
CheckBox列表项选中动画js特效
XSS线上靶场---Warmups
PyCharm function automatically add comments without parameters
win10安装及配置Gradle
idea2021配置svn报错Cannot run program “svn“ (in directory “xxx“):CreateProcess error=2,系统找不到指定的文件
idea2021.1.3配置Gradle步骤
七夕快乐!
随机推荐
Zero trust, which has been popular for more than ten years, why can't it be implemented?
461. 汉明距离
ES6简介及let、var、const区别
直播小程序源码,UI自动化中获取登录验证码
leetcode 072. Finding Square Roots
error: C1083: 无法打开包括文件: “QString”: No such error: ‘QDir‘ file not found
博士申请 | 美国明尼苏达大学葛畅教授招收隐私数据管理方向全奖博士/硕士/博后/访问学者...
反射机制
XSS测试
盲埋孔PCB叠孔设计的利与弊
From September 1st, my country has granted zero-tariff treatment to 98% of tax items from 16 countries including Togo
Several difficult problems in DDD
CheckBox列表项选中动画js特效
DDD 中的几个困难问题
leetcode 461. Hamming Distance
业界新标杆!阿里开源自研高并发编程核心笔记(2022 最新版)
ES6 introduction and let, var, const
4. 模块化编程
leetcode 16. 数值的整数次方(快速幂+递归/迭代)
leetcode 剑指 Offer 58 - II. 左旋转字符串