在Shell中使用alias
生活随笔
收集整理的這篇文章主要介紹了
在Shell中使用alias
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? ? ?以前在Linux跳機上登錄其他服務器(ssh IP),為了方便,把很多服務器的IP和業務名稱touch到了用戶主目錄下,這樣方便了好多,每次ls -l 出來下就可以了,然后復制,粘貼就方便了。如下圖。
?
? 這樣每次復制粘貼還是不是特別方便,所以行能不能輸入業務名字,直接就登錄了,仍然保持著touch的文件(方便記憶IP進行溝通),首先第一個還是想到的是alias命令。 因此開始著手寫一個簡單的腳本。把IP和別名對應起來。
? ?第一步、ls 出來這些touch出來的文件 通過AWK 進行分析?
? ?第二步、 使用alias 把名字和ssh IP對應起來。
很快搞定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? 其實調試這些腳本看著簡單,但還是遇到不少坑。 主要有以下
第一、alias?在交互式模式下,shell的alias擴展功能是打開的,因此我們可以鍵入自己定義的alias別名來執行對應的命令。但是,在非交互式模式下alias擴展功能默認是關閉的,此時仍然可以定義alias別名,但是shell不會將alias別名擴展成對應的命令,而是將alias別名本身當作命令執行,如果shell內置命令和PATH中均沒有與alias別名同名的命令,則shell會“抱怨”找不到指定的命令。 因此需要
shopt -s expand_aliases 打開第二、expand_aliases 打開之后,執行命令,還是發現沒有找到命令。 最后在shell腳本里面執行,發現是OK的,說明alias只在shell中生效了,shell執行完畢之后,有實效了。
因此想辦法,把腳本加入.bash_profile 測試OK。
以后終于就可以簡單的通過跳機來調了。
--------------------------
參考 打開alias shell模式。 http://www.cnblogs.com/qcly/p/3219780.html
?
總結
以上是生活随笔為你收集整理的在Shell中使用alias的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AI创作享有版权吗?
- 下一篇: 移动积分换话费怎么兑换