1 个不稳定版本
0.1.0 | 2021 年 6 月 6 日 |
---|
118 在 #run-command
14KB
273 行
termrun
在其他打开的 Unix 终端上发送并运行命令
用法
$ termrun [--newline] [--all|--pty /dev/pty/N] cmd
注意:除非以 root 用户身份设置,否则每次都需要使用 sudo
。请参阅下面的权限部分
简单示例
打开终端 1
$ tty
/dev/pts/2
打开终端 2
$ termrun --newline --pty /dev/pts/2 echo hello world
--newline
在发送的命令末尾添加 \n
以实际运行
在打开的终端 1 中显示
$ tty
/dev/pts/2
$ echo hello world
hello world
重新加载所有终端示例
$ vim ~/.zshrc # make config changes
$ termrun --newline --all source ~/.zshrc
安装
Cargo
如果您使用的是较新版本的 Cargo,您可以看到 cargo install
命令
$ cargo install termrun
从源代码构建
在 git 克隆此仓库之后,您可以通过以下方式将其安装为一个 cargo 包:
$ cargo install --path path/to/repo
这将使 termrun
在任何地方可用,假设您的 cargo 包位于 $PATH
权限/安装后
termrun
在内部通过 TIOCSTI 命令标志使用 ioctl(2)
。为了成功执行此操作,进程需要 root 用户权限。
在实践中,这意味着必须使用 sudo
运行 termrun
。默认情况下,当您安装全局包时,sudo 不会了解它们
$ termrun
Error: EPERM: Operation not permitted
$ sudo termrun
[sudo] password for user:
sudo: termrun: command not found
这里的一些解决方案是
- (最简单的方法) 将
termrun
链接到一个sudo
友好的路径:sudo ln -s ~/.cargo/bin/termrun /usr/local/bin/
- 始终指定完整的包路径,以便
sudo
可以找到termrun
:sudo ~/.cargo/bin/termrun
- 指定
sudo
使用您的$PATH
:sudo env "PATH=$PATH" termrun
许可证
MIT - 由 Milan 维护
依赖关系
~4–12MB
~146K SLoC