當前位置:首頁 » 編程軟體 » ubuntushell腳本

ubuntushell腳本

發布時間: 2023-07-06 05:31:30

㈠ 如何用shell腳本實現ubuntu用戶自動登錄

安裝
CentOS下安裝命令很簡單,如下
sudo yum install expect

至於Mac用戶,可以通過homebrew安裝(需要先安裝homebrew,請自行Google)
brew install expect

測試腳本
我們寫一個簡單的腳本實現scp拷貝文件,在腳本里配置密碼,保存為scp.exp如下
#!/usr/bin/expect
set timeout 20

if { [llength $argv] < 2} {
puts "Usage:"
puts "$argv0 local_file remote_path"
exit 1
}

set local_file [lindex $argv 0]
set remote_path [lindex $argv 1]
set passwd your_passwd

set passwderror 0

spawn scp $local_file $remote_path

expect {
"*assword:*" {
if { $passwderror == 1 } {
puts "passwd is error"
exit 2
}
set timeout 1000
set passwderror 1
send "$passwd\r"
exp_continue
}
"*es/no)?*" {
send "yes\r"
exp_continue
}
timeout {
puts "connect is timeout"
exit 3
}
}

注意,第一行很重要,通常我們的腳本里第一行是#!/bin/bash,而這里是你機器上expect程序的路徑,說明這段腳本是由expect來解釋執行的,而不是由bash解釋執行,所以代碼的語法和shell腳本也是不一樣的,其中set passwd your_passwd設置成你自己的密碼,然後執行如下命令
./scp.exp ./local_file user@host:/xx/yy/

執行前確保scp.exp有執行許可權,第一個參數為你本地文件,第二個為遠程主機的目錄,運行腳本如果報錯「connect is timeout」,可以把超時設長一點,第二行set timeout 20可以設置超時時間,單位是秒。腳本執行效果如下

還能做什麼
細心的同學一定發現了,其實expect提供的是和終端的一種交互機制,輸入密碼只是其中一種應用形式,只要是在終端阻塞需要輸入時,都可以通過expect腳本完成自動輸入,比如前面腳本里配置了兩種交互場景,一種是終端提示"password:"時輸入密碼,還有一種是提示"yes/no)?"時輸入「yes」,如果和遠程主機是第一次建立連接,執行scp.exp腳本效果是這樣的

所以我們可以根據終端的提示來配置輸入命令,這樣就能達到了自動化的效果。至於處理其它交互場景,只需要照著上面的腳本依葫蘆畫瓢就行了

㈡ shell腳本執行source報錯

在Ubuntu 16.04機器在執行shell腳本時,報source: not found
原因是shell腳本執培困行的時候配稿念用的不是bash,而是dash,可以使用下面方法修改。

出現對話框後,選擇no,再查看一次

重新執行腳本敬塌,問題解決

㈢ 【tips】Ubuntu 兩種開機自啟動程序方式

個人制檔鏈作的程序可以添加到開機自啟動項中,簡便一些流程,以下列出兩種方式

方式一

 卜蠢雹   第一種方式比較簡單,通過Ubuntu 自帶的Startup Applications即可添加,只要選中路徑下的可執行文件即可。

方式二

    通過Shell腳本+rc.local實現

    step 01 創建一個腳本文件,比如起名為run_start.sh

    step 02 修改rc.local文件,在exit 0之前添加執行腳本文件的命令

這兩種方式,都會在開機時啟動相應的程序。

當然,還有很多其他的啟動三方程序型帆的方式,目前沒有一一嘗試,僅舉兩例。    

㈣ ubuntu怎麼保存shell腳本文件

ubuntu怎麼保存shell腳本文件
ubuntu保存shell腳本文件
第一步:用vim創建一個以.sh結尾的文件,此時這個文件是暫時性的文件,當編寫好文件並保存時才能看到文件;
第二步:要首先按一下「i」鍵才能進行插入(編寫)模式,文件開頭要寫一段特殊符號,「#!/bin/bash」 ,這個是開頭文件的要求;
第三步:可以開始寫裡面的內容了,其中可以使用 # 作為單行注釋的符號,用 「:<<! !」,作為多行注釋的符號;在這里插入圖片描述
第四步:編寫完語句之後按一下esc鍵,然後再按冒號鍵進入最後一行,然後在按「wq」鍵進行保存,在運行前要使用 「chmod」進行修改許可權,具體的指令為「chmod 777 a.sh」;
查看更多

㈤ 在Ubuntu下編寫shell腳本讀取文件

需求功能:

創建測試用例文件 text :

創建shell腳本:

運行結果:

利用 awk 'END{print NR}' [文件名] 來輸出行數:

在shell腳本中添加該功能:

運行結果:

上面的shell文件只是把文件名寫死在腳本中,並沒有實際使用意義,所以需要編寫一個指令來指定需要讀取的文件,就像 vim [文件名] 一樣

「$1」 代表第1個參數,也就是在 read 之後緊跟的參數,將其作為文件名傳入:

將腳本移動至環境變數對應的目錄中:(可以自己更改 /bin/xxx 來決定運行命令的名稱,但注意不能重復)
sudo mv read /bin/read
然後添加運行許可權:
sudo chmod 755 /bin/read

打開終端的目錄可以是任何位置,通過以下命令即可運行shell腳本:
sudo read [文件路徑]

同理,我們還可以自己為復雜指令編寫shell腳本,來提高命令的使用效率,例如開關ss服務,打開銳捷客戶端認證等等。

熱點內容
超級腳本製作 發布:2025-02-07 19:31:30 瀏覽:485
怎麼查看支付寶的賬號密碼 發布:2025-02-07 19:26:48 瀏覽:15
惠普伺服器查看ip指令 發布:2025-02-07 19:26:47 瀏覽:433
演算法設計模式 發布:2025-02-07 19:15:52 瀏覽:743
伺服器1u能連接幾台電腦 發布:2025-02-07 18:50:02 瀏覽:152
立人編譯 發布:2025-02-07 18:48:32 瀏覽:764
日產途達四驅的有哪些配置 發布:2025-02-07 18:42:02 瀏覽:831
伺服器搭建鏡像站 發布:2025-02-07 18:41:55 瀏覽:376
游戲上雲成標配雲伺服器該怎麼選 發布:2025-02-07 18:26:13 瀏覽:141
哪個安卓手機自帶系統沒有廣告 發布:2025-02-07 18:22:36 瀏覽:724