谢烟客---------Linux之Bash基础特性配置文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谢烟客---------Linux之Bash基础特性配置文件相关的知识,希望对你有一定的参考价值。

前言

    在bash进程中,读取到bash进程内存中的数据,在bash进程终止时,进程中的数据会被操作系统回收,变量也是定义在当前shell进程内存空间的数据。在shell终止时,变量也会失效


作用

    选项:定义命令的工作行为

    配置文件也能定义工作行为,主要存储命令的诸多选项,定义长期有效的行为


功能

    让用户能更好的使用bash


配置文件的分类

    对所有用户生效的配置:

        /etc/profile,/etc/profile.d/

        /etc/bashrc

    对当前用户有效    

        ~/.bashrc

        ~/.bash_profile


    profile类,定义环境变量和脚本

    bashrc类:定义本地变量和别名

    

登陆式切换:会读取目标用户的配置文件,初始化环境

    1)su -l user

    2)输入密码登陆

# echo $PATH
/usr/local/apache/bin:/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# su -l testbash
-sh-4.2$ echo $PATH
/usr/local/nginx/sbin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin
-sh-4.2$

    读取配置文件的顺序:  profile --> profile.d --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

$ nano /etc/profile.d/nginx.sh  ##在profile.d中定义nginx的二进制文本的路径在$PATH之前 
export PATH=/usr/local/nginx/sbin:$PATH
$ vim ~/.bash_profile            ##在~/.bah_profile中¥PATH之前定义mysql的二进制文件的路径
PATH=/usr/local/mysql/bin:$PATH:$HOME/.local/bin:$HOME/bin 
export PATH

如果先读到的,显示在后,读取配置文件的顺序在前
重启bash进程
$ echo $PATH
/usr/local/mysql/bin:usr/local/nginx/sbin:

     

非登陆式切换:不会读取目标用户的配置文件

    2)无需输入密码登陆:su user, 图形界面下的终端

    2)脚本运行时,在当前shell的子shell中运行

# echo $PATH
/usr/local/apache/bin:/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
# su testbash
$ echo $PATH
/usr/local/apache/bin:/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

    读取配置文件的顺序:~/.bashrc --> /etc/bashrc --> profile.d


******验证脚本运行为当前shell的子shell进程*********

    环境变量对当前shell的子shell进程生效

[[email protected] ~]# name="obama jerry"  ##有空格的字符引用,加引号,否则会报错
[[email protected] ~]# echo $name
obama jerry
[[email protected] ~]# declare -x name     ##申明为环境变量

[[email protected] ~]# nano tr_d_dc_s_I.sh 
#!/bin/bash
echo $name

[[email protected] ~]# chmod +x tr_d_dc_s_I.sh  ##给予脚本执行权限 
[[email protected] ~]# ls -l tr_d_dc_s_I.sh
-rwxr-xr-x 1 root root 23 Jun 10 14:48 tr_d_dc_s_I.sh

[[email protected] ~]# ./tr_d_dc_s_I.sh       ##变量生效
obama jerry

[[email protected] ~]# unset name             ##撤消变量
[[email protected] ~]# ./tr_d_dc_s_I.sh       ##变量为空

[[email protected] ~]#


本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1952878

以上是关于谢烟客---------Linux之Bash基础特性配置文件的主要内容,如果未能解决你的问题,请参考以下文章

谢烟客---------Linux之Bash基础特性配置文件

谢烟客---------Linux之Bash基础特性变量

谢烟客---------Linux之Bash基础特性变量

谢烟客---------Linux之Bash基础特性算术运算

谢烟客---------Linux之Bash基础特性条件测试&&自定义退出状态码

谢烟客---------Linux之bash编程