Cash:Javascript打造的Unix Shell
來自: http://www.freebuf.com/tools/97115.html
Cash是一種純粹由ES6(Javascript)實現的跨平臺的Unix shell,它可以在windows下使用,曾經受超過200次嚴格全面的單元測試。
介紹
Cash的github地址在 這里 ,你可以聯想下 Cygwin ,不過Cash還具有別的特性:
1.非本地編譯
2.沒有麻煩的DLL文件
3.任何終端可用
4.只有Cygwin約15分之一的大小
Cash其實有特殊的意義,它將“>”標志換成了“$”,也就是貨幣符號,代表著“問既有答”的理念。
> cash $
當然, Cash 看起來其實跟bash挺像,其實也確實有關系。
想要使用它嗎?你需要做的是:
> npm install cash -g > cash $
現在我們試試”中西結合”,把Windows命令和Unix命令混合使用:
$ ipconfig | grep IPv4 | sort IPv4 Address. . . . . . . . . . . :10.10.40.50 IPv4 Address. . . . . . . . . . . :192.168.100.11 $
但如果你想單獨開 Cash ,你可以設置其為全局生效:
> npm install cash-global -g > ls –lah
當然,若你只想要部分命令,你可以:
> npm install cash-ls -g > npm install cash-grep –g
奇妙的是,如果你想在編程時使用它,可以這樣調用:
const $ = require('cash');
const out = $.ls('.', {l: true}); 感覺不夠方便么?那么下面這樣呢:
const out = $('ls -lah'); 當然,你想尋求對Unix命令更好的編程體驗,請看這里: Shell.JS 。
安全性和體驗
由于Shell.JS和本文所提到的 Cash ,雖然都給大家提供了Unix shell的體驗,但在安全性和某些細節處理上,會顯得更好些,因為這些Unix命令是由javascript庫模擬實現的,返回的都是javascript對象。
看看下面大家就明白了:
Cash的實現:
$('ls');// 'node_modules\n'
$('echofoo > foo.txt'); Shell.JS的實現:
ls();// ['node_modules'];
echo('foo').to('foo.txt'); 順便提一句,筆者還有一個項目 Vorpal 是Node.js寫的。
cash的命令
目前cash支持的命令:
alias
cat
cd
cp
echo
grep
kill
less
ls
mkdir
mv
pwd
rm
sort
touch
unalias
想要筆者開發更多的命令?請在 這里 投票。當然,筆者也歡迎大家來 貢獻代碼 。最近,筆者正在尋找有開發.msi(windows安裝包)經驗的人,希望能幫忙對Cash的內容進行封裝,組成獨立的包,有意者請聯系筆者。
*參考來源: github ,FB小編dawner編譯,有刪改,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)