1、使用shell脚本打开终端到指定路径执行指定命令:

1、需求:
    了接了 gnome-terminal 命令的使用方法,可以自己编一个shell脚本,直接配置终端窗口。
    比如我每次开机我想打开十个工作目录并运行一下命令(比如打开工作软件等),读者可写一个这样的shell脚本:

2、用法:
  gnome-terminal [选项…] [-- 命令 …]
  
  在终端中 输出 gnome-terminal,就会自动弹出一个新的终端.命令执行完或者遇到错误后,这个新终端也会闪退。
  
  在bash中 加上exec bash。这样新终端在执行完命令后也不会退出了。
  gnome-terminal --bash -c 'python3;exec bash'

    
3、参数说明:
    帮助选项:
      -h, --help                     显示帮助选项
      --help-all                     显示全部帮助选项
      --help-gtk                     显示 GTK+ 选项
      --help-terminal                显示终端选项
      --help-window-options          显示每个窗口的选项
      --help-terminal-options        显示每个终端的选项

    GTK+ 选项
      --class=类                     窗口管理器所使用的程序类
      --name=名称                    窗口管理器所使用的程序名
      --gdk-debug=标志               要设置的 GDK 调试标志
      --gdk-no-debug=标志            要取消的 GDK 调试标志
      --gtk-module=模块              装入额外的 GTK+ 模块
      --g-fatal-warnings             将警告变为严重
      --gtk-debug=标志               要设置的 GTK+ 调试标志
      --gtk-no-debug=标志            要取消的 GTK+ 调试标志

    Options to open new windows or terminal tabs; more than one of these may be specified:
      --window                       打开包含默认配置下一个标签页的一个新窗口
      --tab                          在最后一个打开的窗口中打开一个默认配置下的新标签页

    Window options; if used before the first --window or --tab argument, sets the default for all windows:
      --show-menubar                 打开菜单栏
      --hide-menubar                 关闭菜单栏
      --maximize                     最大化窗口
      --full-screen                  全屏幕窗口
      --geometry=几何形状            设置窗口大小;例如:80x24,或者 80x24+200+200(列x行+X坐标+Y坐标)
      --role=角色                    设置窗口角色
      --active                       将上次指定的标签页设定为所在窗口的当前标签页

    Terminal options; if used before the first --window or --tab argument, sets the default for all terminals:
      -e, --command                  在终端中执行此选项的参数
      --profile=配置文件名           使用提供的配置文件而非默认配置
      -t, --title=标题               设置初始终端标题
      --working-directory=目录名     设置工作目录
      --wait                         等待子进程退出
      --fd=文件描述符                转发文件描述符
      --zoom=缩放                    设置终端的缩放系数(1.0 = 正常大小)

    应用程序选项:
      --load-config=文件             载入一个终端配置文件
      --preferences                  显示首选项窗口
      -p, --print-environment        打印与终端交互的环境变量
      -v, --verbose                  增加诊断详细程度
      -q, --quiet                    抑制输出
      --display=显示                 要使用的 X 显示
            
            
            
            
    -t, --title=标题    为打开终端设置初始的标题,便于区分。
    -c,--command:       -c是指cmd ,后面是要执行的命令,双引号中可以为多个命令命令以分好为结束符号,如果执行多个命令,可以用分号隔开,如:"test1.sh; test2.sh"
    &                   如果需要同时并行启动多个脚本可以在命令行后面加 & 符号,使命令后台运行.
    -e excute:          可以出现多次,要注意 -e 后面只能有一个参数,也就是说 -e 后面的所有需要用引号括起来。如:-e 'bash -c "pwd; exec bash;"'
                        如:gnome-terminal -e 'bash -c "ls; exec bash"'
                        
    exec bash:          是让打开的终端在执行完脚本后不关闭一直存在。 如果直接写bash也行,相当于开了一个子shell。 
    --window:           表示打开一个终端窗口。
        如:gnome-terminal --window --window #打开两个终端
        如:gnome-terminal --window --tab --window --tab --tab #打开两个终端,第一个两个tab,第二个3个tab
    --tab:              在其中新开辟一个标签页,如果还想要更多标签页就就继续加--tab。
    --profile=配置文件名           使用提供的配置文件而非默认配置
    --working-directory=目录名     设置工作目录
    --wait                         等待子进程退出
    --fd=文件描述符                 转发文件描述符
    --zoom=缩放                     设置终端的缩放系数(1.0 = 正常大小)
    $ 

$
-x: 后面的为要在打开的终端中执行的命令脚本类型,根据需要自己修改就行了,-x 只能出现一次。可修改的命令类型如下:
如:gnome-terminal -x bash -c “ls; exec bash”
1、SHELL:壳,连接用户和Linux内核,命令行解释器
2、BASH:shell的一种,属于linux系统的概念,linux系统下的“黑窗口”就叫作Bash shell
3、DOS:磁盘操作系统,Windows模拟了DOS系统,dos命令是该系统下的底层交互命令
4、BAT文件:BAT是batch的简称,bat文件是一种批处理文件,也叫BAT脚本,里面包括的都是batch命令(本质就是dos命令、cmd命令);后缀名“.ba或“.cmd”,可通过cmd.exe运行
5、CMD:Windows的shell就是cmd.exe,Linux系统的shell就是bash.exe
6、SH文件:SH是BASH的简称,sh文件也是一种批处理文件,也叫bash脚本,里面包括的都是bash命令(也叫linux shell命令、shell命令);后缀名是“.sh”。
7、roscore,roslaunch等。

    因为 -x 和 -e 已经被弃用了。
        所以被取而代之的是 -- 符号,
        还有就是 bach -c这条命令,因为是在新启动的终端里执行bash -c,即启动子shell。
        改之后如:gnome-terminal --tab -- bach -c "ls"&"
                gnome-terminal --tab -- bash -c " pwd; exec bash;"


4、[终端启动后自动执行命令]
    有两个参数可以实现这个功能,-e 和 -x,这两个区别在于:
        -e 可以出现多次。
            如果在所有 --window 前面,表示对所有 window 和 tab 起作用。
            如果在 --window 或者 --tab 后面,表示只针对这个 tab 执行;

            注意: -e 后面只能有一个参数, 也就是说如果有空格,需要用引号


        -x 只能出现一次,在-x后面的所有内容,均认为是要执行的命令,所以可以出现空格。这些命令是针对所有tab都执行的.

    注意: \ 连续符号后面不能跟 注释,否则注释后面的内容执行不到。  

2、使用实例:

#使用脚本一键恢复到使用的开发终端环境
示例 1:
    每次开机我想打开三个工作目录并运行一下命令(比如打开工作软件等),读者可写一个这样的shell脚本:
    gnome-terminal --window --working-directory=${dir1} --title='dir1' --command="bash -c pwd;bash" \
    --tab \
    --working-directory=${dir2} --title='dir2' --command="bash -c ls;bash" \
    --tab \
    #打开vscode
    --working-directory=/home --title='run_eclipse' --command="bash -c code;bash"

示例 2:
    打开新的terminal 并执行命令
    gnome-terminal -t "title-name" -x bash -c "cd ~; source ~/.bashrc; ./my_script;exec bash;"
GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐