当前位置: 首页 > news >正文

小清新博客网站门户类网站前台

小清新博客网站,门户类网站前台,全球网站排行榜,主机屋wordpress文章目录 第6章 Linux 环境变量6.1 环境变量简介#xff1f;6.2 全局变量6.3 局部环境变量6.4 设置用户自定义变量6.4.1 设置局部用户自定义变量6.4.2 设置全局环境变量6.4.3 删除环境变量 6.5 默认的shell环境变量6.6 设置PATH环境变量6.7 定位系统环境变量6.7.1 登录shell6.… 文章目录 第6章 Linux 环境变量6.1 环境变量简介6.2 全局变量6.3 局部环境变量6.4 设置用户自定义变量6.4.1 设置局部用户自定义变量6.4.2 设置全局环境变量6.4.3 删除环境变量 6.5 默认的shell环境变量6.6 设置PATH环境变量6.7 定位系统环境变量6.7.1 登录shell6.7.2 /etc/profile文件6.7.3 $HOME目录下的启动文件6.7.4 交互式shell进程6.7.5 非交互式shell 6.8 环境变量持久化6.9 数组变量 第6章 Linux 环境变量 6.1 环境变量简介 Linux环境变量能帮你提升Linux shell体验。很多程序和脚本都通过环境变量来获取系统信息、存储临时数据和配置信息。在Linux系统上有很多地方可以设置环境变量了解去哪里设置相应的环境变量很重要。 本章将带你逐步了解Linux环境变量它们存储在哪里怎样使用以及怎样创建自己的环境变量。最后以数组变量的用法作结。 bash shell使用环境变量来存储shell会话和工作环境的相关信息这也是被称作环境变量的原因。环境变量允许在内存中存储数据以便shell中运行的程序或脚本能够轻松访问到这些数据。这也是存储持久数据的一种简便方法。bash shell中有两种环境变量。 全局环境变量局部环境变量 6.2 全局变量 全局环境变量对于shell会话和所有生成的子shell都是可见的这让全局环境变量对那些所创建的子shell需要获取父shell信息的程序来说非常有用。 # 可以使用env命令或printenv命令来查看全局变量 [rootFedora-Desktop ~]# env | grep -i PATH PATH/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin DBUS_SESSION_BUS_ADDRESSunix:path/run/user/0/bus [rootFedora-Desktop ~]# # 显示个别 [rootFedora-Desktop ~]# printenv PATH /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin [rootFedora-Desktop ~]# # echo $ 也可以使用echo命令显示变量的值。在引用某个环境变量时必须在该变量名前加上美元符号$ [rootFedora-Desktop ~]# echo $HOME /root [rootFedora-Desktop ~]# # 在echo命令中在变量名前加上$可不仅仅是要显示变量当前的值。它能够让变量作为命令 行参数。 [rootFedora-Desktop ~]# ls $HOME anaconda-ks.cfg doc.tar documents music music.tar zy.mp4 zy.txt [rootFedora-Desktop ~]# [rootFedora-Desktop ~]# ls /root anaconda-ks.cfg doc.tar documents music music.tar zy.mp4 zy.txt [rootFedora-Desktop ~]# # 全局环境变量可用于进程的子shell用zsh命令生成一个子shell后显示了HOME环境变量的当前值这个值和 父shell中的一模一样都是/home/Chrisine [rootFedora-Desktop ~]# zsh [rootFedora-Desktop]~# ps -f UID PID PPID C STIME TTY TIME CMD root 2185 2170 0 11:12 pts/0 00:00:00 -bash root 2370 2185 0 11:15 pts/0 00:00:00 zsh root 2388 2370 0 11:15 pts/0 00:00:00 ps -f [rootFedora-Desktop]~# echo $HOME /root [rootFedora-Desktop]~# exit [rootFedora-Desktop ~]# 6.3 局部环境变量 局部环境变量只能在定义它的进程中可见。尽管它们是局部的但是和全局环境变量一样重要 。 Linux系统也默认定义了标准的局部环境变量。不过你也可以定义自己的局部变量如你所想这些变量被称为用户定义局部变量。 set命令可以显示某个特定进程的所有环境变量既包括局部变量、全局变量也包括用户自定义变量 [rootFedora-Desktop ~]# set ······ [rootFedora-Desktop ~]#可以看到所有通过printenv命令能看到的全局环境变量都出现在了set命令的输出中。但在set命令的输出中还有其他一些环境变量即局部环境变量和用户定义变量。 set命令既会显示全局和局部环境变量、用户自定义变量以及局部shell函数还会按照字母顺序对结果进行排序。 与set命令不同env命令和printenv命令既不会对变量进行排序也不会输出局部环境变量、局部用户自定义变量以及局部shell函数。在这种情况下env命令和printenv命令的输出是重复的。不过env命令有printenv命令不具备的一个功能这使其略胜一筹。 6.4 设置用户自定义变量 可以在bash shell中直接设置自己的变量也可以在shell脚本程序中创建自己的变量并引用它们。 6.4.1 设置局部用户自定义变量 启动bash shell或者执行shell脚本之后就能创建仅对该shell进程可见的局部用户自定义变量。可以使用等号为变量赋值值可以是数值或字符串。 [rootFedora-Desktop ~]# echo $my_variable01[rootFedora-Desktop ~]# my_variable01123456 [rootFedora-Desktop ~]# echo $my_variable01 123456 [rootFedora-Desktop ~]# # 如果用于赋值的字符串包含空格则必须用单引号或双引号来界定该字符串的起止 [rootFedora-Desktop ~]# echo $my_variable02[rootFedora-Desktop ~]# my_variable02Hello World [rootFedora-Desktop ~]# echo $my_variable02 Hello World [rootFedora-Desktop ~]# # 注意你定义的局部变量用的是小写字母而系统环境变量均用的都是大写字母。 # 在变量名、等号和值之间没有空格这一点非常重要。如果在赋值表达式中加上了空格那么bash shell会将值视为单独的命令# 设置好局部变量后就能在shell进程中随意使用了。但如果又生成了另一个shell则该变量在子shell中不可用 [rootFedora-Desktop ~]# zsh [rootFedora-Desktop]~# echo $0 zsh [rootFedora-Desktop]~# echo $my_variable02 [rootFedora-Desktop]~# exit [rootFedora-Desktop ~]# [rootFedora-Desktop ~]# echo $my_variable02 Hello World [rootFedora-Desktop ~]# # 类似地如果你在子进程中设置了一个局部变量那么一旦你退出了子进程那个局部环境变量就不可用。 [rootFedora-Desktop ~]# zsh [rootFedora-Desktop]~# echo $my_child_variable[rootFedora-Desktop]~# my_child_variableI an Local now [rootFedora-Desktop]~# echo $my_child_variable I an Local now [rootFedora-Desktop]~# exit [rootFedora-Desktop ~]# [rootFedora-Desktop ~]# echo $my_child_variable[rootFedora-Desktop ~]# # 当我们回到父shell时子shell中设置的局部变量就不存在了。可以通过将局部的用户定义变量变成全局变量来改变这种情况。6.4.2 设置全局环境变量 全局环境变量在设置该变量的父进程所创建的子进程中都是可见的。创建全局环境变量的方法是先创建局部变量然后再将其导出到全局环境中。 # 通过export命令加要导出的变量名 [rootFedora-Desktop ~]# echo $my_variable03[rootFedora-Desktop ~]# my_variable03I am Global now [rootFedora-Desktop ~]# export my_variable03 [rootFedora-Desktop ~]# echo $my_variable03 I am Global now [rootFedora-Desktop ~]# # 子shell中也可见 [rootFedora-Desktop ~]# zsh [rootFedora-Desktop]~# ps -f UID PID PPID C STIME TTY TIME CMD root 2185 2170 0 11:12 pts/0 00:00:00 -bash root 2523 2185 0 11:53 pts/0 00:00:00 zsh root 2546 2523 99 11:54 pts/0 00:00:00 ps -f [rootFedora-Desktop]~# [rootFedora-Desktop]~# echo $my_variable03 I am Global now [rootFedora-Desktop]~# # 修改子shell中的全局环境变量并不会影响父shell中该变量的值 [rootFedora-Desktop]~# zsh [rootFedora-Desktop]~# my_variable03NULL [rootFedora-Desktop]~# echo $my_variable03 NULL [rootFedora-Desktop]~# exit [rootFedora-Desktop]~# echo $my_variable03 I am Global now [rootFedora-Desktop]~# # 子shell甚至无法使用export命令改变父shell中全局环境变量的值尽管子shell重新定义并导出了变量my_variable但父shell中的my_variable变量依然保 留着原先的值 [rootFedora-Desktop]~# zsh [rootFedora-Desktop]~# my_variable03NULL [rootFedora-Desktop]~# export my_variable03 [rootFedora-Desktop]~# echo $my_variable03 NULL [rootFedora-Desktop]~# exit [rootFedora-Desktop]~# [rootFedora-Desktop]~# echo $my_variable03 I am Global now [rootFedora-Desktop]~# 6.4.3 删除环境变量 1. unset 删除环境变量 [rootFedora-Desktop ~]# echo $my_variable04[rootFedora-Desktop ~]# [rootFedora-Desktop ~]# my_variable04I want delete [rootFedora-Desktop ~]# echo $my_variable04 I want delete [rootFedora-Desktop ~]# unset my_variable04 [rootFedora-Desktop ~]# echo $my_variable04[rootFedora-Desktop ~]# # 窍门: 如果要用到doing anything with变量就使用$如果要操作doing anything to变量则不使用$。这条规则的一个例外是使用printenv显示某个变量的值。# 子进程中删除了一个全局环境变量那么该操作仅对子进程有效。该全局环境变量在父进程中依然可用。 [rootFedora-Desktop ~]# echo $my_variable05[rootFedora-Desktop ~]# my_variable05I am Global now [rootFedora-Desktop ~]# export my_variable05 [rootFedora-Desktop ~]# zsh [rootFedora-Desktop]~# echo $my_variable05 I am Global now [rootFedora-Desktop]~# unset my_variable05 [rootFedora-Desktop]~# echo $my_variable05[rootFedora-Desktop]~# exit [rootFedora-Desktop ~]# echo $my_variable05 I am Global now [rootFedora-Desktop ~]# # 和修改变量一样在子shell中删除全局变量后你无法将效果反映到父shell中6.5 默认的shell环境变量 在默认情况下bash shell会用一些特定的环境变量来定义系统环境。这些变量在你的Linux系统中都已设置好只管放心使用就行了。 bash shell源自当初的Unix Bourne shell因此也保留了Unix Bourne shell里定义的那些环境变量。 ​ bash shell支持的Bourme变量 变量描述CDPATH冒号分隔的目录列表作为cd命令的搜索路径HOME当前用户的主目录IFSshell用来将文本字符串分割成字段的一系列字符MAIL当前用户收件箱的文件名 bash shell会检查这个文件看看有没有新邮件MAILPATH冒号分隔的当前用户收件箱的文件名列表 bash shell会检查列表中的每个文件看看有没有新邮件OPTARGgetopts命令处理的最后一个选项参数值OPTINDgetopts命令处理的最后一个选项参数的索引号PATHshell查找命令的目录列表由冒号分隔PS1shell命令行界面的主提示符PS2hell命令行界面的次提示符 ​ bash shell环境变量 变量描述BASH当前shell实例的全路径名BASH_ALIASES含有当前已设置别名的关联数组BASH_ARGC含有传入子函数或shell脚本的参数总数的数组变量BASH_ARCV含有传入子函数或shell脚本的参数的数组变量BASH_CMDS关联数组包含shell执行过的命令的所在位置BASH_COMMANDshell正在执行的命令或马上就执行的命令BASH_ENV设置了的话每个bash脚本会在运行前先尝试运行该变量定义的启动文件BASH_EXECUTION_STRING使用bash -c选项传递过来的命令BASH_LINENO含有当前执行的shell函数的源代码行号的数组变量BASH_REMATCH只读数组在使用正则表达式的比较运算符~进行肯定匹配 positive match时包含了匹配到的模式和子模式······· 你可能已经注意到不是所有的默认环境变量都会在运行set命令时列出。尽管这些都是默认环境变量但并不是每一个都必须有一个值。 6.6 设置PATH环境变量 # 当你在shell CLI中输入一个外部命令,shell必须搜索系统从中找到对应的程序。PATH环境变量定义了用于查找命令和程序的目录。 [rootFedora-Desktop ~]# echo $PATH /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin [rootFedora-Desktop ~]# # PATH中的目录之间以冒号分隔。 # 输出中显示共有7个目录shell会在其中查找命令和程序。如果命令或者程序所在的位置没有包括在PATH变量中那么在不使用绝对路径的情况下shell是无法找到的。shell在找不到指定的命令或程序时会产生错误信息 [rootFedora-Desktop ~]# start-dfs.sh bash: start-dfs.sh: 未找到命令... [rootFedora-Desktop ~]# # 你可以把新的搜索目录添加到现有的PATH环境变量中无须从头定义。PATH中各个目录之间以冒号分隔。只需引用原来的PATH值添加冒号:然后再使用绝对路径输入新目录即可。将该目录加入PATH环境变量之后就可以在虚拟目录结构的任意位置执行这个程序了。 [rootFedora-Desktop ~]# PATH$PATH:/home/zy/Desktop/hadoop-3.1.3/sbin [rootFedora-Desktop ~]# start-dfs.sh Starting namenodes on [Fedora-Desktop] [rootFedora-Desktop ~]# # 如果希望子shell也能找到你的程序的位置一定要记得把修改后的PATH环境变量导出。对PATH变量的修改只能持续到退出或重启系统。这种效果并不能一直持续。在下一节中你会学到如何永久保持环境变量的修改效果。 6.7 定位系统环境变量 环境变量的作用持久化 当你登录Linux系统启动bash shell时默认情况下bash会在几个文件中查找命令。这些文件称作启动文件或环境文件。bash进程的启动文件取决于你启动bash shell的方式。 启动bash shell有以下3种方式: 登录时作为默认登录shell作为交互式shell通过生成子shell启动作为运行脚本的非交互式shell 下面几节介绍了bash shell在不同的方式下启动文件。 6.7.1 登录shell 当你登录Linux系统时bash shell会作为登录shell启动。 登录shell通常会从5个不同的启动文件中读取命令。 1. /etc/profile 2. $HOME/.bash_profile 3. $HOME/.bashrc 4. $HOME/.bash_login 5. $HOME/.profile# /etc/profile文件是系统中默认的bash shell的主启动文件系统中的每个用户登录时都会执行这个启动文件。# 注意: 要留意的是有些Linux发行版使用了可拆卸式认证模块pluggable authentication modulePAM。在这种情况下PAM文件会在bash shell启动之前被处理前者中可能会包含环境变量。PAM文件包括/etc/environment文件和$HOME/.pam_environment文件。另外4个启动文件是针对用户的位于用户主目录中可根据个人具体需求定制。下面来仔细看看各个文件。 6.7.2 /etc/profile文件 1. /etc/profile文件是bash shell默认的主启动文件。只要登录Linux系统bash就会执行/etc/profile启动文件中的命令。不同的Linux发行版在这个文件中放置了不同的命令。 [rootFedora-Desktop ~]# cat /etc/profile # /etc/profile# System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc# Its NOT a good idea to change this file unless you know what you # are doing. Its much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates.pathmunge () {case :${PATH}: in*:$1:*);;*)if [ $2 after ] ; thenPATH$PATH:$1elsePATH$1:$PATHfiesac }# 每个发行版的/etc/profile文件都有不同的设置和命令。2. 不同发行版的/etc/profile文件都用到了同一个特性 for语句。它用来迭代/etc/profile.d目录下的所有文件。这为Linux系统提供了一个放置特定应用程序启动文件的地方当用户登录时 shell会执行这些文件。 [rootFedora-Desktop ~]# ls /etc/profile.d bash-color-prompt.sh colorls.sh csh.local gawk.sh lang.csh nano-default-editor.sh vte.sh bash_completion.sh colorxzgrep.csh debuginfod.csh gnome-ssh-askpass.csh lang.sh PackageKit.sh which2.csh colorgrep.csh colorxzgrep.sh debuginfod.sh gnome-ssh-askpass.sh less.csh sh.local which2.sh colorgrep.sh colorzgrep.csh flatpak.sh kde.csh less.sh toolbox.sh colorls.csh colorzgrep.sh gawk.csh kde.sh nano-default-editor.csh vte.csh [rootFedora-Desktop ~]# # 有些文件与系统中的特定应用程序有关。大部分应用程序会创建两个启动文件一个供bash shell使用扩展名为.sh另一个供C shell使用扩展名为.csh。6.7.3 $HOME目录下的启动文件 # 其余的启动文件都用于同一个目的提供用户专属的启动文件来定义该用户所用到的环境变量。 大多数Linux发行版只用这4个启动文件中的一两个。 1. $HOME/.bash_profile 2. $HOME/.bashrc 3. $HOME/.bash_login 4. $HOME/.profile# 注意这些文件都以点号开头说明属于隐藏文件不会出现在一般的ls命令输出中。因为它们位于用户的$HOME目录下所以每个用户可以对其编辑并添加自己的环境变量其中的环境变量会在每次启动bash shell会话时生效。# 注意: Linux发行版在环境文件方面存在的差异非常大。本节所列出的$HOME文件下的那些文件并非每个用户都有。例如有些用户可能只有一个$HOME/.bash_profile文件。这很正常。# shell会按照下列顺序执行第一个被找到的文件余下的则被忽略。 1. $HOME/.bash_profile 2. $HOME/.bash_login 3. $HOME/.profile# 你会发现这个列表中并没有$HOME/.bashrc文件。这是因为该文件通常通过其他文件运行。 # 提示 记住$HOME代表某个用户的主目录和波浪号~的效果一样。Fedora Linux系统中的.bash_profile文件的内容如下 [rootFedora-Desktop ~]# cat $HOME/.bash_profile # .bash_profile# Get the aliases and functions if [ -f ~/.bashrc ]; then. ~/.bashrc fi# User specific environment and startup programs [rootFedora-Desktop ~]# # .bash_profile启动文件会先检查$HOME目录中是不是还有一个名为.bashrc的启动文件。如果有就先执行该文件中的命令。6.7.4 交互式shell进程 1. 如果不是在登录系统时启动的bash shell比如在命令行中输入bash那么这时的shell称作交互式shell。与登录shell一样交互式shell提供了命令行提示符供用户输入命令。作为交互式shell启动的bash并不处理/etc/profile文件只检查用户$HOME目录中的.bashrc文件。 [rootFedora-Desktop ~]# cat .bashrc # .bashrc# Source global definitions if [ -f /etc/bashrc ]; then. /etc/bashrc fi# User specific environment if ! [[ $PATH ~ $HOME/.local/bin:$HOME/bin: ]] thenPATH$HOME/.local/bin:$HOME/bin:$PATH fi export PATH# Uncomment the following line if you dont like systemctls auto-paging feature: # export SYSTEMD_PAGER# User specific aliases and functionsalias rmrm -i alias cpcp -i alias mvmv -i [rootFedora-Desktop ~]# # .bashrc文件会做两件事首先检查/etc目录下的通用bashrc文件其次为用户提供一个定制自己的命令别名和私有脚本函数。6.7.5 非交互式shell 1. 非交互式shell,系统执行shell脚本时用的就是这种shell。不同之处在于它没有命令行提示符。但是当你在系统中运行脚本时也许希望能够运行一些特定的启动命令。# 脚本能以不同的方式执行。只有部分执行方式会启动子shell。2. bash shell提供了BASH_ENV环境变量。当shell启动一个非交互式shell进程时会检查这个环境变量以查看要执行的启动文件名。如果有指定的文件则shell会执行该文件里的命令这通常包括shell脚本变量设置。那如果未设置BASH_ENV变量shell脚本到哪里去获取其环境变量呢别忘了有些shell脚本是通过启动一个子shell来执行的。子shell会继承父shell的导出变量。如果父shell是登录shell在/etc/profile文件、/etc/profile.d/*.sh文件和$HOME/.bashrc文件中设置 并导出了变量那么用于执行脚本的子shell就能继承这些变量。# 任何由父shell设置但未导出的变量都是局部变量不会被子shell继承。对于那些不启动子shell的脚本变量已经存在于当前shell中了。就算没有设置BASH_ENV也可以使用当前shell的局部变量和全局变量。3. 如果变量未设置 echo命令会显示一个空行然后返回CLI提示符。6.8 环境变量持久化 对全局环境变量Linux系统的所有用户都要用到的变量来说可能更倾向于将新的或修改过的变量设置放在/etc/profile文件中但这可不是什么好主意。# 如果升级了所用的发行版则该文件也会随之更新这样一来所有定制过的变量设置可就都没了最好在/etc/profile.d目录中创建一个以.sh结尾的文件。把所有新的或修改过的全局环境变量设置都放在这个文件中。在大多数发行版中保存个人用户永久性bash shell变量的最佳地点是$HOME/.bashrc文件。这适用于所有类型的shell进程。但如果设置了BASH_ENV变量请记住除非值为$HOME/.bashrc否则应该将非交互式shell的用户变量放在别的地方。注意 图形化界面组成部分比如GUI客户端的环境变量可能需要在另外一些配置文件中设置这和设置bash shell环境变量的文件不一样。第5章讲过alias命令设置无法持久生效。你可以把个人的alias设置放在$HOME/.bashrc启动文件中使其效果永久化。 6.9 数组变量 1. 环境变量的一个很酷的特性是可以作为数组使用。数组是能够存储多个值的变量。这些值既可以单独引用也可以作为整体引用。 要给某个环境变量设置多个值可以把值放在括号里值与值之间用空格分隔。 [rootFedora-Desktop ~]# mytest(zero one two three four) [rootFedora-Desktop ~]# echo $mytest zero [rootFedora-Desktop ~]# # 输出指定索引下标的值 [rootFedora-Desktop ~]# echo ${mytest[2]} two [rootFedora-Desktop ~]# # 通配符 * 全部输出数组 [rootFedora-Desktop ~]# echo ${mytest[*]} zero one two three four [rootFedora-Desktop ~]# # 更改某个索引的值 [rootFedora-Desktop ~]# mytest[2]seven [rootFedora-Desktop ~]# echo ${mytest[2]} seven [rootFedora-Desktop ~]# # unset删除数组中的某个值 [rootFedora-Desktop ~]# unset mytest[2] [rootFedora-Desktop ~]# echo ${mytest[2]}[rootFedora-Desktop ~]# echo ${mytest[*]} zero one three four [rootFedora-Desktop ~]# # unset 删除整个数组 [rootFedora-Desktop ~]# unset mytest [rootFedora-Desktop ~]# echo ${mytest[*]}[rootFedora-Desktop ~]#
http://www.tj-hxxt.cn/news/226191.html

相关文章:

  • 开发网站如何选需要怎么做网站源代码
  • 申请网站空间就是申请域名宁波市住房和城乡建设局网站
  • seo入门黑帽培训教程河北网站优化
  • 网站建设合集外贸流程全步骤流程图
  • 网站建设算无形资产吗在百度做推广送网站好吗
  • 宿州网站建设设计公司皋兰县建设局网站
  • 焦作网站开发公司郴州住房和城乡建设部网站
  • 小企网站建设解决方案wordpress 源码出售
  • 已有网站做app需要多少钱大连2021建设网
  • 网站友情链接怎样做网站步骤
  • asp学校网站系统申请阿里巴巴网站首页
  • 上海网站建设公司招聘企业公司黄页大全
  • 哪个公司建网站网站地图怎么用
  • 手机评测网站哪个网站是专门做招商的平台
  • 提高网站订单转化率大兴网站开发网站建设哪家好
  • dw网站建设心理学网站的建设
  • 大连网站关键词推广网站建设公司的市场定位
  • 什么对网站建设起到计划和指导作用品牌网站设计图片
  • se 网站优化一个网站是怎么建立的
  • 网站在哪里购买如何注册网站名称
  • 免费的网站或软件江西网站建设技术
  • 网站打不开别人能打开一开始用php做网站
  • 知名网站名称六安建设网站
  • aspnet网站开发注册境外服务公司
  • 偃师建设局网站wordpress 修改密码
  • 个人备案门户网站开发公司回迁房视同销售会计处理
  • 电子商务网站建设a卷高校网站建设工作总结
  • 嘉鱼网站建设多少钱wordpress进管理员密码
  • 网站建设大忌济南最好的网站制作公司
  • 做地图的网站网络营销渠道名词解释