utshell用户手册
介绍
utshell是使用rust语言对bash命令处理器的重开发,是一个延续了bash使用习惯的全新shell,它能够与用户进行命令行交互,响应用户的操作去执行命令并给予反馈,并且能执行shell脚本。主要功能如下:
- 执行内置命令:utshell自带的命令
- 执行外部命令:第三方软件提供的命令
- 执行脚本:执行命令集合
- 作业控制:控制进程的前后台运行、停止、结束等
安装和卸载
安装
utshell 使用 yum 命令进行安装,使用openEuler 24.03 (LTS-SP3)系统进行演示:
进入命令行界面执行,根据提示输入y,即可安装成功。
卸载
在命令行执行yum remove utshell即可卸载 utshell。
使用说明
检查shell环境
使用命令:echo $0。
结果显示为utshell,则是在utshell环境中,如下图所示:
调用utshell
命令格式:
utshell [GNU long option] [option] ...
utshell [GUN long option] [option] script-file ...长参数
| 参数 | 参数说明 |
|---|---|
| --debugger | 设置在shell启动前执行调试器配置文件 |
| --dump-po-string | 以‘$’开头的所有双引号字符串的列表以GNU gettext PO(可移植对象)文件格式打印在标准输出上 |
| --dump-strings | 将双引号内的字符串字面量输出到标准输出 |
| --help | 显示帮助信息 |
| --init-file filename | 在交互式shell中执行filename的命令(而不是~/.bashrc) |
| --login | bash 以登录 shell(login shell)的方式启动 |
| --noprofile | 当utshell作为登陆shell被调用时,不要加载全系统的启动文件/erc/profile或任何个人的初始化文件~/.bash_profile、~/.bash_login或~/.profile |
| --norc | 不要在交互式shell中读取~/.bashrc初始化文件 |
| --posix | 改变utshell在默认操作与POSIX标准不同的情况下的行为,已符合标准这旨在让utshell的行为成为该标准的一个严格的超集 |
| --restricted | 使shell成为受限的shell |
| --verbose | 在执行脚本或者命令行是输出详细信息 |
| --version | 显示版本信息 |
常用长参数介绍
--help 显示utshell帮助信息
--version显示版本信息
短参数
调用utshell时可以使用的参数如表所示:
| 参数 | 参数说明 |
|---|---|
| -c | 读取并执行第一个非选项参数command_string中的命令,然后退出。 |
| -i | 强制shell以交互方式运行 |
| -l | bash 以登录 shell(login shell)的方式启动 |
| -r | 使shell成为受限的shell |
| -s | 使utshell从stdin读取命令,并接受位置参数 |
| -D | 将双引号内的字符串字面量输出到标准输出 |
| [-+]O [shopt_option] | -O设置shopt_option的值+O取消设置 |
| -- | 选项结束,禁止进一步的选项处理。在--之后的任何参数都被视为文件名和参数 |
常用短参数介绍
-c 参数 1.1 使用utshell执行
ls -l命令,执行结果如下图所示: 1.2 在utshell-c.sh脚本中执行a.sh脚本,需要两个脚本都有可执行权限,执行结果如下图所示:
内置命令
utshell的内置命令如下表所示,某个命令的具体使用方式可以使用 xxx --help命令查看,如下图所示:
| 内建命令 | |||
|---|---|---|---|
| alias | eval | popd | typeset |
| bg | exec | printf | ulimit |
| bind | exit | pushd | umask |
| break | export | pwd | unalias |
| builtin | false | read | unset |
| caller | fc | readarray | wait |
| cd | fg | readonly | |
| command | function | return | |
| compgen | getopts | set | |
| complete | hash | shift | |
| compopt | help | shopt | |
| coproc | history | source | |
| declare | jobs | suspend | |
| dirs | kill | time | |
| disown | local | times | |
| echo | logout | trap | |
| enable | mapfile | type |
关键字
utshell中的保留关键字如下表所示:
| 关键字 | 含义 |
|---|---|
| ! | 逻辑非 |
| break | 跳出for、while、until、select循环 |
| case | 多重选择 |
| continue | 到达下次for、while、until、select循环 |
| do | for、while、until、select循环的一部分 |
| done | for、while、until、select循环的一部分 |
| elif | if结构的一部分 |
| else | if结构的一部分 |
| esac | case的一部分 |
| fi | if循环的一部分 |
| for | for循环的一部分 |
| if | if循环的一部分 |
| in | case、for、select循环的一部分 |
| select | 生成菜单 |
| then | if结构的一部分 |
| time | 输出命令执行时间 |
| until | 一种循环结构 |
| while | 一种循环结构 |
常见关键字使用介绍
if语法格式
语法格式:
bashif conditionl then command1 elif condition2 then command2 else commandn fi条件操作符
操作符 含义 -f 文件是否存在,并且是一个普通文件 -d 是否是目录 -h 是否是符号链接 -s 文件是否存在,且不为空 -r 文件是否可读 -w 文件是否可写 -x 文件是否可执行 -lt 小于 -gt 大于 -ge 大于等于 -le 小于等于 -ne 不等于 ==/= 判断两个字符串是否相等 != 两个字符串不等 -z 字符串空,返回true -n 长度不是0,返回true
for循环
语法格式:
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
donewhile语句
语法格式:
while condition
do
command
doneuntil循环
语法格式:
until condition
do
command
donecase ... esac匹配
功能:多选择语句,与其他语言中的switch ... case语句类似,是一种多分支选择结构,每个case分支用右圆括号开始,两个分号结束。可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
语法格式:
bashcase 值 in 模式1) command1 command2 ... commandN ;; 模式2) command1 command2 ... commandN ;; esac
select 生成菜单
功能:将列表中的数据生成菜单。
语法格式:
bashselect $var in ${list[@]} do statements that can use $var done示例:
相关说明
配置文件
/etc/profile文件
该脚本会遍历/etc/profile.d/目录下的所有以.sh结尾的文件和/etc/profile.d/sh.local文件,并根据当前的shell选项标志决定是否执行这些脚本。如果shell选项标志包含i,则脚本会直接执行;否则,脚本的输出会被丢弃。这通常用于系统启动时自动加载一系列配置脚本。并且在该脚本中还有一个作用就是在非登陆shell中避免重复加载和运行/etc/utshellrc。
/etc/utshellrc文件
utshell的主要配置文件,主要设置如下内容:
- 终端显示utshell提示符样式
- 打开并行历史记录功能
- 将当前的历史记录写入到历史文件中
- 根据终端窗口变化自动调整utshell窗口
- 在非登录shell中设置环境变量和权限掩码,并执行一些初始化脚本
- 计算
OMP_NUM_THREADS值
~/.utshell_profile和~/.utshellrc文件
在~/.utshell_profile中主要是执行~/.utshellrc脚本和将$HOME/bin添加到PATH环境变量的末尾,并且导出PATH。 ~/.utsehllrc脚本中主要是命令别名的设置和执行/etc/utshellrc脚本。
shell模式
登录模式
login shell 是指通过输入用户名和密码后取得的shell,输入echo $0后显示-utshell 首先,登陆shell首先会读取/etc/profile文件。这个文件通常会调用/etc/sysconfig/i18n来设置终端的语言信息,调用/etc/inputrc来设置终端的输入方式,还会调用/etc/profile.d/目录下的*.sh脚本文件和/etc/locale.conf文件。 其次,系统会读取用户家目录下的 .utshell_profile、.utshell_login、.profile三个文件。一般来说,系统只执行这三个文件中的一个。如果这些文件中存在读取~/.utshellrc,那么在登录时,系统会读取~/.utshellrc文件。交互登陆shell退出时会读取~/.utshell_logout文件。 因此,当用户登录shell时,会先读取/etc/profile,再读取~/.utshellrc。文件读取顺序如下图所示:
非登录shell
non-login shell 指没有通过输入用户名和密码得到的shell,输入echo $0 后显示utshell。非登陆shell读取的配置文件为~/.utshellrc,文件执行顺序如图所示:










