non-login shell/login shell

2023-10-31

linux 环境配置文件

  ~/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。.bashrc文件主要保存个人的一些个性化设置,如命令别名、路径等。也即在同一个服务器上,只对某个用户的个性化设置相关。它是一个隐藏文件,需要使用ls -a来查看。在linux系统普通用户目录(cd /home/xxx)或root用户目录(cd /root)下,用指令ls -al可以看到4个隐藏文件:
   .bash_history 记录之前输入的命令
   .bash_logout 当你退出时执行的命令
   .bash_profile 当你登入shell时执行
   .bashrc 当你登入shell时执行

  请注意后两个的区别:’.bash_profile’只在会话开始时被读取一次,而’.bashrc’则每次打开新的终端时,都要被读取。这些文件是每一位用户对终端功能和属性设置,修改.bashrc可以改变环境变量PATH、别名alias和提示符。具体如何修改会在下面做介绍。
  除了可以修改用户目录下的.bashrc文件外,还可以修改如“/etc/profile”文件、“/etc/bashrc”文件及目录“/etc /profile.d”下的文件。但是修改/etc路径下的配置文件将会应用到整个系统,属于系统级的配置,而修改用户目录下的.bashrc则只是限制在用户应用上,属于用户级设置。两者在应用范围上有所区别,建议如需修改的话,修改用户目录下的.bashrc,即无需root权限,也不会影响其他用户。

login shell

  login shell:用户通过终端登录凭借用户名和密码登录控制台的动作是login shell,也就是说最终会调用login命令的操作都可称之为login shell。login shell,登录shell,即init 3启动linux后,需要输入用户名和密码,进入的shell就是loginshell。 注意:在shell里使用su - user_name 切换用户输入账号密码,登录的shell也是login shell。login shell会读取的文件有:/etc/profile、HOME/.bash_profile,HOME/.bash_login,$HOME/.profile,按以上顺序读取。

即对于login shell读取文件的顺序是:

1. /etc/profile
2. ~/.bash_profile
3. ~/.bash_login
4. ~/.profile

  /etc/profile 是必须要执行的,然后后面3个,按照顺序谁存在就执行谁,然后后面的就不会再执行。对于~/.bashrc,是在non login shell 启动时执行,也就意味着在图形界面每开启一次terminal,就会读取一次该文件

non-login shell:

  用户在图形界面启动一个terminal,或者执行/bin/bash,/usr/bin/bash都属于non-login shell。 no login shell有,在login shell中输入bash,没有输入用户名和密码,那么这个就是no login shell。 在图形界面下,打开一个shell也是no login shell。no login shell 在打开的时候,执行的文件是$HOME/.bashrc,

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

non-login shell/login shell 的相关文章

  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • 批量删除文件名中包含 BASH 中特殊字符的子字符串

    我的目录中有一个文件列表 opencv calib3d so2410 so opencv contrib so2410 so opencv core so2410 so opencv features2d so2410 so opencv
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • 就分页分段内存而言的程序寿命

    我对 x86 Linux 机器中的分段和分页过程有一个令人困惑的概念 如果有人能澄清从开始到结束所涉及的所有步骤 我们将很高兴 x86 使用分页分段内存技术进行内存管理 任何人都可以解释一下从可执行的 elf 格式文件从硬盘加载到主内存到它
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 使用 shell 脚本将行附加到 /etc/hosts 文件

    我有一个新的 Ubuntu 12 04 VPS 我正在尝试编写一个安装脚本来完成整个 LAMP 安装 我遇到问题的地方是在 etc hosts文件 我当前的主机文件如下所示 127 0 0 1 localhost Venus The fol
  • 从 Xlib 转换为 xcb

    我目前正在将我的一个应用程序从 Xlib 移植到 libxcb 但在查找有关我有时使用的 XInput2 扩展的信息时遇到了一些麻烦 libxcb 中有 XInput2 实现吗 如果是的话 在哪里可以找到文档 目前我在使用此功能时遇到问题
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 使用 python 脚本更改 shell 中的工作目录

    我想实现一个用户态命令 它将采用其参数之一 路径 并将目录更改为该目录 程序完成后 我希望 shell 位于该目录中 所以我想实施cd命令 但需要外部程序 可以在 python 脚本中完成还是我必须编写 bash 包装器 Example t
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • Linux/POSIX:为什么 fork() 不分叉*所有*线程

    众所周知 POSIX下创建新进程的默认方式是使用fork 在 Linux 下 这在内部映射到clone 我想知道的是 众所周知 当一个人打电话时fork 子进程是用单个线程创建的 调用的线程fork cf https linux die n
  • 如何让 Node.js 作为后台进程运行并且永不死掉?

    我通过 putty SSH 连接到 linux 服务器 我尝试将其作为后台进程运行 如下所示 node server js 然而 2 5 小时后 终端变得不活动 进程终止 即使终端断开连接 我是否也可以使进程保持活动状态 Edit 1 事实
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • ansible unarchive 模块如何查找 tar 二进制文件?

    我正在尝试执行一个 ansible 剧本 该剧本的任务是利用unarchive模块 因为我是在 OSX 上执行此操作 所以我需要使用它gnu tar 而不是bsd tar通常与 OSX 一起提供 因为BSD tar 不受官方支持 https

随机推荐

  • windows10配置make命令

    本质上来说windows是没有make命令的 而真正和Linux中make命令有相同作用的是mingw32 make 我们为了使用方便可以直接把mingw32 make改为make 但是如果你在其它的编译软件中想要使用mingw32 mak
  • Redis7高级之缓存双写一致性之更新策略探讨(三)

    1 缓存双写一致性 如果redis中有数据 需要和数据库中的值相同 如果redis中无数据 数据库中的值是最新值 且准备回写redis 缓存按照操作分 只读缓存 读写缓存 同步直写策略 写数据库后也同步写 redis 缓存 缓存中的数据和数
  • 微信远程代码执行漏洞(最新版本利用)-亲测已上线

    目录 POC index html exp js 测试总结 最新版微信利用方式 最新版存在 web安全学习了解 web渗透测试 官网 宣紫科技 POC index html exp js ENABLE LOG true IN WORKER
  • Java如何将String转换成json对象或json数组

    导包
  • 安装MySQL提示cab文件损坏_安装所需的 CAB 文件“Redist.cab”已损坏处理办法

    近日为客户调试sql server 2008时意外的然出现两个报错 结果导致部分功能组件无法安装成功 如下 产品 Microsoft SQL Server 2008 联机丛书 简体中文 错误 1335 此安装所需的 CAB 文件 Redis
  • recvfrom vs2010 debug正常 realse错误10040

    学习socket程序 udp多播发送和接收 其中一个接收recvfrom函数 在debug能正常运行 在release无法运行 总是提示10040错误 查询百度 说是接收缓存区不够 下面是程序代码 void MultiSock RecvPa
  • iOS设备、Icon、LaunchImage、图片分辨率

    摘要 iOS的各种设备的分辨率 以及开发用的Icon LaunchImage的分辨率 文中所有数据均来自网络 及博主个人总结 如有错误 以官方数据为准 iOS设备 iOS设备的屏幕的大小 分辨率以及比例因数 Scale Factor 1 i
  • 4-1单链表逆转

    学习完链表以后 在刷PTA的时候 遇见第一题就卡壳了 真是悲哀 是一道关于单链表逆转的 其实还是很简单的 不过因为搞错了位置 再加上其他函数也是第一次用C写 输出的一直是NULL 就把这段代码敲出来方便大家以后看 4 1 单链表逆转 20分
  • 计算机网络---应用层(http协议)

    目录 一 简单理解序列化和反序列化 1 什么是序列化 反序列化 2 网络版计算器程序 二 HTTP协议 1 认识URL 2 http协议格式 3 http方法及http状态码 4 http的特征 三 简单的http协议程序 在tcp ip五
  • kong添加自定义插件(一)

    api网关kong支持自定义插件 但是如何添加一个自定义的插件 通过admin api 添加一个kong原有的plugin curl命令方式 curl i X POST url http 192 168 74 111 8001 routes
  • 技术人员的赚钱之道-10:程序员会不会成为新时代的无产者?

    曾经是革命者用革命打倒的东西 正是革命者后辈们追逐 推崇的东西 观念不转 思维不变 程序员很可能成为新时代的无产者
  • 构造函数与析构函数不能被继承

    不是所有的函数都能自动地从基类继承到派生类中的 构造函数和析构函数是用来处理对象的创建和析构的 它们只知道对在它们的特殊层次的对象做什么 所以 在整个层次中的所有的构造函数和析构函数都必须被调用 也就是说 构造函数和析构函数不能被继承 子类
  • 帮我随便用java写一个用户登陆接口

    我可以给你提供一些基本的示例代码 你可以使用Java语言来实现用户登录接口 public class Login private String username private String password public Login St
  • Javadoc简单使用教程

    Javadoc深入浅出 前言 Java简介和安装 Java简介 Java环境安装 Javadoc 什么是Javadoc Javadoc使用方法 最简单的例子 Javadoc常用标记 Javadoc规范 实际开发中javadoc的使用 Jav
  • 安全工作中WSL替代vmware的全套方案

    前言 由于我的破thinkpad x1 carbon只有500g的磁盘 在面对所需要用到多台vmware虚拟机 Kali Linux Ubuntu 16 04 Ubuntu 18 04 Ubuntu 20 04 Ubuntu 22 04 时
  • linux 内核等待队列机制原理分析

    1 等待队列数据结构 等待队列由双向链表实现 其元素包括指向进程描述符的指针 每个等待队列都有一个等待队列头 wait queue head 等待队列头是一个类型为wait queque head t的数据结构 struct wait qu
  • C~数据类型

    在 C 语言中 数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统 变量的类型决定了变量存储占用的空间 以及如何解释存储的位模式 类型分类 基本类型 它们是算术类型 包括两种类型 整数类型和浮点类型 枚举类型 它们也是算术类型 被用
  • Unity3D Timeline 工作流

    一 前言 这是Timline学习系列的第二篇 本节内容主要讲解Timeline基本的工作流程 通过本章 你将学会如何创建Timeline 如何用Timeline来制作动画 以及使用humanoid动画等知识 本章主要包含下列5个小节的内容
  • SpringEvent事件监听、事件驱动,观察者模式

    文章目录 一 SpringEvent也叫做事件监听 事件驱动 1 1主要成员 1 1 1EventDtoPush事件生产者 该类属于开发范畴 1 1 2EventDtoListener事件生产者 该类属于开发范畴 1 1 3Applicat
  • non-login shell/login shell

    linux 环境配置文件 bashrc 为每一个运行bash shell的用户执行此文件 当bash shell被打开时 该文件被读取 bashrc文件主要保存个人的一些个性化设置 如命令别名 路径等 也即在同一个服务器上 只对某个用户的个