2016-06-11

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

在 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 指令來指定,會比較直覺一些哩 ... 就供參囉 !  



[+] Ubuntu 指令新手會用到的35個技法 - 這是以阿舍的使用經驗編寫出來的電子書,三天內應該就看的完,學的起來哩 ! 有空就參考一下囉 ! ... ^^=

關於阿舍

好文不藏私,請多分享囉!! ^^=



沒有留言 :

張貼留言

如果留言後,發現留言不見了,這通常是因為 Goolge 把它認為是垃圾留言了,請用信件通知阿舍調整 ( ayubiz@gmail.com )。謝謝 !