长沙网站设计开发,上榜网络,wordpress英文企业网站模板,甘肃公司网站建设哪家好#xfeff;#xfeff; 变量 变量赋值与环境 1).export:用于修改或打印环境变量 readonly:使得变量不可修改 语法#xff1a; export name[word] ... export -p readonly name[word] ... readonly -p 主要选项: -p:打印命令的名称以及所有被导出(只读)变量的名称与值 变量 变量赋值与环境 1).export:用于修改或打印环境变量 readonly:使得变量不可修改 语法 export name[word] ... export -p readonly name[word] ... readonly -p 主要选项: -p:打印命令的名称以及所有被导出(只读)变量的名称与值 这种方式可使得shell重新读取输出以便重新建立环境(只读设置) export临时导入环境变量 $PATH决定了shell将到哪些目录中寻找命令或程序PATH的值是一系列目录当您运行一个程序时Linux在这些目录下进行搜寻编译链接。 编辑你的 PATH 声明其格式为 PATH$PATH:PATH1:PATH 2:PATH 3: ... :PATH N 其中PATHN 为自己加上指定路径中间用冒号隔开。环境变量更改后在用户下次登陆时生效如果想立刻生效则可执行下面的语句$ source .bash_profile 完成后可以通过 $ echo $PATH 或者 export命令查看当前的搜索路径。 这样定制的好处在于可以避免频繁的启动位于 shell 搜索的路径之外的程序 注意该方法添加的PATH 在终端关闭后就会消失。 实例1export命令将新变量添加到环境中 [gz_fieldyang test ~]$ export -p #显示当前环境 declare -x CVS_RSHssh ... declare -x HISTSIZE1000 declare -xHOME/home/gz_fieldyang declare -xJAVA_HOME/usr/local/jdk ... declare -xPATH/usr/local/git/bin.../home/gz_fieldyang/bin: ... [gz_fieldyang test ~]$ echo $PATH #查看当前路径 /usr/local/git/bin.../home/gz_fieldyang/bin [gz_fieldyang test ~]$ PATH$PATH:/USER/LOCAL/BIN:/THIS/IS/A/TEST#更新PATH [gz_fieldyang test ~]$ export PATH #导出PATH [gz_fieldyang test ~]$ export declare -x CVS_RSHssh ... declare -xHOME/home/gz_fieldyang ... declare -xPATH/usr/local/git/bin.../home/gz_fieldyang/bin:/USER/LOCAL/BIN:/THIS/IS/A/TEST ... 附言 bash的配置文件 1、全局配置与个人配置 全局配置 /etc/profile /rtc/profile.d/*.sh/etc/bashrc 个人配置 ~/.bash_profile,~/.bashrc 2、各配置文件解析 /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时, 该文件被执行并从/etc/profile.d目录的配置文件中搜集shell的设置 /etc/bashrc:为每一个运行bash shell的用户执行此文件当bash shell被打开时,该文件被读取。 ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息, 当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。 ~/.bashrc:该文件包含专用于你的bashshell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。 3、profile类的文件与basrc类的文件区别 profile类的文件 设定环境变量 运行命令或脚本 basrc类的文件 设定本地变量 定义命令别名 4、shell如何读取配置文件 登录式shell如何读取配置文件 /etc/profile --/etc/profile.d/*.sh --~/.bash_profile -- ~/.bashrc--/etc/bashrc 非登录式shell如何配置文件 ~/.bashrc--/etc/bashrc--/etc/profile.d/*.sh 永久生效 可以通过编辑/etc/profile来改PATH也可以改家目录下的.bashrc(即~/.bashrc) 实例2export命令将新变量添加到环境中(永久生效) [gz_fieldyang test ~]$ readonly hours_per_day24 #定义变量并赋值 [gz_fieldyang test ~]$ export PATH$PATH:/usr/local/bin #更新PATH [gz_fieldyang test ~]$ export PATH [gz_fieldyang test ~]$ export -P [gz_fieldyang test ~]$ echo $PATH /usr/local/git/bin.../home/gz_fieldyang/bin:/usr/local/bin [gz_fieldyang test ~]$ echo $hours_per_day 24 [gz_fieldyang test ~]$ vim /etc/profile ... exportPATH$PATH:/usr/local/bin :wq [gz_fieldyang test ~]$ source /etc/profile 不报错则成功。 [gz_fieldyang test ~]$ vi .bashrc # .bashrc # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions exportPATH$PATH:/usr/local/bin [gz_fieldyang test ~]$ source .bashrc 不报错则成功。 变量可以添加到程序环境中但是对shell或接下来的命令不会一直有效 将该变量赋值置于命令名称或参数前即可 PATH/bin:/usr/binawk ... file1 file2 实例3 [gz_fieldyang test ~]$ PATH/bin:/usr/bin awk -F: {print$1,$3} /etc/passwd |tail -5 sninf_simonlau 855 sninf_tonyhung 856 gz_kinma 857 gz_fieldyang 859 sninf_kenchoi 860 [gz_fieldyang test ~]$ PATH/bin:/usr/bin cat quotas Kin_ma 102 Jones_yan 132 Field_yang 263 Will_wu282 #这个PATH值的改变仅针对单个awk命令的执行任何接下来的命令所看到的都是在他们环境中PATH的当前值 2env 语法 env [ -i] [varvalue...][command_name[arguments...]] 用途当command_name被env执行时可针对该command_name继承而来的环境有更细致的控制 主要选项 -i:忽略继承的环境仅使用命令行上所给定的变量与值 -u变量名从当前环境中删除指定的变量 [gz_fieldyang test ~]$ env declare -x CVS_RSHssh ... declare -xHOME/home/gz_fieldyang ... declare -xPATH/usr/local/git/bin.../home/gz_fieldyang/bin:/USER/LOCAL/BIN:/THIS/IS/A/TEST ... [gz_fieldyang test ~]$ env -i PATH$PATH:/user/local/bin #开始一个新的空的环境 当前生效 PATH/usr/local/git/bin:... /home/gz_fieldyang/bin:/USER/LOCAL/BIN:/THIS/IS/A/TEST:/user/local/bin env也可以临时改变环境变量值 env -iPATH$PATH HOME$HOME LC_ALLC awk [-F ♢] ... file1 file2 实例 [gz_fieldyangtest ~]$ env -iPATH/user/local/bin/test PATH/user/local/bin/test [gz_fieldyang test ~]$ env -i PATH/bin:/usr/bin awk -F:{print $1,$3} /etc/passwd |tail -5 sninf_simonlau 855 sninf_tonyhung 856 gz_kinma 857 gz_fieldyang 859 sninf_kenchoi 860 [gz_fieldyang test ~]$ env -i PATH$PATH awk -F: {print$1,$3} /etc/passwd |tail -5 sninf_simonlau 855 sninf_tonyhung 856 gz_kinma 857 gz_fieldyang 859 sninf_kenchoi 860 [gz_fieldyang test ~]$ 3).unset 语法 unset [-v] variable ... unset -f function ... 用途从当前shell删除变量和函数 主要选项 -f:解除删除指定的函数 -v:解除删除指定的变量没有任何选项时这是默认行为模式 实例1删除指定变量 [gz_fieldyang test ~]$ readonly YEARSS2016 [gz_fieldyang test ~]$ echo $YEARSS 2016 [gz_fieldyang test ~]$ unset YEARSS -bash: unset: YEARSS: cannot unset:readonly variable [gz_fieldyang test ~]$ export TESTthisisatest [gz_fieldyang test ~]$ echo test [gz_fieldyang test ~]$ echo $TEST thisisatest [gz_fieldyang test ~]$ unset TEST [gz_fieldyang test ~]$ echo $TEST [gz_fieldyang test ~]$ export A11 [gz_fieldyang test ~]$ export B12 C13 #定义变量 [gz_fieldyang test ~]$ echo $A $B $C 11 12 13 [gz_fieldyang test ~]$ unset -v A B C #删除变量 [gz_fieldyang test ~]$ echo $A $B $C 实例2删除指定函数 [gz_fieldyang test ~]$ who_is_on (){ #定义函数 who|awk {print$1} | sort -u #产生排序后的用户列表 } [gz_fieldyang test ~]$ who_is_on #调用函数 gz_fieldyang gz_jonesyan sngz sninf_kenchoi sninf_tonyhung [gz_fieldyang test ~]$ unset -f who_is_on #删除函数 [gz_fieldyang test ~]$ who_is_on -bash: who_is_on: command not found [gz_fieldyang test ~]$