如何使用命令的输出作为另一个命令的参数?我的具体的例子是,我想要得到的PID使用过程中pgrep
,并把它传递给-p
的选项lsof
。
我试过如下:
pgrep myprocess | lsof -p /dev/stdin
pgrep myprocess | lsof -p -
我知道你可以这样做:
pid=$(pgrep myprocess) && lsof -p "$pid"
但必须有更好的方法来做到这一点。也许xargs
或什么?我一直找不到干净的东西,所以我很感激任何帮助。
谢谢!
我想强制会话中的窗口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
这些选项似乎被忽略(我尝试过摆弄激进的调整大小设置)
是否有可能在所有 shell 之间共享单个命令历史记录?
我认为默认情况下历史记录会被首先退出的 shell 覆盖。之前我做过每个 shell 都有一个“名称”和自己的历史文件的东西,但现在我对 shell 的使用更加轻量级,所以感觉有点矫枉过正。
看来我没有启用 incapendhistory:
> setopt | grep inc
Run Code Online (Sandbox Code Playgroud)
跑步setopt incappendhistory
解决了这个问题。然后,通过查看历史文件,我可以看到这些文件是立即附加的。
然而,这个历史记录似乎只有在打开新外壳后才可用于其他外壳(这可能是我所追求的行为)。sharedhistory
在其他 shell 中使用命令进行的设置setopt
立即可用。我实际上并不认为这就是我所追求的 - 因为在不同的 shell 中拥有不同的历史是有用的。我只是不想失去历史。
我有两个在单独的配置文件下运行的 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)
抱怨已经有一个实例在该配置文件下运行。
我弄乱了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
.
有没有一种简单的方法可以从命令行中从文本文件中删除所有降价?
可安装的解决方案apt
是可取的。但是做不到这一点apt
优于pip
优于gem
优于npm
(对我来说)。
有没有办法在不使用服务器进程的情况下从命令行实现发布/订阅模式?这只需要在一台机器上工作。
我想通过没有服务器进程来避免的主要事情是配置一台机器来使用这些工具。我也非常希望不必处理我的服务器进程死亡的可能性。|
这可能类似于:
# 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 ×2
zsh ×2
arguments ×1
executable ×1
firefox ×1
interpreter ×1
ipc ×1
markdown ×1
scripting ×1
shebang ×1
shell ×1
tmux ×1
xml ×1
zle ×1