日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

在Shell中使用alias

發(fā)布時(shí)間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Shell中使用alias 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ? ? ?以前在Linux跳機(jī)上登錄其他服務(wù)器(ssh IP),為了方便,把很多服務(wù)器的IP和業(yè)務(wù)名稱touch到了用戶主目錄下,這樣方便了好多,每次ls -l 出來(lái)下就可以了,然后復(fù)制,粘貼就方便了。如下圖。

?

? 這樣每次復(fù)制粘貼還是不是特別方便,所以行能不能輸入業(yè)務(wù)名字,直接就登錄了,仍然保持著touch的文件(方便記憶IP進(jìn)行溝通),首先第一個(gè)還是想到的是alias命令。 因此開(kāi)始著手寫(xiě)一個(gè)簡(jiǎn)單的腳本。把IP和別名對(duì)應(yīng)起來(lái)。

? ?第一步、ls 出來(lái)這些touch出來(lái)的文件 通過(guò)AWK 進(jìn)行分析?

? ?第二步、 使用alias 把名字和ssh IP對(duì)應(yīng)起來(lái)。

很快搞定shell腳本

#!/bin/sh #ls -l IP* | awk '{print $9}' ls -l IP* | awk '{print $9}' >m.list cat m.list| awk -F _ 'BEGIN {print("#!/bin/sh") ;print("shopt expand_aliases"); print("shopt -s expand_aliases ")} { cmd="alias "$3"=\"ssh "$2"\"";print(cmd) } END {print("# end")}' >alias_dat.sh chmod +x alias_dat.sh source /home/dongjunjie/alias_dat.sh

   ? 其實(shí)調(diào)試這些腳本看著簡(jiǎn)單,但還是遇到不少坑。 主要有以下

第一、alias?在交互式模式下,shell的alias擴(kuò)展功能是打開(kāi)的,因此我們可以鍵入自己定義的alias別名來(lái)執(zhí)行對(duì)應(yīng)的命令。但是,在非交互式模式下alias擴(kuò)展功能默認(rèn)是關(guān)閉的,此時(shí)仍然可以定義alias別名,但是shell不會(huì)將alias別名擴(kuò)展成對(duì)應(yīng)的命令,而是將alias別名本身當(dāng)作命令執(zhí)行,如果shell內(nèi)置命令和PATH中均沒(méi)有與alias別名同名的命令,則shell會(huì)“抱怨”找不到指定的命令。 因此需要

shopt -s expand_aliases 打開(kāi)

第二、expand_aliases 打開(kāi)之后,執(zhí)行命令,還是發(fā)現(xiàn)沒(méi)有找到命令。 最后在shell腳本里面執(zhí)行,發(fā)現(xiàn)是OK的,說(shuō)明alias只在shell中生效了,shell執(zhí)行完畢之后,有實(shí)效了。
因此想辦法,把腳本加入.bash_profile 測(cè)試OK。
以后終于就可以簡(jiǎn)單的通過(guò)跳機(jī)來(lái)調(diào)了。
--------------------------


參考 打開(kāi)alias shell模式。 http://www.cnblogs.com/qcly/p/3219780.html


?

總結(jié)

以上是生活随笔為你收集整理的在Shell中使用alias的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。