這幾個(gè)常用 alias,帶你高效做事(下)
點(diǎn)擊上方“AirPython”,選擇“置頂公眾號(hào)”第一時(shí)間獲取 Python 技術(shù)干貨!

上一篇文章,我們聊到幾個(gè)常用的 Alias,通過它們可以幫助我們高效辦公
這幾個(gè)常用 alias,帶你高效做事
本篇文章我將繼續(xù)介紹更多 Alias 的使用場(chǎng)景
系統(tǒng)的內(nèi)存、CPU、磁盤、系統(tǒng)版本,這些常用命令我們定義為 Alias 別名
這里以 CentOS 為例
#?查看系統(tǒng)內(nèi)存狀態(tài)
alias?mem="free?-h"
#?查看CPU信息
alias?cpu="lscpu"
#?磁盤信息
alias?disk="df?-h"
#?系統(tǒng)版本(以RH系統(tǒng)為例)
alias?os="cat?/etc/redhat-release"
更新系統(tǒng)、安裝軟件也是常用的命令,通過在 Alias 別名中設(shè)置變量,我們可以快速安裝某個(gè)軟件程序
#?更新系統(tǒng)
alias?update="sudo?yum?update?-y"
#?安裝軟件命令
alias?install="sudo?yum?install?$1?-y"
#?使用
#?比如安裝:wget
install?wget
類似的,系統(tǒng)端口、防火墻管理,都可以為這些命令定義 Alias 別名
然后在部署項(xiàng)目時(shí),使用 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
這里以通過某個(gè)端口號(hào)獲取進(jìn)程 ID 為例,聊聊 Alias 配置 Bash 函數(shù)、參數(shù)的使用過程
#?獲取某個(gè)端口所屬的進(jìn)程信息
gpid()?{
????#?$1:參數(shù),端口號(hào)
????lsof?-i?tcp:$1
}
#?查看端口號(hào)所屬進(jìn)程
alias?gpid=gpid
#?使用?
#?比如,查看端口號(hào)「8080」端口號(hào)所屬的進(jìn)程
gpid?8080
4、K8s
這時(shí)候,利用 Alias 別名可以很好地幫助我們節(jié)省時(shí)間
#?k8s命令
alias?k8s='kubectl'
#?獲取所有pod的詳情信息
alias?k8sp='kubectl?get?po?-o?wide'
#?獲取所有namespace下的運(yùn)行的所有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、實(shí)戰(zhàn)一下
這里以公司內(nèi)部的「?前端項(xiàng)目打包?」為例進(jìn)行講解
具體步驟包含:
5.1? 定義兩個(gè)參數(shù),分別代表打包環(huán)境、項(xiàng)目類型
5.2??通過項(xiàng)目類型,獲取項(xiàng)目名及打包后文件夾名稱
5.3??通過打包環(huán)境參數(shù),獲取要打包應(yīng)用的分支名
5.4? 使用 cd 命令進(jìn)入本地項(xiàng)目文件夾下,拉取遠(yuǎn)程分支下的代碼
5.5? 使用 nrm 命令切換本地鏡像源,安裝組件庫
5.6 ?切換第三方源,比如:淘寶,使用 npm 命令安裝其他依賴組件
5.7? 使用 npm run build 打包應(yīng)用
5.8? 使用 zip 命令壓縮打包后的文件夾
利用 Bash 函數(shù),可以更加靈活地對(duì)別名 Alias 進(jìn)行參數(shù)化
具體實(shí)現(xiàn)如下:
#?vim?~/.bash_profile
#?定義打包Bash函數(shù)
#?參數(shù)1:指定打包環(huán)境??0-環(huán)境1 1-環(huán)境2
#?參數(shù)2:項(xiàng)目?0-proj1 1-proj2 2-proj3 3-proj4
function?build_project(){
????branch_name="默認(rèn)分支名"
????cmd=""
????proj_name="proj1-fe"
????build_name="proj1"
????#?替換配置文件(Python腳本實(shí)現(xiàn))
????#?可以根據(jù)需要使用
????#?rp="python3?replace_config.py?--e?$1?--p?$2"
????#?判斷項(xiàng)目參數(shù)值
????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="其他項(xiàng)目"
???????build_name=”其他“
????fi?
????#?根據(jù)參數(shù)1獲取分支名
????if?[?$1?=?0?];
????then
???????branch_name="分支1"
????elif?[?$1?=?1?];
????then
???????branch_name="分支2"
????else
???????branch_name="其他分支"
????fi
????echo?$rp
????echo?$branch_name
????#?要拉取代碼的分支(遠(yuǎn)程分支)
????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?".*"????
}
#?設(shè)置Alias別名
alias?bp=build_project定義好 Alias 后,我們使用 source?命令使配置文件生效,最后就可以使用命令打包前端項(xiàng)目了
#?使配置文件生效
source?~/.bash_profile
#?使用
#?打包環(huán)境1,項(xiàng)目1
bp?0?0
#?打包環(huán)境2,項(xiàng)目2
bp?1?1
實(shí)戰(zhàn) | 如何用 Python 統(tǒng)計(jì) Jira 數(shù)據(jù)并可視化
實(shí)戰(zhàn) | 如何用 Python 自動(dòng)化監(jiān)控文件夾完成服務(wù)部署!
評(píng)論
圖片
表情
