首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我如何在bash中创建一个"stop“脚本来关闭我之前用不同的bash脚本打开的gnome终端选项卡?

在bash中创建一个"stop"脚本来关闭之前用不同的bash脚本打开的gnome终端选项卡,可以按照以下步骤进行操作:

  1. 创建一个新的bash脚本文件,例如"stop.sh"。
  2. 使用文本编辑器打开"stop.sh"文件,并在文件中添加以下内容:
代码语言:txt
复制
#!/bin/bash
# Stop script to close previously opened gnome-terminal tabs

# Find all gnome-terminal processes
gnome_terminals=$(pgrep -f gnome-terminal)

# Loop through each process and close the corresponding tab
for term_pid in $gnome_terminals
do
    # Get the command line arguments of the process
    term_cmd=$(ps -o cmd -p $term_pid --no-headers)

    # Check if the process was opened using the desired bash script
    if [[ $term_cmd == *"your_previous_script_name.sh"* ]]
    then
        # Close the terminal tab by sending the Ctrl+Shift+W shortcut
        xdotool search --pid $term_pid key --window %@ "ctrl+shift+w"
    fi
done

请注意,上述脚本中的"your_previous_script_name.sh"需要替换为您之前用于打开gnome终端选项卡的具体脚本文件名。

  1. 保存并关闭"stop.sh"文件。
  2. 在终端中,使用以下命令为"stop.sh"脚本添加可执行权限:
代码语言:txt
复制
chmod +x stop.sh
  1. 要关闭之前打开的gnome终端选项卡,只需在终端中运行以下命令:
代码语言:txt
复制
./stop.sh

这将关闭所有之前用于打开gnome终端选项卡的具体脚本文件名匹配的终端选项卡。

在这个解决方案中,我们使用了以下工具和技术:

  • bash脚本语言:用于编写"stop.sh"脚本以执行关闭操作。
  • pgrep和ps命令:用于查找所有正在运行的gnome-terminal进程。
  • xdotool命令:用于发送键盘快捷键Ctrl+Shift+W,以关闭终端选项卡。

这个解决方案适用于需要通过一个脚本关闭之前用不同脚本打开的gnome终端选项卡的情况。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python 自动化指南(繁琐工作自动化)第二版:附录 B:运行程序

此外,虽然从对话框运行 Python 脚本打开一个终端窗口来显示其输出,但该窗口会在程序结束时自动关闭,您可能会错过一些输出。...您可以通过创建批处理脚本来解决这些问题,它是一个带有bat文件扩展名小文本文件,可以运行多个终端命令,很像 MacOS 和 Linux Shell 脚本。...假设我们有一个/home/al/example.py脚本(您 Python 脚本可能在不同文件夹,有不同文件名),我们想从 Dash 运行它。...这将打开一个终端窗口(具体来说,是运行/home/al/example.sh Shell 脚本gnome-terminal程序),我们接下来将创建这个脚本。...如果最后一行没有 bash 命令,Python 脚本一完成,终端窗口就会关闭,您将错过print()函数调用在屏幕上显示任何文本。

1.8K40
  • 何在远程服务器上运行Jupyter Notebooks?

    如果处于这种情况,可以通过在笔记本电脑上编写一个python脚本来设置实验,在数据一小部分上运行它来验证它是否可以运行,将它复制到远程服务器,然后从命令行执行它。...在本文中,将向您展示如何在远程服务器上运行Jupyter Notebook,以及如何在笔记本上访问它。还将演示如何设置两个bash命令以简化整个过程。...这样做缺点是,如果一次运行多个笔记本服务器,您将关闭所有的笔记本服务器。最后,您当然可以通过登录到远程服务器、启动notebook服务器并保持终端窗口打开来手动管理服务器。...这允许您使用常用CTRL+C键盘命令关闭笔记本服务器。 梳理你工作流程 记住所有这些命令可能非常麻烦。幸运是,我们可以通过为每个命令创建bash别名来简化工作。...总结 在这篇文章向您展示了如何使用bash命令在远程服务器上启动、访问和停止Jupyter Notebook,并展示了如何创建bash别名来简化操作。

    3.9K20

    Kali Linux 网络扫描秘籍 第八章 自动化 Kali 工具

    因为可以从 bash 终端执行 NSE 脚本和 MSFCLI,所以可以轻松编写 shell 脚本来将这两个功能组合在一起。...因为该工具( MSFCLI)可以轻易从 bash 终端调用,所以我们很容易构建一个脚本,将两个任务串联到一起,将漏洞扫描与利用相结合。...这些终端一个将运行输入列表 IP 地址之一利用序列。 原始执行终端将在执行时输出进程列表。 所提供示例利用了三个不同系统,并且为每个系统打开单独终端。...这些终端一个将运行输入列表 IP 地址之一利用序列。 原始执行终端在它们被执行时输出进程列表,并且表明在每个终端创建后门。...还将为输入列表每个 IP 地址打开一个 GNOME 终端。 当每个利用过程完成时,应该从目标系统发起 ICMP 回响请求: root@KaliLinux:~# .

    5.2K20

    深入了解定制 Bash | Linux 中国

    Bash 交互模式是一个很多人都熟悉典型终端/命令行界面。GNOME 终端 默认以交互模式打开 Bash。...GNOME 终端默认以非登录模式为用户打开 Shell。...这是用户在 Fedora 上打开终端时通常会进入 shell 类型。当 Bash 以非交互模式启动 —— 就像运行脚本时那样 —— 它会寻找 BASH_ENV环境变量。...你依然可以在 ~/.bashrc 文件设置针对用户级别的历史选项。比如说,习惯同时使用多个终端,那你可能要启用 histappend 选项。...你使用终端和电脑姿势,取决于你如何修改(或不修改)你点文件。 如果你很好奇自己命令行处于什么会话状态,使用下面这个脚本来判断一下。 #!

    1.1K30

    理解Linux 终端终端模拟器和伪终端

    也就是说,内核模块模拟物理终端设备,因此被称为终端模拟器(terminal emulator)。 上图是一个典型Linux桌面系统。...我们可以看看 X 系统打开文件是否包含了设备文件 /dev/tty2。...PTY 是通过打开特殊设备文件 /dev/ptmx 创建,由一对双向字符设备构成,称为 PTY master 和 PTY slave。...我们在桌面启动终端程序 gnome-terminal,它向操作系统请求一个PTY master,并把 GUI 绘制在显示器上 gnome-terminal 启动子进程 bash bash 标准输入、标准输出和标准错误都设置为...举其中一个简单例子,echo 是指示 line discipline 将字符回传规则,我们可以执行命令关闭 echo 规则: $ stty -echo 这时候你再输入一些东西,屏幕上什么也不会出现

    42710

    rsync error: protocol incompatibility mismatch

    在非登录shell里,只读取 ~/.bashrc (和 /etc/bash.bashrc、/etc/bashrc )文件,不同发行版里面可能有所不同RHEL6.3非登录shell仅执行了“~/....有同学会问,本来就是要让用户登录时候有登录提示呀?现在为了 rsync 岂不是得禁掉?...那么,平时我们接触Shell基本上都是交互式gnome-terminal打开一个Shell以及通过Ctrl+alt+1等切换过去文本终端。...交互式Shell下, "echo $-"返回字符串包含i,否则不包含。也可以通过在bash后面加-i参数打开一个交互式Shell,具体可以看man bash。...平时gnome-terminal打开Shell就是非登录Shell。也可以通过在bash后面加--login参数打开一个登录Shell。

    2.9K60

    Windows 下 wsl2 使用及问题记录

    并且另一个致命问题是 每次重启 wsl2 都会自动分配一个 ip 地址,连同宿主机虚拟网段 ip也会改变,所以每次都需要获取并更改服务地址, : 通过 docker 开启了一个服务并监听了一个端口...重启 wsl 服务命令: // 管理员权限打开 powershell #停止LxssManager服务 net stop LxssManager #启动LxssManager服务 net start...代理问题 Windows 平台有各种代理客户端,但是在子系统在使用一个客户端就有点多余了,况且本来子系统就跟宿主机在一个网段,可以直接使用宿主机 ip 加 端口号来启用代理....使用是 clash ,这里说一下 clash 代理如何在子系统中使用. 首先开启 clash LAN 功能 ?...推荐终端方案 也是目前正在使用方案,可能过一段时间就改了 Windows 下 使用 cmder 来复用 git-bash,将 git-bash 设置为 cmder 默认终端,避免使用 cmd,powershell

    7.4K20

    使用 Ctrl+S停止输出而不用挂起前台进程

    最近学到一种新方法,对于不停有 console 输出前台进程,可以使用 Ctrl+S 来 STOP 一个进程输出,从而暂停进程。...关于这一点,可以参考之前一篇文章: [apue] 等待子进程那些事儿 在暂停期间,通过 pstack 命令查看两种方式暂停进程堆栈信息: Ctrl+S >pstack 16673 #0 0x00119424...最后,可以使用 Ctrl+S 停止前台进程前提是 必需打开终端 IXON 标志,使用之前小工具: [apue] 一个查看当前终端标志位设置小工具 可以查看终端输入 flag 是否已经打开了这个标志...如果再打开 IXANY 标志位,则使用任意键都可以重启被停止输出,而不一定要使用 Ctrl+Q。 最后,还有一个隐藏前提,就是被暂停进程在前台有频繁输出,否则 Ctrl+S 也无用武之地。...总结一下,今天学到一个方法去暂停运行前台进程,可能对于运维老鸟来说已经是手到擒来,对却是完全新鲜, 所以花了些时间研究下,感觉 linux 博大精深,不起眼处可能就藏着一些好东西,值得挖掘!

    71620

    写给工程师 Ubuntu 20.04 最佳配置指南

    安装 Python2 Ubuntu20.04 自带了 python3,但是某些第三方工具或者脚本还是 python2,因此我们需要自行安装 apt install python 6....目录下生成两个文件:config.yaml 和 Country.mmdb;编辑 config.yaml 文件,配置代理服务器信息和规则,部分商家会提供yaml文件,下载后 copy 过来即可; 重启 clash(关闭并重新打开终端...按照前面的方式配置好后,每次系统启动时都需要打开终端,执行 clash 命令,并且终端不可以关闭,否则整个 clash 进程就结束了。...在解决问题之前,先补充一个关键知识点:显示管理器(Display Manager),它用来提供图形化登陆,向用户显示图形化登陆界面,并处理用户身份验证。...并不是把自动登陆关闭后 gdm3 bug 就一定能规避掉,这一点可能只适用于我安装 Ubuntu19.10;这里说原因也不一定适用所有人。

    7.5K03

    终端与shell区别

    {/callout} shell 之前很迷惑一个问题是,有终端就够了嘛,输入命令,执行并把结果输出,要shell干什么。更让人抓狂shell还有很多种类,bash,cshell,zsh。...)2 shell分为: 图形化 shell( 图形化桌面环境 ),Windows Explorer (文件管理器)、 Linux桌面环境有:KDE、GNOME、CDE、 XFCE等。...不同shell语言可以看做java语言不同版本。 不同shell区别主要是两方面: 脚本语言语法有差异 功能、外观、自定义美化上有差异 脚本语言 早期sh甚至不支持给长命令设置别名语法。...zsh虽然完全兼容bash语法,但还有一些语法差异 自定义功能配置 除非我们需要编写shell脚本,普通用户一般很难发现不同shell脚本语言差异。...- 韦易笑回答 - 知乎 终端 zsh 和 bash

    76920

    写给工程师 Ubuntu 20.04 最佳配置指南

    安装 Python2 Ubuntu20.04 自带了 python3,但是某些第三方工具或者脚本还是 python2,因此我们需要自行安装 apt install python 6....目录下生成两个文件:config.yaml 和 Country.mmdb;编辑 config.yaml 文件,配置代理服务器信息和规则,部分商家会提供yaml文件,下载后 copy 过来即可; 重启 clash(关闭并重新打开终端...按照前面的方式配置好后,每次系统启动时都需要打开终端,执行 clash 命令,并且终端不可以关闭,否则整个 clash 进程就结束了。...在解决问题之前,先补充一个关键知识点:显示管理器(Display Manager),它用来提供图形化登陆,向用户显示图形化登陆界面,并处理用户身份验证。...并不是把自动登陆关闭后 gdm3 bug 就一定能规避掉,这一点可能只适用于我安装 Ubuntu19.10;这里说原因也不一定适用所有人。

    7.9K61

    批处理安装应用程序——给你一个不使用命令行自动化解决方案

    发现自己在每次“ nuke and pave”之后都重复安装了同一套软件。 于是,找到了一种节省大量时间解决方案:编写一个简单bash脚本! ? ? 什么是Bash脚本?...但是在运行此脚本之前,我们需要使其成为可执行文件。现在回到“过去”看看原来操作,您是必须要在终端执行此操作。但是这可是已经21世界了,让我们像普通人一样使用自己桌面吧! ?...准备就绪后,只需右键单击脚本,选择“打开”,然后选择“在终端运行”。您所要做就是输入密码,然后就可以开始运行了。脚本所有应用都将被安装,并且将随系统更新一起自动更新。...重要说明:某些发行版可能无法让您选择在终端自动运行脚本。如果没有,请打开终端应用程序(或仅在活动屏幕或菜单搜索“终端”)。...涉及更多脚本,可以节省您数小时手动输入时间 在Fedora挑战赛偶然发现了社区成员Tobias编写精美bash脚本

    1.1K20

    Linux:终端欢迎信息设置

    接下来,我们将探讨如何在Linux系统设置这些登录后欢迎信息。...可以在这个文件添加命令,用于显示自定义欢迎信息或执行其他脚本。 实现步骤 编辑/etc/motd文件 打开终端。 输入命令 sudo nano /etc/motd。 输入或编辑您想展示信息。...保存并关闭文件。 利用/etc/profile添加动态信息 打开终端。 输入命令 sudo nano /etc/profile。 在文件末尾添加自定义命令或脚本。...保存并关闭文件。 高级应用 除了上述基础方法,还可以使用脚本来生成动态登录信息。例如,创建一个脚本,显示系统负载、内存使用情况等。 创建脚本 编写一个bash脚本,例如 welcome.sh。...在脚本添加需要显示系统信息代码。 配置/etc/profile执行脚本 在/etc/profile文件添加执行脚本命令, sh /path/to/welcome.sh。

    49610

    写给前端同学终端修炼手册

    小试牛刀 当我们第一次打开终端应用程序时,我们会看到这样一个界面: 我们终端界面可能会有所不同,这取决于操作系统、终端应用程序或shell语言。然而,最终我们可能会看到一行文字和大量空白空间。...❝它本质上是一个符号,表示“这里内容是要在终端运行!” 即使在许多现代shell语言Zsh不再使用$作为提示符字符,这种符号意义仍然保留了下来。...在Zsh shell语言中,默认提示符由一个箭头和当前目录名称组成,→ PersonWorkSpace。 ❝但是,为什么之前是波浪号,而不是父目录名称?...终端充满了结果,显示ping返回时间在50-60毫秒之间 与我们之前看到命令不同,ping 是一个长时间运行进程。...在 IDE 打开项目 当我想开始一个项目时,首先在终端中导航到项目的根目录。然后运行以下命令: cd path/to/project code . 如前所述,. 指的是当前工作目录。

    13310

    云课五分钟-09Linux基础命令实践-AI助力快速入门

    Linux基础入门内容包括以下几个方面: Linux基础命令:学习如何在Linux终端中使用基础命令,文件和目录操作、进程管理、文本编辑等。这些命令是你在Linux中进行日常操作基础。...Linux软件包管理:学习如何使用Linux软件包管理系统,apt、yum等,安装、更新和卸载软件包。 Linux用户及组管理:理解Linux用户和组概念,学习如何创建、删除和管理用户及组。...**打开终端**:     * 在Ubuntu系统,你可以通过按下`Ctrl + Alt + T`组合键来打开终端。 2....以下是一个针对UbuntuLinux终端典型基础命令示例教程: 打开终端: 在Ubuntu系统,你可以通过按下Ctrl + Alt + T组合键来打开终端。...fi # 关闭脚本程序 print_color 32 "奇妙脚本程序即将退出,感谢你使用!" exit 0 这个脚本实现了一个简单猜数字游戏。

    16850

    如何入门 Bash 编程

    终端执行一个动作时,你也在学习如何编写脚本。 例如,曾经负责将大量 PDF 书籍转换为低墨和友好打印版本。...通过使用 GhostScript 处理了几天任务,确认这是解决问题方法。 编写基本脚本来运行命令,只不过是复制用来从 PDF 删除图像命令和选项,并将其粘贴到文本文件而已。...将这个文件作为脚本运行,大概也会产生同样结果。 向 Bash 脚本传参数 在终端运行命令与在 Shell 脚本运行命令之间区别在于前者是交互式。在终端,你可以随时进行调整。...但是通过创建一个接受输入脚本可以一次将几个 PDF 文件全部提交给脚本。该脚本按顺序处理了每个文件,这可能需要半小时或稍长一点时间,但是可以半小时来完成其他任务。...通常这是一个发现过程:你一定会找到新 Linux 命令来执行你从未想象过可以通过文本命令执行任务,你会发现 Bash 新功能,使你脚本可以适应所有你希望它们运行不同方式。

    94530

    Tomcat 进程意外突崩,元凶居然是它...

    这种情况下,如果用户直接关闭ssh终端窗口(鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...第一反应可能是jvm在某些参数下(或因为某些jni)对os信号处理会不同,看了一下应用jvm参数,没有看出问题,也排除了tomcat使用apr/tcnative情况。...这说明shell对signal_handler做手脚是在执行用户逻辑之前,也就是脚本在fork出子进程时候就设置了。...而非交互模式下,通常是不需要作业控制,所以作业控制在非交互模式下默认也是关闭(当然也可以在脚本里通过选项set -m打开作业控制选项)。...不开启作业控制的话,脚本后台进程可以通过设置忽略SIGINT信号来避免父进程对组成员传播,因为对它来说这个信号已经没有意义。

    1.1K10
    领券