sftp 非互動模式 Bash 的4種執行模式

2021-10-12 17:10:45 字數 1722 閱讀 4300

1.在日常使用bash的過程中,老是會遇見通過ssh 連線到伺服器產生環境變數不可用。命令不存在,是不是讓人有點懊惱。 2.還有就是在登入armbian的時候會有串資料提示,但是在切換使用者後並沒有這種提示。是如何做到的呢?
上面的問題都是由bash的執行模式的不同帶來的現象。

4種模是由2種狀態的交叉組合而成。interactive和non-interactive, login shell和non-shell

interactiv的意思是當前的shell是互動式, 輸入命令。視窗(標準輸出)返回結果

login shell就是使用者登入到機器獲得的shell

檢測是否是互動式: $- == i # 如果返回結果中包含'i',則是互動式檢測是否登入:shopt -q login_shell # 如果為真則為登入檢視載入的配置檔案順序可以通過輸出當前檔名來排查。

進入該模式的操作:

1.常規賬號密碼登入

2.ssh ***@123.123.123.123

載入的配置檔案及順序:

/etc/profile

/root/.bash_profile # bashrc是在bash_profile裡加進去的

/root/.bashrc

/etc/bashrc

進入該模式的操作:

1.bash -l ***.sh

載入配置檔案及順序: 無法驗證,同為login shell。載入順序與第一種一致

進入該模式的操作:

1.read -p

2.ssh -t ***@123.123.123.123 "python"

3.互動式命令

載入配置檔案及順序:

/root/.bashrc

/etc/bashrc

進入該模式的操作:

1.bash ***.sh

2.ssh ***@123.123.123.123 "uptime"

載入配置檔案及順序:

/root/.bashrc

/etc/bashrc

tips:

1.這裡的執行順序可能沒有嚴格按 posix 的標準列出,介紹的是排查這個現象的思路。可能具體到某個平台或某個 shell 又不一樣。

2.可以通過上面的內容聯想到運維工具 ansible 就是在這個特性上建立起來的

3.通過這個可以實現登入式套娃。例:宿主機-》跳板機-》目標機,

ssh -t [email protected] "ssh [email protected]"
4.無需登入目標機器,利用上面的環境和本地的資料進行計算。

ssh [email protected] "python process.py" < 2020_income.csv >> 2020_income.excel
當然這裡面還可以玩出更多的花樣,有知道的小夥伴可以分享出來喲。

hive互動模式和非互動模式

1,可以將hive執行的sql語句儲存到指令碼檔案中,通過 f選項制定指令碼檔案執行hive eg hive f script.sql 2,對於較短的sql語句,可以直接使用 e選項執行hive eg hive e select from table a 3,s選項 hive執行過程中,會在終端上顯...

BASH 非互動執行耗時長的任務

問題 你讓工作在後台進行,並且退出 shell 去喝個咖啡,當你回來檢視的時候,發現工作沒有執行並且沒有完成,實際上工作沒有進行多少,跟你離開工作台的時候差不多。解決方案 如果你希望在後台執行某個任務,並且在任務完成前退出 shell 可以使用 nohup 命令 nohup long 討論 當使用 ...

shell學習2 互動模式和非互動模式

shell的模式可分為互動模式和非互動模式。互動模式,就是需要和使用者互動才可以將程式執行完畢。如下 1 bin bash 2 3 cat 4 7 echo n input number of lines 8 read line 9 limit 6 10 11 if limit gt line 12...