1. 程式人生 > >ubuntu16.04開機自啟動.sh指令碼檔案及gnome-terminal學習命令

ubuntu16.04開機自啟動.sh指令碼檔案及gnome-terminal學習命令

ubuntu16.04 .sh指令碼自啟動

(1) 左上角 search your computer中輸入startup Applications 找到開機自啟動選項點選開啟. (2) 點選add -> 在Name中寫入你要啟動的程式或指令碼的名字(你自己定義) Command中寫入gnome-ternimal -x bash -i -c"/home/xx/Documents/xx.sh"-> 點選add 就成功添加了xx.sh開機自啟. 參考:https://blog.csdn.net/liurunjiang/article/details/78595073?utm_source=blogxgwz0

gnome-terminal[基本用法]

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"'

注意最後一個命令是exec bash,如果直接寫bash也行,相當於開了一個子shell,這樣有個 缺點,就是直接按關閉按鈕的話,會提示還有程式在執行 需要注意的是,這裡執行的命令,在呼叫.bashrc之前,所有.bashrc的所有配置都無效 如果需要用到.bashrc裡面的內容,有個變通的辦法,在.bashrc最後加上一句 --------------------.bashrc-------------------- 其他內容 #最後加上這句

evel "$RUN_AFTER_BASHRC"

然後在寫命令的時候,修改RUN_AFTER_BASHRC這個變數,就可以實現讓.bashrc呼叫這個命令

$ gnome-terminal -x bash -c 'export RUN_AFTER_BASHRC="ls --help"; exec bash'

或者下面的寫法比較簡單(注意對所有tab生效),也不會自動關閉了

$ RUN_AFTER_BASHRC="ls" gnome-terminal
#!/usr/bin/expect
#trap sigwinch and pass it to the child we spawned
#this allows the gnome-terminal window to be resized
trap {
  set rows [stty rows]
    set cols [stty columns]
    stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH
set arg1 [lindex $argv 0]
# Get a Bash shell
spawn -noecho bash
# Wait for a prompt
expect "$ "
# Type something
send $arg1
# Hand over control to the user
interact
exit

呼叫方法(注意檔案的路徑要寫全):

gnome-terminal -e "./myprompt \"my text to be posted\""

[新增一個”用vim開啟“的指令碼] 研究這個gnome-terminal的目的,是為了寫一個指令碼,實現右鍵選一個檔案,然後可以 用vim開啟 最後的指令碼檔案如下(兩種方法都寫了) -------------------~/.gnome2/nautilus-scripts/OpenWithVIM----------------------

#!/bin/bash
gnome-terminal -x bash -c 'export RUN_AFTER_BASHRC="vim $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"; exec bash'
#RUN_AFTER_BASHRC="vim $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" gnome-terminal

不過選中多個檔案還不行,因為也沒這個需要,所以暫時就這樣了