一般的系统可能会有
/etc/profile
/etc/bashrc

~/.bashrc
~/.bash_profile

profile 是某个用户唯一的用来设置环境变量的地方, 因为用户可以有多个 shell 比如 bash, sh, zsh 之类的, 但像环境变量这种其实只需要在统一的一个地方初始化就可以了, 而这就是 profile.

bashrc是专门用来给 bash 做初始化的比如用来初始化 bash 的设置, bash 的代码补全, bash 的别名, bash 的颜色. 以此类推也就还会有 shrc, zshrc 这样的文件存在了, 只是 bash 比较常用.

/etc/xxx  文件里面的内容对所用的用户都适用
~/.xxx   文件里面的内容只适用于个人

login shell:该模式表示用户登入,比如使用 "su -" 命令, 或者用 ssh 连接到某一个服务器上, 都会使用该用户默认shell 启动 login shell 模式.该模式下的 shell 会去自动执行 /etc/profile 和 ~/.profile 文件, 但不会执行任何的 bashrc 文件, 所以一般再 /etc/profile 或者 ~/.profile 里我们会手动去 source bashrc 文件.

no-login shell:该模式是我们在终端下直接输入 bash 或者 bash -c “CMD” 来启动的 shell.该模式下是不会自动去运行任何的 profile 文件.

interactive shell:该默认是交互式shell, 就是用来和用户交互的, 提供了命令提示符可以输入命令.在这种模式下会存在一个叫 PS1 的环境变量, 如果还不是 login shell 的则会去 source /etc/bash.bashrc 和 ~/.bashrc 文件

non-interactive shell:

SSH login, sudo su - [USER] 或者 mac 下开启终端这些都是典型的interactive login shell, 所以会有 PS1 变量, 并且会执行/etc/profile   ~/.profile两个文件

本文转自西鼠 51CTO博客,原文链接:http://blog.51cto.com/10630401/1981763,如需转载请自行联系原作者

与登录shell相关的文件相关推荐

  1. 与用户登录shell相关的文件/etc/profile,~/bashrc等浅析

    http://leejia.blog.51cto.com/4356849/777700 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http ...

  2. linux 非登录shell自动,Linux登录shell和非登录(交互式shell)环境变量配置

    使用Jenkins执行shell脚本的时候, 碰到command not found. 比如java mvn, 这些环境变量配置在/etc/profile 中, 但jenkins执行的时候并没有加载. ...

  3. linux+用户的shell,linux更换用户_更改linux用户登录shell的方法

    摘要 腾兴网为您分享:更改linux用户登录shell的方法,幸福钱庄,小学英语,我和你,万科物业等软件知识,以及光大app,视频解码包,dns修改软件,天天小说阅读器,微信跳一跳,企业管家,蚂蚁邦, ...

  4. 管道,Linux命令,Windows命令,cmd命令,tmux,vim,shell,bash,sh文件,bat文件

    catalog WIndows与Unix基本命令 Bat文件 规范 注释 Windows-CMD 介绍 管道`|`, 重定向`> <` 相对位置 fc 创建文件 删除文件/文件夹 创建文件 ...

  5. Linux Shell相关记笔记

    Shell几个重点解释 #! /bin/bash 脚本解释器,特定约定 # 注释 $a 值替换,`if [-n "$a"]` 替换变量a的值到字符串中进行比较 '' 单引号,字符串 ...

  6. shells - 有效登录 shell 的路径名

    描述 /etc/shells 是一个文本文件,其中包含有效登录 shell 的路径全名. chsh(1) 需要参考这个文件,并且其他程序也可以查询该文件.有些程序从这个文件判断用户是不是标准用户.比如 ...

  7. linux 非登录shell自动,Linux 交互/非交互/登录/非登录 shell 的区别

    文章目录 一.交互shell 和 非交互shell 1.交互shell 2.非交互shell 3.区分方法 二.登录shell 和 非登录shell 1.登录shell 2.非登录shell 3.区分 ...

  8. 美国防承包商博思艾伦泄露五角大楼相关敏感文件

    网络安全公司UpGuard的网络风险分析师克里斯·维克里发现,来自美国国家地理空间情报局(简称NGA)的某美国军方项目将超过6万份敏感文件存储于Amazon云存储服务器之上,且无需任何身份验证即可访问 ...

  9. 更改Linux用户的登录shell环境

    使用普通用户zhangrong登录系统,并将自己的登录的shell改为tcsh. 设置了新的登录shell后,将在该用户下次登录系统时生效. root用户可以直接通过修改"/etc/pass ...

最新文章

  1. 从0开始的Python学习009参数
  2. mysql sql 片段_MySQL代码片段
  3. oracle如何设置备份计划任务,Oracle数据库设置任务计划备份一周的备份记录
  4. Text Link Ads 注册[赚钱一]
  5. 如何将整个splitcontainer控件缩小_将绣球花养成花球,整个夏天都是花团锦簇,教你如何将它调成蓝色...
  6. 大数据开发笔记(一):HDFS介绍
  7. 【C++leetcode】寻找给定字符串的最大回文子串
  8. mysql 二进制日志格式_MySQL 二进制日志格式深入理解
  9. cad插件_CAD插件常青藤3.0
  10. CSS设置div水平垂直居中
  11. Python常用模块 之 datetime模块——处理时间和日期
  12. SSL1284压岁钱
  13. 利用Github快速搭建个人博客总结(亲测)
  14. Stanford CS 144 Note 21 - Queue Models in Packet Switching
  15. router禁用443端口
  16. 行业报告免费下载-干货!68份营销行业报告分享
  17. 为什么调用Dao层会报空指针异常
  18. The day that you see me old-当我日渐老去的时候
  19. 解决VS CODE官网下载速度慢的问题
  20. requests模拟登陆 + 验证码

热门文章

  1. js学习笔记15----子节点和兄弟节点的操作
  2. 在jQuery和JavaScript中,实现转跳
  3. Colors on the web
  4. 位置子段最大子段和 hdu 1003 max sum ACM的开始
  5. Eclipse c++ 中[Linker error] undefined reference to `WSAStartup@8'的解决办法
  6. dtree 无法出现横向滚动条 (clip)
  7. 创建VLAN的两种方法
  8. “内部人”的信息安全架构---信任体系
  9. Centos6.8上httpd配置腾讯云SSL证书
  10. Lesson 03:运算符与流程控制