Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >LinuxShell分类

LinuxShell分类

作者头像
hotarugali
发布于 2022-02-28 12:23:16
发布于 2022-02-28 12:23:16
4270
举报

Linux Shell 从交互式和登录式来看可划分为不同的类别。

1. 交互式 Shell

交互式 Shell 是指在终端命令行上执行,以提示符的方式在终端等待用户输入,并实时运行用户输入的命令的模式;即与用户交互的模式。

1.1 交互登录式 Shell

交互登录式 Shell 是需要用户名和密码登录后进入的 Shell(比如终端下登录远程服务器)或者通过 -login 选项在终端启动的 Shell 。

  • 交互登录式 Shell 可以使用 exitlogout 命令退出 Shell
  • 登录本地桌面 Linux 系统本质上也是登录一个 Linux Shell 会话,即交互登录式 Shell(这也是为什么系统会有注销/登出选项退出当前系统)

▲ 登录交互登录式 Shell 时

  1. 首先会读取 /etc/profile 启动文件
  • /etc/profile 文件是 Bash Shell 默认的主启动文件,不同 Linux 发行版其内容不尽相同

然后按照顺序读取第一个被找到的启动文件($HOME/.bashrc 文件不在其中是因为该文件通常通过以下文件运行):

  • $HOME/.bash_profile
  • $HOME/.bash_login
  • $HOME/.profile

▲ 登出交互登录式 Shell 时

  1. 首先会读取 $HOME/.bash_logout 文件
  2. 然后会读取 /etc/bash.bash_logout 文件(该文件并不是所有 Linux 发行版都有,比如 Manjaro 20.0 有但 Ubuntu 20.04 则没有)

【注】如果将一些设定的系统全局环境变量存放在 /etc/profile 文件中,那么当所用 Linux 发行版升级时,该文件也会跟着升级,则所定制的所有变量设置就都被覆盖了。

  • 存储系统永久性环境变量:最好的办法是将所定制的系统全局变量存放在 /etc/profile.d 目录下新建的一个以 .sh 结尾的文件中(而不是直接修改 /etc/profile 文件)。
  • 存储个人用户永久性环境变量:将个人用户所有定制的环境变量写入 $HOME/.bashrc 文件中。

1.2 交互非登录式 Shell

交互非登录式 Shell 是指不需要用户名和密码也不指定 -login 选项即可打开的 Shell(比如直接在终端运行 bash 打开一个 Bash Shell;或者在 Linux 系统桌面上打开一个终端 terminal 窗口程序)。

  • 交互非登录式 Shell 只能使用 exit 退出 Shell

▲ 启动交互非登录式 Shell 时

  1. 只会读取 $HOME/.bashrc 文件(而不会读取 /etc/profile 文件。这也是为什么修改 /etc/profile 文件后,如果未重新登录系统,则新打开的交互非登录式 Shell 下并未产生影响的)

2. 非交互式 Shell

非交互式 Shell 是指以 Shell 脚本形式执行。在这种模式下,Shell 不与用户进行交互,而是读取存放在 Shell 脚本文件中的命令并执行,当读取到脚本文件结尾 EOF 时,Shell 终止。

▲ 启动非交互式 Shell 时

  1. Bash Shell 提供了 BASH_ENV 环境变量用于指定启动非交互式 Shell 时需要启动的文件(大多数 Linux 发行版没有设定该环境变量)

【注】如果 BASH_ENV 环境变量没有设定,也不意味着非交互式 Shell 就无法使用任何系统全局变量。因为非交互式 Shell 一般作为交互式 Shell 的孩子 Shell(不是子 Shell,详情参见 LinuxShell父子关系概述)启动,故会继承父 Shell 的全部全局环境变量;或者直接在交互式 Shell 下执行,故也可以直接使用当前 Shell 的所有环境变量。

2.1 执行 Shell 脚本文件方式

Linux 下执行 Shell 脚本文件有两种方式,以下以 Bash Shell 为例:

  • source script. script 以这种方式执行脚本文件不会创建孩子 Shell(child shell),直接在当前 Shell 执行脚本文件中的命令。
  • bash script./script 以这种方式执行脚本文件会创建孩子 Shell(child shell),并在孩子 Shell 中执行脚本文件。
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
玩转企业集群运维管理系列(十一):企业集群高可用软件 Keepalived 部署实践
keepalived 依赖包包括gcc、openssl-devel、libnl3-devel和net-snmp-devel四个。
民工哥
2023/12/13
3600
玩转企业集群运维管理系列(十一):企业集群高可用软件 Keepalived 部署实践
企业 keepalived 高可用项目实战
keepalived可以做一个集群,在服务进行运行的时候,会在vrrp协议上的,backup机子上会一直收到keepalived主机(master)所发送的vrrp包,当没有收到这个包的时候,集群里面就认为master宕掉啦,这就会选举新的机器来做主机,这样就实现了高可用
全栈程序员站长
2022/09/14
8580
Keepalived实现HAproxy高可用详解
keepalived是一个可以实现某些资源高可用的开源软件,其主要的组件包括core,check,vrrp,libipfwc,libipvs,这里说下各个组件的功能。
星哥玩云
2022/06/30
1.6K0
Linux基础(day63)
18.1 集群介绍 Linux集群概述 根据功能划分为两大类:高可用和负载均衡 1.高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 高可用衡量标准,4个九,就是99.99%,表示一个比例,在一年时间内99.99%的时间都是在线的,不允许宕机,不允许服务不可用。另外还有的是5个九,6个九 实现高可用的开源软件有:heartbeat、keepalived heartbeat软件,在centos6中有很多bug,而且很久没有更新版本了,不建议继续使用 k
运维小白
2018/02/06
1.1K0
Linux基础(day63)
Mysql+Keepalived双主热备高可用操作记录
我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务。当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短。MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换。使用Keepalived,可以通过虚拟IP,实现双主对外的统一接口以及自动检查、失败切换机制,从而实现MySQL数据库的高可用方案。之前梳理了Mysql主从/主主同步,下面说下Mysql+
洗尽了浮华
2018/01/22
4.3K0
Mysql+Keepalived双主热备高可用操作记录
Keepalived LVS NAT
LVS 只实现到了四层,Keepalived 可以实现七层的简单检查,Keepalived 可以通过预设的检查逻辑来管理 LVS 配置,从而实现对 LVS 自动且动态的调配,让整个 LB 系统更加灵活且健壮
franket
2021/08/10
1.6K0
keepalived配置高可用集群
一、实验环境: 机器IP (hostname) 作用 192.168.59.130 (zhdy-02) master 192.168.59.131 (zhdy-03) backup 192.168.59.100 vip 1.2 安装keepalived 两台测试机器分别安装keepalived服务: yum install -y keepalived 1.3 两台机器的环境 两台机器都安装nginx,其中131上已经编译安装过nginx,130上需要yum安装nginx: yum install -y n
老七Linux
2018/05/09
8180
Linux集群、Keepalived—Nginx高可用集群架构搭建
高可用集群通常为2台服务器,一台工作,另一台作为冗余,当提供服务的机器宕机时,冗余将接替继续提供服务。 实现高可用的开源软件有:heartbeat、Keepalived,其中heartbeat已无人维护,所以今后使用Keepalived来搭建高可用集群。
阿dai学长
2019/04/03
2.3K0
二进制部署k8s教程10 - 部署apiserver高可用
master 中的 kube-apiserver , kube-controller-manager , kube-scheduler 这三大组件中。
janrs.com
2023/03/08
1K0
Keepalived实现对web服务的高可用
Keepalived is a routing software written in C.
用户6641876
2020/03/11
2K0
Keepalived实现对web服务的高可用
Mysql双主热备+LVS+Keepalived高可用操作记录
MySQL复制能够保证数据的冗余的同时可以做读写分离来分担系统压力,如果是主主复制还可以很好的避免主节点的单点故障。然而MySQL主主复制存在一些问题无法满足我们的实际需要:未提供统一访问入口来实现负载均衡,如果其中master宕掉的话需要手动切换到另外一个master,而不能自动进行切换。前面介绍了Mysql+Keepalived双主热备高可用方案记录,那篇文档里没有使用到LVS(实现负载均衡),而下面要介绍的就是如何通过Keepalived+LVS方式来是实现MySQL的高可用性,利用LVS实现MySQ
洗尽了浮华
2018/01/22
3K0
Mysql双主热备+LVS+Keepalived高可用操作记录
Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)
Nginx、LVS、HAProxy 是目前使用最广泛的三种负载均衡软件,本人都在多个项目中实施过,通常会结合Keepalive做健康检查,实现故障转移的高可用功能。 1)在四层(tcp)实现负载均衡的软件: lvs------>重量级 nginx------>轻量级,带缓存功能,正则表达式较灵活 haproxy------>模拟四层转发,较灵活 2)在七层(http)实现反向代理的软件: haproxy------>天生技能,全面支持七层代理,会话保持,标记,路径转移; nginx------>只在ht
洗尽了浮华
2018/01/22
9K0
Haproxy+Keepalived高可用环境部署梳理(主主和主从模式)
使用Keepalived实现MySQL双主高可用
  OS: CentOS7 master:192.168.1.10 backup:192.168.1.20   VIP:192.168.1.30
星哥玩云
2022/08/18
6930
MySQL + Keepalived 双主热备搭建
在传统的主从复制架构中,从库仅仅是作为主库数据的备份,当主库发生故障时,数据库将停止对外提供服务,并且主库故障后手动进行主从切换的过程也较为繁琐。为了解决这个问题,可以采用 MySQL 双主模式,其中一台主库提供服务,另一台作为热备。结合 keepalived 使用虚拟 IP 对外提供服务,一旦主库发生故障,备库可以在很短的时间内接管服务。
Se7en258
2021/09/15
5.5K0
MySQL + Keepalived 双主热备搭建
Centos下部署DRBD+NFS+Keepalived高可用环境记录
使用NFS服务器(比如图片业务),一台为主,一台为备。通常主到备的数据同步是通过rsync来做(可以结合inotify做实时同步)。由于NFS服务是存在单点的,出于对业务在线率和数据安全的保障,可以采用"DRBD+NFS+Keepalived"架构来完成高可用方案部署。之前介绍了DRBD详细解说及配置过程记录,废话不多说了,基于之前的那篇文档的机器配置信息,以下记录部署过程: 思路: 1)在两台机器上安装keepalived,VIP为192.168.1.200 2)将DRBD的挂载目录/data作为NFS的
洗尽了浮华
2018/01/22
3.6K0
Nginx+keepalived主从与双主架构总结
keepalived会定期向服务器群中的服务器发送一个ICMP的数据包,如果发现某台服务器的IP地址无法ping通,keepalived便报告这台服务器失效,并将它从服务器集群中剔除。
好派笔记
2021/09/15
1.3K0
Keepalived-mysql高可用架构(主主热备)
开始搭建该架构前已安装好mysql且主主热备已搭建完成,搭建方法详见:https://my.oschina.net/u/3497124/blog/1527854 。
阿dai学长
2019/04/03
7630
Nginx+Keepalived实现高可用Web负载均衡
通过之前的一篇文章Nginx+Tomcat实现负载均衡我们已经能通过Nginx来实现Tomcat应用的负载均衡,但是单个的Nginx会存在单点隐患,如果Nginx挂掉,那么全部的Tomcat应用都将变得不可用,所以实现Nginx的高可用是必不可少的一步。
会跳舞的机器人
2018/09/03
2.3K0
Nginx+Keepalived实现高可用Web负载均衡
Keepalived+LVS+DR结合实现高可用群集
Keepalived 是一个用于实现高可用性。它主要用于确保服务的连续性,防止单点故障,通常应用于负载均衡和故障转移场景。
神秘泣男子
2025/01/21
1310
Keepalived+LVS+DR结合实现高可用群集
MFS+Keepalived双机高可用热备方案操作记录
基于MFS的单点及手动备份的缺陷,考虑将其与Keepalived相结合以提高可用性。在Centos下MooseFS(MFS)分布式存储共享环境部署记录这篇文档部署环境的基础上,只需要做如下改动: 1)将master-server作为Keepalived_MASTER(启动mfsmaster、mfscgiserv) 2)将matelogger作为Keepalived_BACKUP(启动mfsmaster、mfscgiserv) 3)将ChunkServer服务器里配置的MASTER_HOST参数值改为VIP地
洗尽了浮华
2018/01/22
1.9K0
MFS+Keepalived双机高可用热备方案操作记录
相关推荐
玩转企业集群运维管理系列(十一):企业集群高可用软件 Keepalived 部署实践
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档