背景
嵌入式開發中,開發工作是在遠程服務器上進行的。當需要adb推送一個文件到開發板時,則需要重新在本地機器中找到該文件,再執行命令。這樣的操作比較麻煩。
下面介紹我的解決方式。
sshfs掛載
首先,我是通過sshfs將遠程機器,掛載到了本地。並且在掛載時,挑選了同一目錄。即,將遠程機器的/workspace掛載到了本地的/workspace。這么做的好處是,遠程的路徑,可以直接復制黏貼到本地使用。
配置免密碼登錄
在遠程機器上,配置好.ssh/config並使用ssh-copy-id設置免密碼登錄。假設配置好的本地機器別名,叫ZQB。則此時可在遠程機器上,可直接ssh ZQB登錄回本地機器。
編寫包裝腳本
既然已經通過sshfs將遠程機器掛載到本地,且目錄一致,則腳本很簡單,ssh回到本地機器,並切換到同一目錄,再執行命令即可。
文件 ~/.remote_zqb.sh
zqb()
{
ssh ZQB "cd $(pwd) && $@"
}
alias adb="zqb adb"
alias fastboot="zqb fastboot"
並在/.bashrc中引入它。即在/.bashrc中添加一行
. ~/.remote_zqb.sh
最后重新source,使其生效
source ~/.bashrc
此時輸入type zqb,可看到該函數。輸入type adb可看到adb已經被alias成了”zqb adb“
現在就可以在遠程機器上,直接使用adb命令了。非常便捷。
其他
有了這個思路之后,除了adb,還有其他命令,也可以進行對應包裝,看個人需要了。
如果未事先用ssh掛載到同一目錄,則可對應自己平時的使用習慣,修改腳本。如先使用scp先拷貝文件,再ssh執行命令,原理是一樣的。目的就是,自動化平時手工操作中的重復操作,簡化使用。