阿舍偶爾在借用別人的電腦或代看 Server 的時候,就會遇到類似的問題,而通常,阿舍覺得跑起來怪怪的時候,就會用 type 指令來檢查一下這個跑起來怪怪的指令哩 ! 舉例來說,假設有人用 alias 把 ls 指令改成 'ls -la',因此,當阿舍每次執行 ls 時,就會是執行 'ls -la',然後,阿舍用 type 指令檢查一下,就會知道,原來,ls 指令已經被 alias 蓋掉了哩 !
$ alias ls='ls -la'
$ type ls
$ ls is aliased to `ls -la'
不過,每個指令都要去檢查就太麻煩了,後來,阿舍就發現了另一個可以應用在這種情況下的好用指令,就叫做 'command',這個 command 指令有和 type 指令相同的功能 (如下面指令所示),可以照出指令的原形,但是,更好用的是,command 指令可以要求只用內建的指令來執行哩 !
# 效果同 type
$ command -v ls
alias ls='ls -a -l'
因此,當阿舍用下面這一行指令來執行時,就是真的執行 /bin 裡的那支 ls 程式而不是 alias 的那一支哩 ! 所以,當你在陌生的環境操作,想要保險一點的話,就可以在前加個 command 指令來執行指令,就可以比較確保不是在執行被加工過的指令囉 ! ...
$ command ls
# command 後面的指令用法就和一般沒什麼不同
$ command ls -l /bin | grep ls
![]() |
用 command 執行的結果同原始指令 |
問題還是沒解決嗎 ?? 這裡有更多的 Ubuntu 相關教學可以參考哩 ...
買本阿舍寫的電子書帶走 - Ubuntu 指令新手馬上會用到的 35 個技法
2 則留言 :
執行指令時還要在開頭打 command 太長了...只要指令前面加上反斜線 '\' 就可以了
當然就沒有 "command -v" 可以查,不過要查直接打 type 比較短XD
Hello,
原來還有斜線這一招可用 ... Cool ! Cool ! 阿舍不知道有這招哩 ! ... 呵呵 !
多謝囉 ! ... ^^=
張貼留言