这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» 软件与操作系统» Linux Shell相关文件和变量(2)

共1条 1/1 1 跳转至

Linux Shell相关文件和变量(2)

助工
2017-08-07 07:48:30 打赏

与登陆Shell相关的文件

当Linux运行级别为3或者为5这两种情况下登陆时,都需要输入用户名和密码。用户登录时Bash将会使用以下初始化文件和脚本:

/etc/profile——系统初始化文件,定义了一些环境变量,由登陆Shell调用执行。

/etc/bash.bashrc或/etc/bashrc——其文件名根据不同的Linux发行版而异,每个交互Shell的系统的启动脚本,定义了一些函数和别名。

/etc/bash.logout——系统级的登陆Shell清理脚本,当登陆Shell退出时执行。部分Linux发行版默认没有此文件。

$HOME/.bash_profile、$HOME/.bash_login、$HOME/.profile——用户个人初始化脚本,由登陆Shell调用执行。这三个脚本只有一个会被执行,按照此顺序查找,第一个存在的将被执行。

$HOME/.bashrc——用户个人的每个交互式Shell启动脚本。

$HOME/.bash_logout——用户个人的登陆Shell清理脚本,当登陆Shell退出时执行。

$HOME/.iputrc——用户个人的由readline使用的启动脚本,定义了处理某些情况下的键盘映射。

1.png


Bash启动脚本

在用户登录时自动执行的脚本主要用于设置一些环境,例如设置JAVA_HOME的路径。其中的一些脚本被登陆Shell调用,登陆Shell是你登陆系统时最先执行的Shell。它设置一些环境,然后把这些环境授予非登陆Shell。

用户登录登录Shell会调用如下脚本:

/etc/profile——当用户在运行级别3登陆系统时首先运行。

/etc/profile.d——当/etc/profile运行时,会调用该目录下的一些脚本

$HOME/.bash_profile、$HOME/.bash_login、$HOME/.profile——在/etc/profile运行后,第一个存在的被运行。

$HOME/.bashrc——上述脚本的中一个运行后即调用此脚本。

/etc/bash.bashrc或/etc/bashrc——由$HOME/.bashrc调用运行

当一个交互式的非登陆Shell启动时,Bash将读取并运行如下脚本:

$HOME/.bashrc——如果此文件存在即被运行。

/etc/bashrc——将被$HOME/.bashrc调用运行。

/etc/profile.d——此目录下的脚本将被/etc/bashrc或/etc/bash.bashrc调用运行。

Bash启动脚本主要设置的环境有:

设置环境变量PATH和PS1

通过变量EDITOR设置默认的文本编辑器

设置默认的umask(文件或目录的权限属性)

覆盖或移除不想要的变量或别名

设置别名

加载函数

Bash退出脚本

当登陆Shell退出时,如果$HOME/.bash_logout脚本存在,Bash会读取并执行脚本内容,此脚本主要作用:

使用clear命令清理你的终端屏幕输出

移除一些临时文件

自动运行一些命令或脚本等

Shell中变量的类型

Linux Shell中的变量可以被指定为任意的数据类型。Shell有两种变量类型:系统变量(环境变量)和用户自定义的变量(本地变量或Shell变量)。

常用的系统变量(环境变量):

系统变量

含义

BASH_VERSION

保存Bash实例的版本

DISPLAY

设置Xdisplay名字

EDITOR

设置默认的文本编辑器

HISTFILE

保存命令历史的文件名

HISTFILESIZE

命令历史文件所能包含的最大行数

HISTSIZE

记录在命令历史中的命令数

HOME

当前用户的主目录

HOSTNAME

你的计算机的主机名

IFS

定义Shell的内部字段分隔符,一般是空格、制表符和换行符

PATH

搜索命令的路径。它是以冒号分割的目录列表。Shell会在PATH环境变量指定的全部路径中搜索任何匹配的可执行文件

PS1

你的提示符设定

PWD

当前工作目录。由cd命令设置

SHELL

设置登陆Shell的路径

TERM

设置你的登陆中断类型

TMOUT

用于设置Shell内建命令read的默认超时时间,单位为秒。在交互式的Shell中,此变量的值作为发出命令后等待用户输入的秒数,如果没有用户输入将会自动退出

添加上述变量到Home目录下的初始文件中,比如~/.bash_profile文件。这样在登陆时,这些变量会被自动设置为你需要的值。

查看当前Shell的所有系统变量:

$ env

或者:

$ printenv

2.png


用户自定义的变量:

即由用户创建和维护的变量。变量可以使用任何有效地变量名来定义。变量必须以字母或下划线字符"_"开头,后面跟字母、数字或下划线字符,第一个字符不能为数字。不要用特殊字符命名变量名(?、*等),变量名大小写敏感。在Shell中,第一次使用某变量名时,实际上就定义了变量。语法:

varName=varValue

Shell默认赋值运算是字符串赋值运算:

$ var=1 $ var=$var+1 $ echo $var 1+1

在Bash中,算数运算使用let命令:

$ let var=2+1 $ echo $var 3

将一个变量赋值给另一个变量:

$ a=3 $ b=$a $ echo $b 3

3.png





关键词: Linux 文件 变量 登陆 脚本 Shell

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]