Linux----shell

 shell不同于其他程序。除了解读元字符之外,它还代表一个环境,用户可以对其进行定制,以满足自己的需要。这些需要包括:设计快捷方式、控制shell变量、设置启动脚本。

[root@min ~]#  echo $SHELL   //正在使用的哪种shell
/bin/bash



[root@min ~]# chsh           //将C shell作为登录shell的一个子shell来运行
Changing shell for root.
New shell [/bin/bash]: exit     //终止C shell,返回登录shell
chsh: shell must be a full path name.
[root@min ~]# 

shell变量有两种——局部变量和环境变量。PATH、HOME和SHELL是环境变量。之所以这样称呼它们,是因为它们在用户的整个环境中都可以使用,包括运行shell脚本的子shell、邮件命令和编辑器。局部变量在作用域上受到更大的限制。

[root@min ~]# DOWNLOAD_DIR=/home/test/download
[root@min ~]# echo $DOWNLOAD_DIR 
/home/test/download
[root@min ~]# bash     //创建一个子shell
[root@min ~]# echo $DOWNLOAD_DIR  //DOWNLOAD_DIR 在子shell中是否可见?
                                   //不能见
[root@min ~]# echo $PATH    //但PATH可见
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@min ~]# exit   //终止子shell,返回登录shell
exit

DOWNLOAD_DIR是一个局部变量;它的值不能供子进程使用。

set语句显示当前shell中的所有可用变量,但env命令仅显示环境变化。

环境变量名用大写字母定义,env是一个外部命令,在子进程中运行。它仅列出那些从其父进程(shell)继承而来的变量。但set是shell的内置命令,会显示当前shell中的所有可见变量。set将显示DOWNLOAD_DIR的值,但env不会。

export :创建环境变量

使DOWNLOAD_DIR能够在所有子进程中都可见,需要将其导出,用shell的export来实现变量继承。export就是将局部变量转变为环境变量;

export DOWNLOAD_DIR

export DOWNLOAD_DIR=/home/test/download

常见环境变量:

变量意义

HOME

主目录---用户在登录时所在的目录
PATHshell在查找一条命令时搜索的目录列表
LOGNAME用户的登录名
USER用户的登录名
MAIL用户邮件的的绝对路径名
MAILCHECK接收邮件的检查间隔
MAILPATHshell检查是否有邮件到达的邮箱列表
TERM终端的类型
PWD当前目录的绝对路径名
CDPATH在与非绝对路径名一起使用时,cd查找的目录列表
PS1主要提示符字符串
PS2辅助提示符字符串
SHELL用户的登录shell,以及由拥有shell临时出口(escape)的程序调用的一个shell

 

命令查找路径(PATH) PATH 列出了shell在其中查找可执行命令的目录,我们经常对PATH进行重新赋值,使其中包含一个或多个目录。要将/usr/game 添加到PATH列表,可以将原有值与新值串联在一起,重新为这个变量赋值:

214934_Vl2n_2918364.png

 

 

 

 

 

 

 

 

 

 

 

转载于:https://my.oschina.net/liubaizi/blog/859073

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值