关于LINUX shell环境设置命令set 和 shopt

Linux环境变量与Shell变量的本质区别及实战应用 环境变量和Shell变量是Linux进程通信与配置管理的基础机制。前者作为内核传递的只读字符串数组,具有跨进程继承性;后者仅为Shell进程内存中的局部哈希表,作用域限于当前会话。理解其差异,是解决命令找不到、程序启动失败、脚本行为异常等高频问题的关键前提。技术价值体现在可预测的环境隔离、安全的CI/CD构建、多版本工具链切换(如Conda、pyenv)以及Docker容器配置一致性上。典型应用场景包括PATH安全扩展、.env文件安全加载、GUI与终端环境同步、Java/Python运行时路径调试等。本文 阅读详情

1、set命令可以用来定制shell环境,使用选项“o”来打开或者关闭选项。例如打开选项:set -o 选项,关闭选项目:set +o 选项。

[root@localhost ~]# set -o   #查看当前设置情况
allexport       off
braceexpand     on
emacs           on
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              off             #关闭中
xtrace          off
[root@localhost ~]# set -o vi   #把vi选项打开
[root@localhost ~]# set -o      #查看当前设置情况
allexport       off
braceexpand     on
emacs           off
errexit         off
errtrace        off
functrace       off
hashall         on
histexpand      on
history         on
ignoreeof       off
interactive-comments    on
keyword         off
monitor         on
noclobber       off
noexec          off
noglob          off
nolog           off
notify          off
nounset         off
onecmd          off
physical        off
pipefail        off
posix           off
privileged      off
verbose         off
vi              on                #已经打开
xtrace          off


1.1 内置set命令选项

选项名 快捷开关含义 
allexport -a 从这个选项中被设置开始就自动标明要输出的新变量或修改过的变量,直至选项被复位 
braceexpand -B打开花括号扩展,它是一个默认设置 
emacs  使用emacs内置编辑器进行命令行编辑,是一个默认设置 
errexit-e 当命令返回一个非零退出状态(失败)时退出。读取初始化文件时不设置 
histexpand -H 执行历史替换时打开!和!!扩展,是一个默认设置 
history  打开命令行历史、默认为打开 
ignoreeof 禁止用EOF(Ctrl+D)键退出shell。必须键入exit才能退出。等价于设置shell变量IGNOREEOF=10 
keyword -k  将关键字参数放到命令的环境中 
interactive-comments 对于交互式shell,把#符后面的文本作为注释 
monitor-m 设置作业控制 
noclobber-C 防止文件在重定向时被重写 
noexec-n 读命令,但不执行。用来检查脚本的语法。交互式运行时不开启 
noglob -d 禁止用路径名扩展。即关闭通配符 
notify-b 后台作业完成时通知用户 
nounset-u  扩展一个未设置的变量时显示一个错误信息 
onecmd-t 在读取和执行命令后退出 
physical-P  设置时,在键入cd或pwd禁止符号链接。用物理目录代替 
privileged-p 设置后,shell不读取.profile或ENV文件,且不从环境继承shell函数,将自动为setuid脚本开启特权 
verbose -v 为调试打开verbose模式 
vi 使用vi内置编辑器进行命令行编辑 
xtrace-x 为调试打开echo模式 
   

 

 

2、shopt命令是set命令的一种替代,很多方面都和set命令一样,但它增加了很多选项。可有使用“-p”选项来查看shopt选项的设置。“-u”开 关表示一个复位的选项,“-s”表示选项当前被设置。

[root@localhost ~]# shopt -p    #查看当前设置情况
shopt -u cdable_vars
shopt -u cdspell
shopt -u checkhash
shopt -s checkwinsize
shopt -s cmdhist
shopt -u dotglob
shopt -u execfail
shopt -s expand_aliases
shopt -u extdebug
shopt -u extglob
shopt -s extquote
shopt -u failglob
shopt -s force_fignore
shopt -u gnu_errfmt
shopt -u histreedit
shopt -u histappend
shopt -u histverify
shopt -s hostcomplete
shopt -u huponexit
shopt -s interactive_comments
shopt -u lithist
shopt -s login_shell
shopt -u mailwarn
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
shopt -u shift_verbose
shopt -s sourcepath
shopt -u xpg_echo

[root@localhost ~]# shopt -s cdspell   #把cdspell选项打开
[root@localhost ~]# shopt -p cdspell   #打印cdspell设置
shopt -s cdspell
[root@localhost ~]# cd /raot           # 故意拼写错误
/root
[root@localhost ~]# pwd                # 查看当前目录
/root
[root@localhost ~]# cd /usr/loca/bin   #故意拼写错误
/usr/local/bin
[root@localhost bin]# pwd              # 查看当前目录  
/usr/local/bin
[root@localhost bin]# shopt -u cdspell #把cdspell选项打开
[root@localhost bin]# shopt -p cdspell #打印cdspell设置
shopt -u cdspell
[root@localhost bin]# cd /raot         #故意拼写错误
-bash: cd: /raot: 没有那个文件或目录     #进入目录错误


2.2 shopt命令选项

选项含义 
cdable_vars如果给cd内置命令的参数不是一个目录,就假设它是一个变量名,变量的值是将要转换到的目录
cdspell纠正cd命令中目录名的较小拼写错误。检查的错误包括颠倒顺序的字符,遗漏的字符以及重复的字符。如果知道一处修改,正确的路径就打印出,命令将继续。只 用于交互式shell
checkhashbash在试图执行一个命令前,先在哈希表中寻找,以确定命令是否存在。如果命令不存在,就执行正常路径搜索
checkwinsizebash在每个命令后检查窗口大小,如果有必要,就更新LINES和COLUMNS的值
cmdhistbash试图将一个多行命令的所有行保存在同一个历史项中。这使得多行命令的重新编辑更方便
dotglobbash在文件名扩展的结果中包括以点(.)开头的文件名
execfail如果一个交互式shell不能执行指定给exec内置命令作为参数的文件,它不会退出。如果exec失败,一个交互式shell不会退出 
expand_aliases 别名被扩展。默认为打开 
extglob打开扩展的模式匹配特征(正常的表达式元字符来自Korn shell的文件名扩展) 
histappend 当shell退出时,历史清单将添加到以HISTFILE变量的值命名的文件中,而不是覆盖文件 
histreedit 如果readline正被使用,用户有机会重新编辑一个失败的历史替换 
histverify如果设置,且readline正被使用,历史替换的结果不会立即传递给shell解析器。而是将结果行装入readline编辑缓冲区中,允许进一步修 改 
hostcomplete 如果设置,且readine正被使用,当正在完成一个包含@的词时bash将试图执行主机名补全。默认为打开 
huponexit 如果设置,当一个交互式登陆shell退出时,bash将发送一个SIGHUP(挂起信号)给所有的作业 
interactive_comments 在一个交互式shell中,允许以#开头的词以及同一行中其他的字符被忽略。默认为打开 
lithist 如果打开,且cmdhist选项也打开,多行命令将用嵌入的换行符保存到历史中,而无需在可能的地方用分号来分隔 
mailwarn 如果设置,且bash用来检查邮件的文件自从上次检查后已经被访问,将显示消息“The mail in mailfile has been read” 
nocaseglob 如果设置,当执行文件名扩展时,bash在不区分大小写的方式下匹配文件名 
nullglob如果设置,bash允许没有匹配任何文件的文件名模式扩展成一个空串,而不是它们本身 
promptvars 如果设置,提示串在被扩展后再经历变量和参量扩展。默认为打开 
restricted_shell 如果shell在受限模式下启动就设置这个选项。该值不能被改变。当执行启动文件时,不能复位该选项,允许启动文件发现shell是否是受限的 
sourcepath如果设置,source内置命令使用PATH的值来寻找包含作为参数提供的文件的目录。默认为打开 
source 点(.)的同义词 
shift_verbose如果该选项设置,当移动计数超过位置参量个数时,shift内置命令将打印一个错误消息 

自Bash 3.1版开始,引入新选项 nocasematch,可让Bash在对比样式时忽略大小写。

shopt -s nocasematch  #打开选项


原文地址:http://www.blogjava.net/jasmine214--love/archive/2010/11/26/339102.html
逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用 本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。 阅读详情

相关推荐

一篇文章将三极管讲透:三极管从原理到应用,从参数到特性,从入门到精通

晶体三极管(Transistor)是一种半导体电子器件,也是电子工程中最基本的元件之一。它有三个区域,分别是P型半导体,N型半导体和P型半导体,从而形成PNP型晶体三极管或者NPN型晶体三极管。

学习帮的博客 9万+

Linux set命令

简介 Linux set命令用于设置shell。 set指令能设置所使用shell的执行方式,可依照不同的需求来做设置。 语法 set [+-abCdefhHklmnpPtuvx] 参数说明: -a  标示已修改的变量,以供输出至环境变量。 -b  使被中止的后台程序立刻回报执行状态。 -C  转向所产生的文件无法覆盖已存在的文件。 -d  Shell预设会用杂凑表记忆使用过的指...

muyingmiao的专栏 546

远红外热传感器阵列 (32x24 RES) MLX90640ESF-BAA/BAB

Melexis MLX90640是一款小体积、低成本的完全校准的32x24像素红外阵列,采用行业标准,带数字接口。3.其工作温度范围为 -40°C 至 85°C,可测量的物体温度范围为 -40°C 至 300°C。该红外传感器在整个测量范围内保持高精度水平,可提供 ±1°C 的典型目标物体温度精度。2.这款 32x24 像素的器件适用于安全和便利应用,包括防火系统、智能楼宇、智能照明、IP/监控摄像机、HVAC 设备和车辆座椅占用检测。1.工作温度范围为 -40 至 85°C,可在严苛的工业环境中部署。

Summit__的博客 1999

shell之set 命令

我们知道,Bash 执行脚本的时候,会创建一个新的 Shell。 $ bash script.sh 上面代码中,script.sh是在一个新的 Shell 里面执行。这个 Shell 就是脚本的执行环境,Bash 默认给定了这个环境的各种参数。 set命令用来修改 Shell 环境的运行参数,也就是可以定制环境。一共有十几个参数可以定制,官方手册有完整清单,本文介绍其中最常用的四个。 1)...

赶路人儿 7219

Cursor集成Claude 4.6免费版:本地IDE合规调用指南

大语言模型编程助手(LLM Copilot)已成为现代开发标配,其核心能力依赖于上下文理解、代码推理与结构化输出等关键技术原理。Anthropic官方提供的Claude系列模型,尤其Claude 4.6,凭借200K超长上下文、tool use函数调用和严格可控的API设计,在工程实践中展现出显著技术价值。该能力可无缝嵌入本地IDE环境,支撑代码解释、跨文件分析、单元测试生成等高频开发场景。本文聚焦Cursor这一开源可审计IDE,详解如何合规复用Anthropic免费tier接口(/v1/messages

weixin_34095889的博客 536

利用Virtuoso IC 618进行LDO稳定性分析与补偿设计

本文详细介绍了如何利用Virtuoso IC 618进行LDO稳定性分析与补偿设计。通过搭建仿真环境、运行STB分析诊断环路问题,并深入探讨密勒补偿、调零电阻等关键技术,帮助工程师在Virtuoso平台中高效完成LDO的稳定性优化与验证,确保芯片在各种工艺角下的鲁棒性。

weixin_29170327的博客 162

set 命令的详解

set 命令的一般使用

qq_35435999的博客 4130

MediaPipe 教程:从安装到应用-全网最全

MediaPipe是Google推出的开源框架,专为构建机器学习管道设计,可以高效处理视频、音频等时间序列数据。本文教程从安装到应用逐步讲解: 安装步骤简单,只需通过pip安装mediapipe包并验证版本; 重点演示人体姿态检测功能,可识别33个身体关键点; 提供基础代码实现,包括视频捕获、关键点检测与可视化; 强调模块化开发,将功能封装成类以提高代码复用性。 教程适合初学者,通过清晰指引和实用代码示例,帮助快速实现计算机视觉应用。

FJN110的博客 1563

inux中的set命令: "set -e" 与 "set -o pipefail"

转载自: http://blog.sina.com.cn/s/blog_8bb0a3bd010171cp.html inux中的set命令: "set -e" 与 "set -o pipefail"  (2012-07-18 14:43:43) 标签:  linux   set 分类: 班门弄斧碎碎念 工作中经常在

yangxiangpao的专栏 1570

【人工智能】在 cc-switch 中配置 AnyRouter 接入 Claude Code 完整指南

本文介绍了在cc-switch工具中配置AnyRouter中转服务以接入Claude Code的详细步骤。主要内容包括:1) 准备API令牌和端点地址;2) 填写基础信息和模型参数;3) 保存配置并重启终端生效;4) 常见问题排查方法。重点强调了API地址格式、模型ID准确性以及配置写入的必要性,帮助用户顺利完成中转服务配置,实现Claude 4.5版本的正常使用。

奶爸的编程之路,也就一周冷个三天 3102

131、高通骁龙影像平台总览:Spectra ISP 各代架构演进与特性对比

摘要:本文深入分析了高通骁龙Spectra ISP从250到780代的架构演进与技术痛点,揭示了各代关键改进与隐藏问题。重点剖析了双ISP带宽分配、AI ISP黑盒决策、温度控制等实战问题,并给出具体解决方案(如寄存器配置、QoS调整等)。文章强调工程师需平衡带宽、功耗与画质的三角关系,建议调试时先关闭AI模块建立基线,关注统计引擎配置,并建立温度监控机制。最后指出理解架构局限比追求完美设计更重要,需要针对不同场景找到合适的妥协方案。(148字)

sundong_81的博客 207

Linux shell编程学习笔记28:脚本调试 set命令

set命令用于查看和修改 Shell 环境的运行参数,我们可以依照不同的需求来设置shell的执行方式,实现定制 Shell 脚本的运行环境。bash和zsh对set命令的支持是不同的。

Purpleendurer@优快云 2085

深度学习之目标检测--Pytorch实战

只需要能看懂python代码,就能最快入门深度学习---目标检测。目标检测简单的玩玩儿还行,模型调优,调参,还需要一定的数学功底。通过代码来实现卷积,池化,非线性激活,正则化,归一化,能让人减少对大量数学公式的敬畏,手写神经网络也是考研复试中上机考试的压轴题,掌握搭建神经网络和如何训练模型是需要掌握的基础的

需要远程指导仿真实验、代码有问题的,请后台私信或者关注公众号 1万+

.bash_profile和.bashrc的区别(如何设置生效)

本文转自 http://blog.youkuaiyun.com/u012524027/article/details/50173653 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打

路途中的人2012的博客 308

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

.bash_profile、profile和.bashrc的区别

/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置. /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取. ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登

believe的专栏 626

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Shell 内置命令深度解析

Linux Shell 内置命令是直接嵌入在 Shell 程序中的特殊命令,无需创建子进程即可执行。它们具有三大核心价值:执行速度快(避免进程创建开销)、可直接修改 Shell 状态(如环境变量、工作目录)以及能实现外部命令无法完成的操作(如作业控制)。 内置命令主要分为五大类:作业控制命令(bg、fg等)、进程/环境命令(cd、export等)、控制结构命令(if、for等)、信息查询命令(echo、read等)和杂项命令(source、exec等)。

vortex5的博客 1526

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

linux set o,Linux Set 和 shopt 命令

用set命令可以设置各种shell选项或者列 出shell变量.单个选项设置常用的特性.在某些选项之后-o参数将特殊特性打开.在某些选项之后使用+o参数将关闭某些特性,不带任何参数的set命 令将显示shell的全部变量.除非遇到非法的选项,否则set总是返回ture.当shell被调用时,可以列出全部的选项.当前的选项集列在$-中.在option参数被处理后,其他的参数被赋值到位置参数中($1,...

weixin_42315966的博客 1060

LINUX set 和 shopt

set命令可以用来定制shell环境,使用选项“o”来打开或者关闭选项。例如打开选项:set -o 选项,关闭选项目:set +o 选项。   例如要打开vi交互式命令行编辑,则如下:[root@localhost ~]# set -o   #查看当前设置情况allexport       offbraceexpand     onemacs           onerrexit       

srjay111的专栏 852

Bash 行为开关:shopt 命令完整详解(Shell 选项配置实战)

shopt命令是Bash shell中用于管理Shell行为选项的工具,可动态开启/关闭功能如文件名扩展、历史记录等。通过-s/-u开关选项,-q静默检测状态,-p生成可重用配置命令。常见用途包括启用递归通配符(globstar)、目录拼写检查(cdspell)等。需注意设置仅对当前会话有效,永久生效需写入~/.bashrc。与set命令不同,shopt专注于命名明确的特性开关,适合精细控制Shell行为。脚本中建议显式设置所需选项以保证兼容性。

qq_36742166的博客 227

Linux命令-shopt(Bash 内建:Shell 选项管理)

shopt(shell options)是 Bash 内建命令,用于启用/禁用/查询 Bash 特有的 shell 选项。它与 set 命令配合但侧重点不同:set 控制 POSIX 标准选项(如 set -e),shopt 控制 Bash 扩展选项(如 extglob、nullglob)。掌握 shopt 能解锁 Bash 的"高级玩法"——扩展通配符 **、递归匹配 @(pattern-list)、不区分大小写通配等。

RisunJan的博客 418

Linux中profile、bashrc、bash_profile之间的区别和联系

文章目录前言一、基本操作二、Linux中profile、bashrc、bash_profile之间的区别和联系```~/.bash_profile、~/.bashrc、和~/.bash_login```登录交互式Shell、非登录交互式Shell、登录非交互式Shell、非登录非交互式Shell总结 前言 之前一直不理解Linux下profile、bashrc、bash_profile之间的区别和联系。刚看到一篇不错的文章,特转载分享记录 一、基本操作 查看当前有哪些环境变量 直接输入命令:env

来瓶小白干Oo的博客 4319

Linux 下 set env export declare浅浅 set和shopt命令详解--(shell定制) (转载)

set 用来显示本地变量 env 用来显示环境变量 export 用来显示和设置环境变量 set 显示当前shell的变量,包括当前用户的变量 env 显示当前用户的变量 export 显示当前导出成用户变量的shell变量 每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比...

weixin_30752699的博客 230

Linux Shell环境深度优化与高效配置指南

Shell环境作为Linux系统的核心交互界面,其配置优化直接影响开发运维效率。环境变量管理是Shell定制的基石,通过合理设置PATH等变量可以确保命令正确执行。命令别名和历史命令优化则能显著提升日常操作效率,例如通过alias实现快速文件操作或通过HISTCONTROL过滤冗余记录。在工程实践中,结合Git分支显示的PS1提示符和tmux终端复用工具,可以构建高效的开发环境。对于需要跨平台协作的场景,采用版本控制管理dotfiles或容器化开发环境能保证一致性。本文以Bash为例,详细演示从基础配置到高

weixin_33739523的博客 392

Shell笔记第六天

2.4.2shell扩展 匹配所有 ?匹配单个字符 【…】匹配括号内任意字符 #1s /etc/[ab].conf 2.4.3创建和使用别名 alias name=’command’ #alias ls=’ls - l’ 注意:在命令行执行命令时,会创建一个临时的别名。 打开当前目录下最后被修改的文件: #alias Vim=’vim ls – t | head – 1 ’ 找出当前目录下,...

Mr.Wang的博客 138

第八天 set shopt

set shoptset命令可以用来定制shell环境,使用选项“o”来打开或者关闭选项。例如打开选项:set -o 选项,关闭选项目:set +o 选项。shopt命令是set命令的一种替代,很多方面都和set命令一样,但它增加了很多选项。可有使用“-p”选项来查看shopt选项的设置。“-u”开 关表示一个复位的选项,“-s”表示选项当前被设置。内置set命令选项选项名 ...

weixin_33774883的博客 132
上一篇: Linux shell命令 删除除了某个文件之外的所有文件
下一篇: ARM详细指令集
channel310
博客等级 码龄14年 5粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值