作业耶耶耶耶耶,,
Linux 环境变量课堂笔记一什么是环境变量环境变量就是程序外面设置的变量存的是名值对比如HOME/home/zhangzy这样。bash shell拿它来存会话和工作环境的信息方便程序或脚本随时取用。系统自带的变量一般全大写跟用户自己的区分开。分两类全局变量对所有shell会话和子shell可见局部变量只在创建它的那个shell里有效。二、查看环境变量env 或 printenv 看全部全局变量printenv HOME 看特定变量的值echo HOME也行注意变量名前要加HOME 也行注意变量名前要加HOME也行注意变量名前要加set 命令显示所有变量包括局部、全局、用户自定义的按字母排好序三、全局 vs 局部用bash命令生成子shell全局变量会继承下去。关键点在子shell里改全局变量的值父shell不受影响。改完退出子shell再echo父shell里还是原来的值。四、设置变量局部变量bashmy_variableHello # 等号两边不能有空格my_variable“Hello World” # 有空格要用引号变量名区分大小写自己建的用小写字母别跟系统变量撞车。全局变量先创建局部变量再用export导出bashmy_variable“Global var”export my_variable然后进子shell也能看到它。五、删除变量用unset命令。记住操作变量的时候不要加引用变量的时候才加。bashunset my_variable # 对unsetmy_variable # 错在子shell里unset只影响子shell自己的父shell不受影响。六、PATH环境变量这个很重要。你在命令行敲命令shell就按照PATH里列出的目录挨个去找可执行文件。bashecho PATH输出类似/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin目录之间用冒号隔开。如果你想执行当前目录下的脚本要么写./hello.sh要么把目录加到PATH里bashPATHPATH 输出类似/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 目录之间用冒号隔开。 如果你想执行当前目录下的脚本要么写./hello.sh要么把目录加到PATH里 bash PATHPATH输出类似/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin目录之间用冒号隔开。如果你想执行当前目录下的脚本要么写./hello.sh要么把目录加到PATH里bashPATHPATH:/root/shcode不过这种修改只是临时的退出shell或重启就没了。把脚本放到/etc/profile.d/目录下也挺方便系统启动时会自动加载。七、启动文件登录Linux时bash会按顺序读取启动文件来设置环境/etc/profile —— 系统级的所有用户登录都会执行/.ℎHOME/.bash_login$HOME/.profile后面三个按顺序找到第一个就执行剩下的跳过。$HOME/.bashrc也经常被用到一般在.profile里会检查并执行它。八、数组变量bash也支持数组bashmytest(one two three)echo {mytest[0]} # one索引从0开始echo{mytest[2]} # threeecho ${mytest[*]} # one two three显示整个数组改值、删值、删整个数组bashmytest[2]five # 改unset mytest[1] # 删第二个元素但索引位置还在unset mytest # 删整个数组注意unset删掉某个索引后那个位置就空了但数组长度不变。记的几个易错点赋值等号两边不能有空格 —— 这个我一开始老是忘引用变量加操作变量不加——ℎvar vs unset var子shell里改export的变量父shell不变 —— 这个特性容易迷惑人加引号处理空格 —— my_var“hello world”不用引号就会报错PATH修改是临时的想永久生效得写到启动文件里。