shell的交互式和非交互式登錄

工作中經常碰見環境變量加載問題,歸根結底就是配置文件的加載問題。

一般會有四種模式:交互式登陸、非交互式登陸、交互式非登陸、非交互非登陸。

交互式和非交互式對環境變量的加載:

+----------------+--------+-----------+---------------+
|                | login  |interactive|non-interactive|
|                |        |non-login  |non-login      |
+----------------+--------+-----------+---------------+
|/etc/profile    |   A    |           |               |
+----------------+--------+-----------+---------------+
|/etc/bash.bashrc|        |    A      |               |
+----------------+--------+-----------+---------------+
|~/.bashrc       |        |    B      |               |
+----------------+--------+-----------+---------------+
|~/.bash_profile |   B1   |           |               |
+----------------+--------+-----------+---------------+
|~/.bash_login   |   B2   |           |               |
+----------------+--------+-----------+---------------+
|~/.profile      |   B3   |           |               |
+----------------+--------+-----------+---------------+
|BASH_ENV        |        |           |       A       |
+----------------+--------+-----------+---------------+

bash的每種模式會讀取其所在列的內容,首先執行A,然后是B,C。而B1,B2和B3表示只會執行第一個存在的文件。


交互式登陸:簡單示例:

? ? ? a.用戶直接登陸到機器獲得的第一個shell

? ? ? b.用戶使用? ssh user@remote 獲得的shell

非交互式登陸:

? ? ? bash -l? script.sh

交互式非登陸:

? ? ? 在已有的shell中運行bash,此時不需要登陸

非交互式非登陸:

? ? ? a. bash script.sh

? ? ? b. ssh user@remote command

?

為了更好的理清這幾種模式,下面我們對一些典型的啟動方式各屬于什么模式進行一個總結:

  • 登陸機器后的第一個shell:login + interactive
  • 新啟動一個shell進程,如運行bash:non-login + interactive
  • 執行腳本,如bash script.sh:non-login + non-interactive
  • 運行頭部有如#!/usr/bin/env bash的可執行文件,如./executable:non-login + non-interactive
  • 通過ssh登陸到遠程主機:login + interactive
  • 遠程執行腳本,如ssh user@remote script.sh:non-login + non-interactive
  • 遠程執行腳本,同時請求控制臺,如ssh user@remote -t 'echo $PWD':non-login + interactive
  • 在圖形化界面中打開terminal:??Linux: non-login + interactive? 、Mac OS X上: login + interactive

?

參考鏈接:http://feihu.me/blog/2014/env-problem-when-ssh-executing-command-on-remote/

轉載于:https://www.cnblogs.com/imcati/p/9754481.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/451091.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/451091.shtml
英文地址,請注明出處:http://en.pswp.cn/news/451091.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

運營商取消話費余額有效期后改收閑置費

摘要:截至昨天,北京的CDMA預付費手機用戶均收到了中國電信北京公司的短信通知。5月初,中國聯通正式取消有月租或有月最低消費的預付費產品的話費有效期。而邱寶昌認為,防止倒號和號碼資源浪費本應是運營商的責任,現在運…

內存柵欄的影響

當我們在使用jvm鎖的時候,一方面是為了減少線程的競爭,另外還有一方面就是保證共享數據的及時可見性。為了保證線程共享變量的可見性,會使用到內存柵欄,jvm設置內存柵欄,并將共享數據及時刷新到主存中保證其他線程可以…

hibernate連接數據庫配置

hibernate連接數據庫配置 1.連接mySql&#xff0c;文件配置如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://…

解決,文件上傳到 ftp 服務器,中文出現亂碼問題

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 上傳到 ftp 服務器&#xff0c;中文出現亂碼解決&#xff0c;之前文件名 “ 網關信息 ” 始終不能正確顯示&#xff0c;嘗試了多種編碼…

常用負載均衡策略分析

背景 一般生產環境單機所能承受的QPS壓力為2w左右&#xff0c;過大的壓力會導致服務器爆炸。即便是單機能夠撐住2w QPS&#xff0c;一般也不會這么做&#xff0c;生產環境一般會預留50%的冗余能力&#xff0c;防止QPS因為某個熱門的活動而爆炸。當QPS超過單機所能承受的壓力時&…

cpu id 系列號代碼

1。先看看是那家公司的cpu,有intel的&#xff0c;還有amd的和 cyrix的。全世界只有三家&#xff0c;實際就是兩家。 先讓EAX0&#xff0c;再調用CPUID Inel的CPU將返回: EBX:756E6547H Genu EDX:49656E69H ineI ECX:6C65746EH ntel EBX,EDX,E…

解決- SecureCRT上運行 linux vim 命令中文出現亂碼

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 亂碼如圖&#xff1a; 這個問題是CRT的編碼設置造成的&#xff0c;改一下設置就可以了&#xff1a; 1. 在當前連接上右鍵選擇最后一個 2…

開發一個自己的 CSS 框架(五)

這一期我們繼續完成我們的網格布局 容器類 通過一個 # 占位符&#xff0c;來減少代碼輸出量。 #containerpadding-right: 15pxpadding-left: 15pxmargin-right: automargin-left: auto.containerwidth: 100%extend #containermedia screen and (min-width: $media-size-1)max-w…

mysql event 簡單demo

功能&#xff1a;每3秒刪除b表數據&#xff0c;查詢a表中的5條數據并插入b表。 /* 查看mysql事件狀態 */ show variables like %event_scheduler%;/* 開啟mysql事件 */ SET GLOBAL event_scheduler ON;/* 測試a表*/ CREATE TABLE test_a (id int(11) NOT NULL AUTO_INCREMENT…

linux中操作數據庫的使用命令記錄

1&#xff0c;mysql 查看數據庫表編碼格式&#xff1a; show create table widget; 修改數據庫表編碼格式&#xff1a; alter table widget default character set utf8; 修改數據庫表中某字段的編碼格式&#xff1a; alter table widget change widget_name widget_name varc…

ICC Scenario Definition

現代先進工藝下的后端設計都是在 MCMM 情況下設計的&#xff0c;所謂 MCMM 就是 muti-corner muti-mode&#xff0c;用于芯片的不同工作模式和工作條件。 后端設計過程中&#xff0c;需要保證芯片在所有工作模式和工作條件下都能正常工作&#xff0c;工作模式一般只有幾種&…

別瞎忙活:創業公司的6條時間管理策略

導讀&#xff1a;無數創業者為自己的公司努力拼搏&#xff0c;把一切時間投入到公司建設中。這種724小時的熱情對于創業者本人是必須的&#xff0c;然而對于創業中的團隊來說&#xff0c;更重要的是學會管理時間。倦怠是錯誤時間管理帶來的顯著危害&#xff0c;但最大的危險是因…

JDK8下載|JDK1.8下載可選擇window版和linux版

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 摘要&#xff1a;Oracle甲骨文公司Oracle公司如期發布了Java 8正式版!現在你就可以下載Java 8正式版了&#xff0c;同期發布的還有JDK 8。…

持續集成與持續部署寶典Part 2:創建持續集成流水線

2019獨角獸企業重金招聘Python工程師標準>>> 在本系列文章中&#xff0c;我們將探討在容器時代如何在基于Docker的環境中創建連貫的工作流程和流水線來簡化大規模項目的部署。另外&#xff0c;我們還將詳細介紹如何利用Docker和Rancher自動化處理這些工作流。 在上文…

64 裝飾器函數: 母版 csrf防御機制 cookie

主要內容: 1: 裝飾器函數 a: 原理: 在不改變原函數的代碼和調用方式的情況下, 給函數動態的添加功能 b: 實例: 裝飾器的原理: def yue(tools):print(使用%s約一約 % tools) def wrapper(fn):def inner(*args, **kwargs):print(先準備好錢)fn(*args, **kwargs)return inner yue …

Facebook與Google的互聯網霸主爭奪戰

摘要&#xff1a;谷歌的兩位創始人對搜索情有獨鐘&#xff0c;而沒有看到互聯網發展的大勢。雖然目前Facebook的估值最高為1000億美元&#xff0c;與谷歌近2000億美元的市值還相去甚遠&#xff0c;但是未來很有可能超越谷歌&#xff0c;成為互聯網新一代霸主。谷歌的兩位創始人…

Eclipse將引用了第三方jar包的Java項目打包成jar文件的兩種方法

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。 方案一&#xff1a;用Eclipse自帶的Export功能 步驟1&#xff1a;準備主清單文件 “MANIFEST.MF”&#xff0c; 由于是打包引用了第三…

Linux-MySQL基本命令-SQL語句

服務端命令SQL 在數據庫系統中&#xff0c;SQL語句不區分大小寫(建議用大寫) ?SQL語句可單行或多行書寫&#xff0c;以“;”結尾 ?關鍵詞不能跨多行或簡寫 ?用空格和縮進來提高語句的可讀性 ?子句通常位于獨立行&#xff0c;便于編輯&#xff0c;提高可讀性 ?注釋&#x…

webAPI token驗證

ASP.NET WebApi 實現Token驗證 https://www.cnblogs.com/dukang1991/p/5627584.html轉載于:https://www.cnblogs.com/KQNLL/p/9757025.html

評論:中國企業向Faceook學習什么

摘要&#xff1a;古人云&#xff1a;“迨天之未陰雨&#xff0c;徹彼桑土&#xff0c;綢繆牖戶。且不論究竟誰會成為中國的Facebook&#xff0c;伴隨著Facebook因上市帶來的又一輪火熱&#xff0c;不妨先來看看中國企業最需要向Facebook學習什么。古人云&#xff1a;“迨天之未…