小编Att*_*igh的帖子

使用管道标准输入作为下一个命令的参数

如何使用命令的输出作为另一个命令的参数?我的具体的例子是,我想要得到的PID使用过程中pgrep,并把它传递给-p的选项lsof

我试过如下:

  • pgrep myprocess | lsof -p /dev/stdin
  • pgrep myprocess | lsof -p -

我知道你可以这样做:

pid=$(pgrep myprocess) && lsof -p "$pid"

但必须有更好的方法来做到这一点。也许xargs或什么?我一直找不到干净的东西,所以我很感激任何帮助。

谢谢!

command-line shell arguments

9
推荐指数
1
解决办法
3996
查看次数

如何强制 tmux 窗口为给定大小

我想强制会话中的窗口tmux为特定大小,无论我的终端有多大。我怎样才能做到这一点?

语境

我正在尝试在 asciinema 中记录 tmux,如下所述https://github.com/asciinema/asciinema/wiki/Recording-tmux-session(在命令上运行 asciinema tmux attach)。但是显示器太大了,我想强制调整tmux window.

我尝试过的事情

我有一个成功的解决方案,我使用 tmux 会话的第二个视图来mate-terminal -e 70x20强制窗口大小......但这看起来像是一个 hack。

尝试使用 -x 强制会话大小

tmux new-session -x $X -y $Y -d

这些选项似乎被忽略(我尝试过摆弄激进的调整大小设置)

tmux

8
推荐指数
1
解决办法
8952
查看次数

Zsh:我可以拥有所有 shell 的综合历史记录吗

是否有可能在所有 shell 之间共享单个命令历史记录?

我认为默认情况下历史记录会被首先退出的 shell 覆盖。之前我做过每个 shell 都有一个“名称”和自己的历史文件的东西,但现在我对 shell 的使用更加轻量级,所以感觉有点矫枉过正。

更新

看来我没有启用 incapendhistory:

> setopt | grep inc
Run Code Online (Sandbox Code Playgroud)

跑步setopt incappendhistory解决了这个问题。然后,通过查看历史文件,我可以看到这些文件是立即附加的。

然而,这个历史记录似乎只有在打开新外壳后才可用于其他外壳(这可能是我所追求的行为)。sharedhistory在其他 shell 中使用命令进行的设置setopt立即可用。我实际上并不认为这就是我所追求的 - 因为在不同的 shell 中拥有不同的历史是有用的。我只是不想失去历史

command-history zsh

8
推荐指数
1
解决办法
6638
查看次数

如何使用 Firefox 打开不同配置文件中的外部链接?

我有两个在单独的配置文件下运行的 Firefox 实例:

$ firefox -P default &
...
$ firefox -no-remote -P second &
Run Code Online (Sandbox Code Playgroud)

现在我可以从命令行打开一个新选项卡:

$ firefox -new-tab http://unix.stackexchange.com
Run Code Online (Sandbox Code Playgroud)

但是如何在第二个配置文件中打开一个新选项卡?

这个:

$ firefox -P second -new-tab http://unix.stackexchange.com
Run Code Online (Sandbox Code Playgroud)

在默认配置文件中打开一个选项卡,同时:

$ firefox -no-remote -P second -new-tab http://unix.stackexchange.com
Run Code Online (Sandbox Code Playgroud)

抱怨已经有一个实例在该配置文件下运行。

firefox

7
推荐指数
1
解决办法
1276
查看次数

如何找到与 zle 小部件关联的 zsh 函数?

我弄乱了accept-line小部件并没有得到我想要的结果。我想通过查找底层 zsh 函数来检查(并记录)accept-line 发生了什么。

我的理解是 zle 小部件存在于它们自己单独的命名空间中,操作zle -N映射键到该命名空间中的值和操作zle -A复制映射。

我对zshzle手册页进行了相当详细的搜索,并进行了一些谷歌搜索,但我能想到的最好的是使用该zle -l操作的以下内容。

zle -l  | grep '^accept-line ' | grep -Eo '\(.*\)' | tr -d '()'
Run Code Online (Sandbox Code Playgroud)

有没有什么不直接依赖于zle -l.

zsh zle

6
推荐指数
1
解决办法
590
查看次数

有没有一种简单的方法可以从命令行中从文本文件中删除所有降价?

有没有一种简单的方法可以从命令行中从文本文件中删除所有降价?

可安装的解决方案apt是可取的。但是做不到这一点apt优于pip优于gem优于npm(对我来说)。

markdown

5
推荐指数
1
解决办法
539
查看次数

没有服务器的命令行发布/订阅?

有没有办法在不使用服务器进程的情况下从命令行实现发布/订阅模式?这只需要在一台机器上工作。

我想通过没有服务器进程来避免的主要事情是配置一台机器来使用这些工具。我也非常希望不必处理我的服务器进程死亡的可能性。|

这可能类似于:

# client 1
subscribe name | while read line; do echo $line; done

# client 2
subscribe name | while read line; do echo $line; done

# server
echo message | publish name
Run Code Online (Sandbox Code Playgroud)

相关链接

command-line ipc

5
推荐指数
1
解决办法
1350
查看次数

xslt shbang:从命令行使用 xslt

我已经(愚蠢地?)写了几个中等通用的xslt 脚本。

我很想将这些转换为从标准输入或类似内容读取 xml 文档的可执行文件。

使用其他语言执行此操作的方法是使用shbang

有没有一种简单/标准的方法可以用 xsltproc 和朋友来做到这一点?当然,我可以在 xsltproc 周围编写一个包装器,从第一条注释行开始……但如果有一些接近标准的东西,这会更好用。

scripting xml executable shebang interpreter

3
推荐指数
1
解决办法
960
查看次数