2016-06-11

用 alias 指令與環境變數設定別名

在 Ubuntu / Linux 的終端機操作中,alias 這樣的指令絕對是像阿舍這樣的懶人所不可或缺的,所以,阿舍就會有一個自己的 .bash_profile 檔案,裡面就放著一些阿舍自己常會用到的指令的別名,而這些別名,在很多的情況下,都是以能夠提高阿舍的工作效率為前提來設定的,因此,大部的這些別名,都是很有效率的 ... 縮寫 ... 呵!



阿舍用 alias 指令來設定縮寫這件事,已經有很久的時間了,然後,阿舍也是知道這個環境變數也是可以達到類似的效果,但是,就不知為何,阿舍總是認為,這個環境變數主要是用來設定給程式參考用的,例如,像是 JAVA_HOME 或 PATH 這樣的經典環境變數,都是程式會用到比較多,阿舍自己在操作的時候,倒是很少會需要到,所以,也就從來沒去想過,為什麼要用 alias 而不使用環璄變數哩 ...

然後,就在今天阿舍,在打一些指令時,又開始發懶,就突然想到說,對啊 ! 為什麼阿舍都沒有用環境變數來做省時的工作哩 ? 所以,阿舍就花點時間來試了一下,用 alias 和環境變數那一個可以比較讓阿舍方便偷懶哩 ... 喔 ! 不是啦 ! 是那一種比較有效率哩 ... 呵 !

好,經過阿舍這次的測試,阿舍終於了解,為什麼阿舍不習慣用環境變境來設定縮寫而是都用 aliase 指令哩 ! 來看一下,下面的這個例子,阿舍可以用下面第一行和第二行的指令來分別用 alias 和環境變數的方式來設定「ls -la」指令的縮寫,然後,要執行的時候,就會可以用下面第三行以 alias 設定的 lsa 的指令來執行。

$ alias lsa='ls -la'
$ lsb='ls -la'

$ lsa  

$ $lsb

而如果要使用上面第二行的環境變數所設定的變數來執行的話,就要用上面第四行的方式來執行,對 ! 沒錯,變數的前面要多加一個 $ 符號才行,這個阿舍而言,每次要多按一個 $ 符號似乎不太方便(Shift+4 有點遠 ... 呵 !),所以,這大概是阿舍一直沒有用環境變數的原因吧 ! ... 

不過,環境變數畢竟是環境變數,還是有它的好處的,而 alias 真的只是把一個字串代替成另一個指令的字串而已,但是,變數就可以拿來多一些的應用,舉例來說,像下面這樣的例子,阿舍最後可以透過變數來很快的把阿舍測試出來的指令存起來哩 ...

# 阿舍先把要測的指令放到一個變數  
$ ayu='sudo docker --name ayu-mqtt -p 1883:1883 -d ayu-mqtt'      
# 然後,用這個變數來執行
$ $ayu    
# 確定要留下來的指令後,就用 echo 指令來把它存到檔案中  
$ echo $ayu >> ayu.txt  

所以,阿舍的結論是,如果只是在操作過程中,想要少打一些字或少記一些指令串的話,那就用環境變數來幫忙處理這些事,可能會快一些,彈性也大一些,但是,就是要多打一個 $ 符號,而如果是一些經常會用到的,固定的指令串的話,就放到 .bash_profile 裡,用 alias 指令來指定,會比較直覺一些哩 ... 就供參囉 !  


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁