天天看点

Linux之Bash基础特性配置文件(4)

前言

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

作用

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

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

功能

    让用户能更好的使用bash

配置文件的分类

    对所有用户生效的配置:

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

        /etc/bashrc

    对当前用户有效    

        ~/.bashrc

        ~/.bash_profile

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

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

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

    1)su -l user

    2)输入密码登陆

1

2

3

4

5

6

<code># echo $PATH</code>

<code>/usr/local/apache/bin</code><code>:</code><code>/usr/local/nginx/sbin</code><code>:</code><code>/usr/local/sbin</code><code>:</code><code>/usr/local/bin</code><code>:</code><code>/usr/sbin</code><code>:</code><code>/usr/bin</code><code>:</code><code>/root/bin</code>

<code># su -l testbash</code>

<code>-sh-4.2$ </code><code>echo</code> <code>$PATH</code>

<code>/usr/local/nginx/sbin</code><code>:</code><code>/usr/local/bin</code><code>:</code><code>/bin</code><code>:</code><code>/usr/bin</code><code>:</code><code>/usr/local/sbin</code><code>:</code><code>/usr/sbin</code>

<code>-sh-4.2$</code>

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

7

8

9

10

<code>$ nano </code><code>/etc/profile</code><code>.d</code><code>/nginx</code><code>.sh  </code><code>##在profile.d中定义nginx的二进制文本的路径在$PATH之前 </code>

<code>export</code> <code>PATH=</code><code>/usr/local/nginx/sbin</code><code>:$PATH</code>

<code>$ vim ~/.bash_profile            </code><code>##在~/.bah_profile中¥PATH之前定义mysql的二进制文件的路径</code>

<code>PATH=</code><code>/usr/local/mysql/bin</code><code>:$PATH:$HOME/.</code><code>local</code><code>/bin</code><code>:$HOME</code><code>/bin</code> 

<code>export</code> <code>PATH</code>

<code>如果先读到的,显示在后,读取配置文件的顺序在前</code>

<code>重启</code><code>bash</code><code>进程</code>

<code>$ </code><code>echo</code> <code>$PATH</code>

<code>/usr/local/mysql/bin</code><code>:usr</code><code>/local/nginx/sbin</code><code>:</code>

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

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

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

<code># su testbash</code>

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

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

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

11

12

13

14

15

16

17

18

19

20

<code>[root@izpo45bh60h6bsz ~]</code><code># name="obama jerry"  ##有空格的字符引用,加引号,否则会报错</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># echo $name</code>

<code>obama jerry</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># declare -x name     ##申明为环境变量</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># nano tr_d_dc_s_I.sh </code>

<code>#!/bin/bash</code>

<code>echo</code> <code>$name</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># chmod +x tr_d_dc_s_I.sh  ##给予脚本执行权限 </code>

<code>[root@izpo45bh60h6bsz ~]</code><code># ls -l tr_d_dc_s_I.sh</code>

<code>-rwxr-xr-x 1 root root 23 Jun 10 14:48 tr_d_dc_s_I.sh</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># ./tr_d_dc_s_I.sh       ##变量生效</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># unset name             ##撤消变量</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># ./tr_d_dc_s_I.sh       ##变量为空</code>

<code>[root@izpo45bh60h6bsz ~]</code><code>#</code>

<code></code>

本文转自 lccnx 51CTO博客,原文链接:http://blog.51cto.com/sonlich/1952878,如需转载请自行联系原作者