定制shell环境set和shopt

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

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

内置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模式

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  #打开选项

时间: 2024-10-12 16:13:27

定制shell环境set和shopt的相关文章

bash shell 环境

原文引用https://www.dazhuanlan.com/2019/08/26/5d62f93a80696/ bash的环境配置 工作环境是在Mac环境下,默认情况下Mac下bash是没有 .bashrc 的,导致一些自动化工具没有正确配置自己的环境变量,最后出现问题. bash的这些配置文档作用 .bash_profile 从字面理解 profile 跟账号相关,它在用户每次登录系统时被读取,里面的所有命令都会被bash执行. 在其他shell里面,存在 .profile 和 .login

定制AIX操作系统的shell环境

操作系统与外部最主要的接口就叫做shell.shell是操作系统最外面的一层.shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果. shell提供了你与操作系统之间通讯的方式.这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shell script(非交互)方式执行.shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用.本质上,shell script是命令行命令简单的组合到一个文件里

定制 Shell 工作环境

登录到系统以后,面对我们就是 Shell 交互环境,每天使用它来工作,拥有一个定制化的环境可以让我们的工作效率更高. 1.PS1 变量 有没有发现,光标闪动的左边有一串字符:[[email protected] ~]#,这组字符串的组成为[用户名@hostname 当前所在目录]#.其实这段字符的就是由 PS1 变量来控制的,echo $PS1 来看一下: 这其实已经是我定制过的内容,给显示的一些内容加上了颜色.接下来让我们恢复它本来的样子,".bashrc"是 bash shell

《学习bash》笔记--定制用户环境

1. .bash_profile..bash_logout和.bashrc文件 当用户和退出一个新的shell时,文件.bash_profile..bash_logout和.bashrc文件被bash所读取.在用户每次登陆到系统时, .bash_profile文件被读取,可以对.bash_profile文件进行编辑,但是知道退出并在此登录后,该文件才会被重新读取,你编辑 的新内容才会生效,或者使用source命令: source ./bash_profile bash允许有.bash_profi

定制windows环境下cmd替代软件ConEmu

定制windows环境下cmd替代软件ConEmu 公认的是Windows环境下命令行界面太难用. 不管是cmd还是powershell都不顺手!!窗口宽度不能全屏,字体太难看还不能调整,窗口背景不能更换,永远的黑白配,最痛苦的是复制和粘贴.都不知道MS是怎么想的?搞个这么个反人类的东西出来,还万年不变,从Windows诞生到Windows7不论是桌面版还是服务器版都一样,到了windows8/windows10换成powershell一样的鸡肋. 在百度搜了一下,找到cmd的替代软件conem

9. shell环境

• printenv –打印部分或所有的环境变量 • set –设置 shell 选项• export —导出环境变量,让随后执行的程序知道.• alias –创建命令别名 1.shell环境:shell在shell会话中维护着大量的信息,这些信息称为shell环境 2.shell的基本数据类型? 1)shell变量:由 bash 存放的一很少数据. 2)环境变量:其他的所有数据 也存储了一些可编程数据,命名为别名和shell函数(涉及shell脚本) 一.检查环境变量 set命令可以显示 sh

linux基础——bash shell环境配置

想要用好bash shell,首先得搞清楚bash shell环境的配置,只有配置好了,我们用起来才会得心应手,要想配置好,必须了解清楚bash配置文件的类型,再根据实际需求做一些相应的添加或修改就可以了.一.bash的配置文件(一)按生效范围划分:全局配置.个人配置 1.全局配置:  /etc/profile  /etc/profile.d/*.sh  /etc/bashrc 2.个人配置:  ~/.bash_profile  ~/.bashrc (二)按功能划分:profiile类.bash

Termux v0.38最新下载地址,手机上shell环境的瑞士军刀

android手机上的瑞士军刀,一种集成的shell环境.无需手机root,类似ubuntu的apt包管理机制,可以安装php,python,curl,git,openssh 等等众多工具. 如何安装 apt install php apt install python apt install git apt install curl apt install xxx 可惜的是国外的源被墙了,需要自己扶梯子,可以看下面视频演示,里面也有提到apt install 的方法. 点此观看演示视频 屏幕截

shell环境

在Unix式的操作系统中有一个最重要的特性就是命令行界面或shell.shell环境使得用户能与操作系统的核心功能进行交互.术语脚本更多涉及的便是这种环境.编写脚本通常使用某种基于解释器的编程语言.而shell脚本不过就是一些文件,我们能将一系列需要执行的命令写入其中,然后通过shell来执行.目前大多数GUN/Linux系统默认的shell环境是bash.在linux系统中,命令都是在shell终端中输入并执行的.打开终端后就会出现提示符: [[email protected] ~]# 1.其