返回顶部
首页 > 资讯 > 精选 >Shell四种运行方式/启动方式如何实现
  • 594
分享到

Shell四种运行方式/启动方式如何实现

2023-06-09 11:06:48 594人浏览 独家记忆
摘要

这篇文章主要介绍“shell四种运行方式/启动方式如何实现”,在日常操作中,相信很多人在Shell四种运行方式/启动方式如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell四种运行方式/启动方式如

这篇文章主要介绍“shell四种运行方式/启动方式如何实现”,在日常操作中,相信很多人在Shell四种运行方式/启动方式如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell四种运行方式/启动方式如何实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Shell 是一个应用程序,它的一端连接着 linux 内核,另一端连接着用户。Shell 是用户和 Linux 系统沟通的桥梁,我们都是通过 Shell 来管理 Linux 系统。

我们可以直接使用 Shell,也可以输入用户名和密码后再使用 Shell;第一种叫做非登录式,第二种叫做登录式。

我们可以在 Shell 中一个个地输入命令并及时查看它们的输出结果,整个过程都在跟 Shell 不停地互动,这叫做交互式。我们也可以运行一个 Shell 脚本文件,让所有命令批量化、一次性地执行,这叫做非交互式。

总起来说,Shell 一共有四种运行方式:

  • 交互式的登录 Shell;

  • 交互式的非登录 Shell;

  • 非交互式的登录 Shell;

  • 非交互式的非登录 Shell。

判断 Shell 是否是交互式

判断是否为交互式 Shell 有两种简单的方法。

1) 查看变量-的值,如果值中包含了字母i,则表示交互式(interactive)。

【实例1】在 Centos GNOME 桌面环境自带的终端下输出-的值:

[jb51.net]$ echo $-himBH

包含了i,为交互式。

【实例2】在 Shell 脚本文件中输出-的值:

[jb51.net]$ cat test.sh#!/bin/bashecho $-[jb51.net]$ bash ./test.shhB

不包含i,为非交互式。注意,必须在新进程中运行 Shell 脚本。

2) 查看变量PS1的值,如果非空,则为交互式,否则为非交互式,因为非交互式会清空该变量。

【实例1】在 CentOS GNOME 桌面环境自带的终端下输出 PS1 的值:

[mozhiyan@localhost]$ echo $PS1[\u@\h \W]\$

非空,为交互式。

【实例2】在 Shell 脚本文件中输出 PS1 的值:

[jb51.net]$ cat test.sh#!/bin/bashecho $PS1[jb51.net]$ bash ./test.sh

空值,为非交互式。注意,必须在新进程中运行 Shell 脚本。

判断 Shell 是否为登录式

判断 Shell 是否为登录式也非常简单,只需执行shopt login_shell即可,值为on表示为登录式,off为非登录式。

shopt 命令用来查看或设置 Shell 中的行为选项,这些选项可以增强 Shell 的易用性。

【实例1】在 CentOS GNOME 桌面环境自带的终端下查看 login_shell 选项:

[jb51.net]$ shopt login_shelllogin_shell  off

【实例2】按下Ctrl+Alt+Fn组合键切换到虚拟终端,输入用户名和密码登录后,再查看 login_shell 选项:

[jb51.net]$ shopt login_shelllogin_shell  on

【实例3】在 Shell 脚本文件中查看 login_shel 选项:

[jb51.net]$ cat test.sh#!/bin/bashshopt login_shell[jb51.net]$ bash ./test.shlogin_shell  off

同时判断交互式、登录式

要同时判断是否为交互式和登录式,可以简单使用如下的命令:

echo $PS1; shopt login_shell

或者

echo $-; shopt login_shell

常见的 Shell 启动方式

1) 通过 Linux 控制台(不是桌面环境自带的终端)或者 ssh 登录 Shell 时(这才是正常登录方式),为交互式的登录 Shell。

[jb51.net]$ echo $PS1;shopt login_shell[\u@\h \W]\$login_shell  on

2) 执行 bash 命令时默认是非登录的,增加--login选项(简写为-l)后变成登录式。

[jb51.net]$ cat test.sh#!/bin/bashecho $-; shopt login_shell[jb51.net]$ bash -l ./test.shhBlogin_shell  on

3) 使用由()包围的组命令或者命令替换进入子 Shell 时,子 Shell 会继承父 Shell 的交互和登录属性。此种子进程只是又fork创建,没有执行exce,不会重新加载配置文件

[jb51.net]$ bash[jb51.net]$ (echo $PS1;shopt login_shell)[\u@\h \W]\$login_shell  off[jb51.net]$ bash -l[jb51.net]$ (echo $PS1;shopt login_shell)[\u@\h \W]\$login_shell  on

4) ssh 执行远程命令,但不登录时,为非交互非登录式。

[jb51.net]$ ssh localhost 'echo $PS1;shopt login_shell'login_shell   off

5) 在 Linux 桌面环境下打开终端时,为交互式的非登录 Shell。

桌面环境下打开终端为交互式的非登录Shell

到此,关于“Shell四种运行方式/启动方式如何实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Shell四种运行方式/启动方式如何实现

本文链接: https://lsjlt.com/news/255757.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell四种运行方式/启动方式如何实现
    这篇文章主要介绍“Shell四种运行方式/启动方式如何实现”,在日常操作中,相信很多人在Shell四种运行方式/启动方式如何实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Shell四种运行方式/启动方式如...
    99+
    2023-06-09
  • Shell四种运行方式(启动方式)的实现
    Shell 是一个应用程序,它的一端连接着 linux 内核,另一端连接着用户。Shell 是用户和 Linux 系统沟通的桥梁,我们都是通过 Shell 来管理 Linux 系统。 我们可以直接使用 Shell,也可以...
    99+
    2022-06-04
    Shell 运行方式 Shell 启动方式
  • springboot的四种启动方式
    目录环境准备第一种:直接main方法启动TxDemo2Application第二种:通过maven插件来启动第三种 打jar包来访问第四种 通过docker容器虚拟化运行环境准备 创...
    99+
    2024-04-02
  • springboot启动前执行方法的四种方式总结
    目录第一种  @PostConstruct注解第二种  实现InitializingBean接口第三种 实现BeanPostProcessor接口第四种 &nbs...
    99+
    2024-04-02
  • Springboot启动后立即某个执行方法的四种方式
    目录注解@PostConstructCommandLineRunner接口实现ApplicationRunner接口实现ApplicationListener四种方式的执行顺序总结最...
    99+
    2024-04-02
  • MySQL四种启动方式分别是什么
    本篇文章给大家分享的是有关MySQL四种启动方式分别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。mysql的四种启动方式: 1、mys...
    99+
    2024-04-02
  • Java动态代理四种实现方式详解
    代理模式也是一种非常常见的设计模式。了解Spring框架的都知道,Spring AOP 使用的就是动态代理模式。今天就来系统的重温一遍代理模式。在现实生活中代理是随处可见的,当事人因某些隐私不方便出面,或者当事人不具备某些相关的专业技能,而...
    99+
    2022-06-07
    Java动态代理 Java代理模式
  • Android 单例模式的四种实现方式
    目录一.饿汉式二.懒汉式三.双重检查加锁方式四.静态内部类方式总结一.饿汉式 public class SingletionStarving { private sta...
    99+
    2024-04-02
  • Spring Boot 项目启动自动执行方法的两种实现方式
    目录实际应用场景:第一种实现ApplicationRunner接口第二种实现CommandLineRunner接口对比:注意:实际应用场景: springboot项目启动成功后执行一...
    99+
    2024-04-02
  • SpringBoot启动时自动执行代码的几种实现方式
    目录前言java自身的启动时加载方式static代码块构造方法Spring启动时加载方式代码测试总结前言 目前开发的SpringBoot项目在启动的时候需要预加载一些资源。而如何实现...
    99+
    2024-04-02
  • 延时任务的四种实现方式
    什么是延迟任务? 顾明思议,我们把需要延迟执行的任务叫做延迟任务。 延迟任务的使用场景有以下这些: 红包 24 小时未被查收,需要延迟执退还业务; 每个月账单日,需要给用户发送当月的对账单; 订单下单之后 30 分钟后,用户如果没...
    99+
    2023-10-04
    java Powered by 金山文档
  • go实现base64编码的四种方式
    go的encoding/base64有四种编码方式: 编码方式说明StdEncoding常规编码URLEncodingURL safe 编码,相当于替换掉字符串中的特殊字符,+ 和 ...
    99+
    2023-03-07
    go实现base64编码 go base64编码
  • Python3-定时任务四种实现方式
    老猫最近做一个小程序开发任务,主要负责后台部分开发;根据项目需求老猫需要实现三个定时任务: 1>定时更新微信token,需要2小时更新一次;2>商品定时上线;3>定时检测后台服务是否存活; 老猫使用Python去实现这...
    99+
    2023-01-31
    四种 方式
  • Python实现单例模式的四种方式详解
    简介:单例模式可以保证一个类仅有一个实例,并提供一个访问它的全局访问点。适用性于当类只能有一个实例而且客户可以从一个众所周知的访问点访问它,例如访问数据库、MQ等。 实现方式: 1、...
    99+
    2024-04-02
  • 通过shell进行数学运算的多种方式
    在Bash中, bash的数学运算有点别扭,很难适应和记住, 只好写个博文, 方便以后翻翻看. 有四种方式可以进行数学运算: 一、let命令 #/bin/bashnum1=13num2=14let sum...
    99+
    2022-06-04
    多种 数学 方式
  • 运行Shell的方式有哪些
    这篇文章将为大家详细讲解有关运行Shell的方式有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Shell 一共有四种运行方式:交互式的登录 Shell;交互式的非登录 Shell;非交...
    99+
    2023-06-06
  • shell脚本4种执行方式
    linux中shell脚本的执行通常有4种方式,分别为工作目录执行,绝对路径执行,sh执行,shell环境执行。 首先,看下我们的脚本内容 [tan@tan scripts]$ ll total 4 -rw-rw-r...
    99+
    2022-06-04
    shell 脚本执行方式
  • python 实现定时任务的四种方式
    目录用Python实现定时任务 用Python实现定时任务的四种方法 利用while True: + sleep()实现定时任务 利用threading.Timer定时器实现定时任务...
    99+
    2024-04-02
  • SpringBoot异步处理的四种实现方式
    本篇文章我们以SpringBoot中异步的使用(包括:异步调用和异步方法两个维度)来进行讲解。 异步请求与同步请求 我们先通过一张图来区分一下异步请求和同步请求的区别: 在上图...
    99+
    2024-04-02
  • Python协程的四种实现方式总结
    目录一、yield关键字实现方式二、greenlet实现方式三、asyncio实现方式四、async和await关键字实现方式一、yield关键字实现方式 以yield关键字方式实现...
    99+
    2023-01-14
    Python实现协程方式 Python协程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作