在我的tmux.conf文件中,我将其配置为打开窗口、命名它们、设置窗格等。等等。
但是,我遇到的一个问题是,如果其中一个窗格启动了一个命令,比如说ls,那么该窗格会在命令完成后(立即)自行关闭。有什么办法可以防止这种行为吗?或者在命令完成后它会降到正常的shell?
我假设我需要在窗格启动时启动一个 shell -> 执行命令,但如果我能弄清楚如何做,我会被诅咒的。我为这个问题搜索了一些谷歌,但没有找到。
Cal*_*leb 32
你有几个选择。
不要ls在您的窗口中运行,而是运行一个 shell,然后发送 shell 按键来执行:
tmux start-server
tmux new-session -d -s session
tmux new-window -t session:1
tmux send-keys -t session:1 ls C-m
Run Code Online (Sandbox Code Playgroud)您可以使用一系列命令,在其他命令运行后留下一个 bash shell:
tmux start-server
tmux new-session -d
tmux new-window 'ls;bash -i'
Run Code Online (Sandbox Code Playgroud)有关在进程退出后使窗格保持活动状态的选项的详细信息,请参阅jasonwryan 的回答,remain-on-exit以便您可以查看输出。
如果某个命令的输出值得一看,那么它可能值得刷新。如果您正在监视某些东西的输出,则可以watch定期获取新输出。这应该可以很好地与 中的窗格配合使用tmux:
tmux start-server
tmux new-session -d
tmux new-window 'watch -n 60 ls'
Run Code Online (Sandbox Code Playgroud)jas*_*yan 15
您可以使用该remain-on-exit选项:
退出时保持[on | off]
设置了此标志的窗口在其中运行的程序退出时不会被销毁。可以使用 respawn-window 命令重新激活该窗口。
为了简化重生过程,您可能希望将其绑定到一个键:
bind-key R respawn-windowRun Code Online (Sandbox Code Playgroud)
这将确保您在程序退出时不会留下死窗口。