Cash:Javascript打造的Unix Shell

摘要

Cash:Javascript打造的Unix Shell

Cash是一种纯粹由ES6(Javascript)实现的跨平台的Unix shell,它可以在windows下使用,曾经受超过200次严格全面的单元测试。

介绍

Cash的github地址在这里,你可以联想下Cygwin,不过Cash还具有别的特性:

1.非本地编译

2.没有麻烦的DLL文件

3.任何终端可用

4.只有Cygwin约15分之一的大小

Cash其实有特殊的意义,它将“>”标志换成了“$”,也就是货币符号,代表着“问既有答”的理念。

> cash $

Cash:Javascript打造的Unix Shell

当然,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) 


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) 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: