You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下多终端执行命令并指定窗口布局的脚本开发需求

实现Ubuntu多终端指定布局与命令的脚本

在Ubuntu系统中,我们可以通过终端工具(如默认的gnome-terminal)的命令行参数来实现多窗口的布局控制与命令自动执行,以下是具体实现方案:

核心思路

利用终端的--geometry参数指定窗口的大小与位置,格式为宽x高+左侧偏移+顶部偏移(单位为终端字符的行列数),同时通过--command参数指定终端启动后自动执行的命令。

基础示例脚本

#!/bin/bash

# 左侧终端:执行dmesg实时输出,窗口占屏幕左半侧、全屏高度
gnome-terminal --geometry=80x40+0+0 --command="bash -c 'dmesg -w; exec bash'" &

# 右侧上方终端:执行top命令,窗口占右半侧上半部分
gnome-terminal --geometry=80x20+80+0 --command="bash -c 'top; exec bash'" &

# 右侧下方终端:执行htop命令,窗口占右半侧下半部分
gnome-terminal --geometry=80x20+80+20 --command="bash -c 'htop; exec bash'" &

参数说明

  • --geometry=WxH+X+Y:W为终端列数,H为行数,X是窗口距离屏幕左侧的偏移,Y是距离顶部的偏移
  • bash -c "命令; exec bash":确保命令执行完毕后终端不会自动关闭,保持窗口存活

自适应屏幕的进阶脚本

如果需要适配不同分辨率的屏幕,可以通过xrandr获取屏幕尺寸,自动计算终端窗口的大小:

#!/bin/bash

# 获取当前屏幕分辨率(像素)
SCREEN_INFO=$(xrandr | grep '*' | awk '{print $1}')
SCREEN_WIDTH=$(echo $SCREEN_INFO | cut -d'x' -f1)
SCREEN_HEIGHT=$(echo $SCREEN_INFO | cut -d'x' -f2)

# 转换为终端行列数(默认字符尺寸:8px宽 × 16px高)
TERM_COLS=$((SCREEN_WIDTH / 8))
TERM_ROWS=$((SCREEN_HEIGHT / 16))

# 左侧dmesg终端:占屏幕宽度的一半、全屏高度
LEFT_COLS=$((TERM_COLS / 2))
gnome-terminal --geometry=${LEFT_COLS}x${TERM_ROWS}+0+0 --command="bash -c 'dmesg -w; exec bash'" &

# 右侧终端:分为上下两个,各占一半高度
RIGHT_COLS=$((TERM_COLS - LEFT_COLS))
RIGHT_ROWS=$((TERM_ROWS / 2))

# 右侧上方执行top
gnome-terminal --geometry=${RIGHT_COLS}x${RIGHT_ROWS}+${LEFT_COLS}+0 --command="bash -c 'top; exec bash'" &

# 右侧下方执行htop
gnome-terminal --geometry=${RIGHT_COLS}x${RIGHT_ROWS}+${LEFT_COLS}+${RIGHT_ROWS} --command="bash -c 'htop; exec bash'" &

使用说明

  1. 将上述代码保存为multi_terminal.sh
  2. 赋予脚本执行权限:chmod +x multi_terminal.sh
  3. 运行脚本:./multi_terminal.sh

注:如果使用的是其他终端(如Konsole),参数逻辑类似,Konsole使用--geometry指定布局,--execute指定执行命令。

内容的提问来源于stack exchange,提问作者user1296153

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:30:33