前言
這算是我個人的第一篇博客吧,僅用于記錄個人開發(fā)與生活中的一些事情和心得,如果在你看到的時候,能夠?qū)δ惝a(chǎn)生一點幫助或者啟發(fā)的話,那就更值得慰藉了。剛開始寫博客,可能內(nèi)容算不得好、排版存在一些問題,請諒解。
需求產(chǎn)生的背景
由于我自己git的sshKey每次開機后都要重新添加,為了減少這個簡單且無腦的重復(fù)工作,就采用了編寫腳本來實現(xiàn)這個功能。
具體實現(xiàn)
首先就是寫一個腳本,在你自己的期望路徑建立一個腳本,寫入以下代碼:
#!/bin/sh #聲明腳本語言類型
cd ~ #進入根目錄
ssh-add -l #查看當前sshKey的列表,可以省略,
ssh-add -D #添加前先清空列表
ssh-add ~/.ssh/id_gitlab #添加你自己的sshKey,有多個sshKey就分別加
ssh-add ~/.ssh/id_github #同上面的意思
可以說,通過這幾行命令,我的每次重復(fù)添加sshKey的需求就完成了。但是只是這樣的話,還是存在兩個問題。
難道我每次重啟完電腦都要手動執(zhí)行一次這個命令?那我寫一個腳本的作用豈不是大打折扣了?
我添加sshKey都是寫死的,難道我之后每次新加一個賬戶,就要重新添加一個sshKey?那豈不是相當不方便且不優(yōu)雅?(該問題不影響到使用,如果不介意之后再次添加或者不需要再次添加git賬戶,也可以忽略)
由此,我又添加了以下兩個操作:
1. 開機自啟腳本
首先,修改腳本的權(quán)限,在你腳本的路徑下,終端運行以下命令。( 將xx改成你自己的腳本名稱)
chmod 777 xx.sh
需要在腳本文件的簡介中,將打開方式設(shè)置為終端,并且將共享與權(quán)限全部修改至讀與寫。
然后點開設(shè)置->用戶和群組->點擊登錄項->將你的腳本加入進去。
經(jīng)過這些步驟,就可以實現(xiàn)開機執(zhí)行腳本了。
2. “優(yōu)雅”的添加sshKey
想要優(yōu)雅的添加sshKey的前提就是你要優(yōu)雅的命名你的sshKey的名字…
假設(shè)以下的文件就是我的sshKey文件夾,通過以下代碼遍歷文件夾內(nèi)文件名。
cd ~/.ssh
path=$1
files=$(ls $path)
for fileName in $files; do
echo $fileName
done
其中$fileName就是文件名,此時我們需要篩選一下,我這邊命名是所有sshKey都帶有id_,所以可以獲取所有包含id_并且不包含.pub的文件名。然后將其添加至ssh列表中,如下:
#!/bin/sh
cd ~/.ssh
ssh-add -l
ssh-add -D
strA="id_"
strB=".pub"
path=$1
files=$(ls $path)
for fileName in $files; do # 遍歷文件名
resultA=$(echo $fileName | grep "${strA}") # 兩個判斷條件
resultB=$(echo $fileName | grep "${strB}")
if [[ "$resultA" != "" ]] && [[ "$resultB" == "" ]]
then
ssh-add ~/.ssh/$fileName # 添加sshKey
fi
done
至此,所有的功能都已經(jīng)完成了,再也不用操心git上傳沒有權(quán)限了~
其實很多操作都可以使用腳本來完成,可以避免很多重復(fù)的操作,節(jié)省很多時間。