• 请不要在回答技术问题时复制粘贴 AI 生成的内容
vitalis
V2EX  ›  程序员

分享一个在 Windows 平台运行 Linux 命令的新方式

  •  
  •   vitalis · Jun 11, 2018 · 7953 views
    This topic created in 2904 days ago, the information mentioned may be changed or developed.

    用过 Linux 命令的人无不被他的强大折服,回头再也瞧不上 Windows 的命令行。甚至有人编译半天,折腾出了 cygwin。今天给大家介绍一个超简单的工具 Cash,直接用纯 ES6 实现的跨平台的 Linux 命令集。

    Cash 的实现没有任何原生编译和其他额外依赖,在 Windows 上通过 JS 环境提供一个跟 Linux 体验一致的跨平台 bash 脚本终端。

    npm 即可安装:

    > npm install cash -g
    > cash
    $
    

    cash.gif

    而且还能混合 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');
    

    Cash 已经支持的命令清单,如下:

    • alias
    • cat
    • clear
    • cd
    • cp
    • echo
    • export
    • false
    • grep
    • head
    • kill
    • less
    • ls
    • mkdir
    • mv
    • pwd
    • rm
    • sort
    • source
    • tail
    • touch
    • true
    • unalias

    想支持更多命令?看看 cash 下一步的规划

    更多Node.js 精彩命令行应用

    更多Node.js 开脑洞的命令行开发模式

    Supplement 1  ·  Jun 11, 2018

    标题可能有点歧义,如果追求完整的Linux体验,用Linux发行版是最好的。这是一个Linux命令ES6实现,跟Powershell不一回事,没可比性。至于WSL那种在Windows里套一个Ubuntu的做法也不一样,喜欢Linux环境又不得不用Windows的可以选择WSL,甚至vmware、virtualbox之类的虚拟机。

    再强调一下:这是一个纯ES6实现的,兼容Node.js开发的,轻量级Linux命令行库。不相干的对比,就不再一一回复了。

    30 replies    2018-06-12 10:23:11 +08:00
    kingname
        1
    kingname  
       Jun 11, 2018   ❤️ 3
    我现在用 wsl,非常好用。
    vitalis
        2
    vitalis  
    OP
       Jun 11, 2018
    jiangnanyanyu
        3
    jiangnanyanyu  
       Jun 11, 2018 via Android
    安装了 gjtbash 会不会有冲突
    vitalis
        4
    vitalis  
    OP
       Jun 11, 2018
    @jiangnanyanyu 重名的命令会按系统 PATH 变量的先后识别
    ce233
        5
    ce233  
       Jun 11, 2018 via iPhone
    Ubuntu 子系统了解一下?
    visitantzj
        6
    visitantzj  
       Jun 11, 2018   ❤️ 1
    了解一下强大的 powershell 先 o(∩_∩)o
    leon0318
        7
    leon0318  
       Jun 11, 2018 via Android
    wsl 了解一下+1
    vitalis
        8
    vitalis  
    OP
       Jun 11, 2018
    @wxkvEX
    @visitantzj
    @leonme
    PowerShell 理论上足够强大,但是过于复杂(除了 Windows 偏好者之外不知道有多少 NIX 用户能接受),对于适应 bash 的人来说不如 Windows Subsystem for Linux。
    Cash 是一个轻量级、无任何系统原生编译的、可在代码里使用的 Linux 命令行。
    AllOfMe
        9
    AllOfMe  
       Jun 11, 2018
    这 npm 包有创意
    jiangnanyanyu
        10
    jiangnanyanyu  
       Jun 11, 2018 via Android
    比如 nodejs 的 path 和 gitbash 的 path 的先后顺序么?
    Cooky
        11
    Cooky  
       Jun 11, 2018
    cygwin,msys2,wsl
    des
        12
    des  
       Jun 11, 2018 via Android   ❤️ 1
    意义不大,用 linux 用的是生态不,是这几个 shell 命令

    还有 cygwin 是需要编译安装的吗?
    黑人问号.jpg
    pexcn
        13
    pexcn  
       Jun 11, 2018
    MSYS2 更好
    shijingshijing
        14
    shijingshijing  
       Jun 11, 2018 via iPhone
    gitbash 自带的就已经很厉害了,不折腾其他的幺蛾子了
    kingname
        15
    kingname  
       Jun 11, 2018
    @vitalis windows 10 自带的 Linux 子系统。是真正的 Linux,不是楼主发的这种模拟器可以比的。
    kingname
        16
    kingname  
       Jun 11, 2018
    wsl 配合 Visual Studio Code 自带的终端。简直完美。
    r7st
        17
    r7st  
       Jun 11, 2018
    PowerShell 完美解决
    congeec
        18
    congeec  
       Jun 11, 2018 via iPhone
    Is it posix compatible? Why not busybox?
    vitalis
        19
    vitalis  
    OP
       Jun 11, 2018
    vitalis
        20
    vitalis  
    OP
       Jun 11, 2018
    @des 你可以用别人编译好的,用 Linux 系统自然更好。如果在 Node.js 环境或做相关开发,这个包就有价值了。
    wtks1
        21
    wtks1  
       Jun 11, 2018 via Android
    问一下,这个支持 win7 或者 win8 系统吗?
    vitalis
        22
    vitalis  
    OP
       Jun 11, 2018
    @wtks1 支持,只要有 Node.js 环境就行。
    sengle
        23
    sengle  
       Jun 11, 2018
    cmder?
    vitalis
        24
    vitalis  
    OP
       Jun 11, 2018
    @sengle linuxer & programer & node.js
    kexxxfeng
        25
    kexxxfeng  
       Jun 11, 2018 via iPhone
    如何在 Windows 中直接调用 WSL 中的程序,例如 git, node, ssh 等等
    creanme
        26
    creanme  
       Jun 11, 2018
    @kexxxfeng 估计直接调不了,只能在命令行或者图形界面中调。
    RalphHuang
        27
    RalphHuang  
       Jun 11, 2018
    还是 WSL 用着顺手
    Qzier
        28
    Qzier  
       Jun 12, 2018 via iPhone
    wsl + hyper 挺好的
    laogui
        29
    laogui  
       Jun 12, 2018 via Android
    每次看到 Win10 上 wsl 不用折腾其他的命令行环境真为他们惋惜。
    wssy921
        30
    wssy921  
       Jun 12, 2018
    是一种新思路,也可以,支持一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2798 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 144ms · UTC 10:16 · PVG 18:16 · LAX 03:16 · JFK 06:16
    ♥ Do have faith in what you're doing.