首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

深入了解定制 Bash | Linux 中国

GNOME 终端 默认以交互模式打开 Bash。Bash 在非交互模式下运行例子是,当命令和数据文件或 shell 脚本通过 管道 传送到 Bash 时。...当用户退出登录模式 shell 时,或者有脚本在非交互登录模式 shell 中调用了内置 exit命令,Bash 会读取并执行 ~/.bash_logout 中命令,如果 /etc/bash_logout...下一幅图展示了 Bash 作为交互shell 启动时过程。例如,当用户桌面环境打开终端模拟器时,会按照以下顺序进行。...分别是非交互交互登录 shell,和非交互式、交互式非登录 shell。...你使用终端和电脑姿势,取决于你如何修改(或不修改)你点文件。 如果你很好奇自己命令行处于什么会话状态,使用下面这个脚本来判断一下。 #!

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

《Linux命令行与shell脚本编程大全》 第六章环境变量

bash检查启动文件取决于启动bash shell 方式。启动方式有三种: 1.登录shell登录系统时,bash shell会作为登录shell启动。会5个启动文件里面读取命令。...2.交互shell进程 不是系统登录时启动,比如在终端下直接运行bash。这个就是交互shell进程。...3.非交互shell 系统执行shell脚本时用就是这种shell。...bash shell提供BASH_ENV环境变量。当启动非交互shell时,会检查BASH_ENV来查看要执行启动文件。如果有,shell会执行里面的命令。这通常包含shell脚本变量设置。...我电脑没有BASH_ENV值。是如何处理呢?通过继承父shell导出过变量。 比如:父shell登录shell

965100

Shell 编程(3)-bash 配置文件

有些时候登录系统时可以交互,如正常登录系统,有些时候时无交互,如执行一个脚本。bash 启动类型分为交互shell 和非交互shell。...判断交互式和登录shell 交互shell 交互式模式就是在终端上执行,shell等待你输入,并且立即执行你提交命令。这种模式被称作交互式是因为shell与用户进行交互。...非登录shell不需要输入用户名和密码即可打开Shell,例如:直接命令“bash”就是打开一个登录shell,在Gnome或KDE中打开一个“终端”(terminal)窗口程序也是一个非登录shell...脚本时,为非交互、非登录shell。...= "$-" ]; then # 将"$-"左向右模式匹配"*i"并将匹配到内容删除(即进行变量切分),如果"$-"切分后值不等于"$-",则意味着是交互shell .

1.4K10

Shell 简明教程

简介 Shell 作用是解释执行用户命令,用户输入一条命令,shell 就行一条,这种方式成为交互式,还有另外一种方式,就是用户事先写一个 shell 脚本,包含很多命令,然后让 shell 一次性进行执行...作为交互登录 Shell 启动,或者使用 —login 参数启动 交互 Shell 指的是用户在提示符下输入命令 Shell,而不是执行脚本 shell。...以交互式非登陆 shell 启动 比如在图形界面下开一个终端窗口,或者在登录 Shell 提示符下再输入 bash 命令,就得到一个交互登录 shell。...如果你Linux带有图形系统则不能这样设置,由于图形界面的窗口管理器登录并不会产生登录Shell,所以环境变量也应该在 ~/.bashrc 里设置。 2.3..../bin/sh 开头脚本就是这种情况,不会运行任何脚本。 3. Shell 如何执行命令 3.1.

2K40

【rainbowzhou 面试26101】基础提问--shell 是否支持多维数组?为什么?

Shell脚本可以通过两种方式执行:交互式执行和非交互式执行。交互式执行是指在执行脚本时会进入Shell解释器交互模式,等待用户输入命令。...非交互式执行是指将脚本保存为一个文件,然后在终端中直接运行该文件。非交互式执行通常使用 ./filename 方式来运行脚本。 5. 介绍一下Shell脚本变量?...如何将标准输出和错误输出同时重定向到同一位置?...arr[2][0]} # 输出g 原因可以三方面来进行回答: 设计上考虑,因为Shell主要是用来编写简单脚本,而不是复杂程序,所以没有必要提供多维数组这样高级数据结构。...性能上考虑,因为Shell是一个解释型语言,每次执行脚本都需要解释器来解析和执行,如果支持多维数组,可能会增加解释器负担和内存消耗。

1.2K30

快速实现一个定期批量登录远程虚拟机并支持添加主机名称Job

背景 实现定期批量登录远程虚拟机然后进行一些指定操作,还支持用户添加 hostname。...需求分解 通过一个简单 shell 脚本可实现定期进行 ssh 登录操作,但如何实现更优雅一些就需要花点时间了,比如: 定期自动执行 输出比较直观登录测试结果 支持用户添加 hostname...到待检查列表中 执行完成后,通知用户等等 希望在不引入其他 Web 页面的情况下通过现有的工具 Jenkins 使用 Shell 脚本如何实现呢?...在使用 ssh 连接远程虚拟机时候需要实现与远程连接时实现交互,例如:可以期待屏幕上输出,然后进而进行相应输入。...使用 Shell 读取文件数据,进行登录操作,将操作失败记录到一个数组里,然后打印出来。

49120

快速实现一个定期批量登录远程虚拟机并支持添加主机名称Job

背景 实现定期批量登录远程虚拟机然后进行一些指定操作,还支持用户添加 hostname。...需求分解 通过一个简单 shell 脚本可实现定期进行 ssh 登录操作,但如何实现更优雅一些就需要花点时间了,比如: 定期自动执行 输出比较直观登录测试结果 支持用户添加 hostname...到待检查列表中 执行完成后,通知用户等等 希望在不引入其他 Web 页面的情况下通过现有的工具 Jenkins 使用 Shell 脚本如何实现呢?...在使用 ssh 连接远程虚拟机时候需要实现与远程连接时实现交互,例如:可以期待屏幕上输出,然后进而进行相应输入。...使用 Shell 读取文件数据,进行登录操作,将操作失败记录到一个数组里,然后打印出来。

74220

Shell】环境变量 自定义变量 特殊变量

.每个脚本文件都有自己Shell环境 shell工作环境分类 交互式与非交互shell 交互Shell 与用户进行交互, 互动....: 就是需要用户参与互动Shell环境, 效果用户输入一个命令, 环境就立刻响应结果 非交互Shell: 只执行命令, 不需要用户参与 能够说出登录Shell与非登录Shell环境...目标 理解Shell环境变量加载流程测试 能够知道环境变量应该配置在哪里 切换Shell环境执行脚本文件介绍 在执行一个脚本文件时可以指定具体Shell环境进行执行脚本文件, 这个就是切换Shell环境执行脚本...、/etc/bashrc Shell环境变量深入:识别Shell环境类型 目标 理解如何识别shell登录环境与非登录环境 语法 使用$0识别环境语法 echo $0 输出 -bash 代表:shell...小结 1、如何识别shell登录环境与非登录环境?

44731

Linux expect详解

说白了,expect就是一套用来实现自动交互功能软件。 在实际工作中,我们运行命令、脚本或程序时,这些命令、脚本或程序都需要从终端输入某些继续运行指令,而这些输入都需要人为手工进行。...expect基础 在使用expect时,基本上都是和以下四个命令打交道: 命令 作用 send 用于向进程发送字符串 expect 进程接收字符串 spawn 启动进程 interact 允许用户交互...spawn命令用来启动进程,spawn后send和expect命令都是和使用spawn打开进程进行交互。...实用代码分析 上面对expect进行了总结,特别是对一些常用命令进行了详细说明。下面就通过一些常用expect脚本来具体说明如何使用expect来完成日常一些工作。 #!...总结 能够在工作中熟练使用Shell脚本就可以很大程度提高工作效率,如果再搭配上expect,那么很多工作都可以自动化进行,对工作展开如虎添翼。

3.2K50

.bashrc 和 .bash_profile 异同

如果你在终端命令行上花费很多时间,很有可能你想要自定义你 Shell 环境。这就意味着比如创建关联,添加一个目录到$PATH,或者修改一个 shell 提示符。...一、交互登录 和 非登录 shell 在打开终端时,Bash 读取和执行一系列启动文件中命令。这些文件读取,依赖于shell 是作为 交互登录 还是 非登录 shell 执行。...简单来讲,一个交互shell 就是一个可以读取和写入用户终端 shell,而非交互shell 是一个不和终端关联 shell,就像执行一个脚本。...一个交互shell 可以是登录 或者 非登录 shell。...登录 shell 中,输入bash或者打开一个 Gnome 终端标签时,一个交互式非登录 shell启动了。

2.3K30

shell 常用命令

shell 常用命令 expect expect 命令是用来实现自动化交互通信,比如当你在脚本中通过某些命令登录、连接、上传、下载等和远程服务器交互时,可能需要让你输入一些账号、密码等信息 如果这个过程是人工手动在终端执行...$argv n]:用于获取传入给脚本参数,n 表示第几个参数,下标 0 开始 set key value:用于设置变量,通常在脚本文件开头结合上面获取参数使用,来给参数赋值个有意义变量,如 set...login.sh "22" "root" "127.0.0.1" "xxxxx" 其实,个人觉得,expect 就是利用了 shell 输入输出重定向,原先在终端里人工进行交互时,由人工手动将命令输入给终端...命令,这样一来,就可以实现由脚本来自动化处理交互,毕竟输入输出脚本都可以拿到了 以上,个人理解 ssh 远程连接工具,用来登录远程服务器 通常来说,借助 XShell 可视化配置,就足够连接上服务器了...包 再然后,执行 deploy.sh 脚本,将 jar 发送到另一台项目运行服务器上,先停止旧项目的执行,然后移除旧 jar 包,执行 jar 包,启动后端项目 package.sh 打包脚本 #

1.3K21

如何使用Node.js和Github Webhooks保持远程项目同步

脚本将使用最新版本代码自动更新远程服务器上存储库,从而无需登录服务器来提取提交。...我们将使用这些来创建我们Web服务器并散列秘密,以便我们可以将它与我GitHub收到内容进行比较: let http = require('http'); let crypto = require...('crypto'); 接下来,包含child_process库,以便您可以脚本执行shell命令: const exec = require('child_process').exec; 接下来,添加此代码以定义处理...首先创建一个服务文件: sudo nano /etc/systemd/system/webhook.service 将以下配置添加到服务文件,该文件告诉systemd如何运行脚本。...桌面计算机克隆存储库: git clone https://github.com/sammy/hello_hapi.git 对存储库中一个文件进行更改。然后提交文件并将代码推送到GitHub。

3.8K30

【Linux】《how linux work》第十三章 用户环境

主要两种shell实例类型是交互式和非交互式,但其中只有交互shell是感兴趣,因为非交互shell(例如运行shell脚本shell)通常不会读取任何启动文件。...交互shell是你用来终端运行命令那些,就像你在本书中看到那些,它们可以被分类为登录或非登录。...非登录shell是在登录后运行额外shell。它只是一个交互shell,不是登录shell。...Write the new startup files from scratch 编写启动文件并选择新用户默认设置最佳方法是在系统上使用一个测试用户进行实验。...脚本相同shell进行交互(例如,csh是一个臭名昭著糟糕脚本工具-甚至不要想)。

14110

shell expect权威指南和实战

Chat脚本最早用于UUCP网络内,以用来实现计算机之间需要建立连接时进行特定登录会话自动化。...new value, or press return for the default Login Shell [/bin/bash]: /bin/tcsh # 可以看到该命令首先输出若干行提示信息并且提示输入用户登录...3、决定如何响应 系统管理员往往有这样需求,希望根据当前具体情况来以不同方式对一个命令进行响应。...各个部分在表达式中从左到右进行编码,1开始(0包含有整个匹配输出)。()可能会出现嵌套情况,这这种情况下编码最内层到最外层来进行。...#(2)while循环中if判断消息是如何得到。在非交互模式下,下一行内容消息文件中读出,当文件内容结束时while循环也就结束了。(break命令实现终止循环) 。

1.6K21

MySQL 数据库简单操作

本文描述了如何登录到mysql数据库服务器,如何在mysql提示符下发布命令,创建数据库,以及执行一些简单DML操作。...如果服务器 运行在登录服务器之外其它机器上,还需要指定主机名。联系管理员以找出进行连接所使用参数 (即,连接主机 、用户名和使用密码)。...2、发布命令 mysql执行命令可分为非交互交互模式 a) 非交互模式 非交互模式,也叫批模式,也就是将想要运行命令放在一个文件中,然后告诉mysql文件读取它输入。...通常用于返回数据量较大,以及批量管理,执行特殊脚本运行情形。...,可以配合管道符more使用 shell> mysql --help 4、mysql常用提示符含义 提示符    含义 mysql>    准备好接受命令。

1.6K20

Linux基础(五)

,我们能够得出:./ /bin/bash source三种执行方式不同 ./ 与 /bin/bash 都是新开进程,进行执行,此时本地变量不会被继承,不改变当前环境,通常用于执行脚本文件 source...则是将子进程放到父进程进行执行,将影响当前环境,常用于读取配置文件 5、bash中变量分类、 本地变量(普通变量):生效范围为当前shell,对当前shell之外其他shell进程,包括当前shell...EXPRESSION 必须使用测试命令进行 实例: #[ -f /bin/bin/cat -a -x /bin/cat ] && cat /etc/fstab 如何判断输入是数字 方法一 m=10 expr...bash_profile ~/.bashrc */ 14、shell登录两种方式 交互登录: (1)直接通过终端输入账号密码登录 (2)使用 "su - UserName "切换用户 执行顺序 /...> ~/.bahsrc (别名、本地变量)--> /etc/bashrc(靠后生效) 非交互登录 (1)su UserName (2)图形界面下打开终端 (3)执行脚本 执行顺序 ~/.bashrc

1.2K80
领券