1. 程式人生 > 實用技巧 >shell指令碼中開啟新終端,新tab

shell指令碼中開啟新終端,新tab

gnome-terminal命令用於開啟一個新的終端,直接在命令列
$ gnome-terminal
就可以開啟一個新的終端,有一些常用引數:
開啟後自動最大化
$ gnome-terminal --maximize
開啟後全屏
$ gnome-terminal --full-screen
設定標題
$ gnome-terminal --title="new title"
開啟多個終端,多個tab
$ gnome-terminal --window --window #開啟兩個
$ gnome-terminal --window --tab --window --tab --tab #開啟兩個,第一個兩個tab,第二個3個tab
設定開啟的位置和大小(寬度x高度+左側偏移量+上方偏移量)
$ gnome-terminal --geometry=80x25+10+10
[啟動後自動執行命令]
有兩個引數可以實現這個功能,-e和-x,這兩個區別在於:
-e 可以出現多次,如果在所有--window前面,表示對所有window和tab起作用,
如果在--window或者--tab後面,表示只針對這個tab執行,要注意-e後面只能有一個引數
也就是說如果有空格,需要用引號,具體見後例
-x 只能出現一次,在-x後面的所有內容,均認為是要執行的命令,所以可以出現空格
這些命令是針對所有tab都執行的
比如:
$ gnome-terminal -e ls
$ gnome-terminal -x ls
這兩個的執行結果都一樣,就是新的終端閃一下就沒了,有幾種辦法:
一種是修改terminal的配置,在terminal點右鍵,選擇Profiles->Profile Preferences
然後找到Title and Command,裡面有一項When command exits,後面選擇為
Hold the terminal open,然後就可以了
第二種是把結果重定向給less,這樣less執行完之前,是不會退出的
$ gnome-terminal -x ls|less
第三種是在bash裡面再啟用一個bash
$ gnome-terminal -x bash -c "ls; exec bash"
$ gnome-terminal -e 'bash -c "ls; exec bash"'

gnome-terminal --title="bot1" -e 'bash -c "docker exec -it bot1 /bin/bash; exec bash"'  --window --tab --tab --tab --tab --tab  --geometry=100x25+10+10