Shell变量有局部变量、环境变量之分。局部变量就是指在某个Shell中生效的变量,只在此次登录中有效。环境变量通常又称“全局变量”,虽然在Shell中变量默认就是全局的,但是为了让子Shall继承当前Shell的变量,需要使用export内建命令将其导出为环境变量。
1、Linux的变量种类
按变量的生存周期划分:
永久的:需要修改配置文件,变量永久生效。
临时的:使用export命令声明即可,变量在关闭shell时失效。
在配置永久的环境变量时,又可以按照作用范围分为
用户环境变量
系统环境变量。
系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。
2、修改系统环境变量
系统环境变量一般保存在下面的文件中
/etc/profile
全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
/etc/bash.bashrc
它也是全局(公有)的 bash执行时,不管是何种方式,都会读取此文件。
/etc/environment
不要轻易修改此文件
!!!!!!话不多说,亲身体验+借鉴!!!!!!!!!
因为不小心在 etc/profile里设在环境变量导致无法登录 (我设置环境变量时多加了一个空格,导致无法登录系统)
不要在 etc/profile里胡乱设置export PATH,这样会导致重启后登录不了
系统
解决办法:1、在登录界面 alt +ctrl+f2进入命令模式
2、输入用户,密码
3、进入:cd
/usr/bin
4、修改错误的环境变量:sudo /usr/bin/vi /etc/profile
5、保存重启
附录:
在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出, 返回到shell。
在末行模式下,输入命令
:w
Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。
[例6]
:w newfile
此时Vi将把当前文件的内容保存到指定的newfile中,而原有文件保持不变。若newfile是一个已存在的文件,则Vi在显示窗口的状态行给出提示信息:
File exists (use ! to override)
此时,若用户真的希望用文件的当前内容替换newfile中原有内容,可使用命令
:w! newfile
否则可选择另外的文件名来保存当前文件。
在末行模式下,输入命令
:q
系统退出Vi返回到shell。若在用此命令退出Vi时,编辑文件没有被保存,则Vi在显示窗口的最末行显示如下信息:
No write since last change (use ! to overrides)
提示用户该文件被修改后没有保存,然后Vi并不退出,继续等待用户命令。若用户就是不想保存被修改后的文件而要强行退出Vi时,可使用命令
:q!
Vi放弃所作修改而直接退到shell下。
在末行模式下,输入命令
:wq
Vi将先保存文件,然后退出Vi返回到shell。
在末行模式下,输入命令
:x
该命令的功能同命令模式下的ZZ命令功能相同