V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
b00tyhunt3r
V2EX  ›  程序员

OSX 怎么让 terminal 命令行支持自己写的程序

  •  
  •   b00tyhunt3r · 2019-10-22 13:39:54 +08:00 via iPhone · 1808 次点击
    这是一个创建于 1859 天前的主题,其中的信息可能已经有所发展或是发生改变。
    正在写一个基于命令行的聊天程序练手,想问一下如何像例如 nginx 或者 brew 等等诸多应用那样想使用的时候直接在终端里输入 nginx xxxx 就行了而不用./指定所在目录再启动?是需要把程序放在某个特殊的目录下吗?不知道说清楚没,谢谢大佬解惑!
    8 条回复    2019-10-22 16:11:54 +08:00
    zmxnv123
        1
    zmxnv123  
       2019-10-22 13:43:39 +08:00
    path
    arrow8899
        2
    arrow8899  
       2019-10-22 13:46:13 +08:00
    export PATH=/your/app:$PATH
    xingheng
        3
    xingheng  
       2019-10-22 13:59:00 +08:00
    nginx 和 brew 这类命令可以直接在你的 terminal 里面用是因为你当前 shell session 的环境变量 PATH 里面包含了他们的所在路径,用`where brew`可以找到对应执行入口的路径。

    vim $(where brew),查看 brew 的执行入口文件是什么样的:
    #!/bin/bash
    set +o posix
    ....

    从这里开始 shell 会解释执行这个 bash 脚本文件....你可以把自己写的脚本文件放到 PATH 之中的任一路径中,然后使用脚本文件名就可以被 shell 发现。

    当然还有其他方法,比如 alias,shell/bash function,都可以满足你的这类需求。
    KuroNekoFan
        4
    KuroNekoFan  
       2019-10-22 14:13:45 +08:00 via iPhone
    alias
    zunceng
        5
    zunceng  
       2019-10-22 15:03:53 +08:00
    export PATH="/Users/$User/bin:$PATH"
    zunceng
        6
    zunceng  
       2019-10-22 15:04:52 +08:00
    然后把 你写的软件 安装(软链接)进你 home 下的 bin 目录
    shawndev
        7
    shawndev  
       2019-10-22 16:00:28 +08:00
    1. 使用绝对路径
    2. 将可执行文件加入 PATH 变量,并加入到.bash_profile 或者 .zshrc
    gunjianpan
        8
    gunjianpan  
       2019-10-22 16:11:54 +08:00
    软链接一下 ln -s
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2689 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:17 · PVG 23:17 · LAX 07:17 · JFK 10:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.